Skip to content

Instantly share code, notes, and snippets.

@hackcasual
Created April 22, 2016 21:22
Show Gist options
  • Save hackcasual/a4288f9940f04ebbf56c4171d6318230 to your computer and use it in GitHub Desktop.
Save hackcasual/a4288f9940f04ebbf56c4171d6318230 to your computer and use it in GitHub Desktop.
// The Module object: Our interface to the outside world. We import
// and export values on it, and do the work to get that through
// closure compiler if necessary. 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 do an eval in order to handle the closure compiler
// case, where this code here is minified but Module was defined
// elsewhere (e.g. case 4 above). We also need to check if Module
// already exists (e.g. case 3 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;
if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
// 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 = {};
for (var key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
// The environment setup code below is customized to use Module.
// *** Environment setup code ***
var ENVIRONMENT_IS_WEB = false;
var ENVIRONMENT_IS_WORKER = false;
var ENVIRONMENT_IS_NODE = false;
var ENVIRONMENT_IS_SHELL = false;
// Three configurations we can be running in:
// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
if (Module['ENVIRONMENT']) {
if (Module['ENVIRONMENT'] === 'WEB') {
ENVIRONMENT_IS_WEB = true;
} else if (Module['ENVIRONMENT'] === 'WORKER') {
ENVIRONMENT_IS_WORKER = true;
} else if (Module['ENVIRONMENT'] === 'NODE') {
ENVIRONMENT_IS_NODE = true;
} else if (Module['ENVIRONMENT'] === 'SHELL') {
ENVIRONMENT_IS_SHELL = true;
} else {
throw new Error('The provided Module[\'ENVIRONMENT\'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.');
}
} else {
ENVIRONMENT_IS_WEB = typeof window === 'object';
ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
}
if (ENVIRONMENT_IS_NODE) {
// Expose functionality in the same simple way that the shells work
// Note that we pollute the global namespace here, otherwise we break in node
if (!Module['print']) Module['print'] = console.log;
if (!Module['printErr']) Module['printErr'] = console.warn;
var nodeFS;
var nodePath;
Module['read'] = function read(filename, binary) {
if (!nodeFS) nodeFS = require('fs');
if (!nodePath) nodePath = require('path');
filename = nodePath['normalize'](filename);
var ret = nodeFS['readFileSync'](filename);
// The path is absolute if the normalized version is the same as the resolved.
if (!ret && filename != nodePath['resolve'](filename)) {
filename = path.join(__dirname, '..', 'src', filename);
ret = nodeFS['readFileSync'](filename);
}
if (ret && !binary) ret = ret.toString();
return ret;
};
Module['readBinary'] = function readBinary(filename) {
var ret = Module['read'](filename, true);
if (!ret.buffer) {
ret = new Uint8Array(ret);
}
assert(ret.buffer);
return ret;
};
Module['load'] = function load(f) {
globalEval(read(f));
};
if (!Module['thisProgram']) {
if (process['argv'].length > 1) {
Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/');
} else {
Module['thisProgram'] = 'unknown-program';
}
}
Module['arguments'] = process['argv'].slice(2);
if (typeof module !== 'undefined') {
module['exports'] = Module;
}
process['on']('uncaughtException', function(ex) {
// suppress ExitStatus exceptions from showing an error
if (!(ex instanceof ExitStatus)) {
throw ex;
}
});
Module['inspect'] = function () { return '[Emscripten Module object]'; };
}
else if (ENVIRONMENT_IS_SHELL) {
if (!Module['print']) Module['print'] = print;
if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
if (typeof read != 'undefined') {
Module['read'] = read;
} else {
Module['read'] = function read() { throw 'no read() available (jsc?)' };
}
Module['readBinary'] = function readBinary(f) {
if (typeof readbuffer === 'function') {
return new Uint8Array(readbuffer(f));
}
var data = read(f, 'binary');
assert(typeof data === 'object');
return data;
};
if (typeof scriptArgs != 'undefined') {
Module['arguments'] = scriptArgs;
} else if (typeof arguments != 'undefined') {
Module['arguments'] = arguments;
}
}
else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
Module['read'] = function read(url) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.send(null);
return xhr.responseText;
};
Module['readAsync'] = function readAsync(url, onload, onerror) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function xhr_onload() {
if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
onload(xhr.response);
} else {
onerror();
}
};
xhr.onerror = onerror;
xhr.send(null);
};
if (typeof arguments != 'undefined') {
Module['arguments'] = arguments;
}
if (typeof console !== 'undefined') {
if (!Module['print']) Module['print'] = function print(x) {
console.log(x);
};
if (!Module['printErr']) Module['printErr'] = function printErr(x) {
console.warn(x);
};
} else {
// Probably a worker, and without console.log. We can do very little here...
var TRY_USE_DUMP = false;
if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
dump(x);
}) : (function(x) {
// self.postMessage(x); // enable this if you want stdout to be sent as messages
}));
}
if (ENVIRONMENT_IS_WORKER) {
Module['load'] = importScripts;
}
if (typeof Module['setWindowTitle'] === 'undefined') {
Module['setWindowTitle'] = function(title) { document.title = title };
}
}
else {
// Unreachable because SHELL is dependant on the others
throw 'Unknown runtime environment. Where are we?';
}
function globalEval(x) {
eval.call(null, x);
}
if (!Module['load'] && Module['read']) {
Module['load'] = function load(f) {
globalEval(Module['read'](f));
};
}
if (!Module['print']) {
Module['print'] = function(){};
}
if (!Module['printErr']) {
Module['printErr'] = Module['print'];
}
if (!Module['arguments']) {
Module['arguments'] = [];
}
if (!Module['thisProgram']) {
Module['thisProgram'] = './this.program';
}
// *** Environment setup code ***
// Closure helpers
Module.print = Module['print'];
Module.printErr = Module['printErr'];
// Callbacks
Module['preRun'] = [];
Module['postRun'] = [];
// Merge back in the overrides
for (var key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
// 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 = undefined;
// {{PREAMBLE_ADDITIONS}}
// === 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
//========================================
// Runtime code shared with compiler
//========================================
var Runtime = {
setTempRet0: function (value) {
tempRet0 = value;
},
getTempRet0: function () {
return tempRet0;
},
stackSave: function () {
return STACKTOP;
},
stackRestore: function (stackTop) {
STACKTOP = stackTop;
},
getNativeTypeSize: function (type) {
switch (type) {
case 'i1': case 'i8': return 1;
case 'i16': return 2;
case 'i32': return 4;
case 'i64': return 8;
case 'float': return 4;
case 'double': return 8;
default: {
if (type[type.length-1] === '*') {
return Runtime.QUANTUM_SIZE; // A pointer
} else if (type[0] === 'i') {
var bits = parseInt(type.substr(1));
assert(bits % 8 === 0);
return bits/8;
} else {
return 0;
}
}
}
},
getNativeFieldSize: function (type) {
return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
},
STACK_ALIGN: 16,
prepVararg: function (ptr, type) {
if (type === 'double' || type === 'i64') {
// move so the load is aligned
if (ptr & 7) {
assert((ptr & 7) === 4);
ptr += 4;
}
} else {
assert((ptr & 3) === 0);
}
return ptr;
},
getAlignSize: function (type, size, vararg) {
// we align i64s and doubles on 64-bit boundaries, unlike x86
if (!vararg && (type == 'i64' || type == 'double')) return 8;
if (!type) return Math.min(size, 8); // align structures internally to 64 bits
return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
},
dynCall: function (sig, ptr, args) {
if (args && args.length) {
assert(args.length == sig.length-1);
if (!args.splice) args = Array.prototype.slice.call(args);
args.splice(0, 0, ptr);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].apply(null, args);
} else {
assert(sig.length == 1);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].call(null, ptr);
}
},
functionPointers: [],
addFunction: function (func) {
for (var i = 0; i < Runtime.functionPointers.length; i++) {
if (!Runtime.functionPointers[i]) {
Runtime.functionPointers[i] = func;
return 2*(1 + i);
}
}
throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
},
removeFunction: function (index) {
Runtime.functionPointers[(index-2)/2] = null;
},
warnOnce: function (text) {
if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
if (!Runtime.warnOnce.shown[text]) {
Runtime.warnOnce.shown[text] = 1;
Module.printErr(text);
}
},
funcWrappers: {},
getFuncWrapper: function (func, sig) {
assert(sig);
if (!Runtime.funcWrappers[sig]) {
Runtime.funcWrappers[sig] = {};
}
var sigCache = Runtime.funcWrappers[sig];
if (!sigCache[func]) {
sigCache[func] = function dynCall_wrapper() {
return Runtime.dynCall(sig, func, arguments);
};
}
return sigCache[func];
},
getCompilerSetting: function (name) {
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
},
stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; },
staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; },
dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + (assert(DYNAMICTOP > 0),size))|0;DYNAMICTOP = (((DYNAMICTOP)+15)&-16); if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0; } }; return ret; },
alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; },
makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; },
GLOBAL_BASE: 8,
QUANTUM_SIZE: 4,
__dummy__: 0
}
Module["Runtime"] = Runtime;
//========================================
// Runtime essentials
//========================================
var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
var EXITSTATUS = 0;
function assert(condition, text) {
if (!condition) {
abort('Assertion failed: ' + text);
}
}
var globalScope = this;
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
function getCFunc(ident) {
var func = Module['_' + ident]; // closure exported function
if (!func) {
try { func = eval('_' + ident); } catch(e) {}
}
assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
return func;
}
var cwrap, ccall;
(function(){
var JSfuncs = {
// Helpers for cwrap -- it can't refer to Runtime directly because it might
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find
// out what the minified function name is.
'stackSave': function() {
Runtime.stackSave()
},
'stackRestore': function() {
Runtime.stackRestore()
},
// type conversion from js to c
'arrayToC' : function(arr) {
var ret = Runtime.stackAlloc(arr.length);
writeArrayToMemory(arr, ret);
return ret;
},
'stringToC' : function(str) {
var ret = 0;
if (str !== null && str !== undefined && str !== 0) { // null string
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
ret = Runtime.stackAlloc((str.length << 2) + 1);
writeStringToMemory(str, ret);
}
return ret;
}
};
// For fast lookup of conversion functions
var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']};
// C calling interface.
ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
assert(returnType !== 'array', 'Return type should not be "array".');
if (args) {
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0) stack = Runtime.stackSave();
cArgs[i] = converter(args[i]);
} else {
cArgs[i] = args[i];
}
}
}
var ret = func.apply(null, cArgs);
if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') {
assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall');
}
if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values');
if (returnType === 'string') ret = Pointer_stringify(ret);
if (stack !== 0) {
if (opts && opts.async) {
EmterpreterAsync.asyncFinalizers.push(function() {
Runtime.stackRestore(stack);
});
return;
}
Runtime.stackRestore(stack);
}
return ret;
}
var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;
function parseJSFunc(jsfunc) {
// Match the body and the return value of a javascript function source
var parsed = jsfunc.toString().match(sourceRegex).slice(1);
return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]}
}
// sources of useful functions. we create this lazily as it can trigger a source decompression on this entire file
var JSsource = null;
function ensureJSsource() {
if (!JSsource) {
JSsource = {};
for (var fun in JSfuncs) {
if (JSfuncs.hasOwnProperty(fun)) {
// Elements of toCsource are arrays of three items:
// the code, and the return value
JSsource[fun] = parseJSFunc(JSfuncs[fun]);
}
}
}
}
cwrap = function cwrap(ident, returnType, argTypes) {
argTypes = argTypes || [];
var cfunc = getCFunc(ident);
// When the function takes numbers and returns a number, we can just return
// the original function
var numericArgs = argTypes.every(function(type){ return type === 'number'});
var numericRet = (returnType !== 'string');
if ( numericRet && numericArgs) {
return cfunc;
}
// Creation of the arguments list (["$1","$2",...,"$nargs"])
var argNames = argTypes.map(function(x,i){return '$'+i});
var funcstr = "(function(" + argNames.join(',') + ") {";
var nargs = argTypes.length;
if (!numericArgs) {
// Generate the code needed to convert the arguments from javascript
// values to pointers
ensureJSsource();
funcstr += 'var stack = ' + JSsource['stackSave'].body + ';';
for (var i = 0; i < nargs; i++) {
var arg = argNames[i], type = argTypes[i];
if (type === 'number') continue;
var convertCode = JSsource[type + 'ToC']; // [code, return]
funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';';
funcstr += convertCode.body + ';';
funcstr += arg + '=(' + convertCode.returnValue + ');';
}
}
// When the code is compressed, the name of cfunc is not literally 'cfunc' anymore
var cfuncname = parseJSFunc(function(){return cfunc}).returnValue;
// Call the function
funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');';
if (!numericRet) { // Return type can only by 'string' or 'number'
// Convert the result to a string
var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue;
funcstr += 'ret = ' + strgfy + '(ret);';
}
funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }";
if (!numericArgs) {
// If we had a stack, restore it
ensureJSsource();
funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';';
}
funcstr += 'return ret})';
return eval(funcstr);
};
})();
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
function setValue(ptr, value, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
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': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
case 'float': HEAPF32[((ptr)>>2)]=value; break;
case 'double': HEAPF64[((ptr)>>3)]=value; break;
default: abort('invalid type for setValue: ' + type);
}
}
Module["setValue"] = setValue;
function getValue(ptr, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
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': return HEAP32[((ptr)>>2)];
case 'float': return HEAPF32[((ptr)>>2)];
case 'double': return HEAPF64[((ptr)>>3)];
default: abort('invalid type for setValue: ' + type);
}
return null;
}
Module["getValue"] = getValue;
var ALLOC_NORMAL = 0; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_STATIC = 2; // Cannot be freed
var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
var ALLOC_NONE = 4; // Do not allocate
Module["ALLOC_NORMAL"] = ALLOC_NORMAL;
Module["ALLOC_STACK"] = ALLOC_STACK;
Module["ALLOC_STATIC"] = ALLOC_STATIC;
Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC;
Module["ALLOC_NONE"] = ALLOC_NONE;
// allocate(): This is for internal use. You can use it yourself as well, but the interface
// is a little tricky (see docs right below). The reason is that it is optimized
// for multiple syntaxes to save space in generated code. So you should
// normally not use allocate(), and instead allocate memory using _malloc(),
// initialize it with setValue(), and so forth.
// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
// in *bytes* (note that this is sometimes confusing: the next parameter does not
// affect this!)
// @types: Either an array of types, one for each byte (or 0 if no type at that position),
// or a single type which is used for the entire block. This only matters if there
// is initial data - if @slab is a number, then this does not matter at all and is
// ignored.
// @allocator: How to allocate memory, see ALLOC_*
function allocate(slab, types, allocator, ptr) {
var zeroinit, size;
if (typeof slab === 'number') {
zeroinit = true;
size = slab;
} else {
zeroinit = false;
size = slab.length;
}
var singleType = typeof types === 'string' ? types : null;
var ret;
if (allocator == ALLOC_NONE) {
ret = ptr;
} else {
ret = [typeof _malloc === 'function' ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
}
if (zeroinit) {
var ptr = ret, stop;
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
HEAP32[((ptr)>>2)]=0;
}
stop = ret + size;
while (ptr < stop) {
HEAP8[((ptr++)>>0)]=0;
}
return ret;
}
if (singleType === 'i8') {
if (slab.subarray || slab.slice) {
HEAPU8.set(slab, ret);
} else {
HEAPU8.set(new Uint8Array(slab), ret);
}
return ret;
}
var i = 0, type, typeSize, previousType;
while (i < size) {
var curr = slab[i];
if (typeof curr === 'function') {
curr = Runtime.getFunctionIndex(curr);
}
type = singleType || types[i];
if (type === 0) {
i++;
continue;
}
assert(type, 'Must know what type to store in allocate!');
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
setValue(ret+i, curr, type);
// no need to look up size unless type changes, so cache it
if (previousType !== type) {
typeSize = Runtime.getNativeTypeSize(type);
previousType = type;
}
i += typeSize;
}
return ret;
}
Module["allocate"] = allocate;
// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
function getMemory(size) {
if (!staticSealed) return Runtime.staticAlloc(size);
if ((typeof _sbrk !== 'undefined' && !_sbrk.called) || !runtimeInitialized) return Runtime.dynamicAlloc(size);
return _malloc(size);
}
Module["getMemory"] = getMemory;
function Pointer_stringify(ptr, /* optional */ length) {
if (length === 0 || !ptr) return '';
// TODO: use TextDecoder
// Find the length, and check for UTF while doing so
var hasUtf = 0;
var t;
var i = 0;
while (1) {
assert(ptr + i < TOTAL_MEMORY);
t = HEAPU8[(((ptr)+(i))>>0)];
hasUtf |= t;
if (t == 0 && !length) break;
i++;
if (length && i == length) break;
}
if (!length) length = i;
var ret = '';
if (hasUtf < 128) {
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
var curr;
while (length > 0) {
curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
ret = ret ? ret + curr : curr;
ptr += MAX_CHUNK;
length -= MAX_CHUNK;
}
return ret;
}
return Module['UTF8ToString'](ptr);
}
Module["Pointer_stringify"] = Pointer_stringify;
// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function AsciiToString(ptr) {
var str = '';
while (1) {
var ch = HEAP8[((ptr++)>>0)];
if (!ch) return str;
str += String.fromCharCode(ch);
}
}
Module["AsciiToString"] = AsciiToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.
function stringToAscii(str, outPtr) {
return writeAsciiToMemory(str, outPtr, false);
}
Module["stringToAscii"] = stringToAscii;
// Given a pointer 'ptr' 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.
function UTF8ArrayToString(u8Array, idx) {
var u0, u1, u2, u3, u4, u5;
var str = '';
while (1) {
// 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
u0 = u8Array[idx++];
if (!u0) return str;
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
u1 = u8Array[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
u2 = u8Array[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u3 = u8Array[idx++] & 63;
if ((u0 & 0xF8) == 0xF0) {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;
} else {
u4 = u8Array[idx++] & 63;
if ((u0 & 0xFC) == 0xF8) {
u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4;
} else {
u5 = u8Array[idx++] & 63;
u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5;
}
}
}
if (u0 < 0x10000) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
}
}
}
Module["UTF8ArrayToString"] = UTF8ArrayToString;
// 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.
function UTF8ToString(ptr) {
return UTF8ArrayToString(HEAPU8,ptr);
}
Module["UTF8ToString"] = UTF8ToString;
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
// outIdx: The starting offset in the array to begin the copying.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
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) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
if (outIdx >= endIdx) break;
outU8Array[outIdx++] = u;
} else if (u <= 0x7FF) {
if (outIdx + 1 >= endIdx) break;
outU8Array[outIdx++] = 0xC0 | (u >> 6);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0xFFFF) {
if (outIdx + 2 >= endIdx) break;
outU8Array[outIdx++] = 0xE0 | (u >> 12);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x1FFFFF) {
if (outIdx + 3 >= endIdx) break;
outU8Array[outIdx++] = 0xF0 | (u >> 18);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x3FFFFFF) {
if (outIdx + 4 >= endIdx) break;
outU8Array[outIdx++] = 0xF8 | (u >> 24);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 5 >= endIdx) break;
outU8Array[outIdx++] = 0xFC | (u >> 30);
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
}
}
// Null-terminate the pointer to the buffer.
outU8Array[outIdx] = 0;
return outIdx - startIdx;
}
Module["stringToUTF8Array"] = stringToUTF8Array;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Returns the number of bytes written, EXCLUDING the null terminator.
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);
}
Module["stringToUTF8"] = stringToUTF8;
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
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 u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
++len;
} else if (u <= 0x7FF) {
len += 2;
} else if (u <= 0xFFFF) {
len += 3;
} else if (u <= 0x1FFFFF) {
len += 4;
} else if (u <= 0x3FFFFFF) {
len += 5;
} else {
len += 6;
}
}
return len;
}
Module["lengthBytesUTF8"] = lengthBytesUTF8;
// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function UTF16ToString(ptr) {
var i = 0;
var str = '';
while (1) {
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
if (codeUnit == 0)
return str;
++i;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
str += String.fromCharCode(codeUnit);
}
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF16(str, outPtr, maxBytesToWrite) {
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;
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF16(str) {
return str.length*2;
}
function UTF32ToString(ptr) {
var i = 0;
var str = '';
while (1) {
var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
if (utf32 == 0)
return str;
++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);
}
}
}
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF32(str, outPtr, maxBytesToWrite) {
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;
}
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
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 demangle(func) {
var hasLibcxxabi = !!Module['___cxa_demangle'];
if (hasLibcxxabi) {
try {
var buf = _malloc(func.length);
writeStringToMemory(func.substr(1), buf);
var status = _malloc(4);
var ret = Module['___cxa_demangle'](buf, 0, 0, status);
if (getValue(status, 'i32') === 0 && ret) {
return Pointer_stringify(ret);
}
// otherwise, libcxxabi failed, we can try ours which may return a partial result
} catch(e) {
// failure when using libcxxabi, we can try ours which may return a partial result
return func;
} finally {
if (buf) _free(buf);
if (status) _free(status);
if (ret) _free(ret);
}
}
Runtime.warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');
return func;
}
function demangleAll(text) {
return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') });
}
function jsStackTrace() {
var err = new Error();
if (!err.stack) {
// IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
// so try that as a special-case.
try {
throw new Error(0);
} catch(e) {
err = e;
}
if (!err.stack) {
return '(no stack trace available)';
}
}
return err.stack.toString();
}
function stackTrace() {
return demangleAll(jsStackTrace());
}
Module["stackTrace"] = stackTrace;
// Memory management
var PAGE_SIZE = 4096;
function alignMemoryPage(x) {
if (x % 4096 > 0) {
x += (4096 - (x % 4096));
}
return x;
}
var HEAP;
var buffer;
var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
function updateGlobalBuffer(buf) {
Module['buffer'] = buffer = buf;
}
function updateGlobalBufferViews() {
Module['HEAP8'] = HEAP8 = new Int8Array(buffer);
Module['HEAP16'] = HEAP16 = new Int16Array(buffer);
Module['HEAP32'] = HEAP32 = new Int32Array(buffer);
Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);
Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);
Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);
Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);
Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);
}
var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode.
function writeStackCookie() {
assert((STACK_MAX & 3) == 0);
HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467;
HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE;
}
function checkStackCookie() {
if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) {
abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16));
}
}
function abortStackOverflow(allocSize) {
abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - asm.stackSave() + allocSize) + ' bytes available!');
}
function abortOnCannotGrowMemory() {
abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');
}
function enlargeMemory() {
abortOnCannotGrowMemory();
}
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
var totalMemory = 64*1024;
while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
if (totalMemory < 16*1024*1024) {
totalMemory *= 2;
} else {
totalMemory += 16*1024*1024
}
}
if (totalMemory !== TOTAL_MEMORY) {
Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be compliant with the asm.js spec (and given that TOTAL_STACK=' + TOTAL_STACK + ')');
TOTAL_MEMORY = totalMemory;
}
// Initialize the runtime's memory
// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
'JS engine does not provide full typed array support');
// Use a provided buffer, if there is one, or else allocate a new one
if (Module['buffer']) {
buffer = Module['buffer'];
assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength);
} else {
buffer = new ArrayBuffer(TOTAL_MEMORY);
}
updateGlobalBufferViews();
// Endianness check (note: assumes compiler arch was little-endian)
HEAP32[0] = 255;
if (HEAPU8[0] !== 255 || HEAPU8[3] !== 0) throw 'Typed arrays 2 must be run on a little-endian system';
Module['HEAP'] = HEAP;
Module['buffer'] = buffer;
Module['HEAP8'] = HEAP8;
Module['HEAP16'] = HEAP16;
Module['HEAP32'] = HEAP32;
Module['HEAPU8'] = HEAPU8;
Module['HEAPU16'] = HEAPU16;
Module['HEAPU32'] = HEAPU32;
Module['HEAPF32'] = HEAPF32;
Module['HEAPF64'] = HEAPF64;
function callRuntimeCallbacks(callbacks) {
while(callbacks.length > 0) {
var callback = callbacks.shift();
if (typeof callback == 'function') {
callback();
continue;
}
var func = callback.func;
if (typeof func === 'number') {
if (callback.arg === undefined) {
Runtime.dynCall('v', func);
} else {
Runtime.dynCall('vi', func, [callback.arg]);
}
} else {
func(callback.arg === undefined ? null : callback.arg);
}
}
}
var __ATPRERUN__ = []; // functions called before the runtime is initialized
var __ATINIT__ = []; // functions called during startup
var __ATMAIN__ = []; // functions called when main() is to be run
var __ATEXIT__ = []; // functions called during shutdown
var __ATPOSTRUN__ = []; // functions called after the runtime has exited
var runtimeInitialized = false;
var runtimeExited = false;
function preRun() {
// compatibility - merge in anything from Module['preRun'] at this time
if (Module['preRun']) {
if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
while (Module['preRun'].length) {
addOnPreRun(Module['preRun'].shift());
}
}
callRuntimeCallbacks(__ATPRERUN__);
}
function ensureInitRuntime() {
checkStackCookie();
if (runtimeInitialized) return;
runtimeInitialized = true;
callRuntimeCallbacks(__ATINIT__);
}
function preMain() {
checkStackCookie();
callRuntimeCallbacks(__ATMAIN__);
}
function exitRuntime() {
checkStackCookie();
callRuntimeCallbacks(__ATEXIT__);
runtimeExited = true;
}
function postRun() {
checkStackCookie();
// compatibility - merge in anything from Module['postRun'] at this time
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);
}
Module["addOnPreRun"] = addOnPreRun;
function addOnInit(cb) {
__ATINIT__.unshift(cb);
}
Module["addOnInit"] = addOnInit;
function addOnPreMain(cb) {
__ATMAIN__.unshift(cb);
}
Module["addOnPreMain"] = addOnPreMain;
function addOnExit(cb) {
__ATEXIT__.unshift(cb);
}
Module["addOnExit"] = addOnExit;
function addOnPostRun(cb) {
__ATPOSTRUN__.unshift(cb);
}
Module["addOnPostRun"] = addOnPostRun;
// Tools
function intArrayFromString(stringy, dontAddNull, length /* optional */) {
var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;
var u8array = new Array(len);
var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
if (dontAddNull) u8array.length = numBytesWritten;
return u8array;
}
Module["intArrayFromString"] = intArrayFromString;
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('');
}
Module["intArrayToString"] = intArrayToString;
function writeStringToMemory(string, buffer, dontAddNull) {
var array = intArrayFromString(string, dontAddNull);
var i = 0;
while (i < array.length) {
var chr = array[i];
HEAP8[(((buffer)+(i))>>0)]=chr;
i = i + 1;
}
}
Module["writeStringToMemory"] = writeStringToMemory;
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
HEAP8[((buffer++)>>0)]=array[i];
}
}
Module["writeArrayToMemory"] = writeArrayToMemory;
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
}
Module["writeAsciiToMemory"] = writeAsciiToMemory;
function unSign(value, bits, ignore) {
if (value >= 0) {
return value;
}
return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
: Math.pow(2, bits) + value;
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value;
}
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
: Math.pow(2, bits-1);
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
// but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
// TODO: In i64 mode 1, resign the two parts separately and safely
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
var ah = a >>> 16;
var al = a & 0xffff;
var bh = b >>> 16;
var bl = b & 0xffff;
return (al*bl + ((ah*bl + al*bh) << 16))|0;
};
Math.imul = Math['imul'];
if (!Math['clz32']) Math['clz32'] = function(x) {
x = x >>> 0;
for (var i = 0; i < 32; i++) {
if (x & (1 << (31 - i))) return i;
}
return 32;
};
Math.clz32 = Math['clz32']
if (!Math['trunc']) Math['trunc'] = function(x) {
return x < 0 ? Math.ceil(x) : Math.floor(x);
};
Math.trunc = Math['trunc'];
var Math_abs = Math.abs;
var Math_cos = Math.cos;
var Math_sin = Math.sin;
var Math_tan = Math.tan;
var Math_acos = Math.acos;
var Math_asin = Math.asin;
var Math_atan = Math.atan;
var Math_atan2 = Math.atan2;
var Math_exp = Math.exp;
var Math_log = Math.log;
var Math_sqrt = Math.sqrt;
var Math_ceil = Math.ceil;
var Math_floor = Math.floor;
var Math_pow = Math.pow;
var Math_imul = Math.imul;
var Math_fround = Math.fround;
var Math_min = Math.min;
var Math_clz32 = Math.clz32;
var Math_trunc = Math.trunc;
// 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
// PRE_RUN_ADDITIONS (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();
}
return id;
}
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(function() {
if (ABORT) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
return;
}
var shown = false;
for (var dep in runDependencyTracking) {
if (!shown) {
shown = true;
Module.printErr('still waiting on run dependencies:');
}
Module.printErr('dependency: ' + dep);
}
if (shown) {
Module.printErr('(end of list)');
}
}, 10000);
}
} else {
Module.printErr('warning: run dependency added without ID');
}
}
Module["addRunDependency"] = addRunDependency;
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(runDependencyTracking[id]);
delete runDependencyTracking[id];
} else {
Module.printErr('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
}
}
}
Module["removeRunDependency"] = removeRunDependency;
Module["preloadedImages"] = {}; // maps url to image data
Module["preloadedAudios"] = {}; // maps url to audio data
var memoryInitializer = null;
var /* show errors on likely calls to FS when it was not included */ 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 -s FORCE_FILESYSTEM=1');
},
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() },
loadFilesFromDB: function() { FS.error() },
ErrnoError: function ErrnoError() { FS.error() },
};
Module['FS_createDataFile'] = FS.createDataFile;
Module['FS_createPreloadedFile'] = FS.createPreloadedFile;
// === Body ===
var ASM_CONSTS = [];
STATIC_BASE = 8;
STATICTOP = STATIC_BASE + 6656;
/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_sectest_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } });
/* memory initializer */ allocate([212,2,0,0,10,4,0,0,0,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,76,2,0,0,73,4,0,0,212,2,0,0,123,4,0,0,0,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,212,2,0,0,219,4,0,0,0,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,76,2,0,0,39,5,0,0,76,2,0,0,104,5,0,0,76,2,0,0,172,5,0,0,76,2,0,0,242,5,0,0,76,2,0,0,48,6,0,0,76,2,0,0,119,6,0,0,76,2,0,0,179,6,0,0,76,2,0,0,248,6,0,0,76,2,0,0,53,7,0,0,76,2,0,0,123,7,0,0,76,2,0,0,128,8,0,0,76,2,0,0,191,8,0,0,76,2,0,0,3,9,0,0,116,2,0,0,239,18,0,0,224,0,0,0,0,0,0,0,116,2,0,0,156,18,0,0,192,0,0,0,0,0,0,0,116,2,0,0,193,18,0,0,240,0,0,0,0,0,0,0,76,2,0,0,226,18,0,0,116,2,0,0,53,19,0,0,224,0,0,0,0,0,0,0,116,2,0,0,17,19,0,0,248,0,0,0,0,0,0,0,116,2,0,0,87,19,0,0,224,0,0,0,0,0,0,0,156,2,0,0,127,19,0,0,156,2,0,0,129,19,0,0,156,2,0,0,132,19,0,0,156,2,0,0,134,19,0,0,184,2,0,0,136,19,0,0,0,0,0,0,64,1,0,0,156,2,0,0,139,19,0,0,156,2,0,0,141,19,0,0,156,2,0,0,143,19,0,0,156,2,0,0,145,19,0,0,156,2,0,0,147,19,0,0,156,2,0,0,149,19,0,0,156,2,0,0,151,19,0,0,156,2,0,0,153,19,0,0,156,2,0,0,155,19,0,0,156,2,0,0,157,19,0,0,116,2,0,0,159,19,0,0,192,0,0,0,0,0,0,0,40,1,0,0,120,1,0,0,120,1,0,0,120,1,0,0,72,1,0,0,72,1,0,0,212,1,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,242,21,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,208,0,0,0,4,0,0,0,12,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,24,1,0,0,4,0,0,0,16,0,0,0,6,0,0,0,7,0,0,0,17,0,0,0,0,0,0,0,8,1,0,0,4,0,0,0,18,0,0,0,6,0,0,0,7,0,0,0,19,0,0,0,0,0,0,0,168,1,0,0,4,0,0,0,20,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,67,97,108,108,105,110,103,32,97,106,97,120,58,32,37,115,32,37,115,10,0,76,111,103,103,105,110,103,32,105,110,32,117,115,101,114,32,40,49,41,58,32,37,115,32,45,45,32,37,115,10,0,76,111,103,103,105,110,103,32,105,110,32,117,115,101,114,32,40,50,41,58,32,37,115,32,45,45,32,37,115,10,0,84,104,105,115,32,105,115,32,97,32,116,111,112,32,115,101,99,114,101,116,32,116,111,107,101,110,44,32,104,111,112,101,32,110,111,45,111,110,101,32,103,101,116,115,32,105,116,0,115,107,101,116,99,104,121,0,115,101,110,100,95,97,106,97,120,95,114,101,113,117,101,115,116,0,118,105,105,105,0,105,105,105,105,0,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,115,116,100,58,58,115,116,114,105,110,103,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,115,116,100,58,58,119,115,116,114,105,110,103,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,68,110,0,98,0,99,0,80,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
/* no memory initializer */
var tempDoublePtr = STATICTOP; STATICTOP += 16;
assert(tempDoublePtr % 8 == 0);
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
}
function copyTempDouble(ptr) {
HEAP8[tempDoublePtr] = HEAP8[ptr];
HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
}
// {{PRE_LIBRARY}}
Module["_i64Subtract"] = _i64Subtract;
Module["_i64Add"] = _i64Add;
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;
}
var awaitingDependencies={};
var registeredTypes={};
var typeDependencies={};
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;
} else {
return name;
}
}function createNamedFunction(name, body) {
name = makeLegalFunctionName(name);
/*jshint evil:true*/
return new Function(
"body",
"return function " + name + "() {\n" +
" \"use strict\";" +
" return body.apply(this, arguments);\n" +
"};\n"
)(body);
}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);
}
var InternalError=undefined;function throwInternalError(message) {
throw new InternalError(message);
}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(function(dt, i) {
if (registeredTypes.hasOwnProperty(dt)) {
typeConverters[i] = registeredTypes[dt];
} else {
unregisteredTypes.push(dt);
if (!awaitingDependencies.hasOwnProperty(dt)) {
awaitingDependencies[dt] = [];
}
awaitingDependencies[dt].push(function() {
typeConverters[i] = registeredTypes[dt];
++registered;
if (registered === unregisteredTypes.length) {
onComplete(typeConverters);
}
});
}
});
if (0 === unregisteredTypes.length) {
onComplete(typeConverters);
}
}function registerType(rawType, registeredInstance, options) {
options = 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(function(cb) {
cb();
});
}
}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 _embind_repr(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 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);
}
}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) {
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
// avoid the following if() and assume value is of proper type.
if (typeof value !== "number" && typeof value !== "boolean") {
throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
}
return value;
},
'argPackAdvance': 8,
'readValueFromPointer': floatReadValueFromPointer(name, shift),
destructorFunction: null, // This type does not need a destructor
});
}
Module["_memset"] = _memset;
function _pthread_cleanup_push(routine, arg) {
__ATEXIT__.push(function() { Runtime.dynCall('vi', routine, [arg]) })
_pthread_cleanup_push.level = __ATEXIT__.length;
}
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
});
}
Module["_bitshift64Shl"] = _bitshift64Shl;
function _pthread_cleanup_pop() {
assert(_pthread_cleanup_push.level == __ATEXIT__.length, 'cannot pop if something else added meanwhile!');
__ATEXIT__.pop();
_pthread_cleanup_push.level = __ATEXIT__.length;
}
function _abort() {
Module['abort']();
}
function _free() {
}
Module["_free"] = _free;
function _malloc(bytes) {
/* Over-allocate to make sure it is byte-aligned by 8.
* This will leak memory, but this is only the dummy
* implementation (replaced by dlmalloc normally) so
* not an issue.
*/
var ptr = Runtime.dynamicAlloc(bytes + 8);
return (ptr+8) & 0xFFFFFFF8;
}
Module["_malloc"] = _malloc;
function simpleReadValueFromPointer(pointer) {
return this['fromWireType'](HEAPU32[pointer >> 2]);
}function __embind_register_std_string(rawType, name) {
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(value) {
var length = HEAPU32[value >> 2];
var a = new Array(length);
for (var i = 0; i < length; ++i) {
a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);
}
_free(value);
return a.join('');
},
'toWireType': function(destructors, value) {
if (value instanceof ArrayBuffer) {
value = new Uint8Array(value);
}
function getTAElement(ta, index) {
return ta[index];
}
function getStringElement(string, index) {
return string.charCodeAt(index);
}
var getElement;
if (value instanceof Uint8Array) {
getElement = getTAElement;
} else if (value instanceof Int8Array) {
getElement = getTAElement;
} else if (typeof value === 'string') {
getElement = getStringElement;
} else {
throwBindingError('Cannot pass non-string to std::string');
}
// assumes 4-byte alignment
var length = value.length;
var ptr = _malloc(4 + length);
HEAPU32[ptr >> 2] = length;
for (var i = 0; i < length; ++i) {
var charCode = getElement(value, i);
if (charCode > 255) {
_free(ptr);
throwBindingError('String has UTF-16 code units that do not fit in 8 bits');
}
HEAPU8[ptr + 4 + i] = charCode;
}
if (destructors !== null) {
destructors.push(_free, ptr);
}
return ptr;
},
'argPackAdvance': 8,
'readValueFromPointer': simpleReadValueFromPointer,
destructorFunction: function(ptr) { _free(ptr); },
});
}
function __embind_register_std_wstring(rawType, charSize, name) {
// nb. do not cache HEAPU16 and HEAPU32, they may be destroyed by enlargeMemory().
name = readLatin1String(name);
var getHeap, shift;
if (charSize === 2) {
getHeap = function() { return HEAPU16; };
shift = 1;
} else if (charSize === 4) {
getHeap = function() { return HEAPU32; };
shift = 2;
}
registerType(rawType, {
name: name,
'fromWireType': function(value) {
var HEAP = getHeap();
var length = HEAPU32[value >> 2];
var a = new Array(length);
var start = (value + 4) >> shift;
for (var i = 0; i < length; ++i) {
a[i] = String.fromCharCode(HEAP[start + i]);
}
_free(value);
return a.join('');
},
'toWireType': function(destructors, value) {
// assumes 4-byte alignment
var HEAP = getHeap();
var length = value.length;
var ptr = _malloc(4 + length * charSize);
HEAPU32[ptr >> 2] = length;
var start = (ptr + 4) >> shift;
for (var i = 0; i < length; ++i) {
HEAP[start + i] = value.charCodeAt(i);
}
if (destructors !== null) {
destructors.push(_free, ptr);
}
return ptr;
},
'argPackAdvance': 8,
'readValueFromPointer': simpleReadValueFromPointer,
destructorFunction: function(ptr) { _free(ptr); },
});
}
function new_(constructor, argumentList) {
if (!(constructor instanceof Function)) {
throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function");
}
/*
* Previously, the following line was just:
function dummy() {};
* Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the
* correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which
* isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way
* to write a test for this behavior. -NRD 2013.02.22
*/
var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){});
dummy.prototype = constructor.prototype;
var obj = new dummy;
var r = constructor.apply(obj, argumentList);
return (r instanceof Object) ? r : obj;
}
function runDestructors(destructors) {
while (destructors.length) {
var ptr = destructors.pop();
var del = destructors.pop();
del(ptr);
}
}function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {
// 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.
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);
// 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];
// }
var argsList = "";
var argsListWired = "";
for(var i = 0; i < argCount - 2; ++i) {
argsList += (i!==0?", ":"")+"arg"+i;
argsListWired += (i!==0?", ":"")+"arg"+i+"Wired";
}
var invokerFnBody =
"return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" +
"if (arguments.length !== "+(argCount - 2)+") {\n" +
"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" +
"}\n";
// 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;
}
}
if (needsDestructorStack) {
invokerFnBody +=
"var destructors = [];\n";
}
var dtorStack = needsDestructorStack ? "destructors" : "null";
var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
if (isClassMethodFunc) {
invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n";
}
for(var i = 0; i < argCount - 2; ++i) {
invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";
args1.push("argType"+i);
args2.push(argTypes[i+2]);
}
if (isClassMethodFunc) {
argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
}
var returns = (argTypes[0].name !== "void");
invokerFnBody +=
(returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";
if (needsDestructorStack) {
invokerFnBody += "runDestructors(destructors);\n";
} else {
for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method.
var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired"));
if (argTypes[i].destructorFunction !== null) {
invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";
args1.push(paramName+"_dtor");
args2.push(argTypes[i].destructorFunction);
}
}
}
if (returns) {
invokerFnBody += "var ret = retType.fromWireType(rv);\n" +
"return ret;\n";
} else {
}
invokerFnBody += "}\n";
args1.push(invokerFnBody);
var invokerFunction = new_(Function, args1).apply(null, args2);
return invokerFunction;
}
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;
}
}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;
}
}
}
function heap32VectorToArray(count, firstElement) {
var array = [];
for (var i = 0; i < count; i++) {
array.push(HEAP32[(firstElement >> 2) + i]);
}
return array;
}
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;
}
}
function requireFunction(signature, rawFunction) {
signature = readLatin1String(signature);
function makeDynCaller(dynCall) {
var args = [];
for (var i = 1; i < signature.length; ++i) {
args.push('a' + i);
}
var name = 'dynCall_' + signature + '_' + rawFunction;
var body = 'return function ' + name + '(' + args.join(', ') + ') {\n';
body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n';
body += '};\n';
return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction);
}
var fp;
if (Module['FUNCTION_TABLE_' + signature] !== undefined) {
fp = Module['FUNCTION_TABLE_' + signature][rawFunction];
} else if (typeof FUNCTION_TABLE !== "undefined") {
fp = FUNCTION_TABLE[rawFunction];
} else {
// asm.js does not give direct access to the function tables,
// and thus we must go through the dynCall interface which allows
// calling into a signature's function table by pointer value.
//
// https://github.com/dherman/asm.js/issues/83
//
// This has three main penalties:
// - dynCall is another function call in the path from JavaScript to C++.
// - JITs may not predict through the function table indirection at runtime.
var dc = asm['dynCall_' + signature];
if (dc === undefined) {
// We will always enter this branch if the signature
// contains 'f' and PRECISE_F32 is not enabled.
//
// Try again, replacing 'f' with 'd'.
dc = asm['dynCall_' + signature.replace(/f/g, 'd')];
if (dc === undefined) {
throwBindingError("No dynCall invoker for signature: " + signature);
}
}
fp = makeDynCaller(dc);
}
if (typeof fp !== "function") {
throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
}
return fp;
}
var UnboundTypeError=undefined;
function getTypeName(type) {
var ptr = ___getTypeName(type);
var rv = readLatin1String(ptr);
_free(ptr);
return rv;
}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_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {
var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
name = readLatin1String(name);
rawInvoker = 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 */);
if (typeof(Tableau_registerFunction) !== 'undefined') {
Tableau_registerFunction(name, /*Return Type*/ argTypes[0].name, /*Arguments*/ argTypes.slice(1));
}
replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn), argCount - 1);
return [];
});
}
Module["_bitshift64Lshr"] = _bitshift64Lshr;
function _emscripten_memcpy_big(dest, src, num) {
HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
return dest;
}
Module["_memcpy"] = _memcpy;
var SYSCALLS={varargs:0,get:function (varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function () {
var ret = Pointer_stringify(SYSCALLS.get());
return ret;
},get64:function () {
var low = SYSCALLS.get(), high = SYSCALLS.get();
if (low >= 0) assert(high === 0);
else assert(high === -1);
return low;
},getZero:function () {
assert(SYSCALLS.get() === 0);
}};function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;
try {
// close
var stream = SYSCALLS.getStreamFromFD();
FS.close(stream);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _sbrk(bytes) {
// Implement a Linux-like 'memory area' for our 'process'.
// Changes the size of the memory area by |bytes|; returns the
// address of the previous top ('break') of the memory area
// We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
var self = _sbrk;
if (!self.called) {
DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
self.called = true;
assert(Runtime.dynamicAlloc);
self.alloc = Runtime.dynamicAlloc;
Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
}
var ret = DYNAMICTOP;
if (bytes != 0) {
var success = self.alloc(bytes);
if (!success) return -1 >>> 0; // sbrk failure code
}
return ret; // Previous break location.
}
function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()
return !!__ZSt18uncaught_exceptionv.uncaught_exception;
}
var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) {
if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted;
for (var ptr in EXCEPTIONS.infos) {
var info = EXCEPTIONS.infos[ptr];
if (info.adjusted === adjusted) {
return ptr;
}
}
return adjusted;
},addRef:function (ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
info.refcount++;
},decRef:function (ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
assert(info.refcount > 0);
info.refcount--;
if (info.refcount === 0) {
if (info.destructor) {
Runtime.dynCall('vi', info.destructor, [ptr]);
}
delete EXCEPTIONS.infos[ptr];
___cxa_free_exception(ptr);
}
},clearRef:function (ptr) {
if (!ptr) return;
var info = EXCEPTIONS.infos[ptr];
info.refcount = 0;
}};
function ___resumeException(ptr) {
if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; }
EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); // exception refcount should be cleared, but don't free it
throw ptr;
}function ___cxa_find_matching_catch() {
var thrown = EXCEPTIONS.last;
if (!thrown) {
// just pass through the null ptr
return ((asm["setTempRet0"](0),0)|0);
}
var info = EXCEPTIONS.infos[thrown];
var throwntype = info.type;
if (!throwntype) {
// just pass through the thrown ptr
return ((asm["setTempRet0"](0),thrown)|0);
}
var typeArray = Array.prototype.slice.call(arguments);
var pointer = Module['___cxa_is_pointer_type'](throwntype);
// can_catch receives a **, add indirection
if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4);
HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown;
thrown = ___cxa_find_matching_catch.buffer;
// The different catch blocks are denoted by different types.
// Due to inheritance, those types may not precisely match the
// type of the thrown object. Find one which matches, and
// return the type of the catch block which should be called.
for (var i = 0; i < typeArray.length; i++) {
if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) {
thrown = HEAP32[((thrown)>>2)]; // undo indirection
info.adjusted = thrown;
return ((asm["setTempRet0"](typeArray[i]),thrown)|0);
}
}
// Shouldn't happen unless we have bogus data in typeArray
// or encounter a type for which emscripten doesn't have suitable
// typeinfo defined. Best-efforts match just in case.
thrown = HEAP32[((thrown)>>2)]; // undo indirection
return ((asm["setTempRet0"](throwntype),thrown)|0);
}function ___gxx_personality_v0() {
}
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);
if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32.
maxRange = 4294967295;
}
var shift = getShiftFromSize(size);
var fromWireType = function(value) {
return value;
};
if (minRange === 0) {
var bitshift = 32 - 8*size;
fromWireType = function(value) {
return (value << bitshift) >>> bitshift;
};
}
registerType(primitiveType, {
name: name,
'fromWireType': fromWireType,
'toWireType': function(destructors, value) {
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
// avoid the following two if()s and assume value is of proper type.
if (typeof value !== "number" && typeof value !== "boolean") {
throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
}
if (value < minRange || value > maxRange) {
throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!');
}
return value | 0;
},
'argPackAdvance': 8,
'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0),
destructorFunction: null, // This type does not need a destructor
});
}
var emval_free_list=[];
var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) {
if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
emval_handle_array[handle] = undefined;
emval_free_list.push(handle);
}
}
function count_emval_handles() {
var count = 0;
for (var i = 5; i < emval_handle_array.length; ++i) {
if (emval_handle_array[i] !== undefined) {
++count;
}
}
return count;
}
function get_first_emval() {
for (var i = 5; i < emval_handle_array.length; ++i) {
if (emval_handle_array[i] !== undefined) {
return emval_handle_array[i];
}
}
return null;
}function init_emval() {
Module['count_emval_handles'] = count_emval_handles;
Module['get_first_emval'] = get_first_emval;
}function __emval_register(value) {
switch(value){
case undefined :{ return 1; }
case null :{ return 2; }
case true :{ return 3; }
case false :{ return 4; }
default:{
var handle = emval_free_list.length ?
emval_free_list.pop() :
emval_handle_array.length;
emval_handle_array[handle] = {refcount: 1, value: value};
return handle;
}
}
}function __embind_register_emval(rawType, name) {
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(handle) {
var rv = emval_handle_array[handle].value;
__emval_decref(handle);
return rv;
},
'toWireType': function(destructors, value) {
return __emval_register(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 __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,
});
}
Module["_pthread_self"] = _pthread_self;
function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;
try {
// llseek
var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get();
var offset = offset_low;
assert(offset_high === 0);
FS.llseek(stream, offset, whence);
HEAP32[((result)>>2)]=stream.position;
if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;
try {
// writev
// hack to support printf in NO_FILESYSTEM
var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
var ret = 0;
if (!___syscall146.buffer) {
___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr
___syscall146.printChar = function(stream, curr) {
var buffer = ___syscall146.buffers[stream];
assert(buffer);
if (curr === 0 || curr === 10) {
(stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0));
buffer.length = 0;
} else {
buffer.push(curr);
}
};
}
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
for (var j = 0; j < len; j++) {
___syscall146.printChar(stream, HEAPU8[ptr+j]);
}
ret += len;
}
return ret;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
embind_init_charCodes();
BindingError = Module['BindingError'] = extendError(Error, 'BindingError');;
InternalError = Module['InternalError'] = extendError(Error, 'InternalError');;
UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');;
init_emval();;
/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });;
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
staticSealed = true; // seal the static portion of memory
STACK_MAX = STACK_BASE + TOTAL_STACK;
DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC);
function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function invoke_iiii(index,a1,a2,a3) {
try {
return Module["dynCall_iiii"](index,a1,a2,a3);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiiii(index,a1,a2,a3,a4,a5) {
try {
Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_vi(index,a1) {
try {
Module["dynCall_vi"](index,a1);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_vii(index,a1,a2) {
try {
Module["dynCall_vii"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_ii(index,a1) {
try {
return Module["dynCall_ii"](index,a1);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viii(index,a1,a2,a3) {
try {
Module["dynCall_viii"](index,a1,a2,a3);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
try {
Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_iii(index,a1,a2) {
try {
return Module["dynCall_iii"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_viiii(index,a1,a2,a3,a4) {
try {
Module["dynCall_viiii"](index,a1,a2,a3,a4);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity };
Module.asmLibraryArg = { "abort": abort, "assert": assert, "abortStackOverflow": abortStackOverflow, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viii": nullFunc_viii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_viiii": nullFunc_viiii, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viii": invoke_viii, "invoke_viiiiii": invoke_viiiiii, "invoke_iii": invoke_iii, "invoke_viiii": invoke_viiii, "_pthread_cleanup_pop": _pthread_cleanup_pop, "floatReadValueFromPointer": floatReadValueFromPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "integerReadValueFromPointer": integerReadValueFromPointer, "__embind_register_integer": __embind_register_integer, "throwInternalError": throwInternalError, "get_first_emval": get_first_emval, "_abort": _abort, "throwBindingError": throwBindingError, "___gxx_personality_v0": ___gxx_personality_v0, "extendError": extendError, "__embind_register_void": __embind_register_void, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "getShiftFromSize": getShiftFromSize, "__embind_register_function": __embind_register_function, "embind_init_charCodes": embind_init_charCodes, "__emval_register": __emval_register, "_sbrk": _sbrk, "__embind_register_std_wstring": __embind_register_std_wstring, "_emscripten_memcpy_big": _emscripten_memcpy_big, "__embind_register_bool": __embind_register_bool, "___resumeException": ___resumeException, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "_embind_repr": _embind_repr, "__embind_register_std_string": __embind_register_std_string, "createNamedFunction": createNamedFunction, "__embind_register_emval": __embind_register_emval, "readLatin1String": readLatin1String, "__embind_register_memory_view": __embind_register_memory_view, "throwUnboundTypeError": throwUnboundTypeError, "craftInvokerFunction": craftInvokerFunction, "__emval_decref": __emval_decref, "__embind_register_float": __embind_register_float, "makeLegalFunctionName": makeLegalFunctionName, "___syscall54": ___syscall54, "heap32VectorToArray": heap32VectorToArray, "init_emval": init_emval, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "new_": new_, "registerType": registerType, "___syscall6": ___syscall6, "_pthread_cleanup_push": _pthread_cleanup_push, "ensureOverloadTable": ensureOverloadTable, "count_emval_handles": count_emval_handles, "requireFunction": requireFunction, "runDestructors": runDestructors, "getTypeName": getTypeName, "___syscall140": ___syscall140, "exposePublicSymbol": exposePublicSymbol, "replacePublicSymbol": replacePublicSymbol, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8 };
// EMSCRIPTEN_START_ASM
var asm = (function(global, env, buffer) {
'almost asm';
var HEAP8 = new global.Int8Array(buffer);
var HEAP16 = new global.Int16Array(buffer);
var HEAP32 = new global.Int32Array(buffer);
var HEAPU8 = new global.Uint8Array(buffer);
var HEAPU16 = new global.Uint16Array(buffer);
var HEAPU32 = new global.Uint32Array(buffer);
var HEAPF32 = new global.Float32Array(buffer);
var HEAPF64 = new global.Float64Array(buffer);
var STACKTOP=env.STACKTOP|0;
var STACK_MAX=env.STACK_MAX|0;
var tempDoublePtr=env.tempDoublePtr|0;
var ABORT=env.ABORT|0;
var cttz_i8=env.cttz_i8|0;
var __THREW__ = 0;
var threwValue = 0;
var setjmpId = 0;
var undef = 0;
var nan = global.NaN, inf = global.Infinity;
var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
var tempRet0 = 0;
var tempRet1 = 0;
var tempRet2 = 0;
var tempRet3 = 0;
var tempRet4 = 0;
var tempRet5 = 0;
var tempRet6 = 0;
var tempRet7 = 0;
var tempRet8 = 0;
var tempRet9 = 0;
var Math_floor=global.Math.floor;
var Math_abs=global.Math.abs;
var Math_sqrt=global.Math.sqrt;
var Math_pow=global.Math.pow;
var Math_cos=global.Math.cos;
var Math_sin=global.Math.sin;
var Math_tan=global.Math.tan;
var Math_acos=global.Math.acos;
var Math_asin=global.Math.asin;
var Math_atan=global.Math.atan;
var Math_atan2=global.Math.atan2;
var Math_exp=global.Math.exp;
var Math_log=global.Math.log;
var Math_ceil=global.Math.ceil;
var Math_imul=global.Math.imul;
var Math_min=global.Math.min;
var Math_clz32=global.Math.clz32;
var abort=env.abort;
var assert=env.assert;
var abortStackOverflow=env.abortStackOverflow;
var nullFunc_iiii=env.nullFunc_iiii;
var nullFunc_viiiii=env.nullFunc_viiiii;
var nullFunc_vi=env.nullFunc_vi;
var nullFunc_vii=env.nullFunc_vii;
var nullFunc_ii=env.nullFunc_ii;
var nullFunc_viii=env.nullFunc_viii;
var nullFunc_viiiiii=env.nullFunc_viiiiii;
var nullFunc_iii=env.nullFunc_iii;
var nullFunc_viiii=env.nullFunc_viiii;
var invoke_iiii=env.invoke_iiii;
var invoke_viiiii=env.invoke_viiiii;
var invoke_vi=env.invoke_vi;
var invoke_vii=env.invoke_vii;
var invoke_ii=env.invoke_ii;
var invoke_viii=env.invoke_viii;
var invoke_viiiiii=env.invoke_viiiiii;
var invoke_iii=env.invoke_iii;
var invoke_viiii=env.invoke_viiii;
var _pthread_cleanup_pop=env._pthread_cleanup_pop;
var floatReadValueFromPointer=env.floatReadValueFromPointer;
var simpleReadValueFromPointer=env.simpleReadValueFromPointer;
var integerReadValueFromPointer=env.integerReadValueFromPointer;
var __embind_register_integer=env.__embind_register_integer;
var throwInternalError=env.throwInternalError;
var get_first_emval=env.get_first_emval;
var _abort=env._abort;
var throwBindingError=env.throwBindingError;
var ___gxx_personality_v0=env.___gxx_personality_v0;
var extendError=env.extendError;
var __embind_register_void=env.__embind_register_void;
var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv;
var getShiftFromSize=env.getShiftFromSize;
var __embind_register_function=env.__embind_register_function;
var embind_init_charCodes=env.embind_init_charCodes;
var __emval_register=env.__emval_register;
var _sbrk=env._sbrk;
var __embind_register_std_wstring=env.__embind_register_std_wstring;
var _emscripten_memcpy_big=env._emscripten_memcpy_big;
var __embind_register_bool=env.__embind_register_bool;
var ___resumeException=env.___resumeException;
var ___cxa_find_matching_catch=env.___cxa_find_matching_catch;
var _embind_repr=env._embind_repr;
var __embind_register_std_string=env.__embind_register_std_string;
var createNamedFunction=env.createNamedFunction;
var __embind_register_emval=env.__embind_register_emval;
var readLatin1String=env.readLatin1String;
var __embind_register_memory_view=env.__embind_register_memory_view;
var throwUnboundTypeError=env.throwUnboundTypeError;
var craftInvokerFunction=env.craftInvokerFunction;
var __emval_decref=env.__emval_decref;
var __embind_register_float=env.__embind_register_float;
var makeLegalFunctionName=env.makeLegalFunctionName;
var ___syscall54=env.___syscall54;
var heap32VectorToArray=env.heap32VectorToArray;
var init_emval=env.init_emval;
var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved;
var new_=env.new_;
var registerType=env.registerType;
var ___syscall6=env.___syscall6;
var _pthread_cleanup_push=env._pthread_cleanup_push;
var ensureOverloadTable=env.ensureOverloadTable;
var count_emval_handles=env.count_emval_handles;
var requireFunction=env.requireFunction;
var runDestructors=env.runDestructors;
var getTypeName=env.getTypeName;
var ___syscall140=env.___syscall140;
var exposePublicSymbol=env.exposePublicSymbol;
var replacePublicSymbol=env.replacePublicSymbol;
var ___syscall146=env.___syscall146;
var tempFloat = 0.0;
// EMSCRIPTEN_START_FUNCS
function stackAlloc(size) {
size = size|0;
var ret = 0;
ret = STACKTOP;
STACKTOP = (STACKTOP + size)|0;
STACKTOP = (STACKTOP + 15)&-16;
if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0);
return ret|0;
}
function stackSave() {
return STACKTOP|0;
}
function stackRestore(top) {
top = top|0;
STACKTOP = top;
}
function establishStackSpace(stackBase, stackMax) {
stackBase = stackBase|0;
stackMax = stackMax|0;
STACKTOP = stackBase;
STACK_MAX = stackMax;
}
function setThrew(threw, value) {
threw = threw|0;
value = value|0;
if ((__THREW__|0) == 0) {
__THREW__ = threw;
threwValue = value;
}
}
function copyTempFloat(ptr) {
ptr = ptr|0;
HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0];
HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0];
HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0];
HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0];
}
function copyTempDouble(ptr) {
ptr = ptr|0;
HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0];
HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0];
HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0];
HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0];
HEAP8[tempDoublePtr+4>>0] = HEAP8[ptr+4>>0];
HEAP8[tempDoublePtr+5>>0] = HEAP8[ptr+5>>0];
HEAP8[tempDoublePtr+6>>0] = HEAP8[ptr+6>>0];
HEAP8[tempDoublePtr+7>>0] = HEAP8[ptr+7>>0];
}
function setTempRet0(value) {
value = value|0;
tempRet0 = value;
}
function getTempRet0() {
return tempRet0|0;
}
function __Z17send_ajax_requestPcS_($url,$message) {
$url = $url|0;
$message = $message|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $url;
$1 = $message;
$2 = $0;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
(_printf(756,$vararg_buffer)|0);
STACKTOP = sp;return 0;
}
function __Z14login_handler1PcS_($username,$pwd) {
$username = $username|0;
$pwd = $pwd|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $username;
$1 = $pwd;
$2 = $0;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
(_printf(777,$vararg_buffer)|0);
STACKTOP = sp;return 0;
}
function __Z14login_handler2PcS_($username,$pwd) {
$username = $username|0;
$pwd = $pwd|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = $username;
$1 = $pwd;
$2 = $0;
$3 = $1;
HEAP32[$vararg_buffer>>2] = $2;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $3;
(_printf(808,$vararg_buffer)|0);
STACKTOP = sp;return 0;
}
function __Z11run_handlerR14sketchy_struct($ss) {
$ss = $ss|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $ss;
$1 = $0;
$2 = ((($1)) + 40|0);
$3 = HEAP32[$2>>2]|0;
$4 = $0;
$5 = $0;
$6 = ((($5)) + 20|0);
(FUNCTION_TABLE_iii[$3 & 31]($4,$6)|0);
STACKTOP = sp;return;
}
function __Z7sketchyii($fbuffer,$login_handler) {
$fbuffer = $fbuffer|0;
$login_handler = $login_handler|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
var $buffer = 0, $ss = 0, $topsecret = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ss = sp;
$topsecret = sp + 56|0;
$0 = $fbuffer;
$1 = $login_handler;
$2 = $0;
$3 = (0 + ($2)|0);
$buffer = $3;
dest=$topsecret; src=839; stop=dest+48|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$4 = $1;
$5 = ($4|0)==(1);
$6 = ((($ss)) + 40|0);
if ($5) {
HEAP32[$6>>2] = 24;
} else {
HEAP32[$6>>2] = 25;
}
$7 = $buffer;
$8 = $buffer;
$9 = (_strlen($8)|0);
_memcpy(($ss|0),($7|0),($9|0))|0;
$10 = ((($ss)) + 20|0);
$11 = $buffer;
$12 = (_strlen($ss)|0);
$13 = (($11) + ($12)|0);
$14 = ((($13)) + 1|0);
$15 = $buffer;
$16 = (_strlen($ss)|0);
$17 = (($15) + ($16)|0);
$18 = ((($17)) + 1|0);
$19 = (_strlen($18)|0);
_memcpy(($10|0),($14|0),($19|0))|0;
__Z11run_handlerR14sketchy_struct($ss);
STACKTOP = sp;return;
}
function ___cxx_global_var_init() {
var label = 0, sp = 0;
sp = STACKTOP;
__ZN38EmscriptenBindingInitializer_my_moduleC2Ev(5608);
return;
}
function __ZN38EmscriptenBindingInitializer_my_moduleC2Ev($this) {
$this = $this|0;
var $$byval_copy = 0, $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$$byval_copy = sp + 5|0;
$1 = sp + 4|0;
$0 = $this;
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(887,26);
;HEAP8[$$byval_copy>>0]=HEAP8[$1>>0]|0;
__ZN10emscripten8functionIiJPcS1_EJNS_18allow_raw_pointersEEEEvPKcPFT_DpT0_EDpT1_(895,27,$$byval_copy);
STACKTOP = sp;return;
}
function __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_($name,$fn) {
$name = $name|0;
$fn = $fn|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $args = 0, $invoker = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$args = sp + 16|0;
$1 = $name;
$2 = $fn;
$invoker = 28;
$3 = $1;
$4 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJviiEE8getCountEv($args)|0);
$5 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJviiEE8getTypesEv($args)|0);
$6 = $invoker;
$0 = $6;
$7 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0);
$8 = $invoker;
$9 = $2;
__embind_register_function(($3|0),($4|0),($5|0),($7|0),($8|0),($9|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8functionIiJPcS1_EJNS_18allow_raw_pointersEEEEvPKcPFT_DpT0_EDpT1_($name,$fn,$0) {
$name = $name|0;
$fn = $fn|0;
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $args = 0, $invoker = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$args = sp + 16|0;
$2 = $name;
$3 = $fn;
$invoker = 29;
$4 = $2;
$5 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJiPcS5_EE8getCountEv($args)|0);
$6 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJiPcS5_EE8getTypesEv($args)|0);
$7 = $invoker;
$1 = $7;
$8 = (__ZN10emscripten8internal19getGenericSignatureIJiiiiEEEPKcv()|0);
$9 = $invoker;
$10 = $3;
__embind_register_function(($4|0),($5|0),($6|0),($8|0),($9|0),($10|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii($fn,$args,$args1) {
$fn = $fn|0;
$args = $args|0;
$args1 = $args1|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $fn;
$1 = $args;
$2 = $args1;
$3 = $0;
$4 = $1;
$5 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($4)|0);
$6 = $2;
$7 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($6)|0);
FUNCTION_TABLE_vii[$3 & 31]($5,$7);
STACKTOP = sp;return;
}
function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJviiEE8getCountEv($this) {
$this = $this|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $this;
STACKTOP = sp;return 3;
}
function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJviiEE8getTypesEv($this) {
$this = $this|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $this;
$1 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviiEEEE3getEv()|0);
STACKTOP = sp;return ($1|0);
}
function __ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($v) {
$v = $v|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $v;
$1 = $0;
STACKTOP = sp;return ($1|0);
}
function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviiEEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (440|0);
}
function __ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (913|0);
}
function __ZN10emscripten8internal7InvokerIiJPcS2_EE6invokeEPFiS2_S2_ES2_S2_($fn,$args,$args1) {
$fn = $fn|0;
$args = $args|0;
$args1 = $args1|0;
var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$3 = sp;
$0 = $fn;
$1 = $args;
$2 = $args1;
$4 = $0;
$5 = $1;
$6 = (__ZN10emscripten8internal11BindingTypeIPcE12fromWireTypeES2_($5)|0);
$7 = $2;
$8 = (__ZN10emscripten8internal11BindingTypeIPcE12fromWireTypeES2_($7)|0);
$9 = (FUNCTION_TABLE_iii[$4 & 31]($6,$8)|0);
HEAP32[$3>>2] = $9;
$10 = (__ZN10emscripten8internal11BindingTypeIiE10toWireTypeERKi($3)|0);
STACKTOP = sp;return ($10|0);
}
function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJiPcS5_EE8getCountEv($this) {
$this = $this|0;
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $this;
STACKTOP = sp;return 3;
}
function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJiPcS5_EE8getTypesEv($this) {
$this = $this|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $this;
$1 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiNS0_17AllowedRawPointerIcEES4_EEEE3getEv()|0);
STACKTOP = sp;return ($1|0);
}
function __ZN10emscripten8internal11BindingTypeIiE10toWireTypeERKi($v) {
$v = $v|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $v;
$1 = $0;
$2 = HEAP32[$1>>2]|0;
STACKTOP = sp;return ($2|0);
}
function __ZN10emscripten8internal11BindingTypeIPcE12fromWireTypeES2_($wt) {
$wt = $wt|0;
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $wt;
$1 = $0;
STACKTOP = sp;return ($1|0);
}
function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiNS0_17AllowedRawPointerIcEES4_EEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (452|0);
}
function __ZN10emscripten8internal19getGenericSignatureIJiiiiEEEPKcv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (918|0);
}
function __GLOBAL__sub_I_sectest_cpp() {
var label = 0, sp = 0;
sp = STACKTOP;
___cxx_global_var_init();
return;
}
function __GLOBAL__sub_I_bind_cpp() {
var label = 0, sp = 0;
sp = STACKTOP;
___cxx_global_var_init_2();
return;
}
function ___cxx_global_var_init_2() {
var label = 0, sp = 0;
sp = STACKTOP;
__ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev(5609);
return;
}
function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($this) {
$this = $this|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $this;
$1 = (__ZN10emscripten8internal6TypeIDIvE3getEv()|0);
__embind_register_void(($1|0),(923|0));
$2 = (__ZN10emscripten8internal6TypeIDIbE3getEv()|0);
__embind_register_bool(($2|0),(928|0),1,1,0);
__ZN12_GLOBAL__N_1L16register_integerIcEEvPKc(933);
__ZN12_GLOBAL__N_1L16register_integerIaEEvPKc(938);
__ZN12_GLOBAL__N_1L16register_integerIhEEvPKc(950);
__ZN12_GLOBAL__N_1L16register_integerIsEEvPKc(964);
__ZN12_GLOBAL__N_1L16register_integerItEEvPKc(970);
__ZN12_GLOBAL__N_1L16register_integerIiEEvPKc(985);
__ZN12_GLOBAL__N_1L16register_integerIjEEvPKc(989);
__ZN12_GLOBAL__N_1L16register_integerIlEEvPKc(1002);
__ZN12_GLOBAL__N_1L16register_integerImEEvPKc(1007);
__ZN12_GLOBAL__N_1L14register_floatIfEEvPKc(1021);
__ZN12_GLOBAL__N_1L14register_floatIdEEvPKc(1027);
$3 = (__ZN10emscripten8internal6TypeIDINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0);
__embind_register_std_string(($3|0),(1135|0));
$4 = (__ZN10emscripten8internal6TypeIDINSt3__112basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0);
__embind_register_std_string(($4|0),(1210|0));
$5 = (__ZN10emscripten8internal6TypeIDINSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0);
__embind_register_std_wstring(($5|0),4,(1306|0));
$6 = (__ZN10emscripten8internal6TypeIDINS_3valEE3getEv()|0);
__embind_register_emval(($6|0),(1338|0));
__ZN12_GLOBAL__N_1L20register_memory_viewIcEEvPKc(1354);
__ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(1415);
__ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(1483);
__ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(1553);
__ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(1615);
__ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(1686);
__ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(1746);
__ZN12_GLOBAL__N_1L20register_memory_viewIlEEvPKc(1815);
__ZN12_GLOBAL__N_1L20register_memory_viewImEEvPKc(1876);
__ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(1946);
__ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(1978);
__ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(2011);
__ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(2044);
__ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(2078);
__ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(2111);
__ZN12_GLOBAL__N_1L20register_memory_viewIfEEvPKc(2145);
__ZN12_GLOBAL__N_1L20register_memory_viewIdEEvPKc(2207);
__ZN12_GLOBAL__N_1L20register_memory_viewIeEEvPKc(2270);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIvE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIvE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIvE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (296|0);
}
function __ZN10emscripten8internal6TypeIDIbE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIbE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIbE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (312|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIcEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIcE3getEv()|0);
$2 = $0;
$3 = -128 << 24 >> 24;
$4 = 127 << 24 >> 24;
__embind_register_integer(($1|0),($2|0),1,($3|0),($4|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIcE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIcE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIcE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (320|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIaEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIaE3getEv()|0);
$2 = $0;
$3 = -128 << 24 >> 24;
$4 = 127 << 24 >> 24;
__embind_register_integer(($1|0),($2|0),1,($3|0),($4|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIaE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIaE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIaE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (352|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIhEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIhE3getEv()|0);
$2 = $0;
$3 = 0;
$4 = 255;
__embind_register_integer(($1|0),($2|0),1,($3|0),($4|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIhE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIhE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIhE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (344|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIsEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIsE3getEv()|0);
$2 = $0;
$3 = -32768 << 16 >> 16;
$4 = 32767 << 16 >> 16;
__embind_register_integer(($1|0),($2|0),2,($3|0),($4|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIsE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIsE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIsE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (360|0);
}
function __ZN12_GLOBAL__N_1L16register_integerItEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDItE3getEv()|0);
$2 = $0;
$3 = 0;
$4 = 65535;
__embind_register_integer(($1|0),($2|0),2,($3|0),($4|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDItE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDItE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDItE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (368|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIiEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIiE3getEv()|0);
$2 = $0;
__embind_register_integer(($1|0),($2|0),4,-2147483648,2147483647);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIiE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIiE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIiE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (376|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIjEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIjE3getEv()|0);
$2 = $0;
__embind_register_integer(($1|0),($2|0),4,0,-1);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIjE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIjE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIjE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (384|0);
}
function __ZN12_GLOBAL__N_1L16register_integerIlEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIlE3getEv()|0);
$2 = $0;
__embind_register_integer(($1|0),($2|0),4,-2147483648,2147483647);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIlE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIlE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIlE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (392|0);
}
function __ZN12_GLOBAL__N_1L16register_integerImEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDImE3getEv()|0);
$2 = $0;
__embind_register_integer(($1|0),($2|0),4,0,-1);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDImE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDImE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDImE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (400|0);
}
function __ZN12_GLOBAL__N_1L14register_floatIfEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIfE3getEv()|0);
$2 = $0;
__embind_register_float(($1|0),($2|0),4);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIfE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIfE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIfE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (408|0);
}
function __ZN12_GLOBAL__N_1L14register_floatIdEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDIdE3getEv()|0);
$2 = $0;
__embind_register_float(($1|0),($2|0),8);
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDIdE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDIdE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDIdE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (416|0);
}
function __ZN10emscripten8internal6TypeIDINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (8|0);
}
function __ZN10emscripten8internal6TypeIDINSt3__112basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (40|0);
}
function __ZN10emscripten8internal6TypeIDINSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (64|0);
}
function __ZN10emscripten8internal6TypeIDINS_3valEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (88|0);
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIcEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (96|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (104|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (112|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 1;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (120|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 2;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (128|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 3;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (136|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 4;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (144|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 5;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIlEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (152|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 4;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewImEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (160|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 5;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIfEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (168|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 6;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIdEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (176|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 7;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIeEEvPKc($name) {
$name = $name|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$0 = $name;
$1 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv()|0);
$2 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv()|0);
$3 = $0;
__embind_register_memory_view(($1|0),($2|0),($3|0));
STACKTOP = sp;return;
}
function __ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv()|0);
return ($0|0);
}
function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return (184|0);
}
function __ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv() {
var label = 0, sp = 0;
sp = STACKTOP;
return 7;
}
function ___getTypeName($ti) {
$ti = $ti|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$1 = $ti;
$2 = $1;
$0 = $2;
$3 = $0;
$4 = ((($3)) + 4|0);
$5 = HEAP32[$4>>2]|0;
$6 = (___strdup($5)|0);
STACKTOP = sp;return ($6|0);
}
function ___stdio_close($f) {
$f = $f|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$0 = ((($f)) + 60|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $1;
$2 = (___syscall6(6,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
STACKTOP = sp;return ($3|0);
}
function ___syscall_ret($r) {
$r = $r|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($r>>>0)>(4294963200);
if ($0) {
$1 = (0 - ($r))|0;
$2 = (___errno_location()|0);
HEAP32[$2>>2] = $1;
$$0 = -1;
} else {
$$0 = $r;
}
return ($$0|0);
}
function ___errno_location() {
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (0|0)==(0|0);
if ($0) {
$$0 = 5108;
} else {
$1 = (_pthread_self()|0);
$2 = ((($1)) + 64|0);
$3 = HEAP32[$2>>2]|0;
$$0 = $3;
}
return ($$0|0);
}
function ___stdio_write($f,$buf,$len) {
$f = $f|0;
$buf = $buf|0;
$len = $len|0;
var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $cnt$0 = 0, $cnt$1 = 0, $iov$0 = 0, $iov$0$lcssa11 = 0, $iov$1 = 0, $iovcnt$0 = 0, $iovcnt$0$lcssa12 = 0;
var $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer3 = sp + 16|0;
$vararg_buffer = sp;
$iovs = sp + 32|0;
$0 = ((($f)) + 28|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$iovs>>2] = $1;
$2 = ((($iovs)) + 4|0);
$3 = ((($f)) + 20|0);
$4 = HEAP32[$3>>2]|0;
$5 = (($4) - ($1))|0;
HEAP32[$2>>2] = $5;
$6 = ((($iovs)) + 8|0);
HEAP32[$6>>2] = $buf;
$7 = ((($iovs)) + 12|0);
HEAP32[$7>>2] = $len;
$8 = (($5) + ($len))|0;
$9 = ((($f)) + 60|0);
$10 = ((($f)) + 44|0);
$iov$0 = $iovs;$iovcnt$0 = 2;$rem$0 = $8;
while(1) {
$11 = HEAP32[1266]|0;
$12 = ($11|0)==(0|0);
if ($12) {
$16 = HEAP32[$9>>2]|0;
HEAP32[$vararg_buffer3>>2] = $16;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $iov$0;
$vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
HEAP32[$vararg_ptr7>>2] = $iovcnt$0;
$17 = (___syscall146(146,($vararg_buffer3|0))|0);
$18 = (___syscall_ret($17)|0);
$cnt$0 = $18;
} else {
_pthread_cleanup_push((30|0),($f|0));
$13 = HEAP32[$9>>2]|0;
HEAP32[$vararg_buffer>>2] = $13;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $iov$0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $iovcnt$0;
$14 = (___syscall146(146,($vararg_buffer|0))|0);
$15 = (___syscall_ret($14)|0);
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
$19 = ($rem$0|0)==($cnt$0|0);
if ($19) {
label = 6;
break;
}
$26 = ($cnt$0|0)<(0);
if ($26) {
$iov$0$lcssa11 = $iov$0;$iovcnt$0$lcssa12 = $iovcnt$0;
label = 8;
break;
}
$34 = (($rem$0) - ($cnt$0))|0;
$35 = ((($iov$0)) + 4|0);
$36 = HEAP32[$35>>2]|0;
$37 = ($cnt$0>>>0)>($36>>>0);
if ($37) {
$38 = HEAP32[$10>>2]|0;
HEAP32[$0>>2] = $38;
HEAP32[$3>>2] = $38;
$39 = (($cnt$0) - ($36))|0;
$40 = ((($iov$0)) + 8|0);
$41 = (($iovcnt$0) + -1)|0;
$$phi$trans$insert = ((($iov$0)) + 12|0);
$$pre = HEAP32[$$phi$trans$insert>>2]|0;
$49 = $$pre;$cnt$1 = $39;$iov$1 = $40;$iovcnt$1 = $41;
} else {
$42 = ($iovcnt$0|0)==(2);
if ($42) {
$43 = HEAP32[$0>>2]|0;
$44 = (($43) + ($cnt$0)|0);
HEAP32[$0>>2] = $44;
$49 = $36;$cnt$1 = $cnt$0;$iov$1 = $iov$0;$iovcnt$1 = 2;
} else {
$49 = $36;$cnt$1 = $cnt$0;$iov$1 = $iov$0;$iovcnt$1 = $iovcnt$0;
}
}
$45 = HEAP32[$iov$1>>2]|0;
$46 = (($45) + ($cnt$1)|0);
HEAP32[$iov$1>>2] = $46;
$47 = ((($iov$1)) + 4|0);
$48 = (($49) - ($cnt$1))|0;
HEAP32[$47>>2] = $48;
$iov$0 = $iov$1;$iovcnt$0 = $iovcnt$1;$rem$0 = $34;
}
if ((label|0) == 6) {
$20 = HEAP32[$10>>2]|0;
$21 = ((($f)) + 48|0);
$22 = HEAP32[$21>>2]|0;
$23 = (($20) + ($22)|0);
$24 = ((($f)) + 16|0);
HEAP32[$24>>2] = $23;
$25 = $20;
HEAP32[$0>>2] = $25;
HEAP32[$3>>2] = $25;
$$0 = $len;
}
else if ((label|0) == 8) {
$27 = ((($f)) + 16|0);
HEAP32[$27>>2] = 0;
HEAP32[$0>>2] = 0;
HEAP32[$3>>2] = 0;
$28 = HEAP32[$f>>2]|0;
$29 = $28 | 32;
HEAP32[$f>>2] = $29;
$30 = ($iovcnt$0$lcssa12|0)==(2);
if ($30) {
$$0 = 0;
} else {
$31 = ((($iov$0$lcssa11)) + 4|0);
$32 = HEAP32[$31>>2]|0;
$33 = (($len) - ($32))|0;
$$0 = $33;
}
}
STACKTOP = sp;return ($$0|0);
}
function _cleanup_522($p) {
$p = $p|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($p)) + 68|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0);
if ($2) {
___unlockfile($p);
}
return;
}
function ___unlockfile($f) {
$f = $f|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function ___stdio_seek($f,$off,$whence) {
$f = $f|0;
$off = $off|0;
$whence = $whence|0;
var $$pre = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $ret = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$ret = sp + 20|0;
$0 = ((($f)) + 60|0);
$1 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $1;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 0;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $off;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $ret;
$vararg_ptr4 = ((($vararg_buffer)) + 16|0);
HEAP32[$vararg_ptr4>>2] = $whence;
$2 = (___syscall140(140,($vararg_buffer|0))|0);
$3 = (___syscall_ret($2)|0);
$4 = ($3|0)<(0);
if ($4) {
HEAP32[$ret>>2] = -1;
$5 = -1;
} else {
$$pre = HEAP32[$ret>>2]|0;
$5 = $$pre;
}
STACKTOP = sp;return ($5|0);
}
function ___stdout_write($f,$buf,$len) {
$f = $f|0;
$buf = $buf|0;
$len = $len|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $tio = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$vararg_buffer = sp;
$tio = sp + 12|0;
$0 = ((($f)) + 36|0);
HEAP32[$0>>2] = 31;
$1 = HEAP32[$f>>2]|0;
$2 = $1 & 64;
$3 = ($2|0)==(0);
if ($3) {
$4 = ((($f)) + 60|0);
$5 = HEAP32[$4>>2]|0;
HEAP32[$vararg_buffer>>2] = $5;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = 21505;
$vararg_ptr2 = ((($vararg_buffer)) + 8|0);
HEAP32[$vararg_ptr2>>2] = $tio;
$6 = (___syscall54(54,($vararg_buffer|0))|0);
$7 = ($6|0)==(0);
if (!($7)) {
$8 = ((($f)) + 75|0);
HEAP8[$8>>0] = -1;
}
}
$9 = (___stdio_write($f,$buf,$len)|0);
STACKTOP = sp;return ($9|0);
}
function _memchr($src,$c,$n) {
$src = $src|0;
$c = $c|0;
$n = $n|0;
var $$0$lcssa = 0, $$0$lcssa30 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0;
var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, $s$0$lcssa = 0, $s$0$lcssa29 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $c & 255;
$1 = $src;
$2 = $1 & 3;
$3 = ($2|0)!=(0);
$4 = ($n|0)!=(0);
$or$cond18 = $4 & $3;
L1: do {
if ($or$cond18) {
$5 = $c&255;
$$019 = $n;$s$020 = $src;
while(1) {
$6 = HEAP8[$s$020>>0]|0;
$7 = ($6<<24>>24)==($5<<24>>24);
if ($7) {
$$0$lcssa30 = $$019;$s$0$lcssa29 = $s$020;
label = 6;
break L1;
}
$8 = ((($s$020)) + 1|0);
$9 = (($$019) + -1)|0;
$10 = $8;
$11 = $10 & 3;
$12 = ($11|0)!=(0);
$13 = ($9|0)!=(0);
$or$cond = $13 & $12;
if ($or$cond) {
$$019 = $9;$s$020 = $8;
} else {
$$0$lcssa = $9;$$lcssa = $13;$s$0$lcssa = $8;
label = 5;
break;
}
}
} else {
$$0$lcssa = $n;$$lcssa = $4;$s$0$lcssa = $src;
label = 5;
}
} while(0);
if ((label|0) == 5) {
if ($$lcssa) {
$$0$lcssa30 = $$0$lcssa;$s$0$lcssa29 = $s$0$lcssa;
label = 6;
} else {
$$3 = 0;$s$2 = $s$0$lcssa;
}
}
L8: do {
if ((label|0) == 6) {
$14 = HEAP8[$s$0$lcssa29>>0]|0;
$15 = $c&255;
$16 = ($14<<24>>24)==($15<<24>>24);
if ($16) {
$$3 = $$0$lcssa30;$s$2 = $s$0$lcssa29;
} else {
$17 = Math_imul($0, 16843009)|0;
$18 = ($$0$lcssa30>>>0)>(3);
L11: do {
if ($18) {
$$110 = $$0$lcssa30;$w$011 = $s$0$lcssa29;
while(1) {
$19 = HEAP32[$w$011>>2]|0;
$20 = $19 ^ $17;
$21 = (($20) + -16843009)|0;
$22 = $20 & -2139062144;
$23 = $22 ^ -2139062144;
$24 = $23 & $21;
$25 = ($24|0)==(0);
if (!($25)) {
$$110$lcssa = $$110;$w$011$lcssa = $w$011;
break;
}
$26 = ((($w$011)) + 4|0);
$27 = (($$110) + -4)|0;
$28 = ($27>>>0)>(3);
if ($28) {
$$110 = $27;$w$011 = $26;
} else {
$$1$lcssa = $27;$w$0$lcssa = $26;
label = 11;
break L11;
}
}
$$24 = $$110$lcssa;$s$15 = $w$011$lcssa;
} else {
$$1$lcssa = $$0$lcssa30;$w$0$lcssa = $s$0$lcssa29;
label = 11;
}
} while(0);
if ((label|0) == 11) {
$29 = ($$1$lcssa|0)==(0);
if ($29) {
$$3 = 0;$s$2 = $w$0$lcssa;
break;
} else {
$$24 = $$1$lcssa;$s$15 = $w$0$lcssa;
}
}
while(1) {
$30 = HEAP8[$s$15>>0]|0;
$31 = ($30<<24>>24)==($15<<24>>24);
if ($31) {
$$3 = $$24;$s$2 = $s$15;
break L8;
}
$32 = ((($s$15)) + 1|0);
$33 = (($$24) + -1)|0;
$34 = ($33|0)==(0);
if ($34) {
$$3 = 0;$s$2 = $32;
break;
} else {
$$24 = $33;$s$15 = $32;
}
}
}
}
} while(0);
$35 = ($$3|0)!=(0);
$36 = $35 ? $s$2 : 0;
return ($36|0);
}
function _vfprintf($f,$fmt,$ap) {
$f = $f|0;
$fmt = $fmt|0;
$ap = $ap|0;
var $$ = 0, $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0;
var $ret$1 = 0, $ret$1$ = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap2 = sp + 120|0;
$nl_type = sp + 80|0;
$nl_arg = sp;
$internal_buf = sp + 136|0;
dest=$nl_type; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
$vacopy_currentptr = HEAP32[$ap>>2]|0;
HEAP32[$ap2>>2] = $vacopy_currentptr;
$0 = (_printf_core(0,$fmt,$ap2,$nl_arg,$nl_type)|0);
$1 = ($0|0)<(0);
if ($1) {
$$0 = -1;
} else {
$2 = ((($f)) + 76|0);
$3 = HEAP32[$2>>2]|0;
$4 = ($3|0)>(-1);
if ($4) {
$5 = (___lockfile($f)|0);
$32 = $5;
} else {
$32 = 0;
}
$6 = HEAP32[$f>>2]|0;
$7 = $6 & 32;
$8 = ((($f)) + 74|0);
$9 = HEAP8[$8>>0]|0;
$10 = ($9<<24>>24)<(1);
if ($10) {
$11 = $6 & -33;
HEAP32[$f>>2] = $11;
}
$12 = ((($f)) + 48|0);
$13 = HEAP32[$12>>2]|0;
$14 = ($13|0)==(0);
if ($14) {
$16 = ((($f)) + 44|0);
$17 = HEAP32[$16>>2]|0;
HEAP32[$16>>2] = $internal_buf;
$18 = ((($f)) + 28|0);
HEAP32[$18>>2] = $internal_buf;
$19 = ((($f)) + 20|0);
HEAP32[$19>>2] = $internal_buf;
HEAP32[$12>>2] = 80;
$20 = ((($internal_buf)) + 80|0);
$21 = ((($f)) + 16|0);
HEAP32[$21>>2] = $20;
$22 = (_printf_core($f,$fmt,$ap2,$nl_arg,$nl_type)|0);
$23 = ($17|0)==(0|0);
if ($23) {
$ret$1 = $22;
} else {
$24 = ((($f)) + 36|0);
$25 = HEAP32[$24>>2]|0;
(FUNCTION_TABLE_iiii[$25 & 31]($f,0,0)|0);
$26 = HEAP32[$19>>2]|0;
$27 = ($26|0)==(0|0);
$$ = $27 ? -1 : $22;
HEAP32[$16>>2] = $17;
HEAP32[$12>>2] = 0;
HEAP32[$21>>2] = 0;
HEAP32[$18>>2] = 0;
HEAP32[$19>>2] = 0;
$ret$1 = $$;
}
} else {
$15 = (_printf_core($f,$fmt,$ap2,$nl_arg,$nl_type)|0);
$ret$1 = $15;
}
$28 = HEAP32[$f>>2]|0;
$29 = $28 & 32;
$30 = ($29|0)==(0);
$ret$1$ = $30 ? $ret$1 : -1;
$31 = $28 | $7;
HEAP32[$f>>2] = $31;
$33 = ($32|0)==(0);
if (!($33)) {
___unlockfile($f);
}
$$0 = $ret$1$;
}
STACKTOP = sp;return ($$0|0);
}
function _printf_core($f,$fmt,$ap,$nl_arg,$nl_type) {
$f = $f|0;
$fmt = $fmt|0;
$ap = $ap|0;
$nl_arg = $nl_arg|0;
$nl_type = $nl_type|0;
var $$ = 0, $$$i = 0, $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$210$$24$i = 0, $$210$$26$i = 0, $$210$i = 0, $$23$i = 0, $$25$i = 0, $$3$i = 0.0, $$311$i = 0;
var $$33$i = 0, $$36$i = 0.0, $$4$i = 0.0, $$412$lcssa$i = 0, $$41278$i = 0, $$43 = 0, $$5$lcssa$i = 0, $$589$i = 0, $$a$3$i = 0, $$a$3191$i = 0, $$a$3192$i = 0, $$fl$4 = 0, $$l10n$0 = 0, $$lcssa = 0, $$lcssa162$i = 0, $$lcssa295 = 0, $$lcssa300 = 0, $$lcssa301 = 0, $$lcssa302 = 0, $$lcssa303 = 0;
var $$lcssa304 = 0, $$lcssa306 = 0, $$lcssa316 = 0, $$lcssa319 = 0.0, $$lcssa321 = 0, $$neg55$i = 0, $$neg56$i = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr50$i = 0, $$pre = 0, $$pre$i = 0, $$pre$phi190$iZ2D = 0, $$pre170 = 0, $$pre171 = 0, $$pre185$i = 0, $$pre188$i = 0;
var $$pre189$i = 0, $$z$3$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0;
var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0;
var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0;
var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0;
var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0;
var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0;
var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0.0, $363 = 0, $364 = 0, $365 = 0;
var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0.0, $391 = 0.0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0;
var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0.0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0.0, $411 = 0.0, $412 = 0.0, $413 = 0.0, $414 = 0.0, $415 = 0.0, $416 = 0, $417 = 0, $418 = 0, $419 = 0;
var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0;
var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0.0, $442 = 0.0, $443 = 0.0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0;
var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0;
var $474 = 0.0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0.0, $483 = 0.0, $484 = 0.0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0;
var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0;
var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0;
var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0;
var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0;
var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0;
var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0.0, $594 = 0.0, $595 = 0, $596 = 0.0, $597 = 0, $598 = 0, $599 = 0, $6 = 0;
var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0;
var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0;
var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0;
var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0;
var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0;
var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0;
var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0;
var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0;
var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0;
var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0;
var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0;
var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0;
var $98 = 0, $99 = 0, $a$0 = 0, $a$1 = 0, $a$1$lcssa$i = 0, $a$1149$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3136$i = 0, $a$5$lcssa$i = 0, $a$5111$i = 0, $a$6$i = 0, $a$8$i = 0, $a$9$ph$i = 0, $arg = 0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0, $arglist_next3 = 0;
var $argpos$0 = 0, $big$i = 0, $buf = 0, $buf$i = 0, $carry$0142$i = 0, $carry3$0130$i = 0, $cnt$0 = 0, $cnt$1 = 0, $cnt$1$lcssa = 0, $d$0$i = 0, $d$0141$i = 0, $d$0143$i = 0, $d$1129$i = 0, $d$2$lcssa$i = 0, $d$2110$i = 0, $d$4$i = 0, $d$584$i = 0, $d$677$i = 0, $d$788$i = 0, $e$0125$i = 0;
var $e$1$i = 0, $e$2106$i = 0, $e$4$i = 0, $e$5$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$195$i = 0, $estr$2$i = 0, $exitcond$i = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0;
var $expanded8 = 0, $fl$0100 = 0, $fl$053 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $i$0$lcssa = 0, $i$0$lcssa178 = 0, $i$0105 = 0, $i$0124$i = 0, $i$03$i = 0, $i$03$i25 = 0, $i$1$lcssa$i = 0, $i$1116 = 0, $i$1118$i = 0, $i$2105$i = 0, $i$291 = 0, $i$291$lcssa = 0;
var $i$3101$i = 0, $i$389 = 0, $isdigit = 0, $isdigit$i = 0, $isdigit$i27 = 0, $isdigit10 = 0, $isdigit12 = 0, $isdigit2$i = 0, $isdigit2$i23 = 0, $isdigittmp = 0, $isdigittmp$ = 0, $isdigittmp$i = 0, $isdigittmp$i26 = 0, $isdigittmp1$i = 0, $isdigittmp1$i22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i24 = 0, $isdigittmp9 = 0, $j$0$i = 0;
var $j$0117$i = 0, $j$0119$i = 0, $j$1102$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1$i = 0, $l$1104 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$0$phi = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notlhs$i = 0, $notrhs$i = 0, $or$cond = 0, $or$cond$i = 0;
var $or$cond122 = 0, $or$cond15 = 0, $or$cond17 = 0, $or$cond18$i = 0, $or$cond20 = 0, $or$cond22$i = 0, $or$cond3$not$i = 0, $or$cond31$i = 0, $or$cond6$i = 0, $p$0 = 0, $p$0$ = 0, $p$1 = 0, $p$2 = 0, $p$2$ = 0, $p$3 = 0, $p$4176 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0;
var $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$9$i = 0, $re$171$i = 0, $round$070$i = 0.0, $round6$1$i = 0.0, $s$0 = 0, $s$0$i = 0, $s$1 = 0, $s$1$i = 0, $s$1$i$lcssa = 0, $s$2$lcssa = 0, $s$292 = 0, $s$4 = 0, $s$6 = 0;
var $s$7 = 0, $s$7$lcssa298 = 0, $s1$0$i = 0, $s7$081$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$072$i = 0, $s9$0$i = 0, $s9$185$i = 0, $s9$2$i = 0, $scevgep182$i = 0, $scevgep182183$i = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa299 = 0, $storemerge = 0, $storemerge13 = 0, $storemerge851 = 0, $storemerge899 = 0;
var $sum = 0, $t$0 = 0, $t$1 = 0, $w$$i = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $w$32$i = 0, $wc = 0, $ws$0106 = 0, $ws$1117 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$093 = 0, $z$1 = 0, $z$1$lcssa$i = 0, $z$1148$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0;
var $z$3$lcssa$i = 0, $z$3135$i = 0, $z$4$i = 0, $z$7$$i = 0, $z$7$i = 0, $z$7$i$lcssa = 0, $z$7$ph$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 624|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$big$i = sp + 24|0;
$e2$i = sp + 16|0;
$buf$i = sp + 588|0;
$ebuf0$i = sp + 576|0;
$arg = sp;
$buf = sp + 536|0;
$wc = sp + 8|0;
$mb = sp + 528|0;
$0 = ($f|0)!=(0|0);
$1 = ((($buf)) + 40|0);
$2 = $1;
$3 = ((($buf)) + 39|0);
$4 = ((($wc)) + 4|0);
$5 = $buf$i;
$6 = (0 - ($5))|0;
$7 = ((($ebuf0$i)) + 12|0);
$8 = ((($ebuf0$i)) + 11|0);
$9 = $7;
$10 = (($9) - ($5))|0;
$11 = (-2 - ($5))|0;
$12 = (($9) + 2)|0;
$13 = ((($big$i)) + 288|0);
$14 = ((($buf$i)) + 9|0);
$15 = $14;
$16 = ((($buf$i)) + 8|0);
$cnt$0 = 0;$l$0 = 0;$l10n$0 = 0;$s$0 = $fmt;
L1: while(1) {
$17 = ($cnt$0|0)>(-1);
do {
if ($17) {
$18 = (2147483647 - ($cnt$0))|0;
$19 = ($l$0|0)>($18|0);
if ($19) {
$20 = (___errno_location()|0);
HEAP32[$20>>2] = 75;
$cnt$1 = -1;
break;
} else {
$21 = (($l$0) + ($cnt$0))|0;
$cnt$1 = $21;
break;
}
} else {
$cnt$1 = $cnt$0;
}
} while(0);
$22 = HEAP8[$s$0>>0]|0;
$23 = ($22<<24>>24)==(0);
if ($23) {
$cnt$1$lcssa = $cnt$1;$l10n$0$lcssa = $l10n$0;
label = 244;
break;
} else {
$24 = $22;$s$1 = $s$0;
}
L9: while(1) {
switch ($24<<24>>24) {
case 37: {
$s$292 = $s$1;$z$093 = $s$1;
label = 9;
break L9;
break;
}
case 0: {
$s$2$lcssa = $s$1;$z$0$lcssa = $s$1;
break L9;
break;
}
default: {
}
}
$25 = ((($s$1)) + 1|0);
$$pre = HEAP8[$25>>0]|0;
$24 = $$pre;$s$1 = $25;
}
L12: do {
if ((label|0) == 9) {
while(1) {
label = 0;
$26 = ((($s$292)) + 1|0);
$27 = HEAP8[$26>>0]|0;
$28 = ($27<<24>>24)==(37);
if (!($28)) {
$s$2$lcssa = $s$292;$z$0$lcssa = $z$093;
break L12;
}
$29 = ((($z$093)) + 1|0);
$30 = ((($s$292)) + 2|0);
$31 = HEAP8[$30>>0]|0;
$32 = ($31<<24>>24)==(37);
if ($32) {
$s$292 = $30;$z$093 = $29;
label = 9;
} else {
$s$2$lcssa = $30;$z$0$lcssa = $29;
break;
}
}
}
} while(0);
$33 = $z$0$lcssa;
$34 = $s$0;
$35 = (($33) - ($34))|0;
if ($0) {
$36 = HEAP32[$f>>2]|0;
$37 = $36 & 32;
$38 = ($37|0)==(0);
if ($38) {
(___fwritex($s$0,$35,$f)|0);
}
}
$39 = ($z$0$lcssa|0)==($s$0|0);
if (!($39)) {
$l10n$0$phi = $l10n$0;$cnt$0 = $cnt$1;$l$0 = $35;$s$0 = $s$2$lcssa;$l10n$0 = $l10n$0$phi;
continue;
}
$40 = ((($s$2$lcssa)) + 1|0);
$41 = HEAP8[$40>>0]|0;
$42 = $41 << 24 >> 24;
$isdigittmp = (($42) + -48)|0;
$isdigit = ($isdigittmp>>>0)<(10);
if ($isdigit) {
$43 = ((($s$2$lcssa)) + 2|0);
$44 = HEAP8[$43>>0]|0;
$45 = ($44<<24>>24)==(36);
$46 = ((($s$2$lcssa)) + 3|0);
$$43 = $45 ? $46 : $40;
$$l10n$0 = $45 ? 1 : $l10n$0;
$isdigittmp$ = $45 ? $isdigittmp : -1;
$$pre170 = HEAP8[$$43>>0]|0;
$48 = $$pre170;$argpos$0 = $isdigittmp$;$l10n$1 = $$l10n$0;$storemerge = $$43;
} else {
$48 = $41;$argpos$0 = -1;$l10n$1 = $l10n$0;$storemerge = $40;
}
$47 = $48 << 24 >> 24;
$49 = $47 & -32;
$50 = ($49|0)==(32);
L25: do {
if ($50) {
$52 = $47;$57 = $48;$fl$0100 = 0;$storemerge899 = $storemerge;
while(1) {
$51 = (($52) + -32)|0;
$53 = 1 << $51;
$54 = $53 & 75913;
$55 = ($54|0)==(0);
if ($55) {
$66 = $57;$fl$053 = $fl$0100;$storemerge851 = $storemerge899;
break L25;
}
$56 = $57 << 24 >> 24;
$58 = (($56) + -32)|0;
$59 = 1 << $58;
$60 = $59 | $fl$0100;
$61 = ((($storemerge899)) + 1|0);
$62 = HEAP8[$61>>0]|0;
$63 = $62 << 24 >> 24;
$64 = $63 & -32;
$65 = ($64|0)==(32);
if ($65) {
$52 = $63;$57 = $62;$fl$0100 = $60;$storemerge899 = $61;
} else {
$66 = $62;$fl$053 = $60;$storemerge851 = $61;
break;
}
}
} else {
$66 = $48;$fl$053 = 0;$storemerge851 = $storemerge;
}
} while(0);
$67 = ($66<<24>>24)==(42);
do {
if ($67) {
$68 = ((($storemerge851)) + 1|0);
$69 = HEAP8[$68>>0]|0;
$70 = $69 << 24 >> 24;
$isdigittmp11 = (($70) + -48)|0;
$isdigit12 = ($isdigittmp11>>>0)<(10);
if ($isdigit12) {
$71 = ((($storemerge851)) + 2|0);
$72 = HEAP8[$71>>0]|0;
$73 = ($72<<24>>24)==(36);
if ($73) {
$74 = (($nl_type) + ($isdigittmp11<<2)|0);
HEAP32[$74>>2] = 10;
$75 = HEAP8[$68>>0]|0;
$76 = $75 << 24 >> 24;
$77 = (($76) + -48)|0;
$78 = (($nl_arg) + ($77<<3)|0);
$79 = $78;
$80 = $79;
$81 = HEAP32[$80>>2]|0;
$82 = (($79) + 4)|0;
$83 = $82;
$84 = HEAP32[$83>>2]|0;
$85 = ((($storemerge851)) + 3|0);
$l10n$2 = 1;$storemerge13 = $85;$w$0 = $81;
} else {
label = 24;
}
} else {
label = 24;
}
if ((label|0) == 24) {
label = 0;
$86 = ($l10n$1|0)==(0);
if (!($86)) {
$$0 = -1;
break L1;
}
if (!($0)) {
$fl$1 = $fl$053;$l10n$3 = 0;$s$4 = $68;$w$1 = 0;
break;
}
$arglist_current = HEAP32[$ap>>2]|0;
$87 = $arglist_current;
$88 = ((0) + 4|0);
$expanded4 = $88;
$expanded = (($expanded4) - 1)|0;
$89 = (($87) + ($expanded))|0;
$90 = ((0) + 4|0);
$expanded8 = $90;
$expanded7 = (($expanded8) - 1)|0;
$expanded6 = $expanded7 ^ -1;
$91 = $89 & $expanded6;
$92 = $91;
$93 = HEAP32[$92>>2]|0;
$arglist_next = ((($92)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
$l10n$2 = 0;$storemerge13 = $68;$w$0 = $93;
}
$94 = ($w$0|0)<(0);
if ($94) {
$95 = $fl$053 | 8192;
$96 = (0 - ($w$0))|0;
$fl$1 = $95;$l10n$3 = $l10n$2;$s$4 = $storemerge13;$w$1 = $96;
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$2;$s$4 = $storemerge13;$w$1 = $w$0;
}
} else {
$97 = $66 << 24 >> 24;
$isdigittmp1$i = (($97) + -48)|0;
$isdigit2$i = ($isdigittmp1$i>>>0)<(10);
if ($isdigit2$i) {
$101 = $storemerge851;$i$03$i = 0;$isdigittmp4$i = $isdigittmp1$i;
while(1) {
$98 = ($i$03$i*10)|0;
$99 = (($98) + ($isdigittmp4$i))|0;
$100 = ((($101)) + 1|0);
$102 = HEAP8[$100>>0]|0;
$103 = $102 << 24 >> 24;
$isdigittmp$i = (($103) + -48)|0;
$isdigit$i = ($isdigittmp$i>>>0)<(10);
if ($isdigit$i) {
$101 = $100;$i$03$i = $99;$isdigittmp4$i = $isdigittmp$i;
} else {
$$lcssa = $99;$$lcssa295 = $100;
break;
}
}
$104 = ($$lcssa|0)<(0);
if ($104) {
$$0 = -1;
break L1;
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$1;$s$4 = $$lcssa295;$w$1 = $$lcssa;
}
} else {
$fl$1 = $fl$053;$l10n$3 = $l10n$1;$s$4 = $storemerge851;$w$1 = 0;
}
}
} while(0);
$105 = HEAP8[$s$4>>0]|0;
$106 = ($105<<24>>24)==(46);
L46: do {
if ($106) {
$107 = ((($s$4)) + 1|0);
$108 = HEAP8[$107>>0]|0;
$109 = ($108<<24>>24)==(42);
if (!($109)) {
$136 = $108 << 24 >> 24;
$isdigittmp1$i22 = (($136) + -48)|0;
$isdigit2$i23 = ($isdigittmp1$i22>>>0)<(10);
if ($isdigit2$i23) {
$140 = $107;$i$03$i25 = 0;$isdigittmp4$i24 = $isdigittmp1$i22;
} else {
$p$0 = 0;$s$6 = $107;
break;
}
while(1) {
$137 = ($i$03$i25*10)|0;
$138 = (($137) + ($isdigittmp4$i24))|0;
$139 = ((($140)) + 1|0);
$141 = HEAP8[$139>>0]|0;
$142 = $141 << 24 >> 24;
$isdigittmp$i26 = (($142) + -48)|0;
$isdigit$i27 = ($isdigittmp$i26>>>0)<(10);
if ($isdigit$i27) {
$140 = $139;$i$03$i25 = $138;$isdigittmp4$i24 = $isdigittmp$i26;
} else {
$p$0 = $138;$s$6 = $139;
break L46;
}
}
}
$110 = ((($s$4)) + 2|0);
$111 = HEAP8[$110>>0]|0;
$112 = $111 << 24 >> 24;
$isdigittmp9 = (($112) + -48)|0;
$isdigit10 = ($isdigittmp9>>>0)<(10);
if ($isdigit10) {
$113 = ((($s$4)) + 3|0);
$114 = HEAP8[$113>>0]|0;
$115 = ($114<<24>>24)==(36);
if ($115) {
$116 = (($nl_type) + ($isdigittmp9<<2)|0);
HEAP32[$116>>2] = 10;
$117 = HEAP8[$110>>0]|0;
$118 = $117 << 24 >> 24;
$119 = (($118) + -48)|0;
$120 = (($nl_arg) + ($119<<3)|0);
$121 = $120;
$122 = $121;
$123 = HEAP32[$122>>2]|0;
$124 = (($121) + 4)|0;
$125 = $124;
$126 = HEAP32[$125>>2]|0;
$127 = ((($s$4)) + 4|0);
$p$0 = $123;$s$6 = $127;
break;
}
}
$128 = ($l10n$3|0)==(0);
if (!($128)) {
$$0 = -1;
break L1;
}
if ($0) {
$arglist_current2 = HEAP32[$ap>>2]|0;
$129 = $arglist_current2;
$130 = ((0) + 4|0);
$expanded11 = $130;
$expanded10 = (($expanded11) - 1)|0;
$131 = (($129) + ($expanded10))|0;
$132 = ((0) + 4|0);
$expanded15 = $132;
$expanded14 = (($expanded15) - 1)|0;
$expanded13 = $expanded14 ^ -1;
$133 = $131 & $expanded13;
$134 = $133;
$135 = HEAP32[$134>>2]|0;
$arglist_next3 = ((($134)) + 4|0);
HEAP32[$ap>>2] = $arglist_next3;
$p$0 = $135;$s$6 = $110;
} else {
$p$0 = 0;$s$6 = $110;
}
} else {
$p$0 = -1;$s$6 = $s$4;
}
} while(0);
$s$7 = $s$6;$st$0 = 0;
while(1) {
$143 = HEAP8[$s$7>>0]|0;
$144 = $143 << 24 >> 24;
$145 = (($144) + -65)|0;
$146 = ($145>>>0)>(57);
if ($146) {
$$0 = -1;
break L1;
}
$147 = ((($s$7)) + 1|0);
$148 = ((2338 + (($st$0*58)|0)|0) + ($145)|0);
$149 = HEAP8[$148>>0]|0;
$150 = $149&255;
$151 = (($150) + -1)|0;
$152 = ($151>>>0)<(8);
if ($152) {
$s$7 = $147;$st$0 = $150;
} else {
$$lcssa300 = $147;$$lcssa301 = $149;$$lcssa302 = $150;$s$7$lcssa298 = $s$7;$st$0$lcssa299 = $st$0;
break;
}
}
$153 = ($$lcssa301<<24>>24)==(0);
if ($153) {
$$0 = -1;
break;
}
$154 = ($$lcssa301<<24>>24)==(19);
$155 = ($argpos$0|0)>(-1);
do {
if ($154) {
if ($155) {
$$0 = -1;
break L1;
} else {
label = 52;
}
} else {
if ($155) {
$156 = (($nl_type) + ($argpos$0<<2)|0);
HEAP32[$156>>2] = $$lcssa302;
$157 = (($nl_arg) + ($argpos$0<<3)|0);
$158 = $157;
$159 = $158;
$160 = HEAP32[$159>>2]|0;
$161 = (($158) + 4)|0;
$162 = $161;
$163 = HEAP32[$162>>2]|0;
$164 = $arg;
$165 = $164;
HEAP32[$165>>2] = $160;
$166 = (($164) + 4)|0;
$167 = $166;
HEAP32[$167>>2] = $163;
label = 52;
break;
}
if (!($0)) {
$$0 = 0;
break L1;
}
_pop_arg($arg,$$lcssa302,$ap);
}
} while(0);
if ((label|0) == 52) {
label = 0;
if (!($0)) {
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue;
}
}
$168 = HEAP8[$s$7$lcssa298>>0]|0;
$169 = $168 << 24 >> 24;
$170 = ($st$0$lcssa299|0)!=(0);
$171 = $169 & 15;
$172 = ($171|0)==(3);
$or$cond15 = $170 & $172;
$173 = $169 & -33;
$t$0 = $or$cond15 ? $173 : $169;
$174 = $fl$1 & 8192;
$175 = ($174|0)==(0);
$176 = $fl$1 & -65537;
$fl$1$ = $175 ? $fl$1 : $176;
L75: do {
switch ($t$0|0) {
case 110: {
switch ($st$0$lcssa299|0) {
case 0: {
$183 = HEAP32[$arg>>2]|0;
HEAP32[$183>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 1: {
$184 = HEAP32[$arg>>2]|0;
HEAP32[$184>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 2: {
$185 = ($cnt$1|0)<(0);
$186 = $185 << 31 >> 31;
$187 = HEAP32[$arg>>2]|0;
$188 = $187;
$189 = $188;
HEAP32[$189>>2] = $cnt$1;
$190 = (($188) + 4)|0;
$191 = $190;
HEAP32[$191>>2] = $186;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 3: {
$192 = $cnt$1&65535;
$193 = HEAP32[$arg>>2]|0;
HEAP16[$193>>1] = $192;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 4: {
$194 = $cnt$1&255;
$195 = HEAP32[$arg>>2]|0;
HEAP8[$195>>0] = $194;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 6: {
$196 = HEAP32[$arg>>2]|0;
HEAP32[$196>>2] = $cnt$1;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
case 7: {
$197 = ($cnt$1|0)<(0);
$198 = $197 << 31 >> 31;
$199 = HEAP32[$arg>>2]|0;
$200 = $199;
$201 = $200;
HEAP32[$201>>2] = $cnt$1;
$202 = (($200) + 4)|0;
$203 = $202;
HEAP32[$203>>2] = $198;
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
default: {
$cnt$0 = $cnt$1;$l$0 = $35;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
}
}
break;
}
case 112: {
$204 = ($p$0>>>0)>(8);
$205 = $204 ? $p$0 : 8;
$206 = $fl$1$ | 8;
$fl$3 = $206;$p$1 = $205;$t$1 = 120;
label = 64;
break;
}
case 88: case 120: {
$fl$3 = $fl$1$;$p$1 = $p$0;$t$1 = $t$0;
label = 64;
break;
}
case 111: {
$244 = $arg;
$245 = $244;
$246 = HEAP32[$245>>2]|0;
$247 = (($244) + 4)|0;
$248 = $247;
$249 = HEAP32[$248>>2]|0;
$250 = ($246|0)==(0);
$251 = ($249|0)==(0);
$252 = $250 & $251;
if ($252) {
$$0$lcssa$i = $1;
} else {
$$03$i33 = $1;$254 = $246;$258 = $249;
while(1) {
$253 = $254 & 7;
$255 = $253 | 48;
$256 = $255&255;
$257 = ((($$03$i33)) + -1|0);
HEAP8[$257>>0] = $256;
$259 = (_bitshift64Lshr(($254|0),($258|0),3)|0);
$260 = tempRet0;
$261 = ($259|0)==(0);
$262 = ($260|0)==(0);
$263 = $261 & $262;
if ($263) {
$$0$lcssa$i = $257;
break;
} else {
$$03$i33 = $257;$254 = $259;$258 = $260;
}
}
}
$264 = $fl$1$ & 8;
$265 = ($264|0)==(0);
if ($265) {
$a$0 = $$0$lcssa$i;$fl$4 = $fl$1$;$p$2 = $p$0;$pl$1 = 0;$prefix$1 = 2818;
label = 77;
} else {
$266 = $$0$lcssa$i;
$267 = (($2) - ($266))|0;
$268 = ($p$0|0)>($267|0);
$269 = (($267) + 1)|0;
$p$0$ = $268 ? $p$0 : $269;
$a$0 = $$0$lcssa$i;$fl$4 = $fl$1$;$p$2 = $p$0$;$pl$1 = 0;$prefix$1 = 2818;
label = 77;
}
break;
}
case 105: case 100: {
$270 = $arg;
$271 = $270;
$272 = HEAP32[$271>>2]|0;
$273 = (($270) + 4)|0;
$274 = $273;
$275 = HEAP32[$274>>2]|0;
$276 = ($275|0)<(0);
if ($276) {
$277 = (_i64Subtract(0,0,($272|0),($275|0))|0);
$278 = tempRet0;
$279 = $arg;
$280 = $279;
HEAP32[$280>>2] = $277;
$281 = (($279) + 4)|0;
$282 = $281;
HEAP32[$282>>2] = $278;
$287 = $277;$288 = $278;$pl$0 = 1;$prefix$0 = 2818;
label = 76;
break L75;
}
$283 = $fl$1$ & 2048;
$284 = ($283|0)==(0);
if ($284) {
$285 = $fl$1$ & 1;
$286 = ($285|0)==(0);
$$ = $286 ? 2818 : (2820);
$287 = $272;$288 = $275;$pl$0 = $285;$prefix$0 = $$;
label = 76;
} else {
$287 = $272;$288 = $275;$pl$0 = 1;$prefix$0 = (2819);
label = 76;
}
break;
}
case 117: {
$177 = $arg;
$178 = $177;
$179 = HEAP32[$178>>2]|0;
$180 = (($177) + 4)|0;
$181 = $180;
$182 = HEAP32[$181>>2]|0;
$287 = $179;$288 = $182;$pl$0 = 0;$prefix$0 = 2818;
label = 76;
break;
}
case 99: {
$308 = $arg;
$309 = $308;
$310 = HEAP32[$309>>2]|0;
$311 = (($308) + 4)|0;
$312 = $311;
$313 = HEAP32[$312>>2]|0;
$314 = $310&255;
HEAP8[$3>>0] = $314;
$a$2 = $3;$fl$6 = $176;$p$5 = 1;$pl$2 = 0;$prefix$2 = 2818;$z$2 = $1;
break;
}
case 109: {
$315 = (___errno_location()|0);
$316 = HEAP32[$315>>2]|0;
$317 = (_strerror($316)|0);
$a$1 = $317;
label = 82;
break;
}
case 115: {
$318 = HEAP32[$arg>>2]|0;
$319 = ($318|0)!=(0|0);
$320 = $319 ? $318 : 4720;
$a$1 = $320;
label = 82;
break;
}
case 67: {
$327 = $arg;
$328 = $327;
$329 = HEAP32[$328>>2]|0;
$330 = (($327) + 4)|0;
$331 = $330;
$332 = HEAP32[$331>>2]|0;
HEAP32[$wc>>2] = $329;
HEAP32[$4>>2] = 0;
HEAP32[$arg>>2] = $wc;
$798 = $wc;$p$4176 = -1;
label = 86;
break;
}
case 83: {
$$pre171 = HEAP32[$arg>>2]|0;
$333 = ($p$0|0)==(0);
if ($333) {
_pad($f,32,$w$1,0,$fl$1$);
$i$0$lcssa178 = 0;
label = 97;
} else {
$798 = $$pre171;$p$4176 = $p$0;
label = 86;
}
break;
}
case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: {
$358 = +HEAPF64[$arg>>3];
HEAP32[$e2$i>>2] = 0;
HEAPF64[tempDoublePtr>>3] = $358;$359 = HEAP32[tempDoublePtr>>2]|0;
$360 = HEAP32[tempDoublePtr+4>>2]|0;
$361 = ($360|0)<(0);
if ($361) {
$362 = -$358;
$$07$i = $362;$pl$0$i = 1;$prefix$0$i = 4727;
} else {
$363 = $fl$1$ & 2048;
$364 = ($363|0)==(0);
if ($364) {
$365 = $fl$1$ & 1;
$366 = ($365|0)==(0);
$$$i = $366 ? (4728) : (4733);
$$07$i = $358;$pl$0$i = $365;$prefix$0$i = $$$i;
} else {
$$07$i = $358;$pl$0$i = 1;$prefix$0$i = (4730);
}
}
HEAPF64[tempDoublePtr>>3] = $$07$i;$367 = HEAP32[tempDoublePtr>>2]|0;
$368 = HEAP32[tempDoublePtr+4>>2]|0;
$369 = $368 & 2146435072;
$370 = ($369>>>0)<(2146435072);
$371 = (0)<(0);
$372 = ($369|0)==(2146435072);
$373 = $372 & $371;
$374 = $370 | $373;
do {
if ($374) {
$390 = (+_frexpl($$07$i,$e2$i));
$391 = $390 * 2.0;
$392 = $391 != 0.0;
if ($392) {
$393 = HEAP32[$e2$i>>2]|0;
$394 = (($393) + -1)|0;
HEAP32[$e2$i>>2] = $394;
}
$395 = $t$0 | 32;
$396 = ($395|0)==(97);
if ($396) {
$397 = $t$0 & 32;
$398 = ($397|0)==(0);
$399 = ((($prefix$0$i)) + 9|0);
$prefix$0$$i = $398 ? $prefix$0$i : $399;
$400 = $pl$0$i | 2;
$401 = ($p$0>>>0)>(11);
$402 = (12 - ($p$0))|0;
$403 = ($402|0)==(0);
$404 = $401 | $403;
do {
if ($404) {
$$1$i = $391;
} else {
$re$171$i = $402;$round$070$i = 8.0;
while(1) {
$405 = (($re$171$i) + -1)|0;
$406 = $round$070$i * 16.0;
$407 = ($405|0)==(0);
if ($407) {
$$lcssa319 = $406;
break;
} else {
$re$171$i = $405;$round$070$i = $406;
}
}
$408 = HEAP8[$prefix$0$$i>>0]|0;
$409 = ($408<<24>>24)==(45);
if ($409) {
$410 = -$391;
$411 = $410 - $$lcssa319;
$412 = $$lcssa319 + $411;
$413 = -$412;
$$1$i = $413;
break;
} else {
$414 = $391 + $$lcssa319;
$415 = $414 - $$lcssa319;
$$1$i = $415;
break;
}
}
} while(0);
$416 = HEAP32[$e2$i>>2]|0;
$417 = ($416|0)<(0);
$418 = (0 - ($416))|0;
$419 = $417 ? $418 : $416;
$420 = ($419|0)<(0);
$421 = $420 << 31 >> 31;
$422 = (_fmt_u($419,$421,$7)|0);
$423 = ($422|0)==($7|0);
if ($423) {
HEAP8[$8>>0] = 48;
$estr$0$i = $8;
} else {
$estr$0$i = $422;
}
$424 = $416 >> 31;
$425 = $424 & 2;
$426 = (($425) + 43)|0;
$427 = $426&255;
$428 = ((($estr$0$i)) + -1|0);
HEAP8[$428>>0] = $427;
$429 = (($t$0) + 15)|0;
$430 = $429&255;
$431 = ((($estr$0$i)) + -2|0);
HEAP8[$431>>0] = $430;
$notrhs$i = ($p$0|0)<(1);
$432 = $fl$1$ & 8;
$433 = ($432|0)==(0);
$$2$i = $$1$i;$s$0$i = $buf$i;
while(1) {
$434 = (~~(($$2$i)));
$435 = (2802 + ($434)|0);
$436 = HEAP8[$435>>0]|0;
$437 = $436&255;
$438 = $437 | $397;
$439 = $438&255;
$440 = ((($s$0$i)) + 1|0);
HEAP8[$s$0$i>>0] = $439;
$441 = (+($434|0));
$442 = $$2$i - $441;
$443 = $442 * 16.0;
$444 = $440;
$445 = (($444) - ($5))|0;
$446 = ($445|0)==(1);
do {
if ($446) {
$notlhs$i = $443 == 0.0;
$or$cond3$not$i = $notrhs$i & $notlhs$i;
$or$cond$i = $433 & $or$cond3$not$i;
if ($or$cond$i) {
$s$1$i = $440;
break;
}
$447 = ((($s$0$i)) + 2|0);
HEAP8[$440>>0] = 46;
$s$1$i = $447;
} else {
$s$1$i = $440;
}
} while(0);
$448 = $443 != 0.0;
if ($448) {
$$2$i = $443;$s$0$i = $s$1$i;
} else {
$s$1$i$lcssa = $s$1$i;
break;
}
}
$449 = ($p$0|0)!=(0);
$$pre188$i = $s$1$i$lcssa;
$450 = (($11) + ($$pre188$i))|0;
$451 = ($450|0)<($p$0|0);
$or$cond122 = $449 & $451;
$452 = $431;
$453 = (($12) + ($p$0))|0;
$454 = (($453) - ($452))|0;
$455 = (($10) - ($452))|0;
$456 = (($455) + ($$pre188$i))|0;
$l$0$i = $or$cond122 ? $454 : $456;
$457 = (($l$0$i) + ($400))|0;
_pad($f,32,$w$1,$457,$fl$1$);
$458 = HEAP32[$f>>2]|0;
$459 = $458 & 32;
$460 = ($459|0)==(0);
if ($460) {
(___fwritex($prefix$0$$i,$400,$f)|0);
}
$461 = $fl$1$ ^ 65536;
_pad($f,48,$w$1,$457,$461);
$462 = (($$pre188$i) - ($5))|0;
$463 = HEAP32[$f>>2]|0;
$464 = $463 & 32;
$465 = ($464|0)==(0);
if ($465) {
(___fwritex($buf$i,$462,$f)|0);
}
$466 = (($9) - ($452))|0;
$sum = (($462) + ($466))|0;
$467 = (($l$0$i) - ($sum))|0;
_pad($f,48,$467,0,0);
$468 = HEAP32[$f>>2]|0;
$469 = $468 & 32;
$470 = ($469|0)==(0);
if ($470) {
(___fwritex($431,$466,$f)|0);
}
$471 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$457,$471);
$472 = ($457|0)<($w$1|0);
$w$$i = $472 ? $w$1 : $457;
$$0$i = $w$$i;
break;
}
$473 = ($p$0|0)<(0);
$$p$i = $473 ? 6 : $p$0;
if ($392) {
$474 = $391 * 268435456.0;
$475 = HEAP32[$e2$i>>2]|0;
$476 = (($475) + -28)|0;
HEAP32[$e2$i>>2] = $476;
$$3$i = $474;$477 = $476;
} else {
$$pre185$i = HEAP32[$e2$i>>2]|0;
$$3$i = $391;$477 = $$pre185$i;
}
$478 = ($477|0)<(0);
$$33$i = $478 ? $big$i : $13;
$479 = $$33$i;
$$4$i = $$3$i;$z$0$i = $$33$i;
while(1) {
$480 = (~~(($$4$i))>>>0);
HEAP32[$z$0$i>>2] = $480;
$481 = ((($z$0$i)) + 4|0);
$482 = (+($480>>>0));
$483 = $$4$i - $482;
$484 = $483 * 1.0E+9;
$485 = $484 != 0.0;
if ($485) {
$$4$i = $484;$z$0$i = $481;
} else {
$$lcssa303 = $481;
break;
}
}
$$pr$i = HEAP32[$e2$i>>2]|0;
$486 = ($$pr$i|0)>(0);
if ($486) {
$487 = $$pr$i;$a$1149$i = $$33$i;$z$1148$i = $$lcssa303;
while(1) {
$488 = ($487|0)>(29);
$489 = $488 ? 29 : $487;
$d$0141$i = ((($z$1148$i)) + -4|0);
$490 = ($d$0141$i>>>0)<($a$1149$i>>>0);
do {
if ($490) {
$a$2$ph$i = $a$1149$i;
} else {
$carry$0142$i = 0;$d$0143$i = $d$0141$i;
while(1) {
$491 = HEAP32[$d$0143$i>>2]|0;
$492 = (_bitshift64Shl(($491|0),0,($489|0))|0);
$493 = tempRet0;
$494 = (_i64Add(($492|0),($493|0),($carry$0142$i|0),0)|0);
$495 = tempRet0;
$496 = (___uremdi3(($494|0),($495|0),1000000000,0)|0);
$497 = tempRet0;
HEAP32[$d$0143$i>>2] = $496;
$498 = (___udivdi3(($494|0),($495|0),1000000000,0)|0);
$499 = tempRet0;
$d$0$i = ((($d$0143$i)) + -4|0);
$500 = ($d$0$i>>>0)<($a$1149$i>>>0);
if ($500) {
$$lcssa304 = $498;
break;
} else {
$carry$0142$i = $498;$d$0143$i = $d$0$i;
}
}
$501 = ($$lcssa304|0)==(0);
if ($501) {
$a$2$ph$i = $a$1149$i;
break;
}
$502 = ((($a$1149$i)) + -4|0);
HEAP32[$502>>2] = $$lcssa304;
$a$2$ph$i = $502;
}
} while(0);
$z$2$i = $z$1148$i;
while(1) {
$503 = ($z$2$i>>>0)>($a$2$ph$i>>>0);
if (!($503)) {
$z$2$i$lcssa = $z$2$i;
break;
}
$504 = ((($z$2$i)) + -4|0);
$505 = HEAP32[$504>>2]|0;
$506 = ($505|0)==(0);
if ($506) {
$z$2$i = $504;
} else {
$z$2$i$lcssa = $z$2$i;
break;
}
}
$507 = HEAP32[$e2$i>>2]|0;
$508 = (($507) - ($489))|0;
HEAP32[$e2$i>>2] = $508;
$509 = ($508|0)>(0);
if ($509) {
$487 = $508;$a$1149$i = $a$2$ph$i;$z$1148$i = $z$2$i$lcssa;
} else {
$$pr50$i = $508;$a$1$lcssa$i = $a$2$ph$i;$z$1$lcssa$i = $z$2$i$lcssa;
break;
}
}
} else {
$$pr50$i = $$pr$i;$a$1$lcssa$i = $$33$i;$z$1$lcssa$i = $$lcssa303;
}
$510 = ($$pr50$i|0)<(0);
if ($510) {
$511 = (($$p$i) + 25)|0;
$512 = (($511|0) / 9)&-1;
$513 = (($512) + 1)|0;
$514 = ($395|0)==(102);
$516 = $$pr50$i;$a$3136$i = $a$1$lcssa$i;$z$3135$i = $z$1$lcssa$i;
while(1) {
$515 = (0 - ($516))|0;
$517 = ($515|0)>(9);
$518 = $517 ? 9 : $515;
$519 = ($a$3136$i>>>0)<($z$3135$i>>>0);
do {
if ($519) {
$523 = 1 << $518;
$524 = (($523) + -1)|0;
$525 = 1000000000 >>> $518;
$carry3$0130$i = 0;$d$1129$i = $a$3136$i;
while(1) {
$526 = HEAP32[$d$1129$i>>2]|0;
$527 = $526 & $524;
$528 = $526 >>> $518;
$529 = (($528) + ($carry3$0130$i))|0;
HEAP32[$d$1129$i>>2] = $529;
$530 = Math_imul($527, $525)|0;
$531 = ((($d$1129$i)) + 4|0);
$532 = ($531>>>0)<($z$3135$i>>>0);
if ($532) {
$carry3$0130$i = $530;$d$1129$i = $531;
} else {
$$lcssa306 = $530;
break;
}
}
$533 = HEAP32[$a$3136$i>>2]|0;
$534 = ($533|0)==(0);
$535 = ((($a$3136$i)) + 4|0);
$$a$3$i = $534 ? $535 : $a$3136$i;
$536 = ($$lcssa306|0)==(0);
if ($536) {
$$a$3192$i = $$a$3$i;$z$4$i = $z$3135$i;
break;
}
$537 = ((($z$3135$i)) + 4|0);
HEAP32[$z$3135$i>>2] = $$lcssa306;
$$a$3192$i = $$a$3$i;$z$4$i = $537;
} else {
$520 = HEAP32[$a$3136$i>>2]|0;
$521 = ($520|0)==(0);
$522 = ((($a$3136$i)) + 4|0);
$$a$3191$i = $521 ? $522 : $a$3136$i;
$$a$3192$i = $$a$3191$i;$z$4$i = $z$3135$i;
}
} while(0);
$538 = $514 ? $$33$i : $$a$3192$i;
$539 = $z$4$i;
$540 = $538;
$541 = (($539) - ($540))|0;
$542 = $541 >> 2;
$543 = ($542|0)>($513|0);
$544 = (($538) + ($513<<2)|0);
$$z$4$i = $543 ? $544 : $z$4$i;
$545 = HEAP32[$e2$i>>2]|0;
$546 = (($545) + ($518))|0;
HEAP32[$e2$i>>2] = $546;
$547 = ($546|0)<(0);
if ($547) {
$516 = $546;$a$3136$i = $$a$3192$i;$z$3135$i = $$z$4$i;
} else {
$a$3$lcssa$i = $$a$3192$i;$z$3$lcssa$i = $$z$4$i;
break;
}
}
} else {
$a$3$lcssa$i = $a$1$lcssa$i;$z$3$lcssa$i = $z$1$lcssa$i;
}
$548 = ($a$3$lcssa$i>>>0)<($z$3$lcssa$i>>>0);
do {
if ($548) {
$549 = $a$3$lcssa$i;
$550 = (($479) - ($549))|0;
$551 = $550 >> 2;
$552 = ($551*9)|0;
$553 = HEAP32[$a$3$lcssa$i>>2]|0;
$554 = ($553>>>0)<(10);
if ($554) {
$e$1$i = $552;
break;
} else {
$e$0125$i = $552;$i$0124$i = 10;
}
while(1) {
$555 = ($i$0124$i*10)|0;
$556 = (($e$0125$i) + 1)|0;
$557 = ($553>>>0)<($555>>>0);
if ($557) {
$e$1$i = $556;
break;
} else {
$e$0125$i = $556;$i$0124$i = $555;
}
}
} else {
$e$1$i = 0;
}
} while(0);
$558 = ($395|0)!=(102);
$559 = $558 ? $e$1$i : 0;
$560 = (($$p$i) - ($559))|0;
$561 = ($395|0)==(103);
$562 = ($$p$i|0)!=(0);
$563 = $562 & $561;
$$neg55$i = $563 << 31 >> 31;
$564 = (($560) + ($$neg55$i))|0;
$565 = $z$3$lcssa$i;
$566 = (($565) - ($479))|0;
$567 = $566 >> 2;
$568 = ($567*9)|0;
$569 = (($568) + -9)|0;
$570 = ($564|0)<($569|0);
if ($570) {
$571 = ((($$33$i)) + 4|0);
$572 = (($564) + 9216)|0;
$573 = (($572|0) / 9)&-1;
$574 = (($573) + -1024)|0;
$575 = (($571) + ($574<<2)|0);
$576 = (($572|0) % 9)&-1;
$j$0117$i = (($576) + 1)|0;
$577 = ($j$0117$i|0)<(9);
if ($577) {
$i$1118$i = 10;$j$0119$i = $j$0117$i;
while(1) {
$578 = ($i$1118$i*10)|0;
$j$0$i = (($j$0119$i) + 1)|0;
$exitcond$i = ($j$0$i|0)==(9);
if ($exitcond$i) {
$i$1$lcssa$i = $578;
break;
} else {
$i$1118$i = $578;$j$0119$i = $j$0$i;
}
}
} else {
$i$1$lcssa$i = 10;
}
$579 = HEAP32[$575>>2]|0;
$580 = (($579>>>0) % ($i$1$lcssa$i>>>0))&-1;
$581 = ($580|0)==(0);
$582 = ((($575)) + 4|0);
$583 = ($582|0)==($z$3$lcssa$i|0);
$or$cond18$i = $583 & $581;
do {
if ($or$cond18$i) {
$a$8$i = $a$3$lcssa$i;$d$4$i = $575;$e$4$i = $e$1$i;
} else {
$584 = (($579>>>0) / ($i$1$lcssa$i>>>0))&-1;
$585 = $584 & 1;
$586 = ($585|0)==(0);
$$20$i = $586 ? 9007199254740992.0 : 9007199254740994.0;
$587 = (($i$1$lcssa$i|0) / 2)&-1;
$588 = ($580>>>0)<($587>>>0);
if ($588) {
$small$0$i = 0.5;
} else {
$589 = ($580|0)==($587|0);
$or$cond22$i = $583 & $589;
$$36$i = $or$cond22$i ? 1.0 : 1.5;
$small$0$i = $$36$i;
}
$590 = ($pl$0$i|0)==(0);
do {
if ($590) {
$round6$1$i = $$20$i;$small$1$i = $small$0$i;
} else {
$591 = HEAP8[$prefix$0$i>>0]|0;
$592 = ($591<<24>>24)==(45);
if (!($592)) {
$round6$1$i = $$20$i;$small$1$i = $small$0$i;
break;
}
$593 = -$$20$i;
$594 = -$small$0$i;
$round6$1$i = $593;$small$1$i = $594;
}
} while(0);
$595 = (($579) - ($580))|0;
HEAP32[$575>>2] = $595;
$596 = $round6$1$i + $small$1$i;
$597 = $596 != $round6$1$i;
if (!($597)) {
$a$8$i = $a$3$lcssa$i;$d$4$i = $575;$e$4$i = $e$1$i;
break;
}
$598 = (($595) + ($i$1$lcssa$i))|0;
HEAP32[$575>>2] = $598;
$599 = ($598>>>0)>(999999999);
if ($599) {
$a$5111$i = $a$3$lcssa$i;$d$2110$i = $575;
while(1) {
$600 = ((($d$2110$i)) + -4|0);
HEAP32[$d$2110$i>>2] = 0;
$601 = ($600>>>0)<($a$5111$i>>>0);
if ($601) {
$602 = ((($a$5111$i)) + -4|0);
HEAP32[$602>>2] = 0;
$a$6$i = $602;
} else {
$a$6$i = $a$5111$i;
}
$603 = HEAP32[$600>>2]|0;
$604 = (($603) + 1)|0;
HEAP32[$600>>2] = $604;
$605 = ($604>>>0)>(999999999);
if ($605) {
$a$5111$i = $a$6$i;$d$2110$i = $600;
} else {
$a$5$lcssa$i = $a$6$i;$d$2$lcssa$i = $600;
break;
}
}
} else {
$a$5$lcssa$i = $a$3$lcssa$i;$d$2$lcssa$i = $575;
}
$606 = $a$5$lcssa$i;
$607 = (($479) - ($606))|0;
$608 = $607 >> 2;
$609 = ($608*9)|0;
$610 = HEAP32[$a$5$lcssa$i>>2]|0;
$611 = ($610>>>0)<(10);
if ($611) {
$a$8$i = $a$5$lcssa$i;$d$4$i = $d$2$lcssa$i;$e$4$i = $609;
break;
} else {
$e$2106$i = $609;$i$2105$i = 10;
}
while(1) {
$612 = ($i$2105$i*10)|0;
$613 = (($e$2106$i) + 1)|0;
$614 = ($610>>>0)<($612>>>0);
if ($614) {
$a$8$i = $a$5$lcssa$i;$d$4$i = $d$2$lcssa$i;$e$4$i = $613;
break;
} else {
$e$2106$i = $613;$i$2105$i = $612;
}
}
}
} while(0);
$615 = ((($d$4$i)) + 4|0);
$616 = ($z$3$lcssa$i>>>0)>($615>>>0);
$$z$3$i = $616 ? $615 : $z$3$lcssa$i;
$a$9$ph$i = $a$8$i;$e$5$ph$i = $e$4$i;$z$7$ph$i = $$z$3$i;
} else {
$a$9$ph$i = $a$3$lcssa$i;$e$5$ph$i = $e$1$i;$z$7$ph$i = $z$3$lcssa$i;
}
$617 = (0 - ($e$5$ph$i))|0;
$z$7$i = $z$7$ph$i;
while(1) {
$618 = ($z$7$i>>>0)>($a$9$ph$i>>>0);
if (!($618)) {
$$lcssa162$i = 0;$z$7$i$lcssa = $z$7$i;
break;
}
$619 = ((($z$7$i)) + -4|0);
$620 = HEAP32[$619>>2]|0;
$621 = ($620|0)==(0);
if ($621) {
$z$7$i = $619;
} else {
$$lcssa162$i = 1;$z$7$i$lcssa = $z$7$i;
break;
}
}
do {
if ($561) {
$622 = $562&1;
$623 = $622 ^ 1;
$$p$$i = (($623) + ($$p$i))|0;
$624 = ($$p$$i|0)>($e$5$ph$i|0);
$625 = ($e$5$ph$i|0)>(-5);
$or$cond6$i = $624 & $625;
if ($or$cond6$i) {
$626 = (($t$0) + -1)|0;
$$neg56$i = (($$p$$i) + -1)|0;
$627 = (($$neg56$i) - ($e$5$ph$i))|0;
$$013$i = $626;$$210$i = $627;
} else {
$628 = (($t$0) + -2)|0;
$629 = (($$p$$i) + -1)|0;
$$013$i = $628;$$210$i = $629;
}
$630 = $fl$1$ & 8;
$631 = ($630|0)==(0);
if (!($631)) {
$$114$i = $$013$i;$$311$i = $$210$i;$$pre$phi190$iZ2D = $630;
break;
}
do {
if ($$lcssa162$i) {
$632 = ((($z$7$i$lcssa)) + -4|0);
$633 = HEAP32[$632>>2]|0;
$634 = ($633|0)==(0);
if ($634) {
$j$2$i = 9;
break;
}
$635 = (($633>>>0) % 10)&-1;
$636 = ($635|0)==(0);
if ($636) {
$i$3101$i = 10;$j$1102$i = 0;
} else {
$j$2$i = 0;
break;
}
while(1) {
$637 = ($i$3101$i*10)|0;
$638 = (($j$1102$i) + 1)|0;
$639 = (($633>>>0) % ($637>>>0))&-1;
$640 = ($639|0)==(0);
if ($640) {
$i$3101$i = $637;$j$1102$i = $638;
} else {
$j$2$i = $638;
break;
}
}
} else {
$j$2$i = 9;
}
} while(0);
$641 = $$013$i | 32;
$642 = ($641|0)==(102);
$643 = $z$7$i$lcssa;
$644 = (($643) - ($479))|0;
$645 = $644 >> 2;
$646 = ($645*9)|0;
$647 = (($646) + -9)|0;
if ($642) {
$648 = (($647) - ($j$2$i))|0;
$649 = ($648|0)<(0);
$$23$i = $649 ? 0 : $648;
$650 = ($$210$i|0)<($$23$i|0);
$$210$$24$i = $650 ? $$210$i : $$23$i;
$$114$i = $$013$i;$$311$i = $$210$$24$i;$$pre$phi190$iZ2D = 0;
break;
} else {
$651 = (($647) + ($e$5$ph$i))|0;
$652 = (($651) - ($j$2$i))|0;
$653 = ($652|0)<(0);
$$25$i = $653 ? 0 : $652;
$654 = ($$210$i|0)<($$25$i|0);
$$210$$26$i = $654 ? $$210$i : $$25$i;
$$114$i = $$013$i;$$311$i = $$210$$26$i;$$pre$phi190$iZ2D = 0;
break;
}
} else {
$$pre189$i = $fl$1$ & 8;
$$114$i = $t$0;$$311$i = $$p$i;$$pre$phi190$iZ2D = $$pre189$i;
}
} while(0);
$655 = $$311$i | $$pre$phi190$iZ2D;
$656 = ($655|0)!=(0);
$657 = $656&1;
$658 = $$114$i | 32;
$659 = ($658|0)==(102);
if ($659) {
$660 = ($e$5$ph$i|0)>(0);
$661 = $660 ? $e$5$ph$i : 0;
$$pn$i = $661;$estr$2$i = 0;
} else {
$662 = ($e$5$ph$i|0)<(0);
$663 = $662 ? $617 : $e$5$ph$i;
$664 = ($663|0)<(0);
$665 = $664 << 31 >> 31;
$666 = (_fmt_u($663,$665,$7)|0);
$667 = $666;
$668 = (($9) - ($667))|0;
$669 = ($668|0)<(2);
if ($669) {
$estr$195$i = $666;
while(1) {
$670 = ((($estr$195$i)) + -1|0);
HEAP8[$670>>0] = 48;
$671 = $670;
$672 = (($9) - ($671))|0;
$673 = ($672|0)<(2);
if ($673) {
$estr$195$i = $670;
} else {
$estr$1$lcssa$i = $670;
break;
}
}
} else {
$estr$1$lcssa$i = $666;
}
$674 = $e$5$ph$i >> 31;
$675 = $674 & 2;
$676 = (($675) + 43)|0;
$677 = $676&255;
$678 = ((($estr$1$lcssa$i)) + -1|0);
HEAP8[$678>>0] = $677;
$679 = $$114$i&255;
$680 = ((($estr$1$lcssa$i)) + -2|0);
HEAP8[$680>>0] = $679;
$681 = $680;
$682 = (($9) - ($681))|0;
$$pn$i = $682;$estr$2$i = $680;
}
$683 = (($pl$0$i) + 1)|0;
$684 = (($683) + ($$311$i))|0;
$l$1$i = (($684) + ($657))|0;
$685 = (($l$1$i) + ($$pn$i))|0;
_pad($f,32,$w$1,$685,$fl$1$);
$686 = HEAP32[$f>>2]|0;
$687 = $686 & 32;
$688 = ($687|0)==(0);
if ($688) {
(___fwritex($prefix$0$i,$pl$0$i,$f)|0);
}
$689 = $fl$1$ ^ 65536;
_pad($f,48,$w$1,$685,$689);
do {
if ($659) {
$690 = ($a$9$ph$i>>>0)>($$33$i>>>0);
$r$0$a$9$i = $690 ? $$33$i : $a$9$ph$i;
$d$584$i = $r$0$a$9$i;
while(1) {
$691 = HEAP32[$d$584$i>>2]|0;
$692 = (_fmt_u($691,0,$14)|0);
$693 = ($d$584$i|0)==($r$0$a$9$i|0);
do {
if ($693) {
$699 = ($692|0)==($14|0);
if (!($699)) {
$s7$1$i = $692;
break;
}
HEAP8[$16>>0] = 48;
$s7$1$i = $16;
} else {
$694 = ($692>>>0)>($buf$i>>>0);
if (!($694)) {
$s7$1$i = $692;
break;
}
$695 = $692;
$696 = (($695) - ($5))|0;
_memset(($buf$i|0),48,($696|0))|0;
$s7$081$i = $692;
while(1) {
$697 = ((($s7$081$i)) + -1|0);
$698 = ($697>>>0)>($buf$i>>>0);
if ($698) {
$s7$081$i = $697;
} else {
$s7$1$i = $697;
break;
}
}
}
} while(0);
$700 = HEAP32[$f>>2]|0;
$701 = $700 & 32;
$702 = ($701|0)==(0);
if ($702) {
$703 = $s7$1$i;
$704 = (($15) - ($703))|0;
(___fwritex($s7$1$i,$704,$f)|0);
}
$705 = ((($d$584$i)) + 4|0);
$706 = ($705>>>0)>($$33$i>>>0);
if ($706) {
$$lcssa316 = $705;
break;
} else {
$d$584$i = $705;
}
}
$707 = ($655|0)==(0);
do {
if (!($707)) {
$708 = HEAP32[$f>>2]|0;
$709 = $708 & 32;
$710 = ($709|0)==(0);
if (!($710)) {
break;
}
(___fwritex(4762,1,$f)|0);
}
} while(0);
$711 = ($$lcssa316>>>0)<($z$7$i$lcssa>>>0);
$712 = ($$311$i|0)>(0);
$713 = $712 & $711;
if ($713) {
$$41278$i = $$311$i;$d$677$i = $$lcssa316;
while(1) {
$714 = HEAP32[$d$677$i>>2]|0;
$715 = (_fmt_u($714,0,$14)|0);
$716 = ($715>>>0)>($buf$i>>>0);
if ($716) {
$717 = $715;
$718 = (($717) - ($5))|0;
_memset(($buf$i|0),48,($718|0))|0;
$s8$072$i = $715;
while(1) {
$719 = ((($s8$072$i)) + -1|0);
$720 = ($719>>>0)>($buf$i>>>0);
if ($720) {
$s8$072$i = $719;
} else {
$s8$0$lcssa$i = $719;
break;
}
}
} else {
$s8$0$lcssa$i = $715;
}
$721 = HEAP32[$f>>2]|0;
$722 = $721 & 32;
$723 = ($722|0)==(0);
if ($723) {
$724 = ($$41278$i|0)>(9);
$725 = $724 ? 9 : $$41278$i;
(___fwritex($s8$0$lcssa$i,$725,$f)|0);
}
$726 = ((($d$677$i)) + 4|0);
$727 = (($$41278$i) + -9)|0;
$728 = ($726>>>0)<($z$7$i$lcssa>>>0);
$729 = ($$41278$i|0)>(9);
$730 = $729 & $728;
if ($730) {
$$41278$i = $727;$d$677$i = $726;
} else {
$$412$lcssa$i = $727;
break;
}
}
} else {
$$412$lcssa$i = $$311$i;
}
$731 = (($$412$lcssa$i) + 9)|0;
_pad($f,48,$731,9,0);
} else {
$732 = ((($a$9$ph$i)) + 4|0);
$z$7$$i = $$lcssa162$i ? $z$7$i$lcssa : $732;
$733 = ($$311$i|0)>(-1);
if ($733) {
$734 = ($$pre$phi190$iZ2D|0)==(0);
$$589$i = $$311$i;$d$788$i = $a$9$ph$i;
while(1) {
$735 = HEAP32[$d$788$i>>2]|0;
$736 = (_fmt_u($735,0,$14)|0);
$737 = ($736|0)==($14|0);
if ($737) {
HEAP8[$16>>0] = 48;
$s9$0$i = $16;
} else {
$s9$0$i = $736;
}
$738 = ($d$788$i|0)==($a$9$ph$i|0);
do {
if ($738) {
$742 = ((($s9$0$i)) + 1|0);
$743 = HEAP32[$f>>2]|0;
$744 = $743 & 32;
$745 = ($744|0)==(0);
if ($745) {
(___fwritex($s9$0$i,1,$f)|0);
}
$746 = ($$589$i|0)<(1);
$or$cond31$i = $734 & $746;
if ($or$cond31$i) {
$s9$2$i = $742;
break;
}
$747 = HEAP32[$f>>2]|0;
$748 = $747 & 32;
$749 = ($748|0)==(0);
if (!($749)) {
$s9$2$i = $742;
break;
}
(___fwritex(4762,1,$f)|0);
$s9$2$i = $742;
} else {
$739 = ($s9$0$i>>>0)>($buf$i>>>0);
if (!($739)) {
$s9$2$i = $s9$0$i;
break;
}
$scevgep182$i = (($s9$0$i) + ($6)|0);
$scevgep182183$i = $scevgep182$i;
_memset(($buf$i|0),48,($scevgep182183$i|0))|0;
$s9$185$i = $s9$0$i;
while(1) {
$740 = ((($s9$185$i)) + -1|0);
$741 = ($740>>>0)>($buf$i>>>0);
if ($741) {
$s9$185$i = $740;
} else {
$s9$2$i = $740;
break;
}
}
}
} while(0);
$750 = $s9$2$i;
$751 = (($15) - ($750))|0;
$752 = HEAP32[$f>>2]|0;
$753 = $752 & 32;
$754 = ($753|0)==(0);
if ($754) {
$755 = ($$589$i|0)>($751|0);
$756 = $755 ? $751 : $$589$i;
(___fwritex($s9$2$i,$756,$f)|0);
}
$757 = (($$589$i) - ($751))|0;
$758 = ((($d$788$i)) + 4|0);
$759 = ($758>>>0)<($z$7$$i>>>0);
$760 = ($757|0)>(-1);
$761 = $759 & $760;
if ($761) {
$$589$i = $757;$d$788$i = $758;
} else {
$$5$lcssa$i = $757;
break;
}
}
} else {
$$5$lcssa$i = $$311$i;
}
$762 = (($$5$lcssa$i) + 18)|0;
_pad($f,48,$762,18,0);
$763 = HEAP32[$f>>2]|0;
$764 = $763 & 32;
$765 = ($764|0)==(0);
if (!($765)) {
break;
}
$766 = $estr$2$i;
$767 = (($9) - ($766))|0;
(___fwritex($estr$2$i,$767,$f)|0);
}
} while(0);
$768 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$685,$768);
$769 = ($685|0)<($w$1|0);
$w$32$i = $769 ? $w$1 : $685;
$$0$i = $w$32$i;
} else {
$375 = $t$0 & 32;
$376 = ($375|0)!=(0);
$377 = $376 ? 4746 : 4750;
$378 = ($$07$i != $$07$i) | (0.0 != 0.0);
$379 = $376 ? 4754 : 4758;
$pl$1$i = $378 ? 0 : $pl$0$i;
$s1$0$i = $378 ? $379 : $377;
$380 = (($pl$1$i) + 3)|0;
_pad($f,32,$w$1,$380,$176);
$381 = HEAP32[$f>>2]|0;
$382 = $381 & 32;
$383 = ($382|0)==(0);
if ($383) {
(___fwritex($prefix$0$i,$pl$1$i,$f)|0);
$$pre$i = HEAP32[$f>>2]|0;
$385 = $$pre$i;
} else {
$385 = $381;
}
$384 = $385 & 32;
$386 = ($384|0)==(0);
if ($386) {
(___fwritex($s1$0$i,3,$f)|0);
}
$387 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$380,$387);
$388 = ($380|0)<($w$1|0);
$389 = $388 ? $w$1 : $380;
$$0$i = $389;
}
} while(0);
$cnt$0 = $cnt$1;$l$0 = $$0$i;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue L1;
break;
}
default: {
$a$2 = $s$0;$fl$6 = $fl$1$;$p$5 = $p$0;$pl$2 = 0;$prefix$2 = 2818;$z$2 = $1;
}
}
} while(0);
L311: do {
if ((label|0) == 64) {
label = 0;
$207 = $arg;
$208 = $207;
$209 = HEAP32[$208>>2]|0;
$210 = (($207) + 4)|0;
$211 = $210;
$212 = HEAP32[$211>>2]|0;
$213 = $t$1 & 32;
$214 = ($209|0)==(0);
$215 = ($212|0)==(0);
$216 = $214 & $215;
if ($216) {
$a$0 = $1;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 0;$prefix$1 = 2818;
label = 77;
} else {
$$012$i = $1;$218 = $209;$225 = $212;
while(1) {
$217 = $218 & 15;
$219 = (2802 + ($217)|0);
$220 = HEAP8[$219>>0]|0;
$221 = $220&255;
$222 = $221 | $213;
$223 = $222&255;
$224 = ((($$012$i)) + -1|0);
HEAP8[$224>>0] = $223;
$226 = (_bitshift64Lshr(($218|0),($225|0),4)|0);
$227 = tempRet0;
$228 = ($226|0)==(0);
$229 = ($227|0)==(0);
$230 = $228 & $229;
if ($230) {
$$lcssa321 = $224;
break;
} else {
$$012$i = $224;$218 = $226;$225 = $227;
}
}
$231 = $arg;
$232 = $231;
$233 = HEAP32[$232>>2]|0;
$234 = (($231) + 4)|0;
$235 = $234;
$236 = HEAP32[$235>>2]|0;
$237 = ($233|0)==(0);
$238 = ($236|0)==(0);
$239 = $237 & $238;
$240 = $fl$3 & 8;
$241 = ($240|0)==(0);
$or$cond17 = $241 | $239;
if ($or$cond17) {
$a$0 = $$lcssa321;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 0;$prefix$1 = 2818;
label = 77;
} else {
$242 = $t$1 >> 4;
$243 = (2818 + ($242)|0);
$a$0 = $$lcssa321;$fl$4 = $fl$3;$p$2 = $p$1;$pl$1 = 2;$prefix$1 = $243;
label = 77;
}
}
}
else if ((label|0) == 76) {
label = 0;
$289 = (_fmt_u($287,$288,$1)|0);
$a$0 = $289;$fl$4 = $fl$1$;$p$2 = $p$0;$pl$1 = $pl$0;$prefix$1 = $prefix$0;
label = 77;
}
else if ((label|0) == 82) {
label = 0;
$321 = (_memchr($a$1,0,$p$0)|0);
$322 = ($321|0)==(0|0);
$323 = $321;
$324 = $a$1;
$325 = (($323) - ($324))|0;
$326 = (($a$1) + ($p$0)|0);
$z$1 = $322 ? $326 : $321;
$p$3 = $322 ? $p$0 : $325;
$a$2 = $a$1;$fl$6 = $176;$p$5 = $p$3;$pl$2 = 0;$prefix$2 = 2818;$z$2 = $z$1;
}
else if ((label|0) == 86) {
label = 0;
$i$0105 = 0;$l$1104 = 0;$ws$0106 = $798;
while(1) {
$334 = HEAP32[$ws$0106>>2]|0;
$335 = ($334|0)==(0);
if ($335) {
$i$0$lcssa = $i$0105;$l$2 = $l$1104;
break;
}
$336 = (_wctomb($mb,$334)|0);
$337 = ($336|0)<(0);
$338 = (($p$4176) - ($i$0105))|0;
$339 = ($336>>>0)>($338>>>0);
$or$cond20 = $337 | $339;
if ($or$cond20) {
$i$0$lcssa = $i$0105;$l$2 = $336;
break;
}
$340 = ((($ws$0106)) + 4|0);
$341 = (($336) + ($i$0105))|0;
$342 = ($p$4176>>>0)>($341>>>0);
if ($342) {
$i$0105 = $341;$l$1104 = $336;$ws$0106 = $340;
} else {
$i$0$lcssa = $341;$l$2 = $336;
break;
}
}
$343 = ($l$2|0)<(0);
if ($343) {
$$0 = -1;
break L1;
}
_pad($f,32,$w$1,$i$0$lcssa,$fl$1$);
$344 = ($i$0$lcssa|0)==(0);
if ($344) {
$i$0$lcssa178 = 0;
label = 97;
} else {
$i$1116 = 0;$ws$1117 = $798;
while(1) {
$345 = HEAP32[$ws$1117>>2]|0;
$346 = ($345|0)==(0);
if ($346) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
$347 = ((($ws$1117)) + 4|0);
$348 = (_wctomb($mb,$345)|0);
$349 = (($348) + ($i$1116))|0;
$350 = ($349|0)>($i$0$lcssa|0);
if ($350) {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break L311;
}
$351 = HEAP32[$f>>2]|0;
$352 = $351 & 32;
$353 = ($352|0)==(0);
if ($353) {
(___fwritex($mb,$348,$f)|0);
}
$354 = ($349>>>0)<($i$0$lcssa>>>0);
if ($354) {
$i$1116 = $349;$ws$1117 = $347;
} else {
$i$0$lcssa178 = $i$0$lcssa;
label = 97;
break;
}
}
}
}
} while(0);
if ((label|0) == 97) {
label = 0;
$355 = $fl$1$ ^ 8192;
_pad($f,32,$w$1,$i$0$lcssa178,$355);
$356 = ($w$1|0)>($i$0$lcssa178|0);
$357 = $356 ? $w$1 : $i$0$lcssa178;
$cnt$0 = $cnt$1;$l$0 = $357;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
continue;
}
if ((label|0) == 77) {
label = 0;
$290 = ($p$2|0)>(-1);
$291 = $fl$4 & -65537;
$$fl$4 = $290 ? $291 : $fl$4;
$292 = $arg;
$293 = $292;
$294 = HEAP32[$293>>2]|0;
$295 = (($292) + 4)|0;
$296 = $295;
$297 = HEAP32[$296>>2]|0;
$298 = ($294|0)!=(0);
$299 = ($297|0)!=(0);
$300 = $298 | $299;
$301 = ($p$2|0)!=(0);
$or$cond = $301 | $300;
if ($or$cond) {
$302 = $a$0;
$303 = (($2) - ($302))|0;
$304 = $300&1;
$305 = $304 ^ 1;
$306 = (($305) + ($303))|0;
$307 = ($p$2|0)>($306|0);
$p$2$ = $307 ? $p$2 : $306;
$a$2 = $a$0;$fl$6 = $$fl$4;$p$5 = $p$2$;$pl$2 = $pl$1;$prefix$2 = $prefix$1;$z$2 = $1;
} else {
$a$2 = $1;$fl$6 = $$fl$4;$p$5 = 0;$pl$2 = $pl$1;$prefix$2 = $prefix$1;$z$2 = $1;
}
}
$770 = $z$2;
$771 = $a$2;
$772 = (($770) - ($771))|0;
$773 = ($p$5|0)<($772|0);
$$p$5 = $773 ? $772 : $p$5;
$774 = (($pl$2) + ($$p$5))|0;
$775 = ($w$1|0)<($774|0);
$w$2 = $775 ? $774 : $w$1;
_pad($f,32,$w$2,$774,$fl$6);
$776 = HEAP32[$f>>2]|0;
$777 = $776 & 32;
$778 = ($777|0)==(0);
if ($778) {
(___fwritex($prefix$2,$pl$2,$f)|0);
}
$779 = $fl$6 ^ 65536;
_pad($f,48,$w$2,$774,$779);
_pad($f,48,$$p$5,$772,0);
$780 = HEAP32[$f>>2]|0;
$781 = $780 & 32;
$782 = ($781|0)==(0);
if ($782) {
(___fwritex($a$2,$772,$f)|0);
}
$783 = $fl$6 ^ 8192;
_pad($f,32,$w$2,$774,$783);
$cnt$0 = $cnt$1;$l$0 = $w$2;$l10n$0 = $l10n$3;$s$0 = $$lcssa300;
}
L345: do {
if ((label|0) == 244) {
$784 = ($f|0)==(0|0);
if ($784) {
$785 = ($l10n$0$lcssa|0)==(0);
if ($785) {
$$0 = 0;
} else {
$i$291 = 1;
while(1) {
$786 = (($nl_type) + ($i$291<<2)|0);
$787 = HEAP32[$786>>2]|0;
$788 = ($787|0)==(0);
if ($788) {
$i$291$lcssa = $i$291;
break;
}
$790 = (($nl_arg) + ($i$291<<3)|0);
_pop_arg($790,$787,$ap);
$791 = (($i$291) + 1)|0;
$792 = ($791|0)<(10);
if ($792) {
$i$291 = $791;
} else {
$$0 = 1;
break L345;
}
}
$789 = ($i$291$lcssa|0)<(10);
if ($789) {
$i$389 = $i$291$lcssa;
while(1) {
$795 = (($nl_type) + ($i$389<<2)|0);
$796 = HEAP32[$795>>2]|0;
$797 = ($796|0)==(0);
$793 = (($i$389) + 1)|0;
if (!($797)) {
$$0 = -1;
break L345;
}
$794 = ($793|0)<(10);
if ($794) {
$i$389 = $793;
} else {
$$0 = 1;
break;
}
}
} else {
$$0 = 1;
}
}
} else {
$$0 = $cnt$1$lcssa;
}
}
} while(0);
STACKTOP = sp;return ($$0|0);
}
function ___fwritex($s,$l,$f) {
$s = $s|0;
$l = $l|0;
$f = $f|0;
var $$0 = 0, $$01 = 0, $$02 = 0, $$pre = 0, $$pre6 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0;
var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0 = 0, $i$0$lcssa12 = 0;
var $i$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 16|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
if ($2) {
$4 = (___towrite($f)|0);
$5 = ($4|0)==(0);
if ($5) {
$$pre = HEAP32[$0>>2]|0;
$9 = $$pre;
label = 5;
} else {
$$0 = 0;
}
} else {
$3 = $1;
$9 = $3;
label = 5;
}
L5: do {
if ((label|0) == 5) {
$6 = ((($f)) + 20|0);
$7 = HEAP32[$6>>2]|0;
$8 = (($9) - ($7))|0;
$10 = ($8>>>0)<($l>>>0);
$11 = $7;
if ($10) {
$12 = ((($f)) + 36|0);
$13 = HEAP32[$12>>2]|0;
$14 = (FUNCTION_TABLE_iiii[$13 & 31]($f,$s,$l)|0);
$$0 = $14;
break;
}
$15 = ((($f)) + 75|0);
$16 = HEAP8[$15>>0]|0;
$17 = ($16<<24>>24)>(-1);
L10: do {
if ($17) {
$i$0 = $l;
while(1) {
$18 = ($i$0|0)==(0);
if ($18) {
$$01 = $l;$$02 = $s;$29 = $11;$i$1 = 0;
break L10;
}
$19 = (($i$0) + -1)|0;
$20 = (($s) + ($19)|0);
$21 = HEAP8[$20>>0]|0;
$22 = ($21<<24>>24)==(10);
if ($22) {
$i$0$lcssa12 = $i$0;
break;
} else {
$i$0 = $19;
}
}
$23 = ((($f)) + 36|0);
$24 = HEAP32[$23>>2]|0;
$25 = (FUNCTION_TABLE_iiii[$24 & 31]($f,$s,$i$0$lcssa12)|0);
$26 = ($25>>>0)<($i$0$lcssa12>>>0);
if ($26) {
$$0 = $i$0$lcssa12;
break L5;
}
$27 = (($s) + ($i$0$lcssa12)|0);
$28 = (($l) - ($i$0$lcssa12))|0;
$$pre6 = HEAP32[$6>>2]|0;
$$01 = $28;$$02 = $27;$29 = $$pre6;$i$1 = $i$0$lcssa12;
} else {
$$01 = $l;$$02 = $s;$29 = $11;$i$1 = 0;
}
} while(0);
_memcpy(($29|0),($$02|0),($$01|0))|0;
$30 = HEAP32[$6>>2]|0;
$31 = (($30) + ($$01)|0);
HEAP32[$6>>2] = $31;
$32 = (($i$1) + ($$01))|0;
$$0 = $32;
}
} while(0);
return ($$0|0);
}
function ___towrite($f) {
$f = $f|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($f)) + 74|0);
$1 = HEAP8[$0>>0]|0;
$2 = $1 << 24 >> 24;
$3 = (($2) + 255)|0;
$4 = $3 | $2;
$5 = $4&255;
HEAP8[$0>>0] = $5;
$6 = HEAP32[$f>>2]|0;
$7 = $6 & 8;
$8 = ($7|0)==(0);
if ($8) {
$10 = ((($f)) + 8|0);
HEAP32[$10>>2] = 0;
$11 = ((($f)) + 4|0);
HEAP32[$11>>2] = 0;
$12 = ((($f)) + 44|0);
$13 = HEAP32[$12>>2]|0;
$14 = ((($f)) + 28|0);
HEAP32[$14>>2] = $13;
$15 = ((($f)) + 20|0);
HEAP32[$15>>2] = $13;
$16 = $13;
$17 = ((($f)) + 48|0);
$18 = HEAP32[$17>>2]|0;
$19 = (($16) + ($18)|0);
$20 = ((($f)) + 16|0);
HEAP32[$20>>2] = $19;
$$0 = 0;
} else {
$9 = $6 | 32;
HEAP32[$f>>2] = $9;
$$0 = -1;
}
return ($$0|0);
}
function _pop_arg($arg,$type,$ap) {
$arg = $arg|0;
$type = $type|0;
$ap = $ap|0;
var $$mask = 0, $$mask1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0.0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0;
var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0;
var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0;
var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0;
var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0;
var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0;
var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0;
var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0;
var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($type>>>0)>(20);
L1: do {
if (!($0)) {
do {
switch ($type|0) {
case 9: {
$arglist_current = HEAP32[$ap>>2]|0;
$1 = $arglist_current;
$2 = ((0) + 4|0);
$expanded28 = $2;
$expanded = (($expanded28) - 1)|0;
$3 = (($1) + ($expanded))|0;
$4 = ((0) + 4|0);
$expanded32 = $4;
$expanded31 = (($expanded32) - 1)|0;
$expanded30 = $expanded31 ^ -1;
$5 = $3 & $expanded30;
$6 = $5;
$7 = HEAP32[$6>>2]|0;
$arglist_next = ((($6)) + 4|0);
HEAP32[$ap>>2] = $arglist_next;
HEAP32[$arg>>2] = $7;
break L1;
break;
}
case 10: {
$arglist_current2 = HEAP32[$ap>>2]|0;
$8 = $arglist_current2;
$9 = ((0) + 4|0);
$expanded35 = $9;
$expanded34 = (($expanded35) - 1)|0;
$10 = (($8) + ($expanded34))|0;
$11 = ((0) + 4|0);
$expanded39 = $11;
$expanded38 = (($expanded39) - 1)|0;
$expanded37 = $expanded38 ^ -1;
$12 = $10 & $expanded37;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
$arglist_next3 = ((($13)) + 4|0);
HEAP32[$ap>>2] = $arglist_next3;
$15 = ($14|0)<(0);
$16 = $15 << 31 >> 31;
$17 = $arg;
$18 = $17;
HEAP32[$18>>2] = $14;
$19 = (($17) + 4)|0;
$20 = $19;
HEAP32[$20>>2] = $16;
break L1;
break;
}
case 11: {
$arglist_current5 = HEAP32[$ap>>2]|0;
$21 = $arglist_current5;
$22 = ((0) + 4|0);
$expanded42 = $22;
$expanded41 = (($expanded42) - 1)|0;
$23 = (($21) + ($expanded41))|0;
$24 = ((0) + 4|0);
$expanded46 = $24;
$expanded45 = (($expanded46) - 1)|0;
$expanded44 = $expanded45 ^ -1;
$25 = $23 & $expanded44;
$26 = $25;
$27 = HEAP32[$26>>2]|0;
$arglist_next6 = ((($26)) + 4|0);
HEAP32[$ap>>2] = $arglist_next6;
$28 = $arg;
$29 = $28;
HEAP32[$29>>2] = $27;
$30 = (($28) + 4)|0;
$31 = $30;
HEAP32[$31>>2] = 0;
break L1;
break;
}
case 12: {
$arglist_current8 = HEAP32[$ap>>2]|0;
$32 = $arglist_current8;
$33 = ((0) + 8|0);
$expanded49 = $33;
$expanded48 = (($expanded49) - 1)|0;
$34 = (($32) + ($expanded48))|0;
$35 = ((0) + 8|0);
$expanded53 = $35;
$expanded52 = (($expanded53) - 1)|0;
$expanded51 = $expanded52 ^ -1;
$36 = $34 & $expanded51;
$37 = $36;
$38 = $37;
$39 = $38;
$40 = HEAP32[$39>>2]|0;
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
$arglist_next9 = ((($37)) + 8|0);
HEAP32[$ap>>2] = $arglist_next9;
$44 = $arg;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
break L1;
break;
}
case 13: {
$arglist_current11 = HEAP32[$ap>>2]|0;
$48 = $arglist_current11;
$49 = ((0) + 4|0);
$expanded56 = $49;
$expanded55 = (($expanded56) - 1)|0;
$50 = (($48) + ($expanded55))|0;
$51 = ((0) + 4|0);
$expanded60 = $51;
$expanded59 = (($expanded60) - 1)|0;
$expanded58 = $expanded59 ^ -1;
$52 = $50 & $expanded58;
$53 = $52;
$54 = HEAP32[$53>>2]|0;
$arglist_next12 = ((($53)) + 4|0);
HEAP32[$ap>>2] = $arglist_next12;
$55 = $54&65535;
$56 = $55 << 16 >> 16;
$57 = ($56|0)<(0);
$58 = $57 << 31 >> 31;
$59 = $arg;
$60 = $59;
HEAP32[$60>>2] = $56;
$61 = (($59) + 4)|0;
$62 = $61;
HEAP32[$62>>2] = $58;
break L1;
break;
}
case 14: {
$arglist_current14 = HEAP32[$ap>>2]|0;
$63 = $arglist_current14;
$64 = ((0) + 4|0);
$expanded63 = $64;
$expanded62 = (($expanded63) - 1)|0;
$65 = (($63) + ($expanded62))|0;
$66 = ((0) + 4|0);
$expanded67 = $66;
$expanded66 = (($expanded67) - 1)|0;
$expanded65 = $expanded66 ^ -1;
$67 = $65 & $expanded65;
$68 = $67;
$69 = HEAP32[$68>>2]|0;
$arglist_next15 = ((($68)) + 4|0);
HEAP32[$ap>>2] = $arglist_next15;
$$mask1 = $69 & 65535;
$70 = $arg;
$71 = $70;
HEAP32[$71>>2] = $$mask1;
$72 = (($70) + 4)|0;
$73 = $72;
HEAP32[$73>>2] = 0;
break L1;
break;
}
case 15: {
$arglist_current17 = HEAP32[$ap>>2]|0;
$74 = $arglist_current17;
$75 = ((0) + 4|0);
$expanded70 = $75;
$expanded69 = (($expanded70) - 1)|0;
$76 = (($74) + ($expanded69))|0;
$77 = ((0) + 4|0);
$expanded74 = $77;
$expanded73 = (($expanded74) - 1)|0;
$expanded72 = $expanded73 ^ -1;
$78 = $76 & $expanded72;
$79 = $78;
$80 = HEAP32[$79>>2]|0;
$arglist_next18 = ((($79)) + 4|0);
HEAP32[$ap>>2] = $arglist_next18;
$81 = $80&255;
$82 = $81 << 24 >> 24;
$83 = ($82|0)<(0);
$84 = $83 << 31 >> 31;
$85 = $arg;
$86 = $85;
HEAP32[$86>>2] = $82;
$87 = (($85) + 4)|0;
$88 = $87;
HEAP32[$88>>2] = $84;
break L1;
break;
}
case 16: {
$arglist_current20 = HEAP32[$ap>>2]|0;
$89 = $arglist_current20;
$90 = ((0) + 4|0);
$expanded77 = $90;
$expanded76 = (($expanded77) - 1)|0;
$91 = (($89) + ($expanded76))|0;
$92 = ((0) + 4|0);
$expanded81 = $92;
$expanded80 = (($expanded81) - 1)|0;
$expanded79 = $expanded80 ^ -1;
$93 = $91 & $expanded79;
$94 = $93;
$95 = HEAP32[$94>>2]|0;
$arglist_next21 = ((($94)) + 4|0);
HEAP32[$ap>>2] = $arglist_next21;
$$mask = $95 & 255;
$96 = $arg;
$97 = $96;
HEAP32[$97>>2] = $$mask;
$98 = (($96) + 4)|0;
$99 = $98;
HEAP32[$99>>2] = 0;
break L1;
break;
}
case 17: {
$arglist_current23 = HEAP32[$ap>>2]|0;
$100 = $arglist_current23;
$101 = ((0) + 8|0);
$expanded84 = $101;
$expanded83 = (($expanded84) - 1)|0;
$102 = (($100) + ($expanded83))|0;
$103 = ((0) + 8|0);
$expanded88 = $103;
$expanded87 = (($expanded88) - 1)|0;
$expanded86 = $expanded87 ^ -1;
$104 = $102 & $expanded86;
$105 = $104;
$106 = +HEAPF64[$105>>3];
$arglist_next24 = ((($105)) + 8|0);
HEAP32[$ap>>2] = $arglist_next24;
HEAPF64[$arg>>3] = $106;
break L1;
break;
}
case 18: {
$arglist_current26 = HEAP32[$ap>>2]|0;
$107 = $arglist_current26;
$108 = ((0) + 8|0);
$expanded91 = $108;
$expanded90 = (($expanded91) - 1)|0;
$109 = (($107) + ($expanded90))|0;
$110 = ((0) + 8|0);
$expanded95 = $110;
$expanded94 = (($expanded95) - 1)|0;
$expanded93 = $expanded94 ^ -1;
$111 = $109 & $expanded93;
$112 = $111;
$113 = +HEAPF64[$112>>3];
$arglist_next27 = ((($112)) + 8|0);
HEAP32[$ap>>2] = $arglist_next27;
HEAPF64[$arg>>3] = $113;
break L1;
break;
}
default: {
break L1;
}
}
} while(0);
}
} while(0);
return;
}
function _fmt_u($0,$1,$s) {
$0 = $0|0;
$1 = $1|0;
$s = $s|0;
var $$0$lcssa = 0, $$01$lcssa$off0 = 0, $$05 = 0, $$1$lcssa = 0, $$12 = 0, $$lcssa19 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0;
var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0, label = 0, sp = 0;
sp = STACKTOP;
$2 = ($1>>>0)>(0);
$3 = ($0>>>0)>(4294967295);
$4 = ($1|0)==(0);
$5 = $4 & $3;
$6 = $2 | $5;
if ($6) {
$$05 = $s;$7 = $0;$8 = $1;
while(1) {
$9 = (___uremdi3(($7|0),($8|0),10,0)|0);
$10 = tempRet0;
$11 = $9 | 48;
$12 = $11&255;
$13 = ((($$05)) + -1|0);
HEAP8[$13>>0] = $12;
$14 = (___udivdi3(($7|0),($8|0),10,0)|0);
$15 = tempRet0;
$16 = ($8>>>0)>(9);
$17 = ($7>>>0)>(4294967295);
$18 = ($8|0)==(9);
$19 = $18 & $17;
$20 = $16 | $19;
if ($20) {
$$05 = $13;$7 = $14;$8 = $15;
} else {
$$lcssa19 = $13;$28 = $14;$29 = $15;
break;
}
}
$$0$lcssa = $$lcssa19;$$01$lcssa$off0 = $28;
} else {
$$0$lcssa = $s;$$01$lcssa$off0 = $0;
}
$21 = ($$01$lcssa$off0|0)==(0);
if ($21) {
$$1$lcssa = $$0$lcssa;
} else {
$$12 = $$0$lcssa;$y$03 = $$01$lcssa$off0;
while(1) {
$22 = (($y$03>>>0) % 10)&-1;
$23 = $22 | 48;
$24 = $23&255;
$25 = ((($$12)) + -1|0);
HEAP8[$25>>0] = $24;
$26 = (($y$03>>>0) / 10)&-1;
$27 = ($y$03>>>0)<(10);
if ($27) {
$$1$lcssa = $25;
break;
} else {
$$12 = $25;$y$03 = $26;
}
}
}
return ($$1$lcssa|0);
}
function _strerror($e) {
$e = $e|0;
var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$03 = 0, $i$03$lcssa = 0, $i$12 = 0, $s$0$lcssa = 0, $s$01 = 0, $s$1 = 0, label = 0;
var sp = 0;
sp = STACKTOP;
$i$03 = 0;
while(1) {
$1 = (2828 + ($i$03)|0);
$2 = HEAP8[$1>>0]|0;
$3 = $2&255;
$4 = ($3|0)==($e|0);
if ($4) {
$i$03$lcssa = $i$03;
label = 2;
break;
}
$5 = (($i$03) + 1)|0;
$6 = ($5|0)==(87);
if ($6) {
$i$12 = 87;$s$01 = 2916;
label = 5;
break;
} else {
$i$03 = $5;
}
}
if ((label|0) == 2) {
$0 = ($i$03$lcssa|0)==(0);
if ($0) {
$s$0$lcssa = 2916;
} else {
$i$12 = $i$03$lcssa;$s$01 = 2916;
label = 5;
}
}
if ((label|0) == 5) {
while(1) {
label = 0;
$s$1 = $s$01;
while(1) {
$7 = HEAP8[$s$1>>0]|0;
$8 = ($7<<24>>24)==(0);
$9 = ((($s$1)) + 1|0);
if ($8) {
$$lcssa = $9;
break;
} else {
$s$1 = $9;
}
}
$10 = (($i$12) + -1)|0;
$11 = ($10|0)==(0);
if ($11) {
$s$0$lcssa = $$lcssa;
break;
} else {
$i$12 = $10;$s$01 = $$lcssa;
label = 5;
}
}
}
return ($s$0$lcssa|0);
}
function _pad($f,$c,$w,$l,$fl) {
$f = $f|0;
$c = $c|0;
$w = $w|0;
$l = $l|0;
$fl = $fl|0;
var $$0$lcssa6 = 0, $$02 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $or$cond = 0, $pad = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$pad = sp;
$0 = $fl & 73728;
$1 = ($0|0)==(0);
$2 = ($w|0)>($l|0);
$or$cond = $2 & $1;
do {
if ($or$cond) {
$3 = (($w) - ($l))|0;
$4 = ($3>>>0)>(256);
$5 = $4 ? 256 : $3;
_memset(($pad|0),($c|0),($5|0))|0;
$6 = ($3>>>0)>(255);
$7 = HEAP32[$f>>2]|0;
$8 = $7 & 32;
$9 = ($8|0)==(0);
if ($6) {
$10 = (($w) - ($l))|0;
$$02 = $3;$17 = $7;$18 = $9;
while(1) {
if ($18) {
(___fwritex($pad,256,$f)|0);
$$pre = HEAP32[$f>>2]|0;
$14 = $$pre;
} else {
$14 = $17;
}
$11 = (($$02) + -256)|0;
$12 = ($11>>>0)>(255);
$13 = $14 & 32;
$15 = ($13|0)==(0);
if ($12) {
$$02 = $11;$17 = $14;$18 = $15;
} else {
break;
}
}
$16 = $10 & 255;
if ($15) {
$$0$lcssa6 = $16;
} else {
break;
}
} else {
if ($9) {
$$0$lcssa6 = $3;
} else {
break;
}
}
(___fwritex($pad,$$0$lcssa6,$f)|0);
}
} while(0);
STACKTOP = sp;return;
}
function _wctomb($s,$wc) {
$s = $s|0;
$wc = $wc|0;
var $$0 = 0, $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($s|0)==(0|0);
if ($0) {
$$0 = 0;
} else {
$1 = (_wcrtomb($s,$wc,0)|0);
$$0 = $1;
}
return ($$0|0);
}
function _wcrtomb($s,$wc,$st) {
$s = $s|0;
$wc = $wc|0;
$st = $st|0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0;
var $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($s|0)==(0|0);
do {
if ($0) {
$$0 = 1;
} else {
$1 = ($wc>>>0)<(128);
if ($1) {
$2 = $wc&255;
HEAP8[$s>>0] = $2;
$$0 = 1;
break;
}
$3 = ($wc>>>0)<(2048);
if ($3) {
$4 = $wc >>> 6;
$5 = $4 | 192;
$6 = $5&255;
$7 = ((($s)) + 1|0);
HEAP8[$s>>0] = $6;
$8 = $wc & 63;
$9 = $8 | 128;
$10 = $9&255;
HEAP8[$7>>0] = $10;
$$0 = 2;
break;
}
$11 = ($wc>>>0)<(55296);
$12 = $wc & -8192;
$13 = ($12|0)==(57344);
$or$cond = $11 | $13;
if ($or$cond) {
$14 = $wc >>> 12;
$15 = $14 | 224;
$16 = $15&255;
$17 = ((($s)) + 1|0);
HEAP8[$s>>0] = $16;
$18 = $wc >>> 6;
$19 = $18 & 63;
$20 = $19 | 128;
$21 = $20&255;
$22 = ((($s)) + 2|0);
HEAP8[$17>>0] = $21;
$23 = $wc & 63;
$24 = $23 | 128;
$25 = $24&255;
HEAP8[$22>>0] = $25;
$$0 = 3;
break;
}
$26 = (($wc) + -65536)|0;
$27 = ($26>>>0)<(1048576);
if ($27) {
$28 = $wc >>> 18;
$29 = $28 | 240;
$30 = $29&255;
$31 = ((($s)) + 1|0);
HEAP8[$s>>0] = $30;
$32 = $wc >>> 12;
$33 = $32 & 63;
$34 = $33 | 128;
$35 = $34&255;
$36 = ((($s)) + 2|0);
HEAP8[$31>>0] = $35;
$37 = $wc >>> 6;
$38 = $37 & 63;
$39 = $38 | 128;
$40 = $39&255;
$41 = ((($s)) + 3|0);
HEAP8[$36>>0] = $40;
$42 = $wc & 63;
$43 = $42 | 128;
$44 = $43&255;
HEAP8[$41>>0] = $44;
$$0 = 4;
break;
} else {
$45 = (___errno_location()|0);
HEAP32[$45>>2] = 84;
$$0 = -1;
break;
}
}
} while(0);
return ($$0|0);
}
function _frexpl($x,$e) {
$x = +$x;
$e = $e|0;
var $0 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (+_frexp($x,$e));
return (+$0);
}
function _frexp($x,$e) {
$x = +$x;
$e = $e|0;
var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $storemerge = 0, label = 0, sp = 0;
sp = STACKTOP;
HEAPF64[tempDoublePtr>>3] = $x;$0 = HEAP32[tempDoublePtr>>2]|0;
$1 = HEAP32[tempDoublePtr+4>>2]|0;
$2 = (_bitshift64Lshr(($0|0),($1|0),52)|0);
$3 = tempRet0;
$4 = $2 & 2047;
switch ($4|0) {
case 0: {
$5 = $x != 0.0;
if ($5) {
$6 = $x * 1.8446744073709552E+19;
$7 = (+_frexp($6,$e));
$8 = HEAP32[$e>>2]|0;
$9 = (($8) + -64)|0;
$$01 = $7;$storemerge = $9;
} else {
$$01 = $x;$storemerge = 0;
}
HEAP32[$e>>2] = $storemerge;
$$0 = $$01;
break;
}
case 2047: {
$$0 = $x;
break;
}
default: {
$10 = (($4) + -1022)|0;
HEAP32[$e>>2] = $10;
$11 = $1 & -2146435073;
$12 = $11 | 1071644672;
HEAP32[tempDoublePtr>>2] = $0;HEAP32[tempDoublePtr+4>>2] = $12;$13 = +HEAPF64[tempDoublePtr>>3];
$$0 = $13;
}
}
return (+$$0);
}
function ___lockfile($f) {
$f = $f|0;
var label = 0, sp = 0;
sp = STACKTOP;
return 0;
}
function _strlen($s) {
$s = $s|0;
var $$0 = 0, $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn15 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0;
var $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = $s;
$1 = $0 & 3;
$2 = ($1|0)==(0);
L1: do {
if ($2) {
$$01$lcssa = $s;
label = 4;
} else {
$$014 = $s;$21 = $0;
while(1) {
$3 = HEAP8[$$014>>0]|0;
$4 = ($3<<24>>24)==(0);
if ($4) {
$$pn = $21;
break L1;
}
$5 = ((($$014)) + 1|0);
$6 = $5;
$7 = $6 & 3;
$8 = ($7|0)==(0);
if ($8) {
$$01$lcssa = $5;
label = 4;
break;
} else {
$$014 = $5;$21 = $6;
}
}
}
} while(0);
if ((label|0) == 4) {
$w$0 = $$01$lcssa;
while(1) {
$9 = HEAP32[$w$0>>2]|0;
$10 = (($9) + -16843009)|0;
$11 = $9 & -2139062144;
$12 = $11 ^ -2139062144;
$13 = $12 & $10;
$14 = ($13|0)==(0);
$15 = ((($w$0)) + 4|0);
if ($14) {
$w$0 = $15;
} else {
$$lcssa20 = $9;$w$0$lcssa = $w$0;
break;
}
}
$16 = $$lcssa20&255;
$17 = ($16<<24>>24)==(0);
if ($17) {
$$1$lcssa = $w$0$lcssa;
} else {
$$pn15 = $w$0$lcssa;
while(1) {
$18 = ((($$pn15)) + 1|0);
$$pre = HEAP8[$18>>0]|0;
$19 = ($$pre<<24>>24)==(0);
if ($19) {
$$1$lcssa = $18;
break;
} else {
$$pn15 = $18;
}
}
}
$20 = $$1$lcssa;
$$pn = $20;
}
$$0 = (($$pn) - ($0))|0;
return ($$0|0);
}
function ___strdup($s) {
$s = $s|0;
var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = (_strlen($s)|0);
$1 = (($0) + 1)|0;
$2 = (_malloc($1)|0);
$3 = ($2|0)==(0|0);
if ($3) {
$$0 = 0;
} else {
_memcpy(($2|0),($s|0),($1|0))|0;
$$0 = $2;
}
return ($$0|0);
}
function _printf($fmt,$varargs) {
$fmt = $fmt|0;
$varargs = $varargs|0;
var $0 = 0, $1 = 0, $ap = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$ap = sp;
HEAP32[$ap>>2] = $varargs;
$0 = HEAP32[116]|0;
$1 = (_vfprintf($0,$fmt,$ap)|0);
STACKTOP = sp;return ($1|0);
}
function _malloc($bytes) {
$bytes = $bytes|0;
var $$0 = 0, $$lcssa = 0, $$lcssa141 = 0, $$lcssa142 = 0, $$lcssa144 = 0, $$lcssa147 = 0, $$lcssa149 = 0, $$lcssa151 = 0, $$lcssa153 = 0, $$lcssa155 = 0, $$lcssa157 = 0, $$not$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i13 = 0, $$pre$i16$i = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i14Z2D = 0, $$pre$phi$i17$iZ2D = 0;
var $$pre$phi$iZ2D = 0, $$pre$phi10$i$iZ2D = 0, $$pre$phiZ2D = 0, $$pre71 = 0, $$pre9$i$i = 0, $$rsize$0$i = 0, $$rsize$4$i = 0, $$v$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0;
var $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0;
var $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0;
var $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $107 = 0, $108 = 0;
var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0;
var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0;
var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0;
var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0;
var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0;
var $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0;
var $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0;
var $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0;
var $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0;
var $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0;
var $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0;
var $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0;
var $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0;
var $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0;
var $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0;
var $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0;
var $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0;
var $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0;
var $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0;
var $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0;
var $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0;
var $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0;
var $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0;
var $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0;
var $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0;
var $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0;
var $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0;
var $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0;
var $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0;
var $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0;
var $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0;
var $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0;
var $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0;
var $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0;
var $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0;
var $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0;
var $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0;
var $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0;
var $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0;
var $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0;
var $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0;
var $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0;
var $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0;
var $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0;
var $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0;
var $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0;
var $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0;
var $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0;
var $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0;
var $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0, $K12$0$i = 0, $K2$0$i$i = 0, $K8$0$i$i = 0, $R$1$i = 0;
var $R$1$i$i = 0, $R$1$i$i$lcssa = 0, $R$1$i$lcssa = 0, $R$1$i9 = 0, $R$1$i9$lcssa = 0, $R$3$i = 0, $R$3$i$i = 0, $R$3$i11 = 0, $RP$1$i = 0, $RP$1$i$i = 0, $RP$1$i$i$lcssa = 0, $RP$1$i$lcssa = 0, $RP$1$i8 = 0, $RP$1$i8$lcssa = 0, $T$0$i = 0, $T$0$i$i = 0, $T$0$i$i$lcssa = 0, $T$0$i$i$lcssa140 = 0, $T$0$i$lcssa = 0, $T$0$i$lcssa156 = 0;
var $T$0$i18$i = 0, $T$0$i18$i$lcssa = 0, $T$0$i18$i$lcssa139 = 0, $br$2$ph$i = 0, $cond$i = 0, $cond$i$i = 0, $cond$i12 = 0, $exitcond$i$i = 0, $i$01$i$i = 0, $idx$0$i = 0, $magic$i$i = 0, $nb$0 = 0, $not$$i$i = 0, $not$$i20$i = 0, $not$7$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0, $or$cond$i17 = 0, $or$cond1$i = 0, $or$cond1$i16 = 0;
var $or$cond10$i = 0, $or$cond11$i = 0, $or$cond2$i = 0, $or$cond48$i = 0, $or$cond5$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $p$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i5 = 0, $rsize$1$i = 0, $rsize$3$i = 0, $rsize$4$lcssa$i = 0, $rsize$412$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$$i = 0, $sizebits$0$i = 0;
var $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$068$i = 0, $sp$068$i$lcssa = 0, $sp$167$i = 0, $sp$167$i$lcssa = 0, $ssize$0$i = 0, $ssize$2$ph$i = 0, $ssize$5$i = 0, $t$0$i = 0, $t$0$i4 = 0, $t$2$i = 0, $t$4$ph$i = 0, $t$4$v$4$i = 0, $t$411$i = 0, $tbase$746$i = 0, $tsize$745$i = 0, $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i6 = 0;
var $v$1$i = 0, $v$3$i = 0, $v$4$lcssa$i = 0, $v$413$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$magic$i$i = sp;
$0 = ($bytes>>>0)<(245);
do {
if ($0) {
$1 = ($bytes>>>0)<(11);
$2 = (($bytes) + 11)|0;
$3 = $2 & -8;
$4 = $1 ? 16 : $3;
$5 = $4 >>> 3;
$6 = HEAP32[1278]|0;
$7 = $6 >>> $5;
$8 = $7 & 3;
$9 = ($8|0)==(0);
if (!($9)) {
$10 = $7 & 1;
$11 = $10 ^ 1;
$12 = (($11) + ($5))|0;
$13 = $12 << 1;
$14 = (5152 + ($13<<2)|0);
$15 = ((($14)) + 8|0);
$16 = HEAP32[$15>>2]|0;
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ($14|0)==($18|0);
do {
if ($19) {
$20 = 1 << $12;
$21 = $20 ^ -1;
$22 = $6 & $21;
HEAP32[1278] = $22;
} else {
$23 = HEAP32[(5128)>>2]|0;
$24 = ($18>>>0)<($23>>>0);
if ($24) {
_abort();
// unreachable;
}
$25 = ((($18)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = ($26|0)==($16|0);
if ($27) {
HEAP32[$25>>2] = $14;
HEAP32[$15>>2] = $18;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$28 = $12 << 3;
$29 = $28 | 3;
$30 = ((($16)) + 4|0);
HEAP32[$30>>2] = $29;
$31 = (($16) + ($28)|0);
$32 = ((($31)) + 4|0);
$33 = HEAP32[$32>>2]|0;
$34 = $33 | 1;
HEAP32[$32>>2] = $34;
$$0 = $17;
STACKTOP = sp;return ($$0|0);
}
$35 = HEAP32[(5120)>>2]|0;
$36 = ($4>>>0)>($35>>>0);
if ($36) {
$37 = ($7|0)==(0);
if (!($37)) {
$38 = $7 << $5;
$39 = 2 << $5;
$40 = (0 - ($39))|0;
$41 = $39 | $40;
$42 = $38 & $41;
$43 = (0 - ($42))|0;
$44 = $42 & $43;
$45 = (($44) + -1)|0;
$46 = $45 >>> 12;
$47 = $46 & 16;
$48 = $45 >>> $47;
$49 = $48 >>> 5;
$50 = $49 & 8;
$51 = $50 | $47;
$52 = $48 >>> $50;
$53 = $52 >>> 2;
$54 = $53 & 4;
$55 = $51 | $54;
$56 = $52 >>> $54;
$57 = $56 >>> 1;
$58 = $57 & 2;
$59 = $55 | $58;
$60 = $56 >>> $58;
$61 = $60 >>> 1;
$62 = $61 & 1;
$63 = $59 | $62;
$64 = $60 >>> $62;
$65 = (($63) + ($64))|0;
$66 = $65 << 1;
$67 = (5152 + ($66<<2)|0);
$68 = ((($67)) + 8|0);
$69 = HEAP32[$68>>2]|0;
$70 = ((($69)) + 8|0);
$71 = HEAP32[$70>>2]|0;
$72 = ($67|0)==($71|0);
do {
if ($72) {
$73 = 1 << $65;
$74 = $73 ^ -1;
$75 = $6 & $74;
HEAP32[1278] = $75;
$89 = $35;
} else {
$76 = HEAP32[(5128)>>2]|0;
$77 = ($71>>>0)<($76>>>0);
if ($77) {
_abort();
// unreachable;
}
$78 = ((($71)) + 12|0);
$79 = HEAP32[$78>>2]|0;
$80 = ($79|0)==($69|0);
if ($80) {
HEAP32[$78>>2] = $67;
HEAP32[$68>>2] = $71;
$$pre = HEAP32[(5120)>>2]|0;
$89 = $$pre;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$81 = $65 << 3;
$82 = (($81) - ($4))|0;
$83 = $4 | 3;
$84 = ((($69)) + 4|0);
HEAP32[$84>>2] = $83;
$85 = (($69) + ($4)|0);
$86 = $82 | 1;
$87 = ((($85)) + 4|0);
HEAP32[$87>>2] = $86;
$88 = (($85) + ($82)|0);
HEAP32[$88>>2] = $82;
$90 = ($89|0)==(0);
if (!($90)) {
$91 = HEAP32[(5132)>>2]|0;
$92 = $89 >>> 3;
$93 = $92 << 1;
$94 = (5152 + ($93<<2)|0);
$95 = HEAP32[1278]|0;
$96 = 1 << $92;
$97 = $95 & $96;
$98 = ($97|0)==(0);
if ($98) {
$99 = $95 | $96;
HEAP32[1278] = $99;
$$pre71 = ((($94)) + 8|0);
$$pre$phiZ2D = $$pre71;$F4$0 = $94;
} else {
$100 = ((($94)) + 8|0);
$101 = HEAP32[$100>>2]|0;
$102 = HEAP32[(5128)>>2]|0;
$103 = ($101>>>0)<($102>>>0);
if ($103) {
_abort();
// unreachable;
} else {
$$pre$phiZ2D = $100;$F4$0 = $101;
}
}
HEAP32[$$pre$phiZ2D>>2] = $91;
$104 = ((($F4$0)) + 12|0);
HEAP32[$104>>2] = $91;
$105 = ((($91)) + 8|0);
HEAP32[$105>>2] = $F4$0;
$106 = ((($91)) + 12|0);
HEAP32[$106>>2] = $94;
}
HEAP32[(5120)>>2] = $82;
HEAP32[(5132)>>2] = $85;
$$0 = $70;
STACKTOP = sp;return ($$0|0);
}
$107 = HEAP32[(5116)>>2]|0;
$108 = ($107|0)==(0);
if ($108) {
$nb$0 = $4;
} else {
$109 = (0 - ($107))|0;
$110 = $107 & $109;
$111 = (($110) + -1)|0;
$112 = $111 >>> 12;
$113 = $112 & 16;
$114 = $111 >>> $113;
$115 = $114 >>> 5;
$116 = $115 & 8;
$117 = $116 | $113;
$118 = $114 >>> $116;
$119 = $118 >>> 2;
$120 = $119 & 4;
$121 = $117 | $120;
$122 = $118 >>> $120;
$123 = $122 >>> 1;
$124 = $123 & 2;
$125 = $121 | $124;
$126 = $122 >>> $124;
$127 = $126 >>> 1;
$128 = $127 & 1;
$129 = $125 | $128;
$130 = $126 >>> $128;
$131 = (($129) + ($130))|0;
$132 = (5416 + ($131<<2)|0);
$133 = HEAP32[$132>>2]|0;
$134 = ((($133)) + 4|0);
$135 = HEAP32[$134>>2]|0;
$136 = $135 & -8;
$137 = (($136) - ($4))|0;
$rsize$0$i = $137;$t$0$i = $133;$v$0$i = $133;
while(1) {
$138 = ((($t$0$i)) + 16|0);
$139 = HEAP32[$138>>2]|0;
$140 = ($139|0)==(0|0);
if ($140) {
$141 = ((($t$0$i)) + 20|0);
$142 = HEAP32[$141>>2]|0;
$143 = ($142|0)==(0|0);
if ($143) {
$rsize$0$i$lcssa = $rsize$0$i;$v$0$i$lcssa = $v$0$i;
break;
} else {
$145 = $142;
}
} else {
$145 = $139;
}
$144 = ((($145)) + 4|0);
$146 = HEAP32[$144>>2]|0;
$147 = $146 & -8;
$148 = (($147) - ($4))|0;
$149 = ($148>>>0)<($rsize$0$i>>>0);
$$rsize$0$i = $149 ? $148 : $rsize$0$i;
$$v$0$i = $149 ? $145 : $v$0$i;
$rsize$0$i = $$rsize$0$i;$t$0$i = $145;$v$0$i = $$v$0$i;
}
$150 = HEAP32[(5128)>>2]|0;
$151 = ($v$0$i$lcssa>>>0)<($150>>>0);
if ($151) {
_abort();
// unreachable;
}
$152 = (($v$0$i$lcssa) + ($4)|0);
$153 = ($v$0$i$lcssa>>>0)<($152>>>0);
if (!($153)) {
_abort();
// unreachable;
}
$154 = ((($v$0$i$lcssa)) + 24|0);
$155 = HEAP32[$154>>2]|0;
$156 = ((($v$0$i$lcssa)) + 12|0);
$157 = HEAP32[$156>>2]|0;
$158 = ($157|0)==($v$0$i$lcssa|0);
do {
if ($158) {
$168 = ((($v$0$i$lcssa)) + 20|0);
$169 = HEAP32[$168>>2]|0;
$170 = ($169|0)==(0|0);
if ($170) {
$171 = ((($v$0$i$lcssa)) + 16|0);
$172 = HEAP32[$171>>2]|0;
$173 = ($172|0)==(0|0);
if ($173) {
$R$3$i = 0;
break;
} else {
$R$1$i = $172;$RP$1$i = $171;
}
} else {
$R$1$i = $169;$RP$1$i = $168;
}
while(1) {
$174 = ((($R$1$i)) + 20|0);
$175 = HEAP32[$174>>2]|0;
$176 = ($175|0)==(0|0);
if (!($176)) {
$R$1$i = $175;$RP$1$i = $174;
continue;
}
$177 = ((($R$1$i)) + 16|0);
$178 = HEAP32[$177>>2]|0;
$179 = ($178|0)==(0|0);
if ($179) {
$R$1$i$lcssa = $R$1$i;$RP$1$i$lcssa = $RP$1$i;
break;
} else {
$R$1$i = $178;$RP$1$i = $177;
}
}
$180 = ($RP$1$i$lcssa>>>0)<($150>>>0);
if ($180) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i$lcssa>>2] = 0;
$R$3$i = $R$1$i$lcssa;
break;
}
} else {
$159 = ((($v$0$i$lcssa)) + 8|0);
$160 = HEAP32[$159>>2]|0;
$161 = ($160>>>0)<($150>>>0);
if ($161) {
_abort();
// unreachable;
}
$162 = ((($160)) + 12|0);
$163 = HEAP32[$162>>2]|0;
$164 = ($163|0)==($v$0$i$lcssa|0);
if (!($164)) {
_abort();
// unreachable;
}
$165 = ((($157)) + 8|0);
$166 = HEAP32[$165>>2]|0;
$167 = ($166|0)==($v$0$i$lcssa|0);
if ($167) {
HEAP32[$162>>2] = $157;
HEAP32[$165>>2] = $160;
$R$3$i = $157;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$181 = ($155|0)==(0|0);
do {
if (!($181)) {
$182 = ((($v$0$i$lcssa)) + 28|0);
$183 = HEAP32[$182>>2]|0;
$184 = (5416 + ($183<<2)|0);
$185 = HEAP32[$184>>2]|0;
$186 = ($v$0$i$lcssa|0)==($185|0);
if ($186) {
HEAP32[$184>>2] = $R$3$i;
$cond$i = ($R$3$i|0)==(0|0);
if ($cond$i) {
$187 = 1 << $183;
$188 = $187 ^ -1;
$189 = HEAP32[(5116)>>2]|0;
$190 = $189 & $188;
HEAP32[(5116)>>2] = $190;
break;
}
} else {
$191 = HEAP32[(5128)>>2]|0;
$192 = ($155>>>0)<($191>>>0);
if ($192) {
_abort();
// unreachable;
}
$193 = ((($155)) + 16|0);
$194 = HEAP32[$193>>2]|0;
$195 = ($194|0)==($v$0$i$lcssa|0);
if ($195) {
HEAP32[$193>>2] = $R$3$i;
} else {
$196 = ((($155)) + 20|0);
HEAP32[$196>>2] = $R$3$i;
}
$197 = ($R$3$i|0)==(0|0);
if ($197) {
break;
}
}
$198 = HEAP32[(5128)>>2]|0;
$199 = ($R$3$i>>>0)<($198>>>0);
if ($199) {
_abort();
// unreachable;
}
$200 = ((($R$3$i)) + 24|0);
HEAP32[$200>>2] = $155;
$201 = ((($v$0$i$lcssa)) + 16|0);
$202 = HEAP32[$201>>2]|0;
$203 = ($202|0)==(0|0);
do {
if (!($203)) {
$204 = ($202>>>0)<($198>>>0);
if ($204) {
_abort();
// unreachable;
} else {
$205 = ((($R$3$i)) + 16|0);
HEAP32[$205>>2] = $202;
$206 = ((($202)) + 24|0);
HEAP32[$206>>2] = $R$3$i;
break;
}
}
} while(0);
$207 = ((($v$0$i$lcssa)) + 20|0);
$208 = HEAP32[$207>>2]|0;
$209 = ($208|0)==(0|0);
if (!($209)) {
$210 = HEAP32[(5128)>>2]|0;
$211 = ($208>>>0)<($210>>>0);
if ($211) {
_abort();
// unreachable;
} else {
$212 = ((($R$3$i)) + 20|0);
HEAP32[$212>>2] = $208;
$213 = ((($208)) + 24|0);
HEAP32[$213>>2] = $R$3$i;
break;
}
}
}
} while(0);
$214 = ($rsize$0$i$lcssa>>>0)<(16);
if ($214) {
$215 = (($rsize$0$i$lcssa) + ($4))|0;
$216 = $215 | 3;
$217 = ((($v$0$i$lcssa)) + 4|0);
HEAP32[$217>>2] = $216;
$218 = (($v$0$i$lcssa) + ($215)|0);
$219 = ((($218)) + 4|0);
$220 = HEAP32[$219>>2]|0;
$221 = $220 | 1;
HEAP32[$219>>2] = $221;
} else {
$222 = $4 | 3;
$223 = ((($v$0$i$lcssa)) + 4|0);
HEAP32[$223>>2] = $222;
$224 = $rsize$0$i$lcssa | 1;
$225 = ((($152)) + 4|0);
HEAP32[$225>>2] = $224;
$226 = (($152) + ($rsize$0$i$lcssa)|0);
HEAP32[$226>>2] = $rsize$0$i$lcssa;
$227 = HEAP32[(5120)>>2]|0;
$228 = ($227|0)==(0);
if (!($228)) {
$229 = HEAP32[(5132)>>2]|0;
$230 = $227 >>> 3;
$231 = $230 << 1;
$232 = (5152 + ($231<<2)|0);
$233 = HEAP32[1278]|0;
$234 = 1 << $230;
$235 = $233 & $234;
$236 = ($235|0)==(0);
if ($236) {
$237 = $233 | $234;
HEAP32[1278] = $237;
$$pre$i = ((($232)) + 8|0);
$$pre$phi$iZ2D = $$pre$i;$F1$0$i = $232;
} else {
$238 = ((($232)) + 8|0);
$239 = HEAP32[$238>>2]|0;
$240 = HEAP32[(5128)>>2]|0;
$241 = ($239>>>0)<($240>>>0);
if ($241) {
_abort();
// unreachable;
} else {
$$pre$phi$iZ2D = $238;$F1$0$i = $239;
}
}
HEAP32[$$pre$phi$iZ2D>>2] = $229;
$242 = ((($F1$0$i)) + 12|0);
HEAP32[$242>>2] = $229;
$243 = ((($229)) + 8|0);
HEAP32[$243>>2] = $F1$0$i;
$244 = ((($229)) + 12|0);
HEAP32[$244>>2] = $232;
}
HEAP32[(5120)>>2] = $rsize$0$i$lcssa;
HEAP32[(5132)>>2] = $152;
}
$245 = ((($v$0$i$lcssa)) + 8|0);
$$0 = $245;
STACKTOP = sp;return ($$0|0);
}
} else {
$nb$0 = $4;
}
} else {
$246 = ($bytes>>>0)>(4294967231);
if ($246) {
$nb$0 = -1;
} else {
$247 = (($bytes) + 11)|0;
$248 = $247 & -8;
$249 = HEAP32[(5116)>>2]|0;
$250 = ($249|0)==(0);
if ($250) {
$nb$0 = $248;
} else {
$251 = (0 - ($248))|0;
$252 = $247 >>> 8;
$253 = ($252|0)==(0);
if ($253) {
$idx$0$i = 0;
} else {
$254 = ($248>>>0)>(16777215);
if ($254) {
$idx$0$i = 31;
} else {
$255 = (($252) + 1048320)|0;
$256 = $255 >>> 16;
$257 = $256 & 8;
$258 = $252 << $257;
$259 = (($258) + 520192)|0;
$260 = $259 >>> 16;
$261 = $260 & 4;
$262 = $261 | $257;
$263 = $258 << $261;
$264 = (($263) + 245760)|0;
$265 = $264 >>> 16;
$266 = $265 & 2;
$267 = $262 | $266;
$268 = (14 - ($267))|0;
$269 = $263 << $266;
$270 = $269 >>> 15;
$271 = (($268) + ($270))|0;
$272 = $271 << 1;
$273 = (($271) + 7)|0;
$274 = $248 >>> $273;
$275 = $274 & 1;
$276 = $275 | $272;
$idx$0$i = $276;
}
}
$277 = (5416 + ($idx$0$i<<2)|0);
$278 = HEAP32[$277>>2]|0;
$279 = ($278|0)==(0|0);
L123: do {
if ($279) {
$rsize$3$i = $251;$t$2$i = 0;$v$3$i = 0;
label = 86;
} else {
$280 = ($idx$0$i|0)==(31);
$281 = $idx$0$i >>> 1;
$282 = (25 - ($281))|0;
$283 = $280 ? 0 : $282;
$284 = $248 << $283;
$rsize$0$i5 = $251;$rst$0$i = 0;$sizebits$0$i = $284;$t$0$i4 = $278;$v$0$i6 = 0;
while(1) {
$285 = ((($t$0$i4)) + 4|0);
$286 = HEAP32[$285>>2]|0;
$287 = $286 & -8;
$288 = (($287) - ($248))|0;
$289 = ($288>>>0)<($rsize$0$i5>>>0);
if ($289) {
$290 = ($287|0)==($248|0);
if ($290) {
$rsize$412$i = $288;$t$411$i = $t$0$i4;$v$413$i = $t$0$i4;
label = 90;
break L123;
} else {
$rsize$1$i = $288;$v$1$i = $t$0$i4;
}
} else {
$rsize$1$i = $rsize$0$i5;$v$1$i = $v$0$i6;
}
$291 = ((($t$0$i4)) + 20|0);
$292 = HEAP32[$291>>2]|0;
$293 = $sizebits$0$i >>> 31;
$294 = (((($t$0$i4)) + 16|0) + ($293<<2)|0);
$295 = HEAP32[$294>>2]|0;
$296 = ($292|0)==(0|0);
$297 = ($292|0)==($295|0);
$or$cond1$i = $296 | $297;
$rst$1$i = $or$cond1$i ? $rst$0$i : $292;
$298 = ($295|0)==(0|0);
$299 = $298&1;
$300 = $299 ^ 1;
$sizebits$0$$i = $sizebits$0$i << $300;
if ($298) {
$rsize$3$i = $rsize$1$i;$t$2$i = $rst$1$i;$v$3$i = $v$1$i;
label = 86;
break;
} else {
$rsize$0$i5 = $rsize$1$i;$rst$0$i = $rst$1$i;$sizebits$0$i = $sizebits$0$$i;$t$0$i4 = $295;$v$0$i6 = $v$1$i;
}
}
}
} while(0);
if ((label|0) == 86) {
$301 = ($t$2$i|0)==(0|0);
$302 = ($v$3$i|0)==(0|0);
$or$cond$i = $301 & $302;
if ($or$cond$i) {
$303 = 2 << $idx$0$i;
$304 = (0 - ($303))|0;
$305 = $303 | $304;
$306 = $249 & $305;
$307 = ($306|0)==(0);
if ($307) {
$nb$0 = $248;
break;
}
$308 = (0 - ($306))|0;
$309 = $306 & $308;
$310 = (($309) + -1)|0;
$311 = $310 >>> 12;
$312 = $311 & 16;
$313 = $310 >>> $312;
$314 = $313 >>> 5;
$315 = $314 & 8;
$316 = $315 | $312;
$317 = $313 >>> $315;
$318 = $317 >>> 2;
$319 = $318 & 4;
$320 = $316 | $319;
$321 = $317 >>> $319;
$322 = $321 >>> 1;
$323 = $322 & 2;
$324 = $320 | $323;
$325 = $321 >>> $323;
$326 = $325 >>> 1;
$327 = $326 & 1;
$328 = $324 | $327;
$329 = $325 >>> $327;
$330 = (($328) + ($329))|0;
$331 = (5416 + ($330<<2)|0);
$332 = HEAP32[$331>>2]|0;
$t$4$ph$i = $332;
} else {
$t$4$ph$i = $t$2$i;
}
$333 = ($t$4$ph$i|0)==(0|0);
if ($333) {
$rsize$4$lcssa$i = $rsize$3$i;$v$4$lcssa$i = $v$3$i;
} else {
$rsize$412$i = $rsize$3$i;$t$411$i = $t$4$ph$i;$v$413$i = $v$3$i;
label = 90;
}
}
if ((label|0) == 90) {
while(1) {
label = 0;
$334 = ((($t$411$i)) + 4|0);
$335 = HEAP32[$334>>2]|0;
$336 = $335 & -8;
$337 = (($336) - ($248))|0;
$338 = ($337>>>0)<($rsize$412$i>>>0);
$$rsize$4$i = $338 ? $337 : $rsize$412$i;
$t$4$v$4$i = $338 ? $t$411$i : $v$413$i;
$339 = ((($t$411$i)) + 16|0);
$340 = HEAP32[$339>>2]|0;
$341 = ($340|0)==(0|0);
if (!($341)) {
$rsize$412$i = $$rsize$4$i;$t$411$i = $340;$v$413$i = $t$4$v$4$i;
label = 90;
continue;
}
$342 = ((($t$411$i)) + 20|0);
$343 = HEAP32[$342>>2]|0;
$344 = ($343|0)==(0|0);
if ($344) {
$rsize$4$lcssa$i = $$rsize$4$i;$v$4$lcssa$i = $t$4$v$4$i;
break;
} else {
$rsize$412$i = $$rsize$4$i;$t$411$i = $343;$v$413$i = $t$4$v$4$i;
label = 90;
}
}
}
$345 = ($v$4$lcssa$i|0)==(0|0);
if ($345) {
$nb$0 = $248;
} else {
$346 = HEAP32[(5120)>>2]|0;
$347 = (($346) - ($248))|0;
$348 = ($rsize$4$lcssa$i>>>0)<($347>>>0);
if ($348) {
$349 = HEAP32[(5128)>>2]|0;
$350 = ($v$4$lcssa$i>>>0)<($349>>>0);
if ($350) {
_abort();
// unreachable;
}
$351 = (($v$4$lcssa$i) + ($248)|0);
$352 = ($v$4$lcssa$i>>>0)<($351>>>0);
if (!($352)) {
_abort();
// unreachable;
}
$353 = ((($v$4$lcssa$i)) + 24|0);
$354 = HEAP32[$353>>2]|0;
$355 = ((($v$4$lcssa$i)) + 12|0);
$356 = HEAP32[$355>>2]|0;
$357 = ($356|0)==($v$4$lcssa$i|0);
do {
if ($357) {
$367 = ((($v$4$lcssa$i)) + 20|0);
$368 = HEAP32[$367>>2]|0;
$369 = ($368|0)==(0|0);
if ($369) {
$370 = ((($v$4$lcssa$i)) + 16|0);
$371 = HEAP32[$370>>2]|0;
$372 = ($371|0)==(0|0);
if ($372) {
$R$3$i11 = 0;
break;
} else {
$R$1$i9 = $371;$RP$1$i8 = $370;
}
} else {
$R$1$i9 = $368;$RP$1$i8 = $367;
}
while(1) {
$373 = ((($R$1$i9)) + 20|0);
$374 = HEAP32[$373>>2]|0;
$375 = ($374|0)==(0|0);
if (!($375)) {
$R$1$i9 = $374;$RP$1$i8 = $373;
continue;
}
$376 = ((($R$1$i9)) + 16|0);
$377 = HEAP32[$376>>2]|0;
$378 = ($377|0)==(0|0);
if ($378) {
$R$1$i9$lcssa = $R$1$i9;$RP$1$i8$lcssa = $RP$1$i8;
break;
} else {
$R$1$i9 = $377;$RP$1$i8 = $376;
}
}
$379 = ($RP$1$i8$lcssa>>>0)<($349>>>0);
if ($379) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i8$lcssa>>2] = 0;
$R$3$i11 = $R$1$i9$lcssa;
break;
}
} else {
$358 = ((($v$4$lcssa$i)) + 8|0);
$359 = HEAP32[$358>>2]|0;
$360 = ($359>>>0)<($349>>>0);
if ($360) {
_abort();
// unreachable;
}
$361 = ((($359)) + 12|0);
$362 = HEAP32[$361>>2]|0;
$363 = ($362|0)==($v$4$lcssa$i|0);
if (!($363)) {
_abort();
// unreachable;
}
$364 = ((($356)) + 8|0);
$365 = HEAP32[$364>>2]|0;
$366 = ($365|0)==($v$4$lcssa$i|0);
if ($366) {
HEAP32[$361>>2] = $356;
HEAP32[$364>>2] = $359;
$R$3$i11 = $356;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$380 = ($354|0)==(0|0);
do {
if (!($380)) {
$381 = ((($v$4$lcssa$i)) + 28|0);
$382 = HEAP32[$381>>2]|0;
$383 = (5416 + ($382<<2)|0);
$384 = HEAP32[$383>>2]|0;
$385 = ($v$4$lcssa$i|0)==($384|0);
if ($385) {
HEAP32[$383>>2] = $R$3$i11;
$cond$i12 = ($R$3$i11|0)==(0|0);
if ($cond$i12) {
$386 = 1 << $382;
$387 = $386 ^ -1;
$388 = HEAP32[(5116)>>2]|0;
$389 = $388 & $387;
HEAP32[(5116)>>2] = $389;
break;
}
} else {
$390 = HEAP32[(5128)>>2]|0;
$391 = ($354>>>0)<($390>>>0);
if ($391) {
_abort();
// unreachable;
}
$392 = ((($354)) + 16|0);
$393 = HEAP32[$392>>2]|0;
$394 = ($393|0)==($v$4$lcssa$i|0);
if ($394) {
HEAP32[$392>>2] = $R$3$i11;
} else {
$395 = ((($354)) + 20|0);
HEAP32[$395>>2] = $R$3$i11;
}
$396 = ($R$3$i11|0)==(0|0);
if ($396) {
break;
}
}
$397 = HEAP32[(5128)>>2]|0;
$398 = ($R$3$i11>>>0)<($397>>>0);
if ($398) {
_abort();
// unreachable;
}
$399 = ((($R$3$i11)) + 24|0);
HEAP32[$399>>2] = $354;
$400 = ((($v$4$lcssa$i)) + 16|0);
$401 = HEAP32[$400>>2]|0;
$402 = ($401|0)==(0|0);
do {
if (!($402)) {
$403 = ($401>>>0)<($397>>>0);
if ($403) {
_abort();
// unreachable;
} else {
$404 = ((($R$3$i11)) + 16|0);
HEAP32[$404>>2] = $401;
$405 = ((($401)) + 24|0);
HEAP32[$405>>2] = $R$3$i11;
break;
}
}
} while(0);
$406 = ((($v$4$lcssa$i)) + 20|0);
$407 = HEAP32[$406>>2]|0;
$408 = ($407|0)==(0|0);
if (!($408)) {
$409 = HEAP32[(5128)>>2]|0;
$410 = ($407>>>0)<($409>>>0);
if ($410) {
_abort();
// unreachable;
} else {
$411 = ((($R$3$i11)) + 20|0);
HEAP32[$411>>2] = $407;
$412 = ((($407)) + 24|0);
HEAP32[$412>>2] = $R$3$i11;
break;
}
}
}
} while(0);
$413 = ($rsize$4$lcssa$i>>>0)<(16);
do {
if ($413) {
$414 = (($rsize$4$lcssa$i) + ($248))|0;
$415 = $414 | 3;
$416 = ((($v$4$lcssa$i)) + 4|0);
HEAP32[$416>>2] = $415;
$417 = (($v$4$lcssa$i) + ($414)|0);
$418 = ((($417)) + 4|0);
$419 = HEAP32[$418>>2]|0;
$420 = $419 | 1;
HEAP32[$418>>2] = $420;
} else {
$421 = $248 | 3;
$422 = ((($v$4$lcssa$i)) + 4|0);
HEAP32[$422>>2] = $421;
$423 = $rsize$4$lcssa$i | 1;
$424 = ((($351)) + 4|0);
HEAP32[$424>>2] = $423;
$425 = (($351) + ($rsize$4$lcssa$i)|0);
HEAP32[$425>>2] = $rsize$4$lcssa$i;
$426 = $rsize$4$lcssa$i >>> 3;
$427 = ($rsize$4$lcssa$i>>>0)<(256);
if ($427) {
$428 = $426 << 1;
$429 = (5152 + ($428<<2)|0);
$430 = HEAP32[1278]|0;
$431 = 1 << $426;
$432 = $430 & $431;
$433 = ($432|0)==(0);
if ($433) {
$434 = $430 | $431;
HEAP32[1278] = $434;
$$pre$i13 = ((($429)) + 8|0);
$$pre$phi$i14Z2D = $$pre$i13;$F5$0$i = $429;
} else {
$435 = ((($429)) + 8|0);
$436 = HEAP32[$435>>2]|0;
$437 = HEAP32[(5128)>>2]|0;
$438 = ($436>>>0)<($437>>>0);
if ($438) {
_abort();
// unreachable;
} else {
$$pre$phi$i14Z2D = $435;$F5$0$i = $436;
}
}
HEAP32[$$pre$phi$i14Z2D>>2] = $351;
$439 = ((($F5$0$i)) + 12|0);
HEAP32[$439>>2] = $351;
$440 = ((($351)) + 8|0);
HEAP32[$440>>2] = $F5$0$i;
$441 = ((($351)) + 12|0);
HEAP32[$441>>2] = $429;
break;
}
$442 = $rsize$4$lcssa$i >>> 8;
$443 = ($442|0)==(0);
if ($443) {
$I7$0$i = 0;
} else {
$444 = ($rsize$4$lcssa$i>>>0)>(16777215);
if ($444) {
$I7$0$i = 31;
} else {
$445 = (($442) + 1048320)|0;
$446 = $445 >>> 16;
$447 = $446 & 8;
$448 = $442 << $447;
$449 = (($448) + 520192)|0;
$450 = $449 >>> 16;
$451 = $450 & 4;
$452 = $451 | $447;
$453 = $448 << $451;
$454 = (($453) + 245760)|0;
$455 = $454 >>> 16;
$456 = $455 & 2;
$457 = $452 | $456;
$458 = (14 - ($457))|0;
$459 = $453 << $456;
$460 = $459 >>> 15;
$461 = (($458) + ($460))|0;
$462 = $461 << 1;
$463 = (($461) + 7)|0;
$464 = $rsize$4$lcssa$i >>> $463;
$465 = $464 & 1;
$466 = $465 | $462;
$I7$0$i = $466;
}
}
$467 = (5416 + ($I7$0$i<<2)|0);
$468 = ((($351)) + 28|0);
HEAP32[$468>>2] = $I7$0$i;
$469 = ((($351)) + 16|0);
$470 = ((($469)) + 4|0);
HEAP32[$470>>2] = 0;
HEAP32[$469>>2] = 0;
$471 = HEAP32[(5116)>>2]|0;
$472 = 1 << $I7$0$i;
$473 = $471 & $472;
$474 = ($473|0)==(0);
if ($474) {
$475 = $471 | $472;
HEAP32[(5116)>>2] = $475;
HEAP32[$467>>2] = $351;
$476 = ((($351)) + 24|0);
HEAP32[$476>>2] = $467;
$477 = ((($351)) + 12|0);
HEAP32[$477>>2] = $351;
$478 = ((($351)) + 8|0);
HEAP32[$478>>2] = $351;
break;
}
$479 = HEAP32[$467>>2]|0;
$480 = ($I7$0$i|0)==(31);
$481 = $I7$0$i >>> 1;
$482 = (25 - ($481))|0;
$483 = $480 ? 0 : $482;
$484 = $rsize$4$lcssa$i << $483;
$K12$0$i = $484;$T$0$i = $479;
while(1) {
$485 = ((($T$0$i)) + 4|0);
$486 = HEAP32[$485>>2]|0;
$487 = $486 & -8;
$488 = ($487|0)==($rsize$4$lcssa$i|0);
if ($488) {
$T$0$i$lcssa = $T$0$i;
label = 148;
break;
}
$489 = $K12$0$i >>> 31;
$490 = (((($T$0$i)) + 16|0) + ($489<<2)|0);
$491 = $K12$0$i << 1;
$492 = HEAP32[$490>>2]|0;
$493 = ($492|0)==(0|0);
if ($493) {
$$lcssa157 = $490;$T$0$i$lcssa156 = $T$0$i;
label = 145;
break;
} else {
$K12$0$i = $491;$T$0$i = $492;
}
}
if ((label|0) == 145) {
$494 = HEAP32[(5128)>>2]|0;
$495 = ($$lcssa157>>>0)<($494>>>0);
if ($495) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa157>>2] = $351;
$496 = ((($351)) + 24|0);
HEAP32[$496>>2] = $T$0$i$lcssa156;
$497 = ((($351)) + 12|0);
HEAP32[$497>>2] = $351;
$498 = ((($351)) + 8|0);
HEAP32[$498>>2] = $351;
break;
}
}
else if ((label|0) == 148) {
$499 = ((($T$0$i$lcssa)) + 8|0);
$500 = HEAP32[$499>>2]|0;
$501 = HEAP32[(5128)>>2]|0;
$502 = ($500>>>0)>=($501>>>0);
$not$7$i = ($T$0$i$lcssa>>>0)>=($501>>>0);
$503 = $502 & $not$7$i;
if ($503) {
$504 = ((($500)) + 12|0);
HEAP32[$504>>2] = $351;
HEAP32[$499>>2] = $351;
$505 = ((($351)) + 8|0);
HEAP32[$505>>2] = $500;
$506 = ((($351)) + 12|0);
HEAP32[$506>>2] = $T$0$i$lcssa;
$507 = ((($351)) + 24|0);
HEAP32[$507>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$508 = ((($v$4$lcssa$i)) + 8|0);
$$0 = $508;
STACKTOP = sp;return ($$0|0);
} else {
$nb$0 = $248;
}
}
}
}
}
} while(0);
$509 = HEAP32[(5120)>>2]|0;
$510 = ($509>>>0)<($nb$0>>>0);
if (!($510)) {
$511 = (($509) - ($nb$0))|0;
$512 = HEAP32[(5132)>>2]|0;
$513 = ($511>>>0)>(15);
if ($513) {
$514 = (($512) + ($nb$0)|0);
HEAP32[(5132)>>2] = $514;
HEAP32[(5120)>>2] = $511;
$515 = $511 | 1;
$516 = ((($514)) + 4|0);
HEAP32[$516>>2] = $515;
$517 = (($514) + ($511)|0);
HEAP32[$517>>2] = $511;
$518 = $nb$0 | 3;
$519 = ((($512)) + 4|0);
HEAP32[$519>>2] = $518;
} else {
HEAP32[(5120)>>2] = 0;
HEAP32[(5132)>>2] = 0;
$520 = $509 | 3;
$521 = ((($512)) + 4|0);
HEAP32[$521>>2] = $520;
$522 = (($512) + ($509)|0);
$523 = ((($522)) + 4|0);
$524 = HEAP32[$523>>2]|0;
$525 = $524 | 1;
HEAP32[$523>>2] = $525;
}
$526 = ((($512)) + 8|0);
$$0 = $526;
STACKTOP = sp;return ($$0|0);
}
$527 = HEAP32[(5124)>>2]|0;
$528 = ($527>>>0)>($nb$0>>>0);
if ($528) {
$529 = (($527) - ($nb$0))|0;
HEAP32[(5124)>>2] = $529;
$530 = HEAP32[(5136)>>2]|0;
$531 = (($530) + ($nb$0)|0);
HEAP32[(5136)>>2] = $531;
$532 = $529 | 1;
$533 = ((($531)) + 4|0);
HEAP32[$533>>2] = $532;
$534 = $nb$0 | 3;
$535 = ((($530)) + 4|0);
HEAP32[$535>>2] = $534;
$536 = ((($530)) + 8|0);
$$0 = $536;
STACKTOP = sp;return ($$0|0);
}
$537 = HEAP32[1396]|0;
$538 = ($537|0)==(0);
if ($538) {
HEAP32[(5592)>>2] = 4096;
HEAP32[(5588)>>2] = 4096;
HEAP32[(5596)>>2] = -1;
HEAP32[(5600)>>2] = -1;
HEAP32[(5604)>>2] = 0;
HEAP32[(5556)>>2] = 0;
$539 = $magic$i$i;
$540 = $539 & -16;
$541 = $540 ^ 1431655768;
HEAP32[$magic$i$i>>2] = $541;
HEAP32[1396] = $541;
}
$542 = (($nb$0) + 48)|0;
$543 = HEAP32[(5592)>>2]|0;
$544 = (($nb$0) + 47)|0;
$545 = (($543) + ($544))|0;
$546 = (0 - ($543))|0;
$547 = $545 & $546;
$548 = ($547>>>0)>($nb$0>>>0);
if (!($548)) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
$549 = HEAP32[(5552)>>2]|0;
$550 = ($549|0)==(0);
if (!($550)) {
$551 = HEAP32[(5544)>>2]|0;
$552 = (($551) + ($547))|0;
$553 = ($552>>>0)<=($551>>>0);
$554 = ($552>>>0)>($549>>>0);
$or$cond1$i16 = $553 | $554;
if ($or$cond1$i16) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
}
$555 = HEAP32[(5556)>>2]|0;
$556 = $555 & 4;
$557 = ($556|0)==(0);
L254: do {
if ($557) {
$558 = HEAP32[(5136)>>2]|0;
$559 = ($558|0)==(0|0);
L256: do {
if ($559) {
label = 171;
} else {
$sp$0$i$i = (5560);
while(1) {
$560 = HEAP32[$sp$0$i$i>>2]|0;
$561 = ($560>>>0)>($558>>>0);
if (!($561)) {
$562 = ((($sp$0$i$i)) + 4|0);
$563 = HEAP32[$562>>2]|0;
$564 = (($560) + ($563)|0);
$565 = ($564>>>0)>($558>>>0);
if ($565) {
$$lcssa153 = $sp$0$i$i;$$lcssa155 = $562;
break;
}
}
$566 = ((($sp$0$i$i)) + 8|0);
$567 = HEAP32[$566>>2]|0;
$568 = ($567|0)==(0|0);
if ($568) {
label = 171;
break L256;
} else {
$sp$0$i$i = $567;
}
}
$591 = HEAP32[(5124)>>2]|0;
$592 = (($545) - ($591))|0;
$593 = $592 & $546;
$594 = ($593>>>0)<(2147483647);
if ($594) {
$595 = (_sbrk(($593|0))|0);
$596 = HEAP32[$$lcssa153>>2]|0;
$597 = HEAP32[$$lcssa155>>2]|0;
$598 = (($596) + ($597)|0);
$599 = ($595|0)==($598|0);
if ($599) {
$600 = ($595|0)==((-1)|0);
if (!($600)) {
$tbase$746$i = $595;$tsize$745$i = $593;
label = 191;
break L254;
}
} else {
$br$2$ph$i = $595;$ssize$2$ph$i = $593;
label = 181;
}
}
}
} while(0);
do {
if ((label|0) == 171) {
$569 = (_sbrk(0)|0);
$570 = ($569|0)==((-1)|0);
if (!($570)) {
$571 = $569;
$572 = HEAP32[(5588)>>2]|0;
$573 = (($572) + -1)|0;
$574 = $573 & $571;
$575 = ($574|0)==(0);
if ($575) {
$ssize$0$i = $547;
} else {
$576 = (($573) + ($571))|0;
$577 = (0 - ($572))|0;
$578 = $576 & $577;
$579 = (($547) - ($571))|0;
$580 = (($579) + ($578))|0;
$ssize$0$i = $580;
}
$581 = HEAP32[(5544)>>2]|0;
$582 = (($581) + ($ssize$0$i))|0;
$583 = ($ssize$0$i>>>0)>($nb$0>>>0);
$584 = ($ssize$0$i>>>0)<(2147483647);
$or$cond$i17 = $583 & $584;
if ($or$cond$i17) {
$585 = HEAP32[(5552)>>2]|0;
$586 = ($585|0)==(0);
if (!($586)) {
$587 = ($582>>>0)<=($581>>>0);
$588 = ($582>>>0)>($585>>>0);
$or$cond2$i = $587 | $588;
if ($or$cond2$i) {
break;
}
}
$589 = (_sbrk(($ssize$0$i|0))|0);
$590 = ($589|0)==($569|0);
if ($590) {
$tbase$746$i = $569;$tsize$745$i = $ssize$0$i;
label = 191;
break L254;
} else {
$br$2$ph$i = $589;$ssize$2$ph$i = $ssize$0$i;
label = 181;
}
}
}
}
} while(0);
L276: do {
if ((label|0) == 181) {
$601 = (0 - ($ssize$2$ph$i))|0;
$602 = ($br$2$ph$i|0)!=((-1)|0);
$603 = ($ssize$2$ph$i>>>0)<(2147483647);
$or$cond7$i = $603 & $602;
$604 = ($542>>>0)>($ssize$2$ph$i>>>0);
$or$cond8$i = $604 & $or$cond7$i;
do {
if ($or$cond8$i) {
$605 = HEAP32[(5592)>>2]|0;
$606 = (($544) - ($ssize$2$ph$i))|0;
$607 = (($606) + ($605))|0;
$608 = (0 - ($605))|0;
$609 = $607 & $608;
$610 = ($609>>>0)<(2147483647);
if ($610) {
$611 = (_sbrk(($609|0))|0);
$612 = ($611|0)==((-1)|0);
if ($612) {
(_sbrk(($601|0))|0);
break L276;
} else {
$613 = (($609) + ($ssize$2$ph$i))|0;
$ssize$5$i = $613;
break;
}
} else {
$ssize$5$i = $ssize$2$ph$i;
}
} else {
$ssize$5$i = $ssize$2$ph$i;
}
} while(0);
$614 = ($br$2$ph$i|0)==((-1)|0);
if (!($614)) {
$tbase$746$i = $br$2$ph$i;$tsize$745$i = $ssize$5$i;
label = 191;
break L254;
}
}
} while(0);
$615 = HEAP32[(5556)>>2]|0;
$616 = $615 | 4;
HEAP32[(5556)>>2] = $616;
label = 188;
} else {
label = 188;
}
} while(0);
if ((label|0) == 188) {
$617 = ($547>>>0)<(2147483647);
if ($617) {
$618 = (_sbrk(($547|0))|0);
$619 = (_sbrk(0)|0);
$620 = ($618|0)!=((-1)|0);
$621 = ($619|0)!=((-1)|0);
$or$cond5$i = $620 & $621;
$622 = ($618>>>0)<($619>>>0);
$or$cond10$i = $622 & $or$cond5$i;
if ($or$cond10$i) {
$623 = $619;
$624 = $618;
$625 = (($623) - ($624))|0;
$626 = (($nb$0) + 40)|0;
$$not$i = ($625>>>0)>($626>>>0);
if ($$not$i) {
$tbase$746$i = $618;$tsize$745$i = $625;
label = 191;
}
}
}
}
if ((label|0) == 191) {
$627 = HEAP32[(5544)>>2]|0;
$628 = (($627) + ($tsize$745$i))|0;
HEAP32[(5544)>>2] = $628;
$629 = HEAP32[(5548)>>2]|0;
$630 = ($628>>>0)>($629>>>0);
if ($630) {
HEAP32[(5548)>>2] = $628;
}
$631 = HEAP32[(5136)>>2]|0;
$632 = ($631|0)==(0|0);
do {
if ($632) {
$633 = HEAP32[(5128)>>2]|0;
$634 = ($633|0)==(0|0);
$635 = ($tbase$746$i>>>0)<($633>>>0);
$or$cond11$i = $634 | $635;
if ($or$cond11$i) {
HEAP32[(5128)>>2] = $tbase$746$i;
}
HEAP32[(5560)>>2] = $tbase$746$i;
HEAP32[(5564)>>2] = $tsize$745$i;
HEAP32[(5572)>>2] = 0;
$636 = HEAP32[1396]|0;
HEAP32[(5148)>>2] = $636;
HEAP32[(5144)>>2] = -1;
$i$01$i$i = 0;
while(1) {
$637 = $i$01$i$i << 1;
$638 = (5152 + ($637<<2)|0);
$639 = ((($638)) + 12|0);
HEAP32[$639>>2] = $638;
$640 = ((($638)) + 8|0);
HEAP32[$640>>2] = $638;
$641 = (($i$01$i$i) + 1)|0;
$exitcond$i$i = ($641|0)==(32);
if ($exitcond$i$i) {
break;
} else {
$i$01$i$i = $641;
}
}
$642 = (($tsize$745$i) + -40)|0;
$643 = ((($tbase$746$i)) + 8|0);
$644 = $643;
$645 = $644 & 7;
$646 = ($645|0)==(0);
$647 = (0 - ($644))|0;
$648 = $647 & 7;
$649 = $646 ? 0 : $648;
$650 = (($tbase$746$i) + ($649)|0);
$651 = (($642) - ($649))|0;
HEAP32[(5136)>>2] = $650;
HEAP32[(5124)>>2] = $651;
$652 = $651 | 1;
$653 = ((($650)) + 4|0);
HEAP32[$653>>2] = $652;
$654 = (($650) + ($651)|0);
$655 = ((($654)) + 4|0);
HEAP32[$655>>2] = 40;
$656 = HEAP32[(5600)>>2]|0;
HEAP32[(5140)>>2] = $656;
} else {
$sp$068$i = (5560);
while(1) {
$657 = HEAP32[$sp$068$i>>2]|0;
$658 = ((($sp$068$i)) + 4|0);
$659 = HEAP32[$658>>2]|0;
$660 = (($657) + ($659)|0);
$661 = ($tbase$746$i|0)==($660|0);
if ($661) {
$$lcssa147 = $657;$$lcssa149 = $658;$$lcssa151 = $659;$sp$068$i$lcssa = $sp$068$i;
label = 201;
break;
}
$662 = ((($sp$068$i)) + 8|0);
$663 = HEAP32[$662>>2]|0;
$664 = ($663|0)==(0|0);
if ($664) {
break;
} else {
$sp$068$i = $663;
}
}
if ((label|0) == 201) {
$665 = ((($sp$068$i$lcssa)) + 12|0);
$666 = HEAP32[$665>>2]|0;
$667 = $666 & 8;
$668 = ($667|0)==(0);
if ($668) {
$669 = ($631>>>0)>=($$lcssa147>>>0);
$670 = ($631>>>0)<($tbase$746$i>>>0);
$or$cond48$i = $670 & $669;
if ($or$cond48$i) {
$671 = (($$lcssa151) + ($tsize$745$i))|0;
HEAP32[$$lcssa149>>2] = $671;
$672 = HEAP32[(5124)>>2]|0;
$673 = ((($631)) + 8|0);
$674 = $673;
$675 = $674 & 7;
$676 = ($675|0)==(0);
$677 = (0 - ($674))|0;
$678 = $677 & 7;
$679 = $676 ? 0 : $678;
$680 = (($631) + ($679)|0);
$681 = (($tsize$745$i) - ($679))|0;
$682 = (($681) + ($672))|0;
HEAP32[(5136)>>2] = $680;
HEAP32[(5124)>>2] = $682;
$683 = $682 | 1;
$684 = ((($680)) + 4|0);
HEAP32[$684>>2] = $683;
$685 = (($680) + ($682)|0);
$686 = ((($685)) + 4|0);
HEAP32[$686>>2] = 40;
$687 = HEAP32[(5600)>>2]|0;
HEAP32[(5140)>>2] = $687;
break;
}
}
}
$688 = HEAP32[(5128)>>2]|0;
$689 = ($tbase$746$i>>>0)<($688>>>0);
if ($689) {
HEAP32[(5128)>>2] = $tbase$746$i;
$753 = $tbase$746$i;
} else {
$753 = $688;
}
$690 = (($tbase$746$i) + ($tsize$745$i)|0);
$sp$167$i = (5560);
while(1) {
$691 = HEAP32[$sp$167$i>>2]|0;
$692 = ($691|0)==($690|0);
if ($692) {
$$lcssa144 = $sp$167$i;$sp$167$i$lcssa = $sp$167$i;
label = 209;
break;
}
$693 = ((($sp$167$i)) + 8|0);
$694 = HEAP32[$693>>2]|0;
$695 = ($694|0)==(0|0);
if ($695) {
$sp$0$i$i$i = (5560);
break;
} else {
$sp$167$i = $694;
}
}
if ((label|0) == 209) {
$696 = ((($sp$167$i$lcssa)) + 12|0);
$697 = HEAP32[$696>>2]|0;
$698 = $697 & 8;
$699 = ($698|0)==(0);
if ($699) {
HEAP32[$$lcssa144>>2] = $tbase$746$i;
$700 = ((($sp$167$i$lcssa)) + 4|0);
$701 = HEAP32[$700>>2]|0;
$702 = (($701) + ($tsize$745$i))|0;
HEAP32[$700>>2] = $702;
$703 = ((($tbase$746$i)) + 8|0);
$704 = $703;
$705 = $704 & 7;
$706 = ($705|0)==(0);
$707 = (0 - ($704))|0;
$708 = $707 & 7;
$709 = $706 ? 0 : $708;
$710 = (($tbase$746$i) + ($709)|0);
$711 = ((($690)) + 8|0);
$712 = $711;
$713 = $712 & 7;
$714 = ($713|0)==(0);
$715 = (0 - ($712))|0;
$716 = $715 & 7;
$717 = $714 ? 0 : $716;
$718 = (($690) + ($717)|0);
$719 = $718;
$720 = $710;
$721 = (($719) - ($720))|0;
$722 = (($710) + ($nb$0)|0);
$723 = (($721) - ($nb$0))|0;
$724 = $nb$0 | 3;
$725 = ((($710)) + 4|0);
HEAP32[$725>>2] = $724;
$726 = ($718|0)==($631|0);
do {
if ($726) {
$727 = HEAP32[(5124)>>2]|0;
$728 = (($727) + ($723))|0;
HEAP32[(5124)>>2] = $728;
HEAP32[(5136)>>2] = $722;
$729 = $728 | 1;
$730 = ((($722)) + 4|0);
HEAP32[$730>>2] = $729;
} else {
$731 = HEAP32[(5132)>>2]|0;
$732 = ($718|0)==($731|0);
if ($732) {
$733 = HEAP32[(5120)>>2]|0;
$734 = (($733) + ($723))|0;
HEAP32[(5120)>>2] = $734;
HEAP32[(5132)>>2] = $722;
$735 = $734 | 1;
$736 = ((($722)) + 4|0);
HEAP32[$736>>2] = $735;
$737 = (($722) + ($734)|0);
HEAP32[$737>>2] = $734;
break;
}
$738 = ((($718)) + 4|0);
$739 = HEAP32[$738>>2]|0;
$740 = $739 & 3;
$741 = ($740|0)==(1);
if ($741) {
$742 = $739 & -8;
$743 = $739 >>> 3;
$744 = ($739>>>0)<(256);
L328: do {
if ($744) {
$745 = ((($718)) + 8|0);
$746 = HEAP32[$745>>2]|0;
$747 = ((($718)) + 12|0);
$748 = HEAP32[$747>>2]|0;
$749 = $743 << 1;
$750 = (5152 + ($749<<2)|0);
$751 = ($746|0)==($750|0);
do {
if (!($751)) {
$752 = ($746>>>0)<($753>>>0);
if ($752) {
_abort();
// unreachable;
}
$754 = ((($746)) + 12|0);
$755 = HEAP32[$754>>2]|0;
$756 = ($755|0)==($718|0);
if ($756) {
break;
}
_abort();
// unreachable;
}
} while(0);
$757 = ($748|0)==($746|0);
if ($757) {
$758 = 1 << $743;
$759 = $758 ^ -1;
$760 = HEAP32[1278]|0;
$761 = $760 & $759;
HEAP32[1278] = $761;
break;
}
$762 = ($748|0)==($750|0);
do {
if ($762) {
$$pre9$i$i = ((($748)) + 8|0);
$$pre$phi10$i$iZ2D = $$pre9$i$i;
} else {
$763 = ($748>>>0)<($753>>>0);
if ($763) {
_abort();
// unreachable;
}
$764 = ((($748)) + 8|0);
$765 = HEAP32[$764>>2]|0;
$766 = ($765|0)==($718|0);
if ($766) {
$$pre$phi10$i$iZ2D = $764;
break;
}
_abort();
// unreachable;
}
} while(0);
$767 = ((($746)) + 12|0);
HEAP32[$767>>2] = $748;
HEAP32[$$pre$phi10$i$iZ2D>>2] = $746;
} else {
$768 = ((($718)) + 24|0);
$769 = HEAP32[$768>>2]|0;
$770 = ((($718)) + 12|0);
$771 = HEAP32[$770>>2]|0;
$772 = ($771|0)==($718|0);
do {
if ($772) {
$782 = ((($718)) + 16|0);
$783 = ((($782)) + 4|0);
$784 = HEAP32[$783>>2]|0;
$785 = ($784|0)==(0|0);
if ($785) {
$786 = HEAP32[$782>>2]|0;
$787 = ($786|0)==(0|0);
if ($787) {
$R$3$i$i = 0;
break;
} else {
$R$1$i$i = $786;$RP$1$i$i = $782;
}
} else {
$R$1$i$i = $784;$RP$1$i$i = $783;
}
while(1) {
$788 = ((($R$1$i$i)) + 20|0);
$789 = HEAP32[$788>>2]|0;
$790 = ($789|0)==(0|0);
if (!($790)) {
$R$1$i$i = $789;$RP$1$i$i = $788;
continue;
}
$791 = ((($R$1$i$i)) + 16|0);
$792 = HEAP32[$791>>2]|0;
$793 = ($792|0)==(0|0);
if ($793) {
$R$1$i$i$lcssa = $R$1$i$i;$RP$1$i$i$lcssa = $RP$1$i$i;
break;
} else {
$R$1$i$i = $792;$RP$1$i$i = $791;
}
}
$794 = ($RP$1$i$i$lcssa>>>0)<($753>>>0);
if ($794) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$i$i$lcssa>>2] = 0;
$R$3$i$i = $R$1$i$i$lcssa;
break;
}
} else {
$773 = ((($718)) + 8|0);
$774 = HEAP32[$773>>2]|0;
$775 = ($774>>>0)<($753>>>0);
if ($775) {
_abort();
// unreachable;
}
$776 = ((($774)) + 12|0);
$777 = HEAP32[$776>>2]|0;
$778 = ($777|0)==($718|0);
if (!($778)) {
_abort();
// unreachable;
}
$779 = ((($771)) + 8|0);
$780 = HEAP32[$779>>2]|0;
$781 = ($780|0)==($718|0);
if ($781) {
HEAP32[$776>>2] = $771;
HEAP32[$779>>2] = $774;
$R$3$i$i = $771;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$795 = ($769|0)==(0|0);
if ($795) {
break;
}
$796 = ((($718)) + 28|0);
$797 = HEAP32[$796>>2]|0;
$798 = (5416 + ($797<<2)|0);
$799 = HEAP32[$798>>2]|0;
$800 = ($718|0)==($799|0);
do {
if ($800) {
HEAP32[$798>>2] = $R$3$i$i;
$cond$i$i = ($R$3$i$i|0)==(0|0);
if (!($cond$i$i)) {
break;
}
$801 = 1 << $797;
$802 = $801 ^ -1;
$803 = HEAP32[(5116)>>2]|0;
$804 = $803 & $802;
HEAP32[(5116)>>2] = $804;
break L328;
} else {
$805 = HEAP32[(5128)>>2]|0;
$806 = ($769>>>0)<($805>>>0);
if ($806) {
_abort();
// unreachable;
}
$807 = ((($769)) + 16|0);
$808 = HEAP32[$807>>2]|0;
$809 = ($808|0)==($718|0);
if ($809) {
HEAP32[$807>>2] = $R$3$i$i;
} else {
$810 = ((($769)) + 20|0);
HEAP32[$810>>2] = $R$3$i$i;
}
$811 = ($R$3$i$i|0)==(0|0);
if ($811) {
break L328;
}
}
} while(0);
$812 = HEAP32[(5128)>>2]|0;
$813 = ($R$3$i$i>>>0)<($812>>>0);
if ($813) {
_abort();
// unreachable;
}
$814 = ((($R$3$i$i)) + 24|0);
HEAP32[$814>>2] = $769;
$815 = ((($718)) + 16|0);
$816 = HEAP32[$815>>2]|0;
$817 = ($816|0)==(0|0);
do {
if (!($817)) {
$818 = ($816>>>0)<($812>>>0);
if ($818) {
_abort();
// unreachable;
} else {
$819 = ((($R$3$i$i)) + 16|0);
HEAP32[$819>>2] = $816;
$820 = ((($816)) + 24|0);
HEAP32[$820>>2] = $R$3$i$i;
break;
}
}
} while(0);
$821 = ((($815)) + 4|0);
$822 = HEAP32[$821>>2]|0;
$823 = ($822|0)==(0|0);
if ($823) {
break;
}
$824 = HEAP32[(5128)>>2]|0;
$825 = ($822>>>0)<($824>>>0);
if ($825) {
_abort();
// unreachable;
} else {
$826 = ((($R$3$i$i)) + 20|0);
HEAP32[$826>>2] = $822;
$827 = ((($822)) + 24|0);
HEAP32[$827>>2] = $R$3$i$i;
break;
}
}
} while(0);
$828 = (($718) + ($742)|0);
$829 = (($742) + ($723))|0;
$oldfirst$0$i$i = $828;$qsize$0$i$i = $829;
} else {
$oldfirst$0$i$i = $718;$qsize$0$i$i = $723;
}
$830 = ((($oldfirst$0$i$i)) + 4|0);
$831 = HEAP32[$830>>2]|0;
$832 = $831 & -2;
HEAP32[$830>>2] = $832;
$833 = $qsize$0$i$i | 1;
$834 = ((($722)) + 4|0);
HEAP32[$834>>2] = $833;
$835 = (($722) + ($qsize$0$i$i)|0);
HEAP32[$835>>2] = $qsize$0$i$i;
$836 = $qsize$0$i$i >>> 3;
$837 = ($qsize$0$i$i>>>0)<(256);
if ($837) {
$838 = $836 << 1;
$839 = (5152 + ($838<<2)|0);
$840 = HEAP32[1278]|0;
$841 = 1 << $836;
$842 = $840 & $841;
$843 = ($842|0)==(0);
do {
if ($843) {
$844 = $840 | $841;
HEAP32[1278] = $844;
$$pre$i16$i = ((($839)) + 8|0);
$$pre$phi$i17$iZ2D = $$pre$i16$i;$F4$0$i$i = $839;
} else {
$845 = ((($839)) + 8|0);
$846 = HEAP32[$845>>2]|0;
$847 = HEAP32[(5128)>>2]|0;
$848 = ($846>>>0)<($847>>>0);
if (!($848)) {
$$pre$phi$i17$iZ2D = $845;$F4$0$i$i = $846;
break;
}
_abort();
// unreachable;
}
} while(0);
HEAP32[$$pre$phi$i17$iZ2D>>2] = $722;
$849 = ((($F4$0$i$i)) + 12|0);
HEAP32[$849>>2] = $722;
$850 = ((($722)) + 8|0);
HEAP32[$850>>2] = $F4$0$i$i;
$851 = ((($722)) + 12|0);
HEAP32[$851>>2] = $839;
break;
}
$852 = $qsize$0$i$i >>> 8;
$853 = ($852|0)==(0);
do {
if ($853) {
$I7$0$i$i = 0;
} else {
$854 = ($qsize$0$i$i>>>0)>(16777215);
if ($854) {
$I7$0$i$i = 31;
break;
}
$855 = (($852) + 1048320)|0;
$856 = $855 >>> 16;
$857 = $856 & 8;
$858 = $852 << $857;
$859 = (($858) + 520192)|0;
$860 = $859 >>> 16;
$861 = $860 & 4;
$862 = $861 | $857;
$863 = $858 << $861;
$864 = (($863) + 245760)|0;
$865 = $864 >>> 16;
$866 = $865 & 2;
$867 = $862 | $866;
$868 = (14 - ($867))|0;
$869 = $863 << $866;
$870 = $869 >>> 15;
$871 = (($868) + ($870))|0;
$872 = $871 << 1;
$873 = (($871) + 7)|0;
$874 = $qsize$0$i$i >>> $873;
$875 = $874 & 1;
$876 = $875 | $872;
$I7$0$i$i = $876;
}
} while(0);
$877 = (5416 + ($I7$0$i$i<<2)|0);
$878 = ((($722)) + 28|0);
HEAP32[$878>>2] = $I7$0$i$i;
$879 = ((($722)) + 16|0);
$880 = ((($879)) + 4|0);
HEAP32[$880>>2] = 0;
HEAP32[$879>>2] = 0;
$881 = HEAP32[(5116)>>2]|0;
$882 = 1 << $I7$0$i$i;
$883 = $881 & $882;
$884 = ($883|0)==(0);
if ($884) {
$885 = $881 | $882;
HEAP32[(5116)>>2] = $885;
HEAP32[$877>>2] = $722;
$886 = ((($722)) + 24|0);
HEAP32[$886>>2] = $877;
$887 = ((($722)) + 12|0);
HEAP32[$887>>2] = $722;
$888 = ((($722)) + 8|0);
HEAP32[$888>>2] = $722;
break;
}
$889 = HEAP32[$877>>2]|0;
$890 = ($I7$0$i$i|0)==(31);
$891 = $I7$0$i$i >>> 1;
$892 = (25 - ($891))|0;
$893 = $890 ? 0 : $892;
$894 = $qsize$0$i$i << $893;
$K8$0$i$i = $894;$T$0$i18$i = $889;
while(1) {
$895 = ((($T$0$i18$i)) + 4|0);
$896 = HEAP32[$895>>2]|0;
$897 = $896 & -8;
$898 = ($897|0)==($qsize$0$i$i|0);
if ($898) {
$T$0$i18$i$lcssa = $T$0$i18$i;
label = 279;
break;
}
$899 = $K8$0$i$i >>> 31;
$900 = (((($T$0$i18$i)) + 16|0) + ($899<<2)|0);
$901 = $K8$0$i$i << 1;
$902 = HEAP32[$900>>2]|0;
$903 = ($902|0)==(0|0);
if ($903) {
$$lcssa = $900;$T$0$i18$i$lcssa139 = $T$0$i18$i;
label = 276;
break;
} else {
$K8$0$i$i = $901;$T$0$i18$i = $902;
}
}
if ((label|0) == 276) {
$904 = HEAP32[(5128)>>2]|0;
$905 = ($$lcssa>>>0)<($904>>>0);
if ($905) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa>>2] = $722;
$906 = ((($722)) + 24|0);
HEAP32[$906>>2] = $T$0$i18$i$lcssa139;
$907 = ((($722)) + 12|0);
HEAP32[$907>>2] = $722;
$908 = ((($722)) + 8|0);
HEAP32[$908>>2] = $722;
break;
}
}
else if ((label|0) == 279) {
$909 = ((($T$0$i18$i$lcssa)) + 8|0);
$910 = HEAP32[$909>>2]|0;
$911 = HEAP32[(5128)>>2]|0;
$912 = ($910>>>0)>=($911>>>0);
$not$$i20$i = ($T$0$i18$i$lcssa>>>0)>=($911>>>0);
$913 = $912 & $not$$i20$i;
if ($913) {
$914 = ((($910)) + 12|0);
HEAP32[$914>>2] = $722;
HEAP32[$909>>2] = $722;
$915 = ((($722)) + 8|0);
HEAP32[$915>>2] = $910;
$916 = ((($722)) + 12|0);
HEAP32[$916>>2] = $T$0$i18$i$lcssa;
$917 = ((($722)) + 24|0);
HEAP32[$917>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$1048 = ((($710)) + 8|0);
$$0 = $1048;
STACKTOP = sp;return ($$0|0);
} else {
$sp$0$i$i$i = (5560);
}
}
while(1) {
$918 = HEAP32[$sp$0$i$i$i>>2]|0;
$919 = ($918>>>0)>($631>>>0);
if (!($919)) {
$920 = ((($sp$0$i$i$i)) + 4|0);
$921 = HEAP32[$920>>2]|0;
$922 = (($918) + ($921)|0);
$923 = ($922>>>0)>($631>>>0);
if ($923) {
$$lcssa142 = $922;
break;
}
}
$924 = ((($sp$0$i$i$i)) + 8|0);
$925 = HEAP32[$924>>2]|0;
$sp$0$i$i$i = $925;
}
$926 = ((($$lcssa142)) + -47|0);
$927 = ((($926)) + 8|0);
$928 = $927;
$929 = $928 & 7;
$930 = ($929|0)==(0);
$931 = (0 - ($928))|0;
$932 = $931 & 7;
$933 = $930 ? 0 : $932;
$934 = (($926) + ($933)|0);
$935 = ((($631)) + 16|0);
$936 = ($934>>>0)<($935>>>0);
$937 = $936 ? $631 : $934;
$938 = ((($937)) + 8|0);
$939 = ((($937)) + 24|0);
$940 = (($tsize$745$i) + -40)|0;
$941 = ((($tbase$746$i)) + 8|0);
$942 = $941;
$943 = $942 & 7;
$944 = ($943|0)==(0);
$945 = (0 - ($942))|0;
$946 = $945 & 7;
$947 = $944 ? 0 : $946;
$948 = (($tbase$746$i) + ($947)|0);
$949 = (($940) - ($947))|0;
HEAP32[(5136)>>2] = $948;
HEAP32[(5124)>>2] = $949;
$950 = $949 | 1;
$951 = ((($948)) + 4|0);
HEAP32[$951>>2] = $950;
$952 = (($948) + ($949)|0);
$953 = ((($952)) + 4|0);
HEAP32[$953>>2] = 40;
$954 = HEAP32[(5600)>>2]|0;
HEAP32[(5140)>>2] = $954;
$955 = ((($937)) + 4|0);
HEAP32[$955>>2] = 27;
;HEAP32[$938>>2]=HEAP32[(5560)>>2]|0;HEAP32[$938+4>>2]=HEAP32[(5560)+4>>2]|0;HEAP32[$938+8>>2]=HEAP32[(5560)+8>>2]|0;HEAP32[$938+12>>2]=HEAP32[(5560)+12>>2]|0;
HEAP32[(5560)>>2] = $tbase$746$i;
HEAP32[(5564)>>2] = $tsize$745$i;
HEAP32[(5572)>>2] = 0;
HEAP32[(5568)>>2] = $938;
$p$0$i$i = $939;
while(1) {
$956 = ((($p$0$i$i)) + 4|0);
HEAP32[$956>>2] = 7;
$957 = ((($956)) + 4|0);
$958 = ($957>>>0)<($$lcssa142>>>0);
if ($958) {
$p$0$i$i = $956;
} else {
break;
}
}
$959 = ($937|0)==($631|0);
if (!($959)) {
$960 = $937;
$961 = $631;
$962 = (($960) - ($961))|0;
$963 = HEAP32[$955>>2]|0;
$964 = $963 & -2;
HEAP32[$955>>2] = $964;
$965 = $962 | 1;
$966 = ((($631)) + 4|0);
HEAP32[$966>>2] = $965;
HEAP32[$937>>2] = $962;
$967 = $962 >>> 3;
$968 = ($962>>>0)<(256);
if ($968) {
$969 = $967 << 1;
$970 = (5152 + ($969<<2)|0);
$971 = HEAP32[1278]|0;
$972 = 1 << $967;
$973 = $971 & $972;
$974 = ($973|0)==(0);
if ($974) {
$975 = $971 | $972;
HEAP32[1278] = $975;
$$pre$i$i = ((($970)) + 8|0);
$$pre$phi$i$iZ2D = $$pre$i$i;$F$0$i$i = $970;
} else {
$976 = ((($970)) + 8|0);
$977 = HEAP32[$976>>2]|0;
$978 = HEAP32[(5128)>>2]|0;
$979 = ($977>>>0)<($978>>>0);
if ($979) {
_abort();
// unreachable;
} else {
$$pre$phi$i$iZ2D = $976;$F$0$i$i = $977;
}
}
HEAP32[$$pre$phi$i$iZ2D>>2] = $631;
$980 = ((($F$0$i$i)) + 12|0);
HEAP32[$980>>2] = $631;
$981 = ((($631)) + 8|0);
HEAP32[$981>>2] = $F$0$i$i;
$982 = ((($631)) + 12|0);
HEAP32[$982>>2] = $970;
break;
}
$983 = $962 >>> 8;
$984 = ($983|0)==(0);
if ($984) {
$I1$0$i$i = 0;
} else {
$985 = ($962>>>0)>(16777215);
if ($985) {
$I1$0$i$i = 31;
} else {
$986 = (($983) + 1048320)|0;
$987 = $986 >>> 16;
$988 = $987 & 8;
$989 = $983 << $988;
$990 = (($989) + 520192)|0;
$991 = $990 >>> 16;
$992 = $991 & 4;
$993 = $992 | $988;
$994 = $989 << $992;
$995 = (($994) + 245760)|0;
$996 = $995 >>> 16;
$997 = $996 & 2;
$998 = $993 | $997;
$999 = (14 - ($998))|0;
$1000 = $994 << $997;
$1001 = $1000 >>> 15;
$1002 = (($999) + ($1001))|0;
$1003 = $1002 << 1;
$1004 = (($1002) + 7)|0;
$1005 = $962 >>> $1004;
$1006 = $1005 & 1;
$1007 = $1006 | $1003;
$I1$0$i$i = $1007;
}
}
$1008 = (5416 + ($I1$0$i$i<<2)|0);
$1009 = ((($631)) + 28|0);
HEAP32[$1009>>2] = $I1$0$i$i;
$1010 = ((($631)) + 20|0);
HEAP32[$1010>>2] = 0;
HEAP32[$935>>2] = 0;
$1011 = HEAP32[(5116)>>2]|0;
$1012 = 1 << $I1$0$i$i;
$1013 = $1011 & $1012;
$1014 = ($1013|0)==(0);
if ($1014) {
$1015 = $1011 | $1012;
HEAP32[(5116)>>2] = $1015;
HEAP32[$1008>>2] = $631;
$1016 = ((($631)) + 24|0);
HEAP32[$1016>>2] = $1008;
$1017 = ((($631)) + 12|0);
HEAP32[$1017>>2] = $631;
$1018 = ((($631)) + 8|0);
HEAP32[$1018>>2] = $631;
break;
}
$1019 = HEAP32[$1008>>2]|0;
$1020 = ($I1$0$i$i|0)==(31);
$1021 = $I1$0$i$i >>> 1;
$1022 = (25 - ($1021))|0;
$1023 = $1020 ? 0 : $1022;
$1024 = $962 << $1023;
$K2$0$i$i = $1024;$T$0$i$i = $1019;
while(1) {
$1025 = ((($T$0$i$i)) + 4|0);
$1026 = HEAP32[$1025>>2]|0;
$1027 = $1026 & -8;
$1028 = ($1027|0)==($962|0);
if ($1028) {
$T$0$i$i$lcssa = $T$0$i$i;
label = 305;
break;
}
$1029 = $K2$0$i$i >>> 31;
$1030 = (((($T$0$i$i)) + 16|0) + ($1029<<2)|0);
$1031 = $K2$0$i$i << 1;
$1032 = HEAP32[$1030>>2]|0;
$1033 = ($1032|0)==(0|0);
if ($1033) {
$$lcssa141 = $1030;$T$0$i$i$lcssa140 = $T$0$i$i;
label = 302;
break;
} else {
$K2$0$i$i = $1031;$T$0$i$i = $1032;
}
}
if ((label|0) == 302) {
$1034 = HEAP32[(5128)>>2]|0;
$1035 = ($$lcssa141>>>0)<($1034>>>0);
if ($1035) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa141>>2] = $631;
$1036 = ((($631)) + 24|0);
HEAP32[$1036>>2] = $T$0$i$i$lcssa140;
$1037 = ((($631)) + 12|0);
HEAP32[$1037>>2] = $631;
$1038 = ((($631)) + 8|0);
HEAP32[$1038>>2] = $631;
break;
}
}
else if ((label|0) == 305) {
$1039 = ((($T$0$i$i$lcssa)) + 8|0);
$1040 = HEAP32[$1039>>2]|0;
$1041 = HEAP32[(5128)>>2]|0;
$1042 = ($1040>>>0)>=($1041>>>0);
$not$$i$i = ($T$0$i$i$lcssa>>>0)>=($1041>>>0);
$1043 = $1042 & $not$$i$i;
if ($1043) {
$1044 = ((($1040)) + 12|0);
HEAP32[$1044>>2] = $631;
HEAP32[$1039>>2] = $631;
$1045 = ((($631)) + 8|0);
HEAP32[$1045>>2] = $1040;
$1046 = ((($631)) + 12|0);
HEAP32[$1046>>2] = $T$0$i$i$lcssa;
$1047 = ((($631)) + 24|0);
HEAP32[$1047>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
}
} while(0);
$1049 = HEAP32[(5124)>>2]|0;
$1050 = ($1049>>>0)>($nb$0>>>0);
if ($1050) {
$1051 = (($1049) - ($nb$0))|0;
HEAP32[(5124)>>2] = $1051;
$1052 = HEAP32[(5136)>>2]|0;
$1053 = (($1052) + ($nb$0)|0);
HEAP32[(5136)>>2] = $1053;
$1054 = $1051 | 1;
$1055 = ((($1053)) + 4|0);
HEAP32[$1055>>2] = $1054;
$1056 = $nb$0 | 3;
$1057 = ((($1052)) + 4|0);
HEAP32[$1057>>2] = $1056;
$1058 = ((($1052)) + 8|0);
$$0 = $1058;
STACKTOP = sp;return ($$0|0);
}
}
$1059 = (___errno_location()|0);
HEAP32[$1059>>2] = 12;
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
function _free($mem) {
$mem = $mem|0;
var $$lcssa = 0, $$pre = 0, $$pre$phi41Z2D = 0, $$pre$phi43Z2D = 0, $$pre$phiZ2D = 0, $$pre40 = 0, $$pre42 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0;
var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0;
var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0;
var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0;
var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0;
var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0;
var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0;
var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0;
var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0;
var $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0;
var $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0;
var $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0;
var $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0;
var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0;
var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0;
var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F18$0 = 0, $I20$0 = 0, $K21$0 = 0, $R$1 = 0, $R$1$lcssa = 0, $R$3 = 0, $R8$1 = 0, $R8$1$lcssa = 0, $R8$3 = 0, $RP$1 = 0, $RP$1$lcssa = 0, $RP10$1 = 0, $RP10$1$lcssa = 0;
var $T$0 = 0, $T$0$lcssa = 0, $T$0$lcssa48 = 0, $cond20 = 0, $cond21 = 0, $not$ = 0, $p$1 = 0, $psize$1 = 0, $psize$2 = 0, $sp$0$i = 0, $sp$0$in$i = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ($mem|0)==(0|0);
if ($0) {
return;
}
$1 = ((($mem)) + -8|0);
$2 = HEAP32[(5128)>>2]|0;
$3 = ($1>>>0)<($2>>>0);
if ($3) {
_abort();
// unreachable;
}
$4 = ((($mem)) + -4|0);
$5 = HEAP32[$4>>2]|0;
$6 = $5 & 3;
$7 = ($6|0)==(1);
if ($7) {
_abort();
// unreachable;
}
$8 = $5 & -8;
$9 = (($1) + ($8)|0);
$10 = $5 & 1;
$11 = ($10|0)==(0);
do {
if ($11) {
$12 = HEAP32[$1>>2]|0;
$13 = ($6|0)==(0);
if ($13) {
return;
}
$14 = (0 - ($12))|0;
$15 = (($1) + ($14)|0);
$16 = (($12) + ($8))|0;
$17 = ($15>>>0)<($2>>>0);
if ($17) {
_abort();
// unreachable;
}
$18 = HEAP32[(5132)>>2]|0;
$19 = ($15|0)==($18|0);
if ($19) {
$104 = ((($9)) + 4|0);
$105 = HEAP32[$104>>2]|0;
$106 = $105 & 3;
$107 = ($106|0)==(3);
if (!($107)) {
$p$1 = $15;$psize$1 = $16;
break;
}
HEAP32[(5120)>>2] = $16;
$108 = $105 & -2;
HEAP32[$104>>2] = $108;
$109 = $16 | 1;
$110 = ((($15)) + 4|0);
HEAP32[$110>>2] = $109;
$111 = (($15) + ($16)|0);
HEAP32[$111>>2] = $16;
return;
}
$20 = $12 >>> 3;
$21 = ($12>>>0)<(256);
if ($21) {
$22 = ((($15)) + 8|0);
$23 = HEAP32[$22>>2]|0;
$24 = ((($15)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = $20 << 1;
$27 = (5152 + ($26<<2)|0);
$28 = ($23|0)==($27|0);
if (!($28)) {
$29 = ($23>>>0)<($2>>>0);
if ($29) {
_abort();
// unreachable;
}
$30 = ((($23)) + 12|0);
$31 = HEAP32[$30>>2]|0;
$32 = ($31|0)==($15|0);
if (!($32)) {
_abort();
// unreachable;
}
}
$33 = ($25|0)==($23|0);
if ($33) {
$34 = 1 << $20;
$35 = $34 ^ -1;
$36 = HEAP32[1278]|0;
$37 = $36 & $35;
HEAP32[1278] = $37;
$p$1 = $15;$psize$1 = $16;
break;
}
$38 = ($25|0)==($27|0);
if ($38) {
$$pre42 = ((($25)) + 8|0);
$$pre$phi43Z2D = $$pre42;
} else {
$39 = ($25>>>0)<($2>>>0);
if ($39) {
_abort();
// unreachable;
}
$40 = ((($25)) + 8|0);
$41 = HEAP32[$40>>2]|0;
$42 = ($41|0)==($15|0);
if ($42) {
$$pre$phi43Z2D = $40;
} else {
_abort();
// unreachable;
}
}
$43 = ((($23)) + 12|0);
HEAP32[$43>>2] = $25;
HEAP32[$$pre$phi43Z2D>>2] = $23;
$p$1 = $15;$psize$1 = $16;
break;
}
$44 = ((($15)) + 24|0);
$45 = HEAP32[$44>>2]|0;
$46 = ((($15)) + 12|0);
$47 = HEAP32[$46>>2]|0;
$48 = ($47|0)==($15|0);
do {
if ($48) {
$58 = ((($15)) + 16|0);
$59 = ((($58)) + 4|0);
$60 = HEAP32[$59>>2]|0;
$61 = ($60|0)==(0|0);
if ($61) {
$62 = HEAP32[$58>>2]|0;
$63 = ($62|0)==(0|0);
if ($63) {
$R$3 = 0;
break;
} else {
$R$1 = $62;$RP$1 = $58;
}
} else {
$R$1 = $60;$RP$1 = $59;
}
while(1) {
$64 = ((($R$1)) + 20|0);
$65 = HEAP32[$64>>2]|0;
$66 = ($65|0)==(0|0);
if (!($66)) {
$R$1 = $65;$RP$1 = $64;
continue;
}
$67 = ((($R$1)) + 16|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)==(0|0);
if ($69) {
$R$1$lcssa = $R$1;$RP$1$lcssa = $RP$1;
break;
} else {
$R$1 = $68;$RP$1 = $67;
}
}
$70 = ($RP$1$lcssa>>>0)<($2>>>0);
if ($70) {
_abort();
// unreachable;
} else {
HEAP32[$RP$1$lcssa>>2] = 0;
$R$3 = $R$1$lcssa;
break;
}
} else {
$49 = ((($15)) + 8|0);
$50 = HEAP32[$49>>2]|0;
$51 = ($50>>>0)<($2>>>0);
if ($51) {
_abort();
// unreachable;
}
$52 = ((($50)) + 12|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($53|0)==($15|0);
if (!($54)) {
_abort();
// unreachable;
}
$55 = ((($47)) + 8|0);
$56 = HEAP32[$55>>2]|0;
$57 = ($56|0)==($15|0);
if ($57) {
HEAP32[$52>>2] = $47;
HEAP32[$55>>2] = $50;
$R$3 = $47;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$71 = ($45|0)==(0|0);
if ($71) {
$p$1 = $15;$psize$1 = $16;
} else {
$72 = ((($15)) + 28|0);
$73 = HEAP32[$72>>2]|0;
$74 = (5416 + ($73<<2)|0);
$75 = HEAP32[$74>>2]|0;
$76 = ($15|0)==($75|0);
if ($76) {
HEAP32[$74>>2] = $R$3;
$cond20 = ($R$3|0)==(0|0);
if ($cond20) {
$77 = 1 << $73;
$78 = $77 ^ -1;
$79 = HEAP32[(5116)>>2]|0;
$80 = $79 & $78;
HEAP32[(5116)>>2] = $80;
$p$1 = $15;$psize$1 = $16;
break;
}
} else {
$81 = HEAP32[(5128)>>2]|0;
$82 = ($45>>>0)<($81>>>0);
if ($82) {
_abort();
// unreachable;
}
$83 = ((($45)) + 16|0);
$84 = HEAP32[$83>>2]|0;
$85 = ($84|0)==($15|0);
if ($85) {
HEAP32[$83>>2] = $R$3;
} else {
$86 = ((($45)) + 20|0);
HEAP32[$86>>2] = $R$3;
}
$87 = ($R$3|0)==(0|0);
if ($87) {
$p$1 = $15;$psize$1 = $16;
break;
}
}
$88 = HEAP32[(5128)>>2]|0;
$89 = ($R$3>>>0)<($88>>>0);
if ($89) {
_abort();
// unreachable;
}
$90 = ((($R$3)) + 24|0);
HEAP32[$90>>2] = $45;
$91 = ((($15)) + 16|0);
$92 = HEAP32[$91>>2]|0;
$93 = ($92|0)==(0|0);
do {
if (!($93)) {
$94 = ($92>>>0)<($88>>>0);
if ($94) {
_abort();
// unreachable;
} else {
$95 = ((($R$3)) + 16|0);
HEAP32[$95>>2] = $92;
$96 = ((($92)) + 24|0);
HEAP32[$96>>2] = $R$3;
break;
}
}
} while(0);
$97 = ((($91)) + 4|0);
$98 = HEAP32[$97>>2]|0;
$99 = ($98|0)==(0|0);
if ($99) {
$p$1 = $15;$psize$1 = $16;
} else {
$100 = HEAP32[(5128)>>2]|0;
$101 = ($98>>>0)<($100>>>0);
if ($101) {
_abort();
// unreachable;
} else {
$102 = ((($R$3)) + 20|0);
HEAP32[$102>>2] = $98;
$103 = ((($98)) + 24|0);
HEAP32[$103>>2] = $R$3;
$p$1 = $15;$psize$1 = $16;
break;
}
}
}
} else {
$p$1 = $1;$psize$1 = $8;
}
} while(0);
$112 = ($p$1>>>0)<($9>>>0);
if (!($112)) {
_abort();
// unreachable;
}
$113 = ((($9)) + 4|0);
$114 = HEAP32[$113>>2]|0;
$115 = $114 & 1;
$116 = ($115|0)==(0);
if ($116) {
_abort();
// unreachable;
}
$117 = $114 & 2;
$118 = ($117|0)==(0);
if ($118) {
$119 = HEAP32[(5136)>>2]|0;
$120 = ($9|0)==($119|0);
if ($120) {
$121 = HEAP32[(5124)>>2]|0;
$122 = (($121) + ($psize$1))|0;
HEAP32[(5124)>>2] = $122;
HEAP32[(5136)>>2] = $p$1;
$123 = $122 | 1;
$124 = ((($p$1)) + 4|0);
HEAP32[$124>>2] = $123;
$125 = HEAP32[(5132)>>2]|0;
$126 = ($p$1|0)==($125|0);
if (!($126)) {
return;
}
HEAP32[(5132)>>2] = 0;
HEAP32[(5120)>>2] = 0;
return;
}
$127 = HEAP32[(5132)>>2]|0;
$128 = ($9|0)==($127|0);
if ($128) {
$129 = HEAP32[(5120)>>2]|0;
$130 = (($129) + ($psize$1))|0;
HEAP32[(5120)>>2] = $130;
HEAP32[(5132)>>2] = $p$1;
$131 = $130 | 1;
$132 = ((($p$1)) + 4|0);
HEAP32[$132>>2] = $131;
$133 = (($p$1) + ($130)|0);
HEAP32[$133>>2] = $130;
return;
}
$134 = $114 & -8;
$135 = (($134) + ($psize$1))|0;
$136 = $114 >>> 3;
$137 = ($114>>>0)<(256);
do {
if ($137) {
$138 = ((($9)) + 8|0);
$139 = HEAP32[$138>>2]|0;
$140 = ((($9)) + 12|0);
$141 = HEAP32[$140>>2]|0;
$142 = $136 << 1;
$143 = (5152 + ($142<<2)|0);
$144 = ($139|0)==($143|0);
if (!($144)) {
$145 = HEAP32[(5128)>>2]|0;
$146 = ($139>>>0)<($145>>>0);
if ($146) {
_abort();
// unreachable;
}
$147 = ((($139)) + 12|0);
$148 = HEAP32[$147>>2]|0;
$149 = ($148|0)==($9|0);
if (!($149)) {
_abort();
// unreachable;
}
}
$150 = ($141|0)==($139|0);
if ($150) {
$151 = 1 << $136;
$152 = $151 ^ -1;
$153 = HEAP32[1278]|0;
$154 = $153 & $152;
HEAP32[1278] = $154;
break;
}
$155 = ($141|0)==($143|0);
if ($155) {
$$pre40 = ((($141)) + 8|0);
$$pre$phi41Z2D = $$pre40;
} else {
$156 = HEAP32[(5128)>>2]|0;
$157 = ($141>>>0)<($156>>>0);
if ($157) {
_abort();
// unreachable;
}
$158 = ((($141)) + 8|0);
$159 = HEAP32[$158>>2]|0;
$160 = ($159|0)==($9|0);
if ($160) {
$$pre$phi41Z2D = $158;
} else {
_abort();
// unreachable;
}
}
$161 = ((($139)) + 12|0);
HEAP32[$161>>2] = $141;
HEAP32[$$pre$phi41Z2D>>2] = $139;
} else {
$162 = ((($9)) + 24|0);
$163 = HEAP32[$162>>2]|0;
$164 = ((($9)) + 12|0);
$165 = HEAP32[$164>>2]|0;
$166 = ($165|0)==($9|0);
do {
if ($166) {
$177 = ((($9)) + 16|0);
$178 = ((($177)) + 4|0);
$179 = HEAP32[$178>>2]|0;
$180 = ($179|0)==(0|0);
if ($180) {
$181 = HEAP32[$177>>2]|0;
$182 = ($181|0)==(0|0);
if ($182) {
$R8$3 = 0;
break;
} else {
$R8$1 = $181;$RP10$1 = $177;
}
} else {
$R8$1 = $179;$RP10$1 = $178;
}
while(1) {
$183 = ((($R8$1)) + 20|0);
$184 = HEAP32[$183>>2]|0;
$185 = ($184|0)==(0|0);
if (!($185)) {
$R8$1 = $184;$RP10$1 = $183;
continue;
}
$186 = ((($R8$1)) + 16|0);
$187 = HEAP32[$186>>2]|0;
$188 = ($187|0)==(0|0);
if ($188) {
$R8$1$lcssa = $R8$1;$RP10$1$lcssa = $RP10$1;
break;
} else {
$R8$1 = $187;$RP10$1 = $186;
}
}
$189 = HEAP32[(5128)>>2]|0;
$190 = ($RP10$1$lcssa>>>0)<($189>>>0);
if ($190) {
_abort();
// unreachable;
} else {
HEAP32[$RP10$1$lcssa>>2] = 0;
$R8$3 = $R8$1$lcssa;
break;
}
} else {
$167 = ((($9)) + 8|0);
$168 = HEAP32[$167>>2]|0;
$169 = HEAP32[(5128)>>2]|0;
$170 = ($168>>>0)<($169>>>0);
if ($170) {
_abort();
// unreachable;
}
$171 = ((($168)) + 12|0);
$172 = HEAP32[$171>>2]|0;
$173 = ($172|0)==($9|0);
if (!($173)) {
_abort();
// unreachable;
}
$174 = ((($165)) + 8|0);
$175 = HEAP32[$174>>2]|0;
$176 = ($175|0)==($9|0);
if ($176) {
HEAP32[$171>>2] = $165;
HEAP32[$174>>2] = $168;
$R8$3 = $165;
break;
} else {
_abort();
// unreachable;
}
}
} while(0);
$191 = ($163|0)==(0|0);
if (!($191)) {
$192 = ((($9)) + 28|0);
$193 = HEAP32[$192>>2]|0;
$194 = (5416 + ($193<<2)|0);
$195 = HEAP32[$194>>2]|0;
$196 = ($9|0)==($195|0);
if ($196) {
HEAP32[$194>>2] = $R8$3;
$cond21 = ($R8$3|0)==(0|0);
if ($cond21) {
$197 = 1 << $193;
$198 = $197 ^ -1;
$199 = HEAP32[(5116)>>2]|0;
$200 = $199 & $198;
HEAP32[(5116)>>2] = $200;
break;
}
} else {
$201 = HEAP32[(5128)>>2]|0;
$202 = ($163>>>0)<($201>>>0);
if ($202) {
_abort();
// unreachable;
}
$203 = ((($163)) + 16|0);
$204 = HEAP32[$203>>2]|0;
$205 = ($204|0)==($9|0);
if ($205) {
HEAP32[$203>>2] = $R8$3;
} else {
$206 = ((($163)) + 20|0);
HEAP32[$206>>2] = $R8$3;
}
$207 = ($R8$3|0)==(0|0);
if ($207) {
break;
}
}
$208 = HEAP32[(5128)>>2]|0;
$209 = ($R8$3>>>0)<($208>>>0);
if ($209) {
_abort();
// unreachable;
}
$210 = ((($R8$3)) + 24|0);
HEAP32[$210>>2] = $163;
$211 = ((($9)) + 16|0);
$212 = HEAP32[$211>>2]|0;
$213 = ($212|0)==(0|0);
do {
if (!($213)) {
$214 = ($212>>>0)<($208>>>0);
if ($214) {
_abort();
// unreachable;
} else {
$215 = ((($R8$3)) + 16|0);
HEAP32[$215>>2] = $212;
$216 = ((($212)) + 24|0);
HEAP32[$216>>2] = $R8$3;
break;
}
}
} while(0);
$217 = ((($211)) + 4|0);
$218 = HEAP32[$217>>2]|0;
$219 = ($218|0)==(0|0);
if (!($219)) {
$220 = HEAP32[(5128)>>2]|0;
$221 = ($218>>>0)<($220>>>0);
if ($221) {
_abort();
// unreachable;
} else {
$222 = ((($R8$3)) + 20|0);
HEAP32[$222>>2] = $218;
$223 = ((($218)) + 24|0);
HEAP32[$223>>2] = $R8$3;
break;
}
}
}
}
} while(0);
$224 = $135 | 1;
$225 = ((($p$1)) + 4|0);
HEAP32[$225>>2] = $224;
$226 = (($p$1) + ($135)|0);
HEAP32[$226>>2] = $135;
$227 = HEAP32[(5132)>>2]|0;
$228 = ($p$1|0)==($227|0);
if ($228) {
HEAP32[(5120)>>2] = $135;
return;
} else {
$psize$2 = $135;
}
} else {
$229 = $114 & -2;
HEAP32[$113>>2] = $229;
$230 = $psize$1 | 1;
$231 = ((($p$1)) + 4|0);
HEAP32[$231>>2] = $230;
$232 = (($p$1) + ($psize$1)|0);
HEAP32[$232>>2] = $psize$1;
$psize$2 = $psize$1;
}
$233 = $psize$2 >>> 3;
$234 = ($psize$2>>>0)<(256);
if ($234) {
$235 = $233 << 1;
$236 = (5152 + ($235<<2)|0);
$237 = HEAP32[1278]|0;
$238 = 1 << $233;
$239 = $237 & $238;
$240 = ($239|0)==(0);
if ($240) {
$241 = $237 | $238;
HEAP32[1278] = $241;
$$pre = ((($236)) + 8|0);
$$pre$phiZ2D = $$pre;$F18$0 = $236;
} else {
$242 = ((($236)) + 8|0);
$243 = HEAP32[$242>>2]|0;
$244 = HEAP32[(5128)>>2]|0;
$245 = ($243>>>0)<($244>>>0);
if ($245) {
_abort();
// unreachable;
} else {
$$pre$phiZ2D = $242;$F18$0 = $243;
}
}
HEAP32[$$pre$phiZ2D>>2] = $p$1;
$246 = ((($F18$0)) + 12|0);
HEAP32[$246>>2] = $p$1;
$247 = ((($p$1)) + 8|0);
HEAP32[$247>>2] = $F18$0;
$248 = ((($p$1)) + 12|0);
HEAP32[$248>>2] = $236;
return;
}
$249 = $psize$2 >>> 8;
$250 = ($249|0)==(0);
if ($250) {
$I20$0 = 0;
} else {
$251 = ($psize$2>>>0)>(16777215);
if ($251) {
$I20$0 = 31;
} else {
$252 = (($249) + 1048320)|0;
$253 = $252 >>> 16;
$254 = $253 & 8;
$255 = $249 << $254;
$256 = (($255) + 520192)|0;
$257 = $256 >>> 16;
$258 = $257 & 4;
$259 = $258 | $254;
$260 = $255 << $258;
$261 = (($260) + 245760)|0;
$262 = $261 >>> 16;
$263 = $262 & 2;
$264 = $259 | $263;
$265 = (14 - ($264))|0;
$266 = $260 << $263;
$267 = $266 >>> 15;
$268 = (($265) + ($267))|0;
$269 = $268 << 1;
$270 = (($268) + 7)|0;
$271 = $psize$2 >>> $270;
$272 = $271 & 1;
$273 = $272 | $269;
$I20$0 = $273;
}
}
$274 = (5416 + ($I20$0<<2)|0);
$275 = ((($p$1)) + 28|0);
HEAP32[$275>>2] = $I20$0;
$276 = ((($p$1)) + 16|0);
$277 = ((($p$1)) + 20|0);
HEAP32[$277>>2] = 0;
HEAP32[$276>>2] = 0;
$278 = HEAP32[(5116)>>2]|0;
$279 = 1 << $I20$0;
$280 = $278 & $279;
$281 = ($280|0)==(0);
do {
if ($281) {
$282 = $278 | $279;
HEAP32[(5116)>>2] = $282;
HEAP32[$274>>2] = $p$1;
$283 = ((($p$1)) + 24|0);
HEAP32[$283>>2] = $274;
$284 = ((($p$1)) + 12|0);
HEAP32[$284>>2] = $p$1;
$285 = ((($p$1)) + 8|0);
HEAP32[$285>>2] = $p$1;
} else {
$286 = HEAP32[$274>>2]|0;
$287 = ($I20$0|0)==(31);
$288 = $I20$0 >>> 1;
$289 = (25 - ($288))|0;
$290 = $287 ? 0 : $289;
$291 = $psize$2 << $290;
$K21$0 = $291;$T$0 = $286;
while(1) {
$292 = ((($T$0)) + 4|0);
$293 = HEAP32[$292>>2]|0;
$294 = $293 & -8;
$295 = ($294|0)==($psize$2|0);
if ($295) {
$T$0$lcssa = $T$0;
label = 130;
break;
}
$296 = $K21$0 >>> 31;
$297 = (((($T$0)) + 16|0) + ($296<<2)|0);
$298 = $K21$0 << 1;
$299 = HEAP32[$297>>2]|0;
$300 = ($299|0)==(0|0);
if ($300) {
$$lcssa = $297;$T$0$lcssa48 = $T$0;
label = 127;
break;
} else {
$K21$0 = $298;$T$0 = $299;
}
}
if ((label|0) == 127) {
$301 = HEAP32[(5128)>>2]|0;
$302 = ($$lcssa>>>0)<($301>>>0);
if ($302) {
_abort();
// unreachable;
} else {
HEAP32[$$lcssa>>2] = $p$1;
$303 = ((($p$1)) + 24|0);
HEAP32[$303>>2] = $T$0$lcssa48;
$304 = ((($p$1)) + 12|0);
HEAP32[$304>>2] = $p$1;
$305 = ((($p$1)) + 8|0);
HEAP32[$305>>2] = $p$1;
break;
}
}
else if ((label|0) == 130) {
$306 = ((($T$0$lcssa)) + 8|0);
$307 = HEAP32[$306>>2]|0;
$308 = HEAP32[(5128)>>2]|0;
$309 = ($307>>>0)>=($308>>>0);
$not$ = ($T$0$lcssa>>>0)>=($308>>>0);
$310 = $309 & $not$;
if ($310) {
$311 = ((($307)) + 12|0);
HEAP32[$311>>2] = $p$1;
HEAP32[$306>>2] = $p$1;
$312 = ((($p$1)) + 8|0);
HEAP32[$312>>2] = $307;
$313 = ((($p$1)) + 12|0);
HEAP32[$313>>2] = $T$0$lcssa;
$314 = ((($p$1)) + 24|0);
HEAP32[$314>>2] = 0;
break;
} else {
_abort();
// unreachable;
}
}
}
} while(0);
$315 = HEAP32[(5144)>>2]|0;
$316 = (($315) + -1)|0;
HEAP32[(5144)>>2] = $316;
$317 = ($316|0)==(0);
if ($317) {
$sp$0$in$i = (5568);
} else {
return;
}
while(1) {
$sp$0$i = HEAP32[$sp$0$in$i>>2]|0;
$318 = ($sp$0$i|0)==(0|0);
$319 = ((($sp$0$i)) + 8|0);
if ($318) {
break;
} else {
$sp$0$in$i = $319;
}
}
HEAP32[(5144)>>2] = -1;
return;
}
function __ZN10__cxxabiv116__shim_type_infoD2Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __ZNSt9type_infoD2Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
__ZdlPv($this);
return;
}
function __ZdlPv($ptr) {
$ptr = $ptr|0;
var label = 0, sp = 0;
sp = STACKTOP;
_free($ptr);
return;
}
function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
return;
}
function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($this,$thrown_type,$adjustedPtr) {
$this = $this|0;
$thrown_type = $thrown_type|0;
$adjustedPtr = $adjustedPtr|0;
var $$0 = 0, $$2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $info = 0, dest = 0;
var label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$info = sp;
$0 = ($this|0)==($thrown_type|0);
if ($0) {
$$2 = 1;
} else {
$1 = ($thrown_type|0)==(0|0);
if ($1) {
$$2 = 0;
} else {
$2 = (___dynamic_cast($thrown_type,224,192,0)|0);
$3 = ($2|0)==(0|0);
if ($3) {
$$2 = 0;
} else {
dest=$info; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
HEAP32[$info>>2] = $2;
$4 = ((($info)) + 8|0);
HEAP32[$4>>2] = $this;
$5 = ((($info)) + 12|0);
HEAP32[$5>>2] = -1;
$6 = ((($info)) + 48|0);
HEAP32[$6>>2] = 1;
$7 = HEAP32[$2>>2]|0;
$8 = ((($7)) + 28|0);
$9 = HEAP32[$8>>2]|0;
$10 = HEAP32[$adjustedPtr>>2]|0;
FUNCTION_TABLE_viiii[$9 & 31]($2,$info,$10,1);
$11 = ((($info)) + 24|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==(1);
if ($13) {
$14 = ((($info)) + 16|0);
$15 = HEAP32[$14>>2]|0;
HEAP32[$adjustedPtr>>2] = $15;
$$0 = 1;
} else {
$$0 = 0;
}
$$2 = $$0;
}
}
}
STACKTOP = sp;return ($$2|0);
}
function ___dynamic_cast($static_ptr,$static_type,$dst_type,$src2dst_offset) {
$static_ptr = $static_ptr|0;
$static_type = $static_type|0;
$dst_type = $dst_type|0;
$src2dst_offset = $src2dst_offset|0;
var $$ = 0, $$8 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $dst_ptr$0 = 0, $info = 0, $or$cond = 0, $or$cond3 = 0, $or$cond5 = 0, $or$cond7 = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$info = sp;
$0 = HEAP32[$static_ptr>>2]|0;
$1 = ((($0)) + -8|0);
$2 = HEAP32[$1>>2]|0;
$3 = (($static_ptr) + ($2)|0);
$4 = ((($0)) + -4|0);
$5 = HEAP32[$4>>2]|0;
HEAP32[$info>>2] = $dst_type;
$6 = ((($info)) + 4|0);
HEAP32[$6>>2] = $static_ptr;
$7 = ((($info)) + 8|0);
HEAP32[$7>>2] = $static_type;
$8 = ((($info)) + 12|0);
HEAP32[$8>>2] = $src2dst_offset;
$9 = ((($info)) + 16|0);
$10 = ((($info)) + 20|0);
$11 = ((($info)) + 24|0);
$12 = ((($info)) + 28|0);
$13 = ((($info)) + 32|0);
$14 = ((($info)) + 40|0);
$15 = ($5|0)==($dst_type|0);
dest=$9; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));HEAP16[$9+36>>1]=0|0;HEAP8[$9+38>>0]=0|0;
L1: do {
if ($15) {
$16 = ((($info)) + 48|0);
HEAP32[$16>>2] = 1;
$17 = HEAP32[$dst_type>>2]|0;
$18 = ((($17)) + 20|0);
$19 = HEAP32[$18>>2]|0;
FUNCTION_TABLE_viiiiii[$19 & 31]($dst_type,$info,$3,$3,1,0);
$20 = HEAP32[$11>>2]|0;
$21 = ($20|0)==(1);
$$ = $21 ? $3 : 0;
$dst_ptr$0 = $$;
} else {
$22 = ((($info)) + 36|0);
$23 = HEAP32[$5>>2]|0;
$24 = ((($23)) + 24|0);
$25 = HEAP32[$24>>2]|0;
FUNCTION_TABLE_viiiii[$25 & 31]($5,$info,$3,1,0);
$26 = HEAP32[$22>>2]|0;
switch ($26|0) {
case 0: {
$27 = HEAP32[$14>>2]|0;
$28 = ($27|0)==(1);
$29 = HEAP32[$12>>2]|0;
$30 = ($29|0)==(1);
$or$cond = $28 & $30;
$31 = HEAP32[$13>>2]|0;
$32 = ($31|0)==(1);
$or$cond3 = $or$cond & $32;
$33 = HEAP32[$10>>2]|0;
$$8 = $or$cond3 ? $33 : 0;
$dst_ptr$0 = $$8;
break L1;
break;
}
case 1: {
break;
}
default: {
$dst_ptr$0 = 0;
break L1;
}
}
$34 = HEAP32[$11>>2]|0;
$35 = ($34|0)==(1);
if (!($35)) {
$36 = HEAP32[$14>>2]|0;
$37 = ($36|0)==(0);
$38 = HEAP32[$12>>2]|0;
$39 = ($38|0)==(1);
$or$cond5 = $37 & $39;
$40 = HEAP32[$13>>2]|0;
$41 = ($40|0)==(1);
$or$cond7 = $or$cond5 & $41;
if (!($or$cond7)) {
$dst_ptr$0 = 0;
break;
}
}
$42 = HEAP32[$9>>2]|0;
$dst_ptr$0 = $42;
}
} while(0);
STACKTOP = sp;return ($dst_ptr$0|0);
}
function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$dst_ptr = $dst_ptr|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
if ($2) {
__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$info,$dst_ptr,$current_ptr,$path_below);
} else {
$3 = ((($this)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 20|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_viiiiii[$7 & 31]($4,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp);
}
return;
}
function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($this,$info,$dst_ptr,$current_ptr,$path_below) {
$this = $this|0;
$info = $info|0;
$dst_ptr = $dst_ptr|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 53|0);
HEAP8[$0>>0] = 1;
$1 = ((($info)) + 4|0);
$2 = HEAP32[$1>>2]|0;
$3 = ($2|0)==($current_ptr|0);
do {
if ($3) {
$4 = ((($info)) + 52|0);
HEAP8[$4>>0] = 1;
$5 = ((($info)) + 16|0);
$6 = HEAP32[$5>>2]|0;
$7 = ($6|0)==(0|0);
if ($7) {
HEAP32[$5>>2] = $dst_ptr;
$8 = ((($info)) + 24|0);
HEAP32[$8>>2] = $path_below;
$9 = ((($info)) + 36|0);
HEAP32[$9>>2] = 1;
$10 = ((($info)) + 48|0);
$11 = HEAP32[$10>>2]|0;
$12 = ($11|0)==(1);
$13 = ($path_below|0)==(1);
$or$cond = $12 & $13;
if (!($or$cond)) {
break;
}
$14 = ((($info)) + 54|0);
HEAP8[$14>>0] = 1;
break;
}
$15 = ($6|0)==($dst_ptr|0);
if (!($15)) {
$25 = ((($info)) + 36|0);
$26 = HEAP32[$25>>2]|0;
$27 = (($26) + 1)|0;
HEAP32[$25>>2] = $27;
$28 = ((($info)) + 54|0);
HEAP8[$28>>0] = 1;
break;
}
$16 = ((($info)) + 24|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($17|0)==(2);
if ($18) {
HEAP32[$16>>2] = $path_below;
$22 = $path_below;
} else {
$22 = $17;
}
$19 = ((($info)) + 48|0);
$20 = HEAP32[$19>>2]|0;
$21 = ($20|0)==(1);
$23 = ($22|0)==(1);
$or$cond1 = $21 & $23;
if ($or$cond1) {
$24 = ((($info)) + 54|0);
HEAP8[$24>>0] = 1;
}
}
} while(0);
return;
}
function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $is_dst_type_derived_from_static_type$0$off02 = 0, $not$ = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
do {
if ($2) {
$3 = ((($info)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==($current_ptr|0);
if ($5) {
$6 = ((($info)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(1);
if (!($8)) {
HEAP32[$6>>2] = $path_below;
}
}
} else {
$9 = HEAP32[$info>>2]|0;
$10 = ($this|0)==($9|0);
if (!($10)) {
$44 = ((($this)) + 8|0);
$45 = HEAP32[$44>>2]|0;
$46 = HEAP32[$45>>2]|0;
$47 = ((($46)) + 24|0);
$48 = HEAP32[$47>>2]|0;
FUNCTION_TABLE_viiiii[$48 & 31]($45,$info,$current_ptr,$path_below,$use_strcmp);
break;
}
$11 = ((($info)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==($current_ptr|0);
if (!($13)) {
$14 = ((($info)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==($current_ptr|0);
if (!($16)) {
$19 = ((($info)) + 32|0);
HEAP32[$19>>2] = $path_below;
$20 = ((($info)) + 44|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)==(4);
if ($22) {
break;
}
$23 = ((($info)) + 52|0);
HEAP8[$23>>0] = 0;
$24 = ((($info)) + 53|0);
HEAP8[$24>>0] = 0;
$25 = ((($this)) + 8|0);
$26 = HEAP32[$25>>2]|0;
$27 = HEAP32[$26>>2]|0;
$28 = ((($27)) + 20|0);
$29 = HEAP32[$28>>2]|0;
FUNCTION_TABLE_viiiiii[$29 & 31]($26,$info,$current_ptr,$current_ptr,1,$use_strcmp);
$30 = HEAP8[$24>>0]|0;
$31 = ($30<<24>>24)==(0);
if ($31) {
$is_dst_type_derived_from_static_type$0$off02 = 0;
label = 13;
} else {
$32 = HEAP8[$23>>0]|0;
$not$ = ($32<<24>>24)==(0);
if ($not$) {
$is_dst_type_derived_from_static_type$0$off02 = 1;
label = 13;
} else {
label = 17;
}
}
do {
if ((label|0) == 13) {
HEAP32[$14>>2] = $current_ptr;
$33 = ((($info)) + 40|0);
$34 = HEAP32[$33>>2]|0;
$35 = (($34) + 1)|0;
HEAP32[$33>>2] = $35;
$36 = ((($info)) + 36|0);
$37 = HEAP32[$36>>2]|0;
$38 = ($37|0)==(1);
if ($38) {
$39 = ((($info)) + 24|0);
$40 = HEAP32[$39>>2]|0;
$41 = ($40|0)==(2);
if ($41) {
$42 = ((($info)) + 54|0);
HEAP8[$42>>0] = 1;
if ($is_dst_type_derived_from_static_type$0$off02) {
label = 17;
break;
} else {
$43 = 4;
break;
}
}
}
if ($is_dst_type_derived_from_static_type$0$off02) {
label = 17;
} else {
$43 = 4;
}
}
} while(0);
if ((label|0) == 17) {
$43 = 3;
}
HEAP32[$20>>2] = $43;
break;
}
}
$17 = ($path_below|0)==(1);
if ($17) {
$18 = ((($info)) + 32|0);
HEAP32[$18>>2] = 1;
}
}
} while(0);
return;
}
function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below) {
$this = $this|0;
$info = $info|0;
$adjustedPtr = $adjustedPtr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
if ($2) {
__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$info,$adjustedPtr,$path_below);
} else {
$3 = ((($this)) + 8|0);
$4 = HEAP32[$3>>2]|0;
$5 = HEAP32[$4>>2]|0;
$6 = ((($5)) + 28|0);
$7 = HEAP32[$6>>2]|0;
FUNCTION_TABLE_viiii[$7 & 31]($4,$info,$adjustedPtr,$path_below);
}
return;
}
function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below) {
$this = $this|0;
$info = $info|0;
$adjustedPtr = $adjustedPtr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 16|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($1|0)==(0|0);
do {
if ($2) {
HEAP32[$0>>2] = $adjustedPtr;
$3 = ((($info)) + 24|0);
HEAP32[$3>>2] = $path_below;
$4 = ((($info)) + 36|0);
HEAP32[$4>>2] = 1;
} else {
$5 = ($1|0)==($adjustedPtr|0);
if (!($5)) {
$9 = ((($info)) + 36|0);
$10 = HEAP32[$9>>2]|0;
$11 = (($10) + 1)|0;
HEAP32[$9>>2] = $11;
$12 = ((($info)) + 24|0);
HEAP32[$12>>2] = 2;
$13 = ((($info)) + 54|0);
HEAP8[$13>>0] = 1;
break;
}
$6 = ((($info)) + 24|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(2);
if ($8) {
HEAP32[$6>>2] = $path_below;
}
}
} while(0);
return;
}
function __ZN10__cxxabiv117__class_type_infoD0Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
__ZdlPv($this);
return;
}
function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$dst_ptr = $dst_ptr|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
if ($2) {
__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$info,$dst_ptr,$current_ptr,$path_below);
}
return;
}
function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
do {
if ($2) {
$3 = ((($info)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==($current_ptr|0);
if ($5) {
$6 = ((($info)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(1);
if (!($8)) {
HEAP32[$6>>2] = $path_below;
}
}
} else {
$9 = HEAP32[$info>>2]|0;
$10 = ($this|0)==($9|0);
if ($10) {
$11 = ((($info)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==($current_ptr|0);
if (!($13)) {
$14 = ((($info)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==($current_ptr|0);
if (!($16)) {
$19 = ((($info)) + 32|0);
HEAP32[$19>>2] = $path_below;
HEAP32[$14>>2] = $current_ptr;
$20 = ((($info)) + 40|0);
$21 = HEAP32[$20>>2]|0;
$22 = (($21) + 1)|0;
HEAP32[$20>>2] = $22;
$23 = ((($info)) + 36|0);
$24 = HEAP32[$23>>2]|0;
$25 = ($24|0)==(1);
if ($25) {
$26 = ((($info)) + 24|0);
$27 = HEAP32[$26>>2]|0;
$28 = ($27|0)==(2);
if ($28) {
$29 = ((($info)) + 54|0);
HEAP8[$29>>0] = 1;
}
}
$30 = ((($info)) + 44|0);
HEAP32[$30>>2] = 4;
break;
}
}
$17 = ($path_below|0)==(1);
if ($17) {
$18 = ((($info)) + 32|0);
HEAP32[$18>>2] = 1;
}
}
}
} while(0);
return;
}
function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below) {
$this = $this|0;
$info = $info|0;
$adjustedPtr = $adjustedPtr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
if ($2) {
__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$info,$adjustedPtr,$path_below);
}
return;
}
function __ZN10__cxxabiv123__fundamental_type_infoD0Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
__ZdlPv($this);
return;
}
function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv($this,$thrown_type,$0) {
$this = $this|0;
$thrown_type = $thrown_type|0;
$0 = $0|0;
var $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = ($this|0)==($thrown_type|0);
return ($1|0);
}
function __ZN10__cxxabiv119__pointer_type_infoD0Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
__ZdlPv($this);
return;
}
function __ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv($this,$thrown_type,$adjustedPtr) {
$this = $this|0;
$thrown_type = $thrown_type|0;
$adjustedPtr = $adjustedPtr|0;
var $$$i = 0, $$0 = 0, $$4 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
var $8 = 0, $9 = 0, $info = 0, $or$cond = 0, dest = 0, label = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort();
$info = sp;
$0 = HEAP32[$adjustedPtr>>2]|0;
$1 = HEAP32[$0>>2]|0;
HEAP32[$adjustedPtr>>2] = $1;
$2 = ($this|0)==($thrown_type|0);
$3 = ($thrown_type|0)==(304|0);
$$$i = $2 | $3;
if ($$$i) {
$$4 = 1;
} else {
$4 = ($thrown_type|0)==(0|0);
if ($4) {
$$4 = 0;
} else {
$5 = (___dynamic_cast($thrown_type,224,264,0)|0);
$6 = ($5|0)==(0|0);
if ($6) {
$$4 = 0;
} else {
$7 = ((($5)) + 8|0);
$8 = HEAP32[$7>>2]|0;
$9 = ((($this)) + 8|0);
$10 = HEAP32[$9>>2]|0;
$11 = $10 ^ -1;
$12 = $8 & $11;
$13 = ($12|0)==(0);
if ($13) {
$14 = ((($this)) + 12|0);
$15 = HEAP32[$14>>2]|0;
$16 = ((($5)) + 12|0);
$17 = HEAP32[$16>>2]|0;
$18 = ($15|0)==($17|0);
$19 = ($15|0)==(296|0);
$or$cond = $19 | $18;
if ($or$cond) {
$$4 = 1;
} else {
$20 = ($15|0)==(0|0);
if ($20) {
$$4 = 0;
} else {
$21 = (___dynamic_cast($15,224,192,0)|0);
$22 = ($21|0)==(0|0);
if ($22) {
$$4 = 0;
} else {
$23 = HEAP32[$16>>2]|0;
$24 = ($23|0)==(0|0);
if ($24) {
$$4 = 0;
} else {
$25 = (___dynamic_cast($23,224,192,0)|0);
$26 = ($25|0)==(0|0);
if ($26) {
$$4 = 0;
} else {
dest=$info; stop=dest+56|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
HEAP32[$info>>2] = $25;
$27 = ((($info)) + 8|0);
HEAP32[$27>>2] = $21;
$28 = ((($info)) + 12|0);
HEAP32[$28>>2] = -1;
$29 = ((($info)) + 48|0);
HEAP32[$29>>2] = 1;
$30 = HEAP32[$25>>2]|0;
$31 = ((($30)) + 28|0);
$32 = HEAP32[$31>>2]|0;
$33 = HEAP32[$adjustedPtr>>2]|0;
FUNCTION_TABLE_viiii[$32 & 31]($25,$info,$33,1);
$34 = ((($info)) + 24|0);
$35 = HEAP32[$34>>2]|0;
$36 = ($35|0)==(1);
if ($36) {
$37 = ((($info)) + 16|0);
$38 = HEAP32[$37>>2]|0;
HEAP32[$adjustedPtr>>2] = $38;
$$0 = 1;
} else {
$$0 = 0;
}
$$4 = $$0;
}
}
}
}
}
} else {
$$4 = 0;
}
}
}
}
STACKTOP = sp;return ($$4|0);
}
function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($this) {
$this = $this|0;
var label = 0, sp = 0;
sp = STACKTOP;
__ZdlPv($this);
return;
}
function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$dst_ptr = $dst_ptr|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
if ($2) {
__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$info,$dst_ptr,$current_ptr,$path_below);
} else {
$3 = ((($info)) + 52|0);
$4 = HEAP16[$3>>1]|0;
$5 = $4&255;
$6 = ((($info)) + 53|0);
$7 = ($4&65535) >>> 8;
$8 = $7&255;
$9 = ((($this)) + 16|0);
$10 = ((($this)) + 12|0);
$11 = HEAP32[$10>>2]|0;
$12 = (((($this)) + 16|0) + ($11<<3)|0);
HEAP8[$3>>0] = 0;
HEAP8[$6>>0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($9,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp);
$13 = ($11|0)>(1);
L4: do {
if ($13) {
$14 = ((($this)) + 24|0);
$15 = ((($info)) + 24|0);
$16 = ((($this)) + 8|0);
$17 = ((($info)) + 54|0);
$p$0 = $14;
while(1) {
$18 = HEAP8[$17>>0]|0;
$19 = ($18<<24>>24)==(0);
if (!($19)) {
break L4;
}
$20 = HEAP16[$3>>1]|0;
$21 = $20&255;
$22 = ($21<<24>>24)==(0);
if ($22) {
$28 = ($20&65535)<(256);
if (!($28)) {
$29 = HEAP32[$16>>2]|0;
$30 = $29 & 1;
$31 = ($30|0)==(0);
if ($31) {
break L4;
}
}
} else {
$23 = HEAP32[$15>>2]|0;
$24 = ($23|0)==(1);
if ($24) {
break L4;
}
$25 = HEAP32[$16>>2]|0;
$26 = $25 & 2;
$27 = ($26|0)==(0);
if ($27) {
break L4;
}
}
HEAP8[$3>>0] = 0;
HEAP8[$6>>0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$0,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp);
$32 = ((($p$0)) + 8|0);
$33 = ($32>>>0)<($12>>>0);
if ($33) {
$p$0 = $32;
} else {
break;
}
}
}
} while(0);
HEAP8[$3>>0] = $5;
HEAP8[$6>>0] = $8;
}
return;
}
function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$dst_ptr = $dst_ptr|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $offset_to_base$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($this)) + 4|0);
$1 = HEAP32[$0>>2]|0;
$2 = $1 >> 8;
$3 = $1 & 1;
$4 = ($3|0)==(0);
if ($4) {
$offset_to_base$0 = $2;
} else {
$5 = HEAP32[$current_ptr>>2]|0;
$6 = (($5) + ($2)|0);
$7 = HEAP32[$6>>2]|0;
$offset_to_base$0 = $7;
}
$8 = HEAP32[$this>>2]|0;
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 20|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($current_ptr) + ($offset_to_base$0)|0);
$13 = $1 & 2;
$14 = ($13|0)!=(0);
$15 = $14 ? $path_below : 2;
FUNCTION_TABLE_viiiiii[$11 & 31]($8,$info,$dst_ptr,$12,$15,$use_strcmp);
return;
}
function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $does_dst_type_point_to_our_static_type$0$off0 = 0, $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0, $does_dst_type_point_to_our_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$0$off0 = 0, $is_dst_type_derived_from_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$2$off0 = 0;
var $p$0 = 0, $p2$0 = 0, $p2$1 = 0, $p2$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
L1: do {
if ($2) {
$3 = ((($info)) + 4|0);
$4 = HEAP32[$3>>2]|0;
$5 = ($4|0)==($current_ptr|0);
if ($5) {
$6 = ((($info)) + 28|0);
$7 = HEAP32[$6>>2]|0;
$8 = ($7|0)==(1);
if (!($8)) {
HEAP32[$6>>2] = $path_below;
}
}
} else {
$9 = HEAP32[$info>>2]|0;
$10 = ($this|0)==($9|0);
if (!($10)) {
$57 = ((($this)) + 16|0);
$58 = ((($this)) + 12|0);
$59 = HEAP32[$58>>2]|0;
$60 = (((($this)) + 16|0) + ($59<<3)|0);
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($57,$info,$current_ptr,$path_below,$use_strcmp);
$61 = ((($this)) + 24|0);
$62 = ($59|0)>(1);
if (!($62)) {
break;
}
$63 = ((($this)) + 8|0);
$64 = HEAP32[$63>>2]|0;
$65 = $64 & 2;
$66 = ($65|0)==(0);
if ($66) {
$67 = ((($info)) + 36|0);
$68 = HEAP32[$67>>2]|0;
$69 = ($68|0)==(1);
if (!($69)) {
$75 = $64 & 1;
$76 = ($75|0)==(0);
if ($76) {
$79 = ((($info)) + 54|0);
$p2$2 = $61;
while(1) {
$88 = HEAP8[$79>>0]|0;
$89 = ($88<<24>>24)==(0);
if (!($89)) {
break L1;
}
$90 = HEAP32[$67>>2]|0;
$91 = ($90|0)==(1);
if ($91) {
break L1;
}
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$2,$info,$current_ptr,$path_below,$use_strcmp);
$92 = ((($p2$2)) + 8|0);
$93 = ($92>>>0)<($60>>>0);
if ($93) {
$p2$2 = $92;
} else {
break L1;
}
}
}
$77 = ((($info)) + 24|0);
$78 = ((($info)) + 54|0);
$p2$1 = $61;
while(1) {
$80 = HEAP8[$78>>0]|0;
$81 = ($80<<24>>24)==(0);
if (!($81)) {
break L1;
}
$82 = HEAP32[$67>>2]|0;
$83 = ($82|0)==(1);
if ($83) {
$84 = HEAP32[$77>>2]|0;
$85 = ($84|0)==(1);
if ($85) {
break L1;
}
}
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$1,$info,$current_ptr,$path_below,$use_strcmp);
$86 = ((($p2$1)) + 8|0);
$87 = ($86>>>0)<($60>>>0);
if ($87) {
$p2$1 = $86;
} else {
break L1;
}
}
}
}
$70 = ((($info)) + 54|0);
$p2$0 = $61;
while(1) {
$71 = HEAP8[$70>>0]|0;
$72 = ($71<<24>>24)==(0);
if (!($72)) {
break L1;
}
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$0,$info,$current_ptr,$path_below,$use_strcmp);
$73 = ((($p2$0)) + 8|0);
$74 = ($73>>>0)<($60>>>0);
if ($74) {
$p2$0 = $73;
} else {
break L1;
}
}
}
$11 = ((($info)) + 16|0);
$12 = HEAP32[$11>>2]|0;
$13 = ($12|0)==($current_ptr|0);
if (!($13)) {
$14 = ((($info)) + 20|0);
$15 = HEAP32[$14>>2]|0;
$16 = ($15|0)==($current_ptr|0);
if (!($16)) {
$19 = ((($info)) + 32|0);
HEAP32[$19>>2] = $path_below;
$20 = ((($info)) + 44|0);
$21 = HEAP32[$20>>2]|0;
$22 = ($21|0)==(4);
if ($22) {
break;
}
$23 = ((($this)) + 16|0);
$24 = ((($this)) + 12|0);
$25 = HEAP32[$24>>2]|0;
$26 = (((($this)) + 16|0) + ($25<<3)|0);
$27 = ((($info)) + 52|0);
$28 = ((($info)) + 53|0);
$29 = ((($info)) + 54|0);
$30 = ((($this)) + 8|0);
$31 = ((($info)) + 24|0);
$does_dst_type_point_to_our_static_type$0$off0 = 0;$is_dst_type_derived_from_static_type$0$off0 = 0;$p$0 = $23;
L34: while(1) {
$32 = ($p$0>>>0)<($26>>>0);
if (!($32)) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off0;$is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$0$off0;
label = 20;
break;
}
HEAP8[$27>>0] = 0;
HEAP8[$28>>0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$0,$info,$current_ptr,$current_ptr,1,$use_strcmp);
$33 = HEAP8[$29>>0]|0;
$34 = ($33<<24>>24)==(0);
if (!($34)) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off0;$is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$0$off0;
label = 20;
break;
}
$35 = HEAP8[$28>>0]|0;
$36 = ($35<<24>>24)==(0);
do {
if ($36) {
$does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off0;$is_dst_type_derived_from_static_type$1$off0 = $is_dst_type_derived_from_static_type$0$off0;
} else {
$37 = HEAP8[$27>>0]|0;
$38 = ($37<<24>>24)==(0);
if ($38) {
$44 = HEAP32[$30>>2]|0;
$45 = $44 & 1;
$46 = ($45|0)==(0);
if ($46) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off0;$is_dst_type_derived_from_static_type$2$off0 = 1;
label = 20;
break L34;
} else {
$does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off0;$is_dst_type_derived_from_static_type$1$off0 = 1;
break;
}
}
$39 = HEAP32[$31>>2]|0;
$40 = ($39|0)==(1);
if ($40) {
label = 25;
break L34;
}
$41 = HEAP32[$30>>2]|0;
$42 = $41 & 2;
$43 = ($42|0)==(0);
if ($43) {
label = 25;
break L34;
} else {
$does_dst_type_point_to_our_static_type$1$off0 = 1;$is_dst_type_derived_from_static_type$1$off0 = 1;
}
}
} while(0);
$47 = ((($p$0)) + 8|0);
$does_dst_type_point_to_our_static_type$0$off0 = $does_dst_type_point_to_our_static_type$1$off0;$is_dst_type_derived_from_static_type$0$off0 = $is_dst_type_derived_from_static_type$1$off0;$p$0 = $47;
}
do {
if ((label|0) == 20) {
if (!($does_dst_type_point_to_our_static_type$0$off0$lcssa)) {
HEAP32[$14>>2] = $current_ptr;
$48 = ((($info)) + 40|0);
$49 = HEAP32[$48>>2]|0;
$50 = (($49) + 1)|0;
HEAP32[$48>>2] = $50;
$51 = ((($info)) + 36|0);
$52 = HEAP32[$51>>2]|0;
$53 = ($52|0)==(1);
if ($53) {
$54 = HEAP32[$31>>2]|0;
$55 = ($54|0)==(2);
if ($55) {
HEAP8[$29>>0] = 1;
if ($is_dst_type_derived_from_static_type$2$off0) {
label = 25;
break;
} else {
$56 = 4;
break;
}
}
}
}
if ($is_dst_type_derived_from_static_type$2$off0) {
label = 25;
} else {
$56 = 4;
}
}
} while(0);
if ((label|0) == 25) {
$56 = 3;
}
HEAP32[$20>>2] = $56;
break;
}
}
$17 = ($path_below|0)==(1);
if ($17) {
$18 = ((($info)) + 32|0);
HEAP32[$18>>2] = 1;
}
}
} while(0);
return;
}
function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp) {
$this = $this|0;
$info = $info|0;
$current_ptr = $current_ptr|0;
$path_below = $path_below|0;
$use_strcmp = $use_strcmp|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $offset_to_base$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($this)) + 4|0);
$1 = HEAP32[$0>>2]|0;
$2 = $1 >> 8;
$3 = $1 & 1;
$4 = ($3|0)==(0);
if ($4) {
$offset_to_base$0 = $2;
} else {
$5 = HEAP32[$current_ptr>>2]|0;
$6 = (($5) + ($2)|0);
$7 = HEAP32[$6>>2]|0;
$offset_to_base$0 = $7;
}
$8 = HEAP32[$this>>2]|0;
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 24|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($current_ptr) + ($offset_to_base$0)|0);
$13 = $1 & 2;
$14 = ($13|0)!=(0);
$15 = $14 ? $path_below : 2;
FUNCTION_TABLE_viiiii[$11 & 31]($8,$info,$12,$15,$use_strcmp);
return;
}
function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below) {
$this = $this|0;
$info = $info|0;
$adjustedPtr = $adjustedPtr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $p$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($info)) + 8|0);
$1 = HEAP32[$0>>2]|0;
$2 = ($this|0)==($1|0);
L1: do {
if ($2) {
__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$info,$adjustedPtr,$path_below);
} else {
$3 = ((($this)) + 16|0);
$4 = ((($this)) + 12|0);
$5 = HEAP32[$4>>2]|0;
$6 = (((($this)) + 16|0) + ($5<<3)|0);
__ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($3,$info,$adjustedPtr,$path_below);
$7 = ($5|0)>(1);
if ($7) {
$8 = ((($this)) + 24|0);
$9 = ((($info)) + 54|0);
$p$0 = $8;
while(1) {
__ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($p$0,$info,$adjustedPtr,$path_below);
$10 = HEAP8[$9>>0]|0;
$11 = ($10<<24>>24)==(0);
if (!($11)) {
break L1;
}
$12 = ((($p$0)) + 8|0);
$13 = ($12>>>0)<($6>>>0);
if ($13) {
$p$0 = $12;
} else {
break;
}
}
}
}
} while(0);
return;
}
function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below) {
$this = $this|0;
$info = $info|0;
$adjustedPtr = $adjustedPtr|0;
$path_below = $path_below|0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $offset_to_base$0 = 0, label = 0, sp = 0;
sp = STACKTOP;
$0 = ((($this)) + 4|0);
$1 = HEAP32[$0>>2]|0;
$2 = $1 >> 8;
$3 = $1 & 1;
$4 = ($3|0)==(0);
if ($4) {
$offset_to_base$0 = $2;
} else {
$5 = HEAP32[$adjustedPtr>>2]|0;
$6 = (($5) + ($2)|0);
$7 = HEAP32[$6>>2]|0;
$offset_to_base$0 = $7;
}
$8 = HEAP32[$this>>2]|0;
$9 = HEAP32[$8>>2]|0;
$10 = ((($9)) + 28|0);
$11 = HEAP32[$10>>2]|0;
$12 = (($adjustedPtr) + ($offset_to_base$0)|0);
$13 = $1 & 2;
$14 = ($13|0)!=(0);
$15 = $14 ? $path_below : 2;
FUNCTION_TABLE_viiii[$11 & 31]($8,$info,$12,$15);
return;
}
function runPostSets() {
}
function _i64Subtract(a, b, c, d) {
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a - c)>>>0;
h = (b - d)>>>0;
h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
return ((tempRet0 = h,l|0)|0);
}
function _i64Add(a, b, c, d) {
/*
x = a + b*2^32
y = c + d*2^32
result = l + h*2^32
*/
a = a|0; b = b|0; c = c|0; d = d|0;
var l = 0, h = 0;
l = (a + c)>>>0;
h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
return ((tempRet0 = h,l|0)|0);
}
function _memset(ptr, value, num) {
ptr = ptr|0; value = value|0; num = num|0;
var stop = 0, value4 = 0, stop4 = 0, unaligned = 0;
stop = (ptr + num)|0;
if ((num|0) >= 20) {
// This is unaligned, but quite large, so work hard to get to aligned settings
value = value & 0xff;
unaligned = ptr & 3;
value4 = value | (value << 8) | (value << 16) | (value << 24);
stop4 = stop & ~3;
if (unaligned) {
unaligned = (ptr + 4 - unaligned)|0;
while ((ptr|0) < (unaligned|0)) { // no need to check for stop, since we have large num
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
}
while ((ptr|0) < (stop4|0)) {
HEAP32[((ptr)>>2)]=value4;
ptr = (ptr+4)|0;
}
}
while ((ptr|0) < (stop|0)) {
HEAP8[((ptr)>>0)]=value;
ptr = (ptr+1)|0;
}
return (ptr-num)|0;
}
function _bitshift64Shl(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits));
return low << bits;
}
tempRet0 = low << (bits - 32);
return 0;
}
function _bitshift64Lshr(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = high >>> bits;
return (low >>> bits) | ((high&ander) << (32 - bits));
}
tempRet0 = 0;
return (high >>> (bits - 32))|0;
}
function _memcpy(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
if ((num|0) >= 4096) return _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
ret = dest|0;
if ((dest&3) == (src&3)) {
while (dest & 3) {
if ((num|0) == 0) return ret|0;
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
num = (num-1)|0;
}
while ((num|0) >= 4) {
HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
dest = (dest+4)|0;
src = (src+4)|0;
num = (num-4)|0;
}
}
while ((num|0) > 0) {
HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
dest = (dest+1)|0;
src = (src+1)|0;
num = (num-1)|0;
}
return ret|0;
}
function _pthread_self() {
return 0;
}
function _bitshift64Ashr(low, high, bits) {
low = low|0; high = high|0; bits = bits|0;
var ander = 0;
if ((bits|0) < 32) {
ander = ((1 << bits) - 1)|0;
tempRet0 = high >> bits;
return (low >>> bits) | ((high&ander) << (32 - bits));
}
tempRet0 = (high|0) < 0 ? -1 : 0;
return (high >> (bits - 32))|0;
}
function _llvm_cttz_i32(x) {
x = x|0;
var ret = 0;
ret = ((HEAP8[(((cttz_i8)+(x & 0xff))>>0)])|0);
if ((ret|0) < 8) return ret|0;
ret = ((HEAP8[(((cttz_i8)+((x >> 8)&0xff))>>0)])|0);
if ((ret|0) < 8) return (ret + 8)|0;
ret = ((HEAP8[(((cttz_i8)+((x >> 16)&0xff))>>0)])|0);
if ((ret|0) < 8) return (ret + 16)|0;
return (((HEAP8[(((cttz_i8)+(x >>> 24))>>0)])|0) + 24)|0;
}
// ======== compiled code from system/lib/compiler-rt , see readme therein
function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
$8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
}
function ___divdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $7$0 = 0, $7$1 = 0, $8$0 = 0, $10$0 = 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0 | 0, $1$1 ^ $a$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$4$1 = tempRet0;
$6$0 = _i64Subtract($2$0 ^ $b$0 | 0, $2$1 ^ $b$1 | 0, $2$0 | 0, $2$1 | 0) | 0;
$7$0 = $2$0 ^ $1$0;
$7$1 = $2$1 ^ $1$1;
$8$0 = ___udivmoddi4($4$0, $4$1, $6$0, tempRet0, 0) | 0;
$10$0 = _i64Subtract($8$0 ^ $7$0 | 0, tempRet0 ^ $7$1 | 0, $7$0 | 0, $7$1 | 0) | 0;
return $10$0 | 0;
}
function ___remdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0 | 0, $1$1 ^ $a$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$4$1 = tempRet0;
$6$0 = _i64Subtract($2$0 ^ $b$0 | 0, $2$1 ^ $b$1 | 0, $2$0 | 0, $2$1 | 0) | 0;
___udivmoddi4($4$0, $4$1, $6$0, tempRet0, $rem) | 0;
$10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0 | 0, HEAP32[$rem + 4 >> 2] ^ $1$1 | 0, $1$0 | 0, $1$1 | 0) | 0;
$10$1 = tempRet0;
STACKTOP = __stackBase__;
return (tempRet0 = $10$1, $10$0) | 0;
}
function ___muldi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
$x_sroa_0_0_extract_trunc = $a$0;
$y_sroa_0_0_extract_trunc = $b$0;
$1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
$1$1 = tempRet0;
$2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0;
}
function ___udivdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $1$0 = 0;
$1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0;
return $1$0 | 0;
}
function ___uremdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0;
STACKTOP = __stackBase__;
return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0;
}
function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
$rem = $rem | 0;
var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0;
$n_sroa_0_0_extract_trunc = $a$0;
$n_sroa_1_4_extract_shift$0 = $a$1;
$n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0;
$d_sroa_0_0_extract_trunc = $b$0;
$d_sroa_1_4_extract_shift$0 = $b$1;
$d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0;
if (($n_sroa_1_4_extract_trunc | 0) == 0) {
$4 = ($rem | 0) != 0;
if (($d_sroa_1_4_extract_trunc | 0) == 0) {
if ($4) {
HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$4) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
}
$17 = ($d_sroa_1_4_extract_trunc | 0) == 0;
do {
if (($d_sroa_0_0_extract_trunc | 0) == 0) {
if ($17) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
if (($n_sroa_0_0_extract_trunc | 0) == 0) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0;
HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0);
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$37 = $d_sroa_1_4_extract_trunc - 1 | 0;
if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) {
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0;
}
$_0$1 = 0;
$_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0);
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
$51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($51 >>> 0 <= 30) {
$57 = $51 + 1 | 0;
$58 = 31 - $51 | 0;
$sr_1_ph = $57;
$r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0);
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0);
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58;
break;
}
if (($rem | 0) == 0) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$17) {
$117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0;
$119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($119 >>> 0 <= 31) {
$125 = $119 + 1 | 0;
$126 = 31 - $119 | 0;
$130 = $119 - 31 >> 31;
$sr_1_ph = $125;
$r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126;
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130;
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126;
break;
}
if (($rem | 0) == 0) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = 0 | $a$0 & -1;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$66 = $d_sroa_0_0_extract_trunc - 1 | 0;
if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) {
$86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0;
$88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
$89 = 64 - $88 | 0;
$91 = 32 - $88 | 0;
$92 = $91 >> 31;
$95 = $88 - 32 | 0;
$105 = $95 >> 31;
$sr_1_ph = $88;
$r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105;
$r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0);
$q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92;
$q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31;
break;
}
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc;
HEAP32[$rem + 4 >> 2] = 0;
}
if (($d_sroa_0_0_extract_trunc | 0) == 1) {
$_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$0 = 0 | $a$0 & -1;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
$78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0;
$_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0);
$_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
}
} while (0);
if (($sr_1_ph | 0) == 0) {
$q_sroa_1_1_lcssa = $q_sroa_1_1_ph;
$q_sroa_0_1_lcssa = $q_sroa_0_1_ph;
$r_sroa_1_1_lcssa = $r_sroa_1_1_ph;
$r_sroa_0_1_lcssa = $r_sroa_0_1_ph;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = 0;
} else {
$d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1;
$d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0;
$137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0;
$137$1 = tempRet0;
$q_sroa_1_1198 = $q_sroa_1_1_ph;
$q_sroa_0_1199 = $q_sroa_0_1_ph;
$r_sroa_1_1200 = $r_sroa_1_1_ph;
$r_sroa_0_1201 = $r_sroa_0_1_ph;
$sr_1202 = $sr_1_ph;
$carry_0203 = 0;
while (1) {
$147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1;
$149 = $carry_0203 | $q_sroa_0_1199 << 1;
$r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31);
$r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0;
_i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0;
$150$1 = tempRet0;
$151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1;
$152 = $151$0 & 1;
$154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0;
$r_sroa_0_0_extract_trunc = $154$0;
$r_sroa_1_4_extract_trunc = tempRet0;
$155 = $sr_1202 - 1 | 0;
if (($155 | 0) == 0) {
break;
} else {
$q_sroa_1_1198 = $147;
$q_sroa_0_1199 = $149;
$r_sroa_1_1200 = $r_sroa_1_4_extract_trunc;
$r_sroa_0_1201 = $r_sroa_0_0_extract_trunc;
$sr_1202 = $155;
$carry_0203 = $152;
}
}
$q_sroa_1_1_lcssa = $147;
$q_sroa_0_1_lcssa = $149;
$r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc;
$r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = $152;
}
$q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa;
$q_sroa_0_0_insert_ext75$1 = 0;
$q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1;
if (($rem | 0) != 0) {
HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa;
HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0;
}
$_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1;
$_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
// =======================================================================
function dynCall_iiii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
return FUNCTION_TABLE_iiii[index&31](a1|0,a2|0,a3|0)|0;
}
function dynCall_viiiii(index,a1,a2,a3,a4,a5) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0;
FUNCTION_TABLE_viiiii[index&31](a1|0,a2|0,a3|0,a4|0,a5|0);
}
function dynCall_vi(index,a1) {
index = index|0;
a1=a1|0;
FUNCTION_TABLE_vi[index&31](a1|0);
}
function dynCall_vii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
FUNCTION_TABLE_vii[index&31](a1|0,a2|0);
}
function dynCall_ii(index,a1) {
index = index|0;
a1=a1|0;
return FUNCTION_TABLE_ii[index&1](a1|0)|0;
}
function dynCall_viii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
FUNCTION_TABLE_viii[index&31](a1|0,a2|0,a3|0);
}
function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0;
FUNCTION_TABLE_viiiiii[index&31](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0);
}
function dynCall_iii(index,a1,a2) {
index = index|0;
a1=a1|0; a2=a2|0;
return FUNCTION_TABLE_iii[index&31](a1|0,a2|0)|0;
}
function dynCall_viiii(index,a1,a2,a3,a4) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0;
FUNCTION_TABLE_viiii[index&31](a1|0,a2|0,a3|0,a4|0);
}
function b0(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(0);return 0;
}
function b1(p0,p1,p2,p3,p4) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(1);
}
function b2(p0) {
p0 = p0|0; nullFunc_vi(2);
}
function b3(p0,p1) {
p0 = p0|0;p1 = p1|0; nullFunc_vii(3);
}
function b4(p0) {
p0 = p0|0; nullFunc_ii(4);return 0;
}
function b5(p0,p1,p2) {
p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(5);
}
function b6(p0,p1,p2,p3,p4,p5) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(6);
}
function b7(p0,p1) {
p0 = p0|0;p1 = p1|0; nullFunc_iii(7);return 0;
}
function b8(p0,p1,p2,p3) {
p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(8);
}
// EMSCRIPTEN_END_FUNCS
var FUNCTION_TABLE_iiii = [b0,b0,___stdout_write,___stdio_seek,b0,b0,b0,b0,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,b0,b0,b0,b0,b0,b0,b0,b0,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,b0,__ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv,b0,b0,b0,b0,b0,b0,b0,b0,b0
,__ZN10emscripten8internal7InvokerIiJPcS2_EE6invokeEPFiS2_S2_ES2_S2_,b0,___stdio_write];
var FUNCTION_TABLE_viiiii = [b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b1,b1,b1,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b1,b1,b1,b1,b1,b1,b1,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b1,b1,b1,b1,b1,b1
,b1,b1,b1];
var FUNCTION_TABLE_vi = [b2,b2,b2,b2,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,b2,b2,b2,b2,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b2,b2,b2,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,b2,__ZN10__cxxabiv119__pointer_type_infoD0Ev,b2,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,b2,b2,b2,b2,b2,b2,b2,b2
,b2,_cleanup_522,b2];
var FUNCTION_TABLE_vii = [b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,__Z7sketchyii,b3,b3
,b3,b3,b3];
var FUNCTION_TABLE_ii = [b4,___stdio_close];
var FUNCTION_TABLE_viii = [b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,__ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii
,b5,b5,b5];
var FUNCTION_TABLE_viiiiii = [b6,b6,b6,b6,b6,b6,b6,b6,b6,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b6,b6,b6,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b6,b6,b6,b6,b6,b6,b6,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b6,b6,b6,b6,b6,b6,b6
,b6,b6,b6];
var FUNCTION_TABLE_iii = [b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,__Z14login_handler1PcS_,__Z14login_handler2PcS_,b7,__Z17send_ajax_requestPcS_,b7
,b7,b7,b7];
var FUNCTION_TABLE_viiii = [b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8,b8,b8,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8
,b8,b8,b8];
return { _i64Subtract: _i64Subtract, _free: _free, _i64Add: _i64Add, _pthread_self: _pthread_self, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, ___getTypeName: ___getTypeName, _bitshift64Lshr: _bitshift64Lshr, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, __GLOBAL__sub_I_sectest_cpp: __GLOBAL__sub_I_sectest_cpp, __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiii: dynCall_iiii, dynCall_viiiii: dynCall_viiiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viii: dynCall_viii, dynCall_viiiiii: dynCall_viiiiii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii };
})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Subtract.apply(null, arguments);
};
var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments);
};
var real__free = asm["_free"]; asm["_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__free.apply(null, arguments);
};
var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Add.apply(null, arguments);
};
var real__pthread_self = asm["_pthread_self"]; asm["_pthread_self"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__pthread_self.apply(null, arguments);
};
var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__malloc.apply(null, arguments);
};
var real____getTypeName = asm["___getTypeName"]; asm["___getTypeName"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____getTypeName.apply(null, arguments);
};
var real___GLOBAL__sub_I_sectest_cpp = asm["__GLOBAL__sub_I_sectest_cpp"]; asm["__GLOBAL__sub_I_sectest_cpp"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real___GLOBAL__sub_I_sectest_cpp.apply(null, arguments);
};
var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Lshr.apply(null, arguments);
};
var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____errno_location.apply(null, arguments);
};
var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Shl.apply(null, arguments);
};
var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
var __GLOBAL__sub_I_bind_cpp = Module["__GLOBAL__sub_I_bind_cpp"] = asm["__GLOBAL__sub_I_bind_cpp"];
var _free = Module["_free"] = asm["_free"];
var runPostSets = Module["runPostSets"] = asm["runPostSets"];
var _i64Add = Module["_i64Add"] = asm["_i64Add"];
var _pthread_self = Module["_pthread_self"] = asm["_pthread_self"];
var _memset = Module["_memset"] = asm["_memset"];
var _malloc = Module["_malloc"] = asm["_malloc"];
var _memcpy = Module["_memcpy"] = asm["_memcpy"];
var ___getTypeName = Module["___getTypeName"] = asm["___getTypeName"];
var __GLOBAL__sub_I_sectest_cpp = Module["__GLOBAL__sub_I_sectest_cpp"] = asm["__GLOBAL__sub_I_sectest_cpp"];
var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
;
Runtime.stackAlloc = asm['stackAlloc'];
Runtime.stackSave = asm['stackSave'];
Runtime.stackRestore = asm['stackRestore'];
Runtime.establishStackSpace = asm['establishStackSpace'];
Runtime.setTempRet0 = asm['setTempRet0'];
Runtime.getTempRet0 = asm['getTempRet0'];
// === Auto-generated postamble setup entry stuff ===
function ExitStatus(status) {
this.name = "ExitStatus";
this.message = "Program terminated with exit(" + status + ")";
this.status = status;
};
ExitStatus.prototype = new Error();
ExitStatus.prototype.constructor = ExitStatus;
var initialStackTop;
var preloadStartTime = null;
var calledMain = false;
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 (!Module['calledRun']) run();
if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
}
Module['callMain'] = Module.callMain = function callMain(args) {
assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
args = args || [];
ensureInitRuntime();
var argc = args.length+1;
function pad() {
for (var i = 0; i < 4-1; i++) {
argv.push(0);
}
}
var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ];
pad();
for (var i = 0; i < argc-1; i = i + 1) {
argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
pad();
}
argv.push(0);
argv = allocate(argv, 'i32', ALLOC_NORMAL);
try {
var ret = Module['_main'](argc, argv, 0);
// if we're not running an evented main loop, it's time to exit
exit(ret, /* implicit = */ true);
}
catch(e) {
if (e instanceof ExitStatus) {
// exit() throws this once it's done to make sure execution
// has been stopped completely
return;
} else if (e == 'SimulateInfiniteLoop') {
// running an evented main loop, don't immediately exit
Module['noExitRuntime'] = true;
return;
} else {
if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
throw e;
}
} finally {
calledMain = true;
}
}
function run(args) {
args = args || Module['arguments'];
if (preloadStartTime === null) preloadStartTime = Date.now();
if (runDependencies > 0) {
Module.printErr('run() called, but dependencies remain, so not running');
return;
}
writeStackCookie();
preRun();
if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
function doRun() {
if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
Module['calledRun'] = true;
if (ABORT) return;
ensureInitRuntime();
preMain();
if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
}
if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
if (Module['_main'] && shouldRunNow) Module['callMain'](args);
postRun();
}
if (Module['setStatus']) {
Module['setStatus']('Running...');
setTimeout(function() {
setTimeout(function() {
Module['setStatus']('');
}, 1);
doRun();
}, 1);
} else {
doRun();
}
checkStackCookie();
}
Module['run'] = Module.run = run;
function exit(status, implicit) {
if (implicit && Module['noExitRuntime']) {
Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)');
return;
}
if (Module['noExitRuntime']) {
Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)');
} else {
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
exitRuntime();
if (Module['onExit']) Module['onExit'](status);
}
if (ENVIRONMENT_IS_NODE) {
process['exit'](status);
} else if (ENVIRONMENT_IS_SHELL && typeof quit === 'function') {
quit(status);
}
// if we reach here, we must throw an exception to halt the current execution
throw new ExitStatus(status);
}
Module['exit'] = Module.exit = exit;
var abortDecorators = [];
function abort(what) {
if (what !== undefined) {
Module.print(what);
Module.printErr(what);
what = JSON.stringify(what)
} else {
what = '';
}
ABORT = true;
EXITSTATUS = 1;
var extra = '';
var output = 'abort(' + what + ') at ' + stackTrace() + extra;
if (abortDecorators) {
abortDecorators.forEach(function(decorator) {
output = decorator(output, what);
});
}
throw output;
}
Module['abort'] = Module.abort = abort;
// {{PRE_RUN_ADDITIONS}}
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
// shouldRunNow refers to calling main(), not run().
var shouldRunNow = true;
if (Module['noInitialRun']) {
shouldRunNow = false;
}
Module["noExitRuntime"] = true;
run();
// {{POST_RUN_ADDITIONS}}
// {{MODULE_ADDITIONS}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment