From aea2f86abe7e75bed59a754854ded2d947502ab2 Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Fri, 2 Jan 2015 09:06:18 -0800 Subject: [PATCH] Bring in MiniSat --- packages/logic-solver/logic.js | 2 + packages/logic-solver/minisat.js | 17762 +++++++++++++++++++++ packages/logic-solver/minisat_wrapper.js | 41 + packages/logic-solver/package.js | 4 +- 4 files changed, 17808 insertions(+), 1 deletion(-) create mode 100644 packages/logic-solver/minisat.js create mode 100644 packages/logic-solver/minisat_wrapper.js diff --git a/packages/logic-solver/logic.js b/packages/logic-solver/logic.js index 6415799d88..37b281c4fb 100644 --- a/packages/logic-solver/logic.js +++ b/packages/logic-solver/logic.js @@ -1,5 +1,7 @@ Logic = {}; +Logic._MiniSat = MiniSat; // Expose for testing and poking around + // WholeNumber: a non-negative integer (0 is allowed) Logic.WholeNumber = Match.Where(function (x) { return Match.test(x, Match.Integer) && x >= 0; diff --git a/packages/logic-solver/minisat.js b/packages/logic-solver/minisat.js new file mode 100644 index 0000000000..f88c04f50e --- /dev/null +++ b/packages/logic-solver/minisat.js @@ -0,0 +1,17762 @@ +// This file is generated by the meteor/minisat repo. +// (start of meteor/preamble.js) +cMinisat = function () { + var module = {}; +// Put emscripten in "node mode" but don't give it the real `process` +// object. It does have access to `console`. +var require = function () {}; +var process = { + argv: ['node', 'minisat'], + on: function () {}, + stdout: { + write: function (str) { + console.log("MINISAT-out:", str.replace(/\n$/, '')); + } + }, + stderr: { + write: function (str) { + console.log("MINISAT-err:", str.replace(/\n$/, '')); + } + } +}; +var window = 0; +// (end of meteor/preamble.js) + +// 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_NODE = typeof process === 'object' && typeof require === 'function'; +var ENVIRONMENT_IS_WEB = typeof window === 'object'; +var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; +var 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'] = function print(x) { + process['stdout'].write(x + '\n'); + }; + if (!Module['printErr']) Module['printErr'] = function printErr(x) { + process['stderr'].write(x + '\n'); + }; + + var nodeFS = require('fs'); + var nodePath = require('path'); + + Module['read'] = function read(filename, binary) { + 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) { return Module['read'](filename, true) }; + + Module['load'] = function load(f) { + globalEval(read(f)); + }; + + Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); + 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; + } + }); +} +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; + } + + this['Module'] = Module; + +} +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; + }; + + 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.log(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_WEB) { + window['Module'] = Module; + } else { + Module['load'] = importScripts; + } +} +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]; + } +} + + + +// === 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, + 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) { + if (!args.splice) args = Array.prototype.slice.call(args); + args.splice(0, 0, ptr); + return Module['dynCall_' + sig].apply(null, args); + } else { + 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; + }, + getAsmConst: function (code, numArgs) { + // code is a constant string on the heap, so we can cache these + if (!Runtime.asmConstCache) Runtime.asmConstCache = {}; + var func = Runtime.asmConstCache[code]; + if (func) return func; + var args = []; + for (var i = 0; i < numArgs; i++) { + args.push(String.fromCharCode(36) + i); // $0, $1 etc + } + var source = Pointer_stringify(code); + if (source[0] === '"') { + // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct + if (source.indexOf('"', 1) === source.length-1) { + source = source.substr(1, source.length-2); + } else { + // something invalid happened, e.g. EM_ASM("..code($0)..", input) + abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)'); + } + } + try { + // Module is the only 'upvar', which we provide directly. We also provide FS for legacy support. + var evalled = eval('(function(Module, FS) { return function(' + args.join(',') + '){ ' + source + ' } })')(Module, typeof FS !== 'undefined' ? FS : null); + } catch(e) { + Module.printErr('error in executing inline EM_ASM code: ' + e + ' on: \n\n' + source + '\n\nwith args |' + args + '| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)'); + throw e; + } + return Runtime.asmConstCache[code] = evalled; + }, + 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]; + }, + UTF8Processor: function () { + var buffer = []; + var needed = 0; + this.processCChar = function (code) { + code = code & 0xFF; + + if (buffer.length == 0) { + if ((code & 0x80) == 0x00) { // 0xxxxxxx + return String.fromCharCode(code); + } + buffer.push(code); + if ((code & 0xE0) == 0xC0) { // 110xxxxx + needed = 1; + } else if ((code & 0xF0) == 0xE0) { // 1110xxxx + needed = 2; + } else { // 11110xxx + needed = 3; + } + return ''; + } + + if (needed) { + buffer.push(code); + needed--; + if (needed > 0) return ''; + } + + var c1 = buffer[0]; + var c2 = buffer[1]; + var c3 = buffer[2]; + var c4 = buffer[3]; + var ret; + if (buffer.length == 2) { + ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F)); + } else if (buffer.length == 3) { + ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F)); + } else { + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) | + ((c3 & 0x3F) << 6) | (c4 & 0x3F); + ret = String.fromCharCode( + (((codePoint - 0x10000) / 0x400)|0) + 0xD800, + (codePoint - 0x10000) % 0x400 + 0xDC00); + } + buffer.length = 0; + return ret; + } + this.processJSString = function processJSString(string) { + /* TODO: use TextEncoder when present, + var encoder = new TextEncoder(); + encoder['encoding'] = "utf-8"; + var utf8Array = encoder['encode'](aMsg.data); + */ + string = unescape(encodeURIComponent(string)); + var ret = []; + for (var i = 0; i < string.length; i++) { + ret.push(string.charCodeAt(i)); + } + return ret; + } + }, + 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); return ret; }, + staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, + dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+15)&-16); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; 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))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; }, + GLOBAL_BASE: 8, + QUANTUM_SIZE: 4, + __dummy__: 0 +} + + +Module['Runtime'] = Runtime; + + + + + + + + + +//======================================== +// Runtime essentials +//======================================== + +var __THREW__ = 0; // Used in checking for thrown exceptions. + +var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort() +var EXITSTATUS = 0; + +var undef = 0; +// tempInt is used for 32-bit signed values or smaller. tempBigInt is used +// for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt +var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; +var tempI64, tempI64b; +var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; + +function assert(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); // explicit lookup + } catch(e) {} + } + assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); + return func; +} + +var cwrap, ccall; +(function(){ + var stack = 0; + var JSfuncs = { + 'stackSave' : function() { + stack = Runtime.stackSave(); + }, + 'stackRestore' : function() { + Runtime.stackRestore(stack); + }, + // 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) { + var func = getCFunc(ident); + var cArgs = []; + 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 (returnType === 'string') ret = Pointer_stringify(ret); + if (stack !== 0) JSfuncs['stackRestore'](); + return ret; + } + + var sourceRegex = /^function\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]} + } + var 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 + funcstr += 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);'; + } + if (!numericArgs) { + // If we had a stack, restore it + funcstr += JSsource['stackRestore'].body + ';'; + } + funcstr += 'return ret})'; + return eval(funcstr); + }; +})(); +Module["cwrap"] = cwrap; +Module["ccall"] = ccall; + + +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) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>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 = [_malloc, 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; + } + + 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; + +function Pointer_stringify(ptr, /* optional */ length) { + if (length === 0) return ''; + // TODO: use TextDecoder + // Find the length, and check for UTF while doing so + var hasUtf = false; + var t; + var i = 0; + while (1) { + t = HEAPU8[(((ptr)+(i))>>0)]; + if (t >= 128) hasUtf = true; + else if (t == 0 && !length) break; + i++; + if (length && i == length) break; + } + if (!length) length = i; + + var ret = ''; + + if (!hasUtf) { + 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; + } + + var utf8 = new Runtime.UTF8Processor(); + for (i = 0; i < length; i++) { + t = HEAPU8[(((ptr)+(i))>>0)]; + ret += utf8.processCChar(t); + } + return ret; +} +Module['Pointer_stringify'] = Pointer_stringify; + +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); + } +} +Module['UTF16ToString'] = UTF16ToString; + + +function stringToUTF16(str, outPtr) { + for(var i = 0; i < str.length; ++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)+(i*2))>>1)]=codeUnit; + } + // Null-terminate the pointer to the HEAP. + HEAP16[(((outPtr)+(str.length*2))>>1)]=0; +} +Module['stringToUTF16'] = stringToUTF16; + + +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. + if (utf32 >= 0x10000) { + var ch = utf32 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } else { + str += String.fromCharCode(utf32); + } + } +} +Module['UTF32ToString'] = UTF32ToString; + + +function stringToUTF32(str, outPtr) { + var iChar = 0; + for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) { + // 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. + var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate + if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { + var trailSurrogate = str.charCodeAt(++iCodeUnit); + codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); + } + HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit; + ++iChar; + } + // Null-terminate the pointer to the HEAP. + HEAP32[(((outPtr)+(iChar*4))>>2)]=0; +} +Module['stringToUTF32'] = stringToUTF32; + +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 + } finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret); + } + } + var i = 3; + // params, etc. + var basicTypes = { + 'v': 'void', + 'b': 'bool', + 'c': 'char', + 's': 'short', + 'i': 'int', + 'l': 'long', + 'f': 'float', + 'd': 'double', + 'w': 'wchar_t', + 'a': 'signed char', + 'h': 'unsigned char', + 't': 'unsigned short', + 'j': 'unsigned int', + 'm': 'unsigned long', + 'x': 'long long', + 'y': 'unsigned long long', + 'z': '...' + }; + var subs = []; + var first = true; + function dump(x) { + //return; + if (x) Module.print(x); + Module.print(func); + var pre = ''; + for (var a = 0; a < i; a++) pre += ' '; + Module.print (pre + '^'); + } + function parseNested() { + i++; + if (func[i] === 'K') i++; // ignore const + var parts = []; + while (func[i] !== 'E') { + if (func[i] === 'S') { // substitution + i++; + var next = func.indexOf('_', i); + var num = func.substring(i, next) || 0; + parts.push(subs[num] || '?'); + i = next+1; + continue; + } + if (func[i] === 'C') { // constructor + parts.push(parts[parts.length-1]); + i += 2; + continue; + } + var size = parseInt(func.substr(i)); + var pre = size.toString().length; + if (!size || !pre) { i--; break; } // counter i++ below us + var curr = func.substr(i + pre, size); + parts.push(curr); + subs.push(curr); + i += pre + size; + } + i++; // skip E + return parts; + } + function parse(rawList, limit, allowVoid) { // main parser + limit = limit || Infinity; + var ret = '', list = []; + function flushList() { + return '(' + list.join(', ') + ')'; + } + var name; + if (func[i] === 'N') { + // namespaced N-E + name = parseNested().join('::'); + limit--; + if (limit === 0) return rawList ? [name] : name; + } else { + // not namespaced + if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L' + var size = parseInt(func.substr(i)); + if (size) { + var pre = size.toString().length; + name = func.substr(i + pre, size); + i += pre + size; + } + } + first = false; + if (func[i] === 'I') { + i++; + var iList = parse(true); + var iRet = parse(true, 1, true); + ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>'; + } else { + ret = name; + } + paramLoop: while (i < func.length && limit-- > 0) { + //dump('paramLoop'); + var c = func[i++]; + if (c in basicTypes) { + list.push(basicTypes[c]); + } else { + switch (c) { + case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer + case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference + case 'L': { // literal + i++; // skip basic type + var end = func.indexOf('E', i); + var size = end - i; + list.push(func.substr(i, size)); + i += size + 2; // size + 'EE' + break; + } + case 'A': { // array + var size = parseInt(func.substr(i)); + i += size.toString().length; + if (func[i] !== '_') throw '?'; + i++; // skip _ + list.push(parse(true, 1, true)[0] + ' [' + size + ']'); + break; + } + case 'E': break paramLoop; + default: ret += '?' + c; break paramLoop; + } + } + } + if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void) + if (rawList) { + if (ret) { + list.push(ret + '?'); + } + return list; + } else { + return ret + flushList(); + } + } + var final = func; + try { + // Special-case the entry point, since its name differs from other name mangling. + if (func == 'Object._main' || func == '_main') { + return 'main()'; + } + if (typeof func === 'number') func = Pointer_stringify(func); + if (func[0] !== '_') return func; + if (func[1] !== '_') return func; // C function + if (func[2] !== 'Z') return func; + switch (func[3]) { + case 'n': return 'operator new()'; + case 'd': return 'operator delete()'; + } + final = parse(); + } catch(e) { + final += '?'; + } + if (final.indexOf('?') >= 0 && !hasLibcxxabi) { + Runtime.warnOnce('warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); + } + return final; +} + +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) { + return (x+4095)&-4096; +} + +var HEAP; +var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +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 + +function enlargeMemory() { + abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.'); +} + + +var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 67108864; +var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152; + +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'); + 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'); + +var buffer = new ArrayBuffer(TOTAL_MEMORY); +HEAP8 = new Int8Array(buffer); +HEAP16 = new Int16Array(buffer); +HEAP32 = new Int32Array(buffer); +HEAPU8 = new Uint8Array(buffer); +HEAPU16 = new Uint16Array(buffer); +HEAPU32 = new Uint32Array(buffer); +HEAPF32 = new Float32Array(buffer); +HEAPF64 = new Float64Array(buffer); + +// Endianness check (note: assumes compiler arch was little-endian) +HEAP32[0] = 255; +assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system'); + +Module['HEAP'] = HEAP; +Module['buffer'] = buffer; +Module['HEAP8'] = HEAP8; +Module['HEAP16'] = HEAP16; +Module['HEAP32'] = HEAP32; +Module['HEAPU8'] = HEAPU8; +Module['HEAPU16'] = HEAPU16; +Module['HEAPU32'] = HEAPU32; +Module['HEAPF32'] = HEAPF32; +Module['HEAPF64'] = HEAPF64; + +function callRuntimeCallbacks(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() { + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); +} + +function preMain() { + callRuntimeCallbacks(__ATMAIN__); +} + +function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; +} + +function postRun() { + // 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'] = Module.addOnPreRun = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb); +} +Module['addOnInit'] = Module.addOnInit = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); +} +Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb); +} +Module['addOnExit'] = Module.addOnExit = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); +} +Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun; + +// Tools + + +function intArrayFromString(stringy, dontAddNull, length /* optional */) { + var ret = (new Runtime.UTF8Processor()).processJSString(stringy); + if (length) { + ret.length = length; + } + if (!dontAddNull) { + ret.push(0); + } + return ret; +} +Module['intArrayFromString'] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 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)+(i))>>0)]=array[i]; + } +} +Module['writeArrayToMemory'] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; i++) { + HEAP8[(((buffer)+(i))>>0)]=str.charCodeAt(i); + } + if (!dontAddNull) HEAP8[(((buffer)+(str.length))>>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']; + + +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; + +// 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 + +function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } +} +Module['addRunDependency'] = addRunDependency; +function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } +} +Module['removeRunDependency'] = removeRunDependency; + +Module["preloadedImages"] = {}; // maps url to image data +Module["preloadedAudios"] = {}; // maps url to audio data + + +var memoryInitializer = null; + +// === Body === + + + + + +STATIC_BASE = 8; + +STATICTOP = STATIC_BASE + 5664; + /* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__I_a() } }, { func: function() { __GLOBAL__I_a123() } }); + + +/* memory initializer */ allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,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,0,0,0,0,0,0,0,0,200,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,5,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,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,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,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,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,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,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,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,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,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,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,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,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,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,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,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,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,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,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,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,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,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,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,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,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,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,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,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,7,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,10,0,0,0,11,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,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,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,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,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,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,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,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,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,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,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,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,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,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,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,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,15,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,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,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,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,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,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,0,0,0,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,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,17,0,0,0,21,0,0,0,19,0,0,0,20,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,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,0,0,0,128,18,0,0,160,18,0,0,208,17,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,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,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,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,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,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,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,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,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,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,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,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,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,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,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); + + + + +var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); + +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]; + +} + + + + function _atexit(func, arg) { + __ATEXIT__.unshift({ func: func, arg: arg }); + }function ___cxa_atexit() { + return _atexit.apply(null, arguments) + } + + + Module["_i64Subtract"] = _i64Subtract; + + + + var ___errno_state=0;function ___setErrNo(value) { + // For convenient setting and returning of errno. + HEAP32[((___errno_state)>>2)]=value; + return value; + } + + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name) { + // long sysconf(int name); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html + switch(name) { + case 30: return PAGE_SIZE; + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 80: + case 81: + case 79: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809; + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + return -1; + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1; + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024; + case 31: + case 42: + case 72: + return 32; + case 87: + case 26: + case 33: + return 2147483647; + case 34: + case 1: + return 47839; + case 38: + case 36: + return 99; + case 43: + case 37: + return 2048; + case 0: return 2097152; + case 3: return 65536; + case 28: return 32768; + case 44: return 32767; + case 75: return 16384; + case 39: return 1000; + case 89: return 700; + case 71: return 256; + case 40: return 255; + case 2: return 100; + case 180: return 64; + case 25: return 20; + case 5: return 16; + case 6: return 6; + case 73: return 4; + case 84: { + if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1; + return 1; + } + } + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + + + 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 + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; + }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 ___cxa_throw(ptr, type, destructor) { + EXCEPTIONS.infos[ptr] = { + ptr: ptr, + adjusted: ptr, + type: type, + destructor: destructor, + refcount: 0 + }; + EXCEPTIONS.last = ptr; + if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { + __ZSt18uncaught_exceptionv.uncaught_exception = 1; + } else { + __ZSt18uncaught_exceptionv.uncaught_exception++; + } + throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; + } + + + Module["_memset"] = _memset; + + + Module["_bitshift64Shl"] = _bitshift64Shl; + + function _abort() { + Module['abort'](); + } + + + + var FS=undefined; + + + + var SOCKFS=undefined;function _send(fd, buf, len, flags) { + var sock = SOCKFS.getSocket(fd); + if (!sock) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + // TODO honor flags + return _write(fd, buf, len); + } + + function _pwrite(fildes, buf, nbyte, offset) { + // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + try { + var slab = HEAP8; + return FS.write(stream, slab, buf, nbyte, offset); + } catch (e) { + FS.handleFSError(e); + return -1; + } + }function _write(fildes, buf, nbyte) { + // ssize_t write(int fildes, const void *buf, size_t nbyte); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html + var stream = FS.getStream(fildes); + if (!stream) { + ___setErrNo(ERRNO_CODES.EBADF); + return -1; + } + + + try { + var slab = HEAP8; + return FS.write(stream, slab, buf, nbyte); + } catch (e) { + FS.handleFSError(e); + return -1; + } + } + + function _fileno(stream) { + // int fileno(FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html + stream = FS.getStreamFromPtr(stream); + if (!stream) return -1; + return stream.fd; + }function _fwrite(ptr, size, nitems, stream) { + // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html + var bytesToWrite = nitems * size; + if (bytesToWrite == 0) return 0; + var fd = _fileno(stream); + var bytesWritten = _write(fd, ptr, bytesToWrite); + if (bytesWritten == -1) { + var streamObj = FS.getStreamFromPtr(stream); + if (streamObj) streamObj.error = true; + return 0; + } else { + return (bytesWritten / size)|0; + } + } + + + + Module["_strlen"] = _strlen; + + function __reallyNegative(x) { + return x < 0 || (x === 0 && (1/x) === -Infinity); + }function __formatString(format, varargs) { + var textIndex = format; + var argIndex = 0; + function getNextArg(type) { + // NOTE: Explicitly ignoring type safety. Otherwise this fails: + // int x = 4; printf("%c\n", (char)x); + var ret; + if (type === 'double') { + ret = (HEAP32[((tempDoublePtr)>>2)]=HEAP32[(((varargs)+(argIndex))>>2)],HEAP32[(((tempDoublePtr)+(4))>>2)]=HEAP32[(((varargs)+((argIndex)+(4)))>>2)],(+(HEAPF64[(tempDoublePtr)>>3]))); + } else if (type == 'i64') { + ret = [HEAP32[(((varargs)+(argIndex))>>2)], + HEAP32[(((varargs)+(argIndex+4))>>2)]]; + + } else { + type = 'i32'; // varargs are always i32, i64, or double + ret = HEAP32[(((varargs)+(argIndex))>>2)]; + } + argIndex += Runtime.getNativeFieldSize(type); + return ret; + } + + var ret = []; + var curr, next, currArg; + while(1) { + var startTextIndex = textIndex; + curr = HEAP8[((textIndex)>>0)]; + if (curr === 0) break; + next = HEAP8[((textIndex+1)>>0)]; + if (curr == 37) { + // Handle flags. + var flagAlwaysSigned = false; + var flagLeftAlign = false; + var flagAlternative = false; + var flagZeroPad = false; + var flagPadSign = false; + flagsLoop: while (1) { + switch (next) { + case 43: + flagAlwaysSigned = true; + break; + case 45: + flagLeftAlign = true; + break; + case 35: + flagAlternative = true; + break; + case 48: + if (flagZeroPad) { + break flagsLoop; + } else { + flagZeroPad = true; + break; + } + case 32: + flagPadSign = true; + break; + default: + break flagsLoop; + } + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } + + // Handle width. + var width = 0; + if (next == 42) { + width = getNextArg('i32'); + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } else { + while (next >= 48 && next <= 57) { + width = width * 10 + (next - 48); + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + } + } + + // Handle precision. + var precisionSet = false, precision = -1; + if (next == 46) { + precision = 0; + precisionSet = true; + textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + if (next == 42) { + precision = getNextArg('i32'); + textIndex++; + } else { + while(1) { + var precisionChr = HEAP8[((textIndex+1)>>0)]; + if (precisionChr < 48 || + precisionChr > 57) break; + precision = precision * 10 + (precisionChr - 48); + textIndex++; + } + } + next = HEAP8[((textIndex+1)>>0)]; + } + if (precision < 0) { + precision = 6; // Standard default. + precisionSet = false; + } + + // Handle integer sizes. WARNING: These assume a 32-bit architecture! + var argSize; + switch (String.fromCharCode(next)) { + case 'h': + var nextNext = HEAP8[((textIndex+2)>>0)]; + if (nextNext == 104) { + textIndex++; + argSize = 1; // char (actually i32 in varargs) + } else { + argSize = 2; // short (actually i32 in varargs) + } + break; + case 'l': + var nextNext = HEAP8[((textIndex+2)>>0)]; + if (nextNext == 108) { + textIndex++; + argSize = 8; // long long + } else { + argSize = 4; // long + } + break; + case 'L': // long long + case 'q': // int64_t + case 'j': // intmax_t + argSize = 8; + break; + case 'z': // size_t + case 't': // ptrdiff_t + case 'I': // signed ptrdiff_t or unsigned size_t + argSize = 4; + break; + default: + argSize = null; + } + if (argSize) textIndex++; + next = HEAP8[((textIndex+1)>>0)]; + + // Handle type specifier. + switch (String.fromCharCode(next)) { + case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': { + // Integer. + var signed = next == 100 || next == 105; + argSize = argSize || 4; + var currArg = getNextArg('i' + (argSize * 8)); + var origArg = currArg; + var argText; + // Flatten i64-1 [low, high] into a (slightly rounded) double + if (argSize == 8) { + currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117); + } + // Truncate to requested size. + if (argSize <= 4) { + var limit = Math.pow(256, argSize) - 1; + currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8); + } + // Format the number. + var currAbsArg = Math.abs(currArg); + var prefix = ''; + if (next == 100 || next == 105) { + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else + argText = reSign(currArg, 8 * argSize, 1).toString(10); + } else if (next == 117) { + if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else + argText = unSign(currArg, 8 * argSize, 1).toString(10); + currArg = Math.abs(currArg); + } else if (next == 111) { + argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8); + } else if (next == 120 || next == 88) { + prefix = (flagAlternative && currArg != 0) ? '0x' : ''; + if (argSize == 8 && i64Math) { + if (origArg[1]) { + argText = (origArg[1]>>>0).toString(16); + var lower = (origArg[0]>>>0).toString(16); + while (lower.length < 8) lower = '0' + lower; + argText += lower; + } else { + argText = (origArg[0]>>>0).toString(16); + } + } else + if (currArg < 0) { + // Represent negative numbers in hex as 2's complement. + currArg = -currArg; + argText = (currAbsArg - 1).toString(16); + var buffer = []; + for (var i = 0; i < argText.length; i++) { + buffer.push((0xF - parseInt(argText[i], 16)).toString(16)); + } + argText = buffer.join(''); + while (argText.length < argSize * 2) argText = 'f' + argText; + } else { + argText = currAbsArg.toString(16); + } + if (next == 88) { + prefix = prefix.toUpperCase(); + argText = argText.toUpperCase(); + } + } else if (next == 112) { + if (currAbsArg === 0) { + argText = '(nil)'; + } else { + prefix = '0x'; + argText = currAbsArg.toString(16); + } + } + if (precisionSet) { + while (argText.length < precision) { + argText = '0' + argText; + } + } + + // Add sign if needed + if (currArg >= 0) { + if (flagAlwaysSigned) { + prefix = '+' + prefix; + } else if (flagPadSign) { + prefix = ' ' + prefix; + } + } + + // Move sign to prefix so we zero-pad after the sign + if (argText.charAt(0) == '-') { + prefix = '-' + prefix; + argText = argText.substr(1); + } + + // Add padding. + while (prefix.length + argText.length < width) { + if (flagLeftAlign) { + argText += ' '; + } else { + if (flagZeroPad) { + argText = '0' + argText; + } else { + prefix = ' ' + prefix; + } + } + } + + // Insert the result into the buffer. + argText = prefix + argText; + argText.split('').forEach(function(chr) { + ret.push(chr.charCodeAt(0)); + }); + break; + } + case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': { + // Float. + var currArg = getNextArg('double'); + var argText; + if (isNaN(currArg)) { + argText = 'nan'; + flagZeroPad = false; + } else if (!isFinite(currArg)) { + argText = (currArg < 0 ? '-' : '') + 'inf'; + flagZeroPad = false; + } else { + var isGeneral = false; + var effectivePrecision = Math.min(precision, 20); + + // Convert g/G to f/F or e/E, as per: + // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html + if (next == 103 || next == 71) { + isGeneral = true; + precision = precision || 1; + var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10); + if (precision > exponent && exponent >= -4) { + next = ((next == 103) ? 'f' : 'F').charCodeAt(0); + precision -= exponent + 1; + } else { + next = ((next == 103) ? 'e' : 'E').charCodeAt(0); + precision--; + } + effectivePrecision = Math.min(precision, 20); + } + + if (next == 101 || next == 69) { + argText = currArg.toExponential(effectivePrecision); + // Make sure the exponent has at least 2 digits. + if (/[eE][-+]\d$/.test(argText)) { + argText = argText.slice(0, -1) + '0' + argText.slice(-1); + } + } else if (next == 102 || next == 70) { + argText = currArg.toFixed(effectivePrecision); + if (currArg === 0 && __reallyNegative(currArg)) { + argText = '-' + argText; + } + } + + var parts = argText.split('e'); + if (isGeneral && !flagAlternative) { + // Discard trailing zeros and periods. + while (parts[0].length > 1 && parts[0].indexOf('.') != -1 && + (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) { + parts[0] = parts[0].slice(0, -1); + } + } else { + // Make sure we have a period in alternative mode. + if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.'; + // Zero pad until required precision. + while (precision > effectivePrecision++) parts[0] += '0'; + } + argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : ''); + + // Capitalize 'E' if needed. + if (next == 69) argText = argText.toUpperCase(); + + // Add sign. + if (currArg >= 0) { + if (flagAlwaysSigned) { + argText = '+' + argText; + } else if (flagPadSign) { + argText = ' ' + argText; + } + } + } + + // Add padding. + while (argText.length < width) { + if (flagLeftAlign) { + argText += ' '; + } else { + if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) { + argText = argText[0] + '0' + argText.slice(1); + } else { + argText = (flagZeroPad ? '0' : ' ') + argText; + } + } + } + + // Adjust case. + if (next < 97) argText = argText.toUpperCase(); + + // Insert the result into the buffer. + argText.split('').forEach(function(chr) { + ret.push(chr.charCodeAt(0)); + }); + break; + } + case 's': { + // String. + var arg = getNextArg('i8*'); + var argLength = arg ? _strlen(arg) : '(null)'.length; + if (precisionSet) argLength = Math.min(argLength, precision); + if (!flagLeftAlign) { + while (argLength < width--) { + ret.push(32); + } + } + if (arg) { + for (var i = 0; i < argLength; i++) { + ret.push(HEAPU8[((arg++)>>0)]); + } + } else { + ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true)); + } + if (flagLeftAlign) { + while (argLength < width--) { + ret.push(32); + } + } + break; + } + case 'c': { + // Character. + if (flagLeftAlign) ret.push(getNextArg('i8')); + while (--width > 0) { + ret.push(32); + } + if (!flagLeftAlign) ret.push(getNextArg('i8')); + break; + } + case 'n': { + // Write the length written so far to the next parameter. + var ptr = getNextArg('i32*'); + HEAP32[((ptr)>>2)]=ret.length; + break; + } + case '%': { + // Literal percent sign. + ret.push(curr); + break; + } + default: { + // Unknown specifiers remain untouched. + for (var i = startTextIndex; i < textIndex + 2; i++) { + ret.push(HEAP8[((i)>>0)]); + } + } + } + textIndex += 2; + // TODO: Support a/A (hex float) and m (last error) specifiers. + // TODO: Support %1${specifier} for arg selection. + } else { + ret.push(curr); + textIndex += 1; + } + } + return ret; + }function _fprintf(stream, format, varargs) { + // int fprintf(FILE *restrict stream, const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + var result = __formatString(format, varargs); + var stack = Runtime.stackSave(); + var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream); + Runtime.stackRestore(stack); + return ret; + } + + function _printf(format, varargs) { + // int printf(const char *restrict format, ...); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html + // extra effort to support printf, even without a filesystem. very partial, very hackish + var result = __formatString(format, varargs); + var string = intArrayToString(result); + if (string[string.length-1] === '\n') string = string.substr(0, string.length-1); // remove a final \n, as Module.print will do that + Module.print(string); + return result.length; + } + + function _pthread_once(ptr, func) { + if (!_pthread_once.seen) _pthread_once.seen = {}; + if (ptr in _pthread_once.seen) return; + Runtime.dynCall('v', func); + _pthread_once.seen[ptr] = 1; + } + + + function _fputc(c, stream) { + // int fputc(int c, FILE *stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html + var chr = unSign(c & 0xFF); + HEAP8[((_fputc.ret)>>0)]=chr; + var fd = _fileno(stream); + var ret = _write(fd, _fputc.ret, 1); + if (ret == -1) { + var streamObj = FS.getStreamFromPtr(stream); + if (streamObj) streamObj.error = true; + return -1; + } else { + return chr; + } + } + + + var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) { + return PTHREAD_SPECIFIC[key] || 0; + } + + + Module["_i64Add"] = _i64Add; + + + function _fputs(s, stream) { + // int fputs(const char *restrict s, FILE *restrict stream); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html + var fd = _fileno(stream); + return _write(fd, s, _strlen(s)); + } + + var _stdout=allocate(1, "i32*", ALLOC_STATIC);function _puts(s) { + // extra effort to support puts, even without a filesystem. very partial, very hackish + var result = Pointer_stringify(s); + var string = result.substr(0); + if (string[string.length-1] === '\n') string = string.substr(0, string.length-1); // remove a final \n, as Module.print will do that + Module.print(string); + return result.length; + } + + + function _pthread_setspecific(key, value) { + if (!(key in PTHREAD_SPECIFIC)) { + return ERRNO_CODES.EINVAL; + } + PTHREAD_SPECIFIC[key] = value; + return 0; + } + + + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); + } + + var _UItoD=true; + + + 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 ___cxa_allocate_exception(size) { + return _malloc(size); + } + + + function _fmod(x, y) { + return x % y; + }function _fmodl() { + return _fmod.apply(null, arguments) + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + function ___cxa_pure_virtual() { + ABORT = true; + throw 'Pure virtual function called!'; + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; + } + + + var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key, destructor) { + if (key == 0) { + return ERRNO_CODES.EINVAL; + } + HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY; + // values start at 0 + PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; + PTHREAD_SPECIFIC_NEXT_KEY++; + return 0; + } + + function ___cxa_guard_acquire(variable) { + if (!HEAP8[((variable)>>0)]) { // ignore SAFE_HEAP stuff because llvm mixes i64 and i8 here + HEAP8[((variable)>>0)]=1; + return 1; + } + return 0; + } + + function ___cxa_guard_release() {} + + function _vfprintf(s, f, va_arg) { + return _fprintf(s, f, HEAP32[((va_arg)>>2)]); + } + + function ___cxa_begin_catch(ptr) { + __ZSt18uncaught_exceptionv.uncaught_exception--; + EXCEPTIONS.caught.push(ptr); + EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); + return ptr; + } + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + + var _llvm_pow_f64=Math_pow; + + 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) self.alloc(bytes); + return ret; // Previous break location. + } + + var _fabs=Math_abs; + + function ___errno_location() { + return ___errno_state; + } + + var _BItoD=true; + + + function _copysign(a, b) { + return __reallyNegative(a) === __reallyNegative(b) ? a : -a; + }function _copysignl() { + return _copysign.apply(null, arguments) + } + + var ___dso_handle=allocate(1, "i32*", ALLOC_STATIC); + + var _stderr=allocate(1, "i32*", ALLOC_STATIC); +___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0; +_fputc.ret = allocate([0], "i8", ALLOC_STATIC); +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 ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC); + var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC); + + +function invoke_iiii(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_v(index) { + try { + Module["dynCall_v"](index); + } 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 }; + Module.asmLibraryArg = { "abort": abort, "assert": assert, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_v": invoke_v, "invoke_viiiiii": invoke_viiiiii, "invoke_iii": invoke_iii, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "_llvm_pow_f64": _llvm_pow_f64, "_send": _send, "_fmod": _fmod, "___cxa_guard_acquire": ___cxa_guard_acquire, "___setErrNo": ___setErrNo, "_vfprintf": _vfprintf, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "___cxa_guard_release": ___cxa_guard_release, "_pwrite": _pwrite, "__reallyNegative": __reallyNegative, "_sbrk": _sbrk, "___cxa_begin_catch": ___cxa_begin_catch, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_fileno": _fileno, "___resumeException": ___resumeException, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_sysconf": _sysconf, "_pthread_getspecific": _pthread_getspecific, "_atexit": _atexit, "_pthread_once": _pthread_once, "_puts": _puts, "_printf": _printf, "_pthread_key_create": _pthread_key_create, "_write": _write, "___errno_location": ___errno_location, "_pthread_setspecific": _pthread_setspecific, "___cxa_atexit": ___cxa_atexit, "_copysign": _copysign, "_fputc": _fputc, "___cxa_throw": ___cxa_throw, "__exit": __exit, "_copysignl": _copysignl, "_abort": _abort, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "__formatString": __formatString, "_fputs": _fputs, "_exit": _exit, "___cxa_pure_virtual": ___cxa_pure_virtual, "_fmodl": _fmodl, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "NaN": NaN, "Infinity": Infinity, "___dso_handle": ___dso_handle, "_stderr": _stderr }; + // EMSCRIPTEN_START_ASM + var asm = (function(global, env, buffer) { + 'use 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 ctlz_i8=env.ctlz_i8|0; + var ___dso_handle=env.___dso_handle|0; + var _stderr=env._stderr|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = +env.NaN, inf = +env.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 abort=env.abort; + var assert=env.assert; + var Math_min=env.min; + 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_v=env.invoke_v; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_iii=env.invoke_iii; + var invoke_viiii=env.invoke_viiii; + var _fabs=env._fabs; + var _llvm_pow_f64=env._llvm_pow_f64; + var _send=env._send; + var _fmod=env._fmod; + var ___cxa_guard_acquire=env.___cxa_guard_acquire; + var ___setErrNo=env.___setErrNo; + var _vfprintf=env._vfprintf; + var ___cxa_allocate_exception=env.___cxa_allocate_exception; + var ___cxa_find_matching_catch=env.___cxa_find_matching_catch; + var ___cxa_guard_release=env.___cxa_guard_release; + var _pwrite=env._pwrite; + var __reallyNegative=env.__reallyNegative; + var _sbrk=env._sbrk; + var ___cxa_begin_catch=env.___cxa_begin_catch; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _fileno=env._fileno; + var ___resumeException=env.___resumeException; + var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv; + var _sysconf=env._sysconf; + var _pthread_getspecific=env._pthread_getspecific; + var _atexit=env._atexit; + var _pthread_once=env._pthread_once; + var _puts=env._puts; + var _printf=env._printf; + var _pthread_key_create=env._pthread_key_create; + var _write=env._write; + var ___errno_location=env.___errno_location; + var _pthread_setspecific=env._pthread_setspecific; + var ___cxa_atexit=env.___cxa_atexit; + var _copysign=env._copysign; + var _fputc=env._fputc; + var ___cxa_throw=env.___cxa_throw; + var __exit=env.__exit; + var _copysignl=env._copysignl; + var _abort=env._abort; + var _fwrite=env._fwrite; + var _time=env._time; + var _fprintf=env._fprintf; + var __formatString=env.__formatString; + var _fputs=env._fputs; + var _exit=env._exit; + var ___cxa_pure_virtual=env.___cxa_pure_virtual; + var _fmodl=env._fmodl; + var tempFloat = 0.0; + + // EMSCRIPTEN_START_FUNCS +function _malloc($bytes) { + $bytes = $bytes | 0; + var $$pre$phi$i$iZ2D = 0, $$pre$phi$i26$iZ2D = 0, $$pre$phi$i26Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi58$i$iZ2D = 0, $$pre$phiZ2D = 0, $$rsize$3$i = 0, $$sum$i21$i = 0, $$sum2$i23$i = 0, $$sum3132$i$i = 0, $$sum67$i$i = 0, $100 = 0, $1004 = 0, $1005 = 0, $1008 = 0, $1010 = 0, $1013 = 0, $1018 = 0, $1024 = 0, $1028 = 0, $1029 = 0, $1036 = 0, $1045 = 0, $1048 = 0, $1053 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1069 = 0, $1071 = 0, $1072 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $117 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $127 = 0, $13 = 0, $132 = 0, $138 = 0, $14 = 0, $141 = 0, $144 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $151 = 0, $154 = 0, $156 = 0, $159 = 0, $16 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $201 = 0, $208 = 0, $215 = 0, $218 = 0, $226 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $237 = 0, $238 = 0, $246 = 0, $247 = 0, $248 = 0, $25 = 0, $250 = 0, $251 = 0, $256 = 0, $257 = 0, $260 = 0, $262 = 0, $265 = 0, $270 = 0, $277 = 0, $28 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $310 = 0, $311 = 0, $313 = 0, $315 = 0, $317 = 0, $319 = 0, $321 = 0, $323 = 0, $325 = 0, $335 = 0, $336 = 0, $338 = 0, $347 = 0, $349 = 0, $352 = 0, $354 = 0, $357 = 0, $359 = 0, $362 = 0, $365 = 0, $366 = 0, $368 = 0, $369 = 0, $371 = 0, $372 = 0, $374 = 0, $375 = 0, $38 = 0, $380 = 0, $381 = 0, $390 = 0, $399 = 0, $4 = 0, $406 = 0, $41 = 0, $413 = 0, $416 = 0, $424 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $433 = 0, $434 = 0, $44 = 0, $440 = 0, $445 = 0, $446 = 0, $449 = 0, $451 = 0, $454 = 0, $459 = 0, $46 = 0, $465 = 0, $469 = 0, $47 = 0, $470 = 0, $477 = 0, $486 = 0, $489 = 0, $49 = 0, $494 = 0, $5 = 0, $501 = 0, $502 = 0, $503 = 0, $51 = 0, $511 = 0, $513 = 0, $514 = 0, $524 = 0, $528 = 0, $53 = 0, $530 = 0, $531 = 0, $540 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $554 = 0, $556 = 0, $557 = 0, $563 = 0, $565 = 0, $567 = 0, $57 = 0, $572 = 0, $575 = 0, $577 = 0, $578 = 0, $579 = 0, $587 = 0, $588 = 0, $59 = 0, $591 = 0, $595 = 0, $596 = 0, $599 = 0, $6 = 0, $601 = 0, $605 = 0, $606 = 0, $61 = 0, $611 = 0, $615 = 0, $624 = 0, $625 = 0, $629 = 0, $631 = 0, $633 = 0, $636 = 0, $638 = 0, $64 = 0, $642 = 0, $643 = 0, $649 = 0, $65 = 0, $655 = 0, $656 = 0, $66 = 0, $661 = 0, $662 = 0, $663 = 0, $667 = 0, $67 = 0, $677 = 0, $679 = 0, $68 = 0, $685 = 0, $686 = 0, $69 = 0, $693 = 0, $697 = 0, $7 = 0, $70 = 0, $703 = 0, $707 = 0, $713 = 0, $715 = 0, $720 = 0, $721 = 0, $725 = 0, $726 = 0, $732 = 0, $738 = 0, $743 = 0, $746 = 0, $747 = 0, $750 = 0, $752 = 0, $754 = 0, $769 = 0, $77 = 0, $774 = 0, $776 = 0, $779 = 0, $782 = 0, $785 = 0, $788 = 0, $789 = 0, $791 = 0, $792 = 0, $794 = 0, $795 = 0, $797 = 0, $798 = 0, $80 = 0, $804 = 0, $805 = 0, $81 = 0, $814 = 0, $823 = 0, $830 = 0, $838 = 0, $84 = 0, $844 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $853 = 0, $854 = 0, $860 = 0, $865 = 0, $866 = 0, $869 = 0, $871 = 0, $874 = 0, $879 = 0, $88 = 0, $885 = 0, $889 = 0, $890 = 0, $897 = 0, $90 = 0, $906 = 0, $909 = 0, $91 = 0, $914 = 0, $92 = 0, $921 = 0, $922 = 0, $923 = 0, $93 = 0, $931 = 0, $934 = 0, $935 = 0, $94 = 0, $940 = 0, $945 = 0, $946 = 0, $949 = 0, $95 = 0, $950 = 0, $953 = 0, $959 = 0, $960 = 0, $966 = 0, $970 = 0, $976 = 0, $978 = 0, $983 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $99 = 0, $992 = 0, $993 = 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$025$i = 0, $K2$014$i$i = 0, $K8$052$i$i = 0, $R$0$i = 0, $R$0$i$i = 0, $R$0$i18 = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i20 = 0, $RP$0$i = 0, $RP$0$i$i = 0, $RP$0$i17 = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i28$i = 0, $T$013$i$i = 0, $T$024$i = 0, $T$051$i$i = 0, $br$0$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0, $oldfirst$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i15 = 0, $rsize$1$i = 0, $rsize$2$i = 0, $rsize$3$lcssa$i = 0, $rsize$329$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$075$i = 0, $sp$168$i = 0, $ssize$0$i = 0, $ssize$1$i = 0, $ssize$2$i = 0, $t$0$i = 0, $t$0$i14 = 0, $t$1$i = 0, $t$2$ph$i = 0, $t$2$v$3$i = 0, $t$228$i = 0, $tbase$0$i = 0, $tbase$247$i = 0, $tsize$0$i = 0, $tsize$0323841$i = 0, $tsize$1$i = 0, $tsize$246$i = 0, $v$0$i = 0, $v$0$i16 = 0, $v$1$i = 0, $v$2$i = 0, $v$3$lcssa$i = 0, $v$330$i = 0, label = 0, sp = 0, $970$looptemp = 0; + sp = STACKTOP; + do if ($bytes >>> 0 < 245) { + if ($bytes >>> 0 < 11) $5 = 16; else $5 = $bytes + 11 & -8; + $4 = $5 >>> 3; + $6 = HEAP32[1206] | 0; + $7 = $6 >>> $4; + if ($7 & 3) { + $12 = ($7 & 1 ^ 1) + $4 | 0; + $13 = $12 << 1; + $14 = 4864 + ($13 << 2) | 0; + $15 = 4864 + ($13 + 2 << 2) | 0; + $16 = HEAP32[$15 >> 2] | 0; + $17 = $16 + 8 | 0; + $18 = HEAP32[$17 >> 2] | 0; + do if (($14 | 0) == ($18 | 0)) HEAP32[1206] = $6 & ~(1 << $12); else { + if ($18 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $25 = $18 + 12 | 0; + if ((HEAP32[$25 >> 2] | 0) == ($16 | 0)) { + HEAP32[$25 >> 2] = $14; + HEAP32[$15 >> 2] = $18; + break; + } else _abort(); + } while (0); + $28 = $12 << 3; + HEAP32[$16 + 4 >> 2] = $28 | 3; + $31 = $16 + ($28 | 4) | 0; + HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1; + $mem$0 = $17; + STACKTOP = sp; + return $mem$0 | 0; + } + if ($5 >>> 0 > (HEAP32[1208] | 0) >>> 0) { + if ($7) { + $38 = 2 << $4; + $41 = $7 << $4 & ($38 | 0 - $38); + $44 = ($41 & 0 - $41) + -1 | 0; + $46 = $44 >>> 12 & 16; + $47 = $44 >>> $46; + $49 = $47 >>> 5 & 8; + $51 = $47 >>> $49; + $53 = $51 >>> 2 & 4; + $55 = $51 >>> $53; + $57 = $55 >>> 1 & 2; + $59 = $55 >>> $57; + $61 = $59 >>> 1 & 1; + $64 = ($49 | $46 | $53 | $57 | $61) + ($59 >>> $61) | 0; + $65 = $64 << 1; + $66 = 4864 + ($65 << 2) | 0; + $67 = 4864 + ($65 + 2 << 2) | 0; + $68 = HEAP32[$67 >> 2] | 0; + $69 = $68 + 8 | 0; + $70 = HEAP32[$69 >> 2] | 0; + do if (($66 | 0) == ($70 | 0)) HEAP32[1206] = $6 & ~(1 << $64); else { + if ($70 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $77 = $70 + 12 | 0; + if ((HEAP32[$77 >> 2] | 0) == ($68 | 0)) { + HEAP32[$77 >> 2] = $66; + HEAP32[$67 >> 2] = $70; + break; + } else _abort(); + } while (0); + $80 = $64 << 3; + $81 = $80 - $5 | 0; + HEAP32[$68 + 4 >> 2] = $5 | 3; + $84 = $68 + $5 | 0; + HEAP32[$68 + ($5 | 4) >> 2] = $81 | 1; + HEAP32[$68 + $80 >> 2] = $81; + $88 = HEAP32[1208] | 0; + if ($88) { + $90 = HEAP32[1211] | 0; + $91 = $88 >>> 3; + $92 = $91 << 1; + $93 = 4864 + ($92 << 2) | 0; + $94 = HEAP32[1206] | 0; + $95 = 1 << $91; + if (!($94 & $95)) { + HEAP32[1206] = $94 | $95; + $$pre$phiZ2D = 4864 + ($92 + 2 << 2) | 0; + $F4$0 = $93; + } else { + $99 = 4864 + ($92 + 2 << 2) | 0; + $100 = HEAP32[$99 >> 2] | 0; + if ($100 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $99; + $F4$0 = $100; + } + } + HEAP32[$$pre$phiZ2D >> 2] = $90; + HEAP32[$F4$0 + 12 >> 2] = $90; + HEAP32[$90 + 8 >> 2] = $F4$0; + HEAP32[$90 + 12 >> 2] = $93; + } + HEAP32[1208] = $81; + HEAP32[1211] = $84; + $mem$0 = $69; + STACKTOP = sp; + return $mem$0 | 0; + } + $106 = HEAP32[1207] | 0; + if (!$106) $nb$0 = $5; else { + $110 = ($106 & 0 - $106) + -1 | 0; + $112 = $110 >>> 12 & 16; + $113 = $110 >>> $112; + $115 = $113 >>> 5 & 8; + $117 = $113 >>> $115; + $119 = $117 >>> 2 & 4; + $121 = $117 >>> $119; + $123 = $121 >>> 1 & 2; + $125 = $121 >>> $123; + $127 = $125 >>> 1 & 1; + $132 = HEAP32[5128 + (($115 | $112 | $119 | $123 | $127) + ($125 >>> $127) << 2) >> 2] | 0; + $rsize$0$i = (HEAP32[$132 + 4 >> 2] & -8) - $5 | 0; + $t$0$i = $132; + $v$0$i = $132; + while (1) { + $138 = HEAP32[$t$0$i + 16 >> 2] | 0; + if (!$138) { + $141 = HEAP32[$t$0$i + 20 >> 2] | 0; + if (!$141) break; else $144 = $141; + } else $144 = $138; + $147 = (HEAP32[$144 + 4 >> 2] & -8) - $5 | 0; + $148 = $147 >>> 0 < $rsize$0$i >>> 0; + $rsize$0$i = $148 ? $147 : $rsize$0$i; + $t$0$i = $144; + $v$0$i = $148 ? $144 : $v$0$i; + } + $149 = HEAP32[1210] | 0; + if ($v$0$i >>> 0 < $149 >>> 0) _abort(); + $151 = $v$0$i + $5 | 0; + if ($v$0$i >>> 0 >= $151 >>> 0) _abort(); + $154 = HEAP32[$v$0$i + 24 >> 2] | 0; + $156 = HEAP32[$v$0$i + 12 >> 2] | 0; + do if (($156 | 0) == ($v$0$i | 0)) { + $167 = $v$0$i + 20 | 0; + $168 = HEAP32[$167 >> 2] | 0; + if (!$168) { + $170 = $v$0$i + 16 | 0; + $171 = HEAP32[$170 >> 2] | 0; + if (!$171) { + $R$1$i = 0; + break; + } else { + $R$0$i = $171; + $RP$0$i = $170; + } + } else { + $R$0$i = $168; + $RP$0$i = $167; + } + while (1) { + $173 = $R$0$i + 20 | 0; + $174 = HEAP32[$173 >> 2] | 0; + if ($174) { + $R$0$i = $174; + $RP$0$i = $173; + continue; + } + $176 = $R$0$i + 16 | 0; + $177 = HEAP32[$176 >> 2] | 0; + if (!$177) break; else { + $R$0$i = $177; + $RP$0$i = $176; + } + } + if ($RP$0$i >>> 0 < $149 >>> 0) _abort(); else { + HEAP32[$RP$0$i >> 2] = 0; + $R$1$i = $R$0$i; + break; + } + } else { + $159 = HEAP32[$v$0$i + 8 >> 2] | 0; + if ($159 >>> 0 < $149 >>> 0) _abort(); + $161 = $159 + 12 | 0; + if ((HEAP32[$161 >> 2] | 0) != ($v$0$i | 0)) _abort(); + $164 = $156 + 8 | 0; + if ((HEAP32[$164 >> 2] | 0) == ($v$0$i | 0)) { + HEAP32[$161 >> 2] = $156; + HEAP32[$164 >> 2] = $159; + $R$1$i = $156; + break; + } else _abort(); + } while (0); + do if ($154) { + $182 = HEAP32[$v$0$i + 28 >> 2] | 0; + $183 = 5128 + ($182 << 2) | 0; + if (($v$0$i | 0) == (HEAP32[$183 >> 2] | 0)) { + HEAP32[$183 >> 2] = $R$1$i; + if (!$R$1$i) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $182); + break; + } + } else { + if ($154 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $192 = $154 + 16 | 0; + if ((HEAP32[$192 >> 2] | 0) == ($v$0$i | 0)) HEAP32[$192 >> 2] = $R$1$i; else HEAP32[$154 + 20 >> 2] = $R$1$i; + if (!$R$1$i) break; + } + if ($R$1$i >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1$i + 24 >> 2] = $154; + $201 = HEAP32[$v$0$i + 16 >> 2] | 0; + do if ($201) if ($201 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i + 16 >> 2] = $201; + HEAP32[$201 + 24 >> 2] = $R$1$i; + break; + } while (0); + $208 = HEAP32[$v$0$i + 20 >> 2] | 0; + if ($208) if ($208 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i + 20 >> 2] = $208; + HEAP32[$208 + 24 >> 2] = $R$1$i; + break; + } + } while (0); + if ($rsize$0$i >>> 0 < 16) { + $215 = $rsize$0$i + $5 | 0; + HEAP32[$v$0$i + 4 >> 2] = $215 | 3; + $218 = $v$0$i + ($215 + 4) | 0; + HEAP32[$218 >> 2] = HEAP32[$218 >> 2] | 1; + } else { + HEAP32[$v$0$i + 4 >> 2] = $5 | 3; + HEAP32[$v$0$i + ($5 | 4) >> 2] = $rsize$0$i | 1; + HEAP32[$v$0$i + ($rsize$0$i + $5) >> 2] = $rsize$0$i; + $226 = HEAP32[1208] | 0; + if ($226) { + $228 = HEAP32[1211] | 0; + $229 = $226 >>> 3; + $230 = $229 << 1; + $231 = 4864 + ($230 << 2) | 0; + $232 = HEAP32[1206] | 0; + $233 = 1 << $229; + if (!($232 & $233)) { + HEAP32[1206] = $232 | $233; + $$pre$phi$iZ2D = 4864 + ($230 + 2 << 2) | 0; + $F1$0$i = $231; + } else { + $237 = 4864 + ($230 + 2 << 2) | 0; + $238 = HEAP32[$237 >> 2] | 0; + if ($238 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + $$pre$phi$iZ2D = $237; + $F1$0$i = $238; + } + } + HEAP32[$$pre$phi$iZ2D >> 2] = $228; + HEAP32[$F1$0$i + 12 >> 2] = $228; + HEAP32[$228 + 8 >> 2] = $F1$0$i; + HEAP32[$228 + 12 >> 2] = $231; + } + HEAP32[1208] = $rsize$0$i; + HEAP32[1211] = $151; + } + $mem$0 = $v$0$i + 8 | 0; + STACKTOP = sp; + return $mem$0 | 0; + } + } else $nb$0 = $5; + } else if ($bytes >>> 0 > 4294967231) $nb$0 = -1; else { + $246 = $bytes + 11 | 0; + $247 = $246 & -8; + $248 = HEAP32[1207] | 0; + if (!$248) $nb$0 = $247; else { + $250 = 0 - $247 | 0; + $251 = $246 >>> 8; + if (!$251) $idx$0$i = 0; else if ($247 >>> 0 > 16777215) $idx$0$i = 31; else { + $256 = ($251 + 1048320 | 0) >>> 16 & 8; + $257 = $251 << $256; + $260 = ($257 + 520192 | 0) >>> 16 & 4; + $262 = $257 << $260; + $265 = ($262 + 245760 | 0) >>> 16 & 2; + $270 = 14 - ($260 | $256 | $265) + ($262 << $265 >>> 15) | 0; + $idx$0$i = $247 >>> ($270 + 7 | 0) & 1 | $270 << 1; + } + $277 = HEAP32[5128 + ($idx$0$i << 2) >> 2] | 0; + L126 : do if (!$277) { + $rsize$2$i = $250; + $t$1$i = 0; + $v$2$i = 0; + } else { + if (($idx$0$i | 0) == 31) $283 = 0; else $283 = 25 - ($idx$0$i >>> 1) | 0; + $rsize$0$i15 = $250; + $rst$0$i = 0; + $sizebits$0$i = $247 << $283; + $t$0$i14 = $277; + $v$0$i16 = 0; + while (1) { + $286 = HEAP32[$t$0$i14 + 4 >> 2] & -8; + $287 = $286 - $247 | 0; + if ($287 >>> 0 < $rsize$0$i15 >>> 0) if (($286 | 0) == ($247 | 0)) { + $rsize$2$i = $287; + $t$1$i = $t$0$i14; + $v$2$i = $t$0$i14; + break L126; + } else { + $rsize$1$i = $287; + $v$1$i = $t$0$i14; + } else { + $rsize$1$i = $rsize$0$i15; + $v$1$i = $v$0$i16; + } + $291 = HEAP32[$t$0$i14 + 20 >> 2] | 0; + $t$0$i14 = HEAP32[$t$0$i14 + ($sizebits$0$i >>> 31 << 2) + 16 >> 2] | 0; + $rst$1$i = ($291 | 0) == 0 | ($291 | 0) == ($t$0$i14 | 0) ? $rst$0$i : $291; + if (!$t$0$i14) { + $rsize$2$i = $rsize$1$i; + $t$1$i = $rst$1$i; + $v$2$i = $v$1$i; + break; + } else { + $rsize$0$i15 = $rsize$1$i; + $rst$0$i = $rst$1$i; + $sizebits$0$i = $sizebits$0$i << 1; + $v$0$i16 = $v$1$i; + } + } + } while (0); + if (($t$1$i | 0) == 0 & ($v$2$i | 0) == 0) { + $301 = 2 << $idx$0$i; + $304 = $248 & ($301 | 0 - $301); + if (!$304) { + $nb$0 = $247; + break; + } + $308 = ($304 & 0 - $304) + -1 | 0; + $310 = $308 >>> 12 & 16; + $311 = $308 >>> $310; + $313 = $311 >>> 5 & 8; + $315 = $311 >>> $313; + $317 = $315 >>> 2 & 4; + $319 = $315 >>> $317; + $321 = $319 >>> 1 & 2; + $323 = $319 >>> $321; + $325 = $323 >>> 1 & 1; + $t$2$ph$i = HEAP32[5128 + (($313 | $310 | $317 | $321 | $325) + ($323 >>> $325) << 2) >> 2] | 0; + } else $t$2$ph$i = $t$1$i; + if (!$t$2$ph$i) { + $rsize$3$lcssa$i = $rsize$2$i; + $v$3$lcssa$i = $v$2$i; + } else { + $rsize$329$i = $rsize$2$i; + $t$228$i = $t$2$ph$i; + $v$330$i = $v$2$i; + while (1) { + $335 = (HEAP32[$t$228$i + 4 >> 2] & -8) - $247 | 0; + $336 = $335 >>> 0 < $rsize$329$i >>> 0; + $$rsize$3$i = $336 ? $335 : $rsize$329$i; + $t$2$v$3$i = $336 ? $t$228$i : $v$330$i; + $338 = HEAP32[$t$228$i + 16 >> 2] | 0; + if ($338) { + $rsize$329$i = $$rsize$3$i; + $t$228$i = $338; + $v$330$i = $t$2$v$3$i; + continue; + } + $t$228$i = HEAP32[$t$228$i + 20 >> 2] | 0; + if (!$t$228$i) { + $rsize$3$lcssa$i = $$rsize$3$i; + $v$3$lcssa$i = $t$2$v$3$i; + break; + } else { + $rsize$329$i = $$rsize$3$i; + $v$330$i = $t$2$v$3$i; + } + } + } + if (!$v$3$lcssa$i) $nb$0 = $247; else if ($rsize$3$lcssa$i >>> 0 < ((HEAP32[1208] | 0) - $247 | 0) >>> 0) { + $347 = HEAP32[1210] | 0; + if ($v$3$lcssa$i >>> 0 < $347 >>> 0) _abort(); + $349 = $v$3$lcssa$i + $247 | 0; + if ($v$3$lcssa$i >>> 0 >= $349 >>> 0) _abort(); + $352 = HEAP32[$v$3$lcssa$i + 24 >> 2] | 0; + $354 = HEAP32[$v$3$lcssa$i + 12 >> 2] | 0; + do if (($354 | 0) == ($v$3$lcssa$i | 0)) { + $365 = $v$3$lcssa$i + 20 | 0; + $366 = HEAP32[$365 >> 2] | 0; + if (!$366) { + $368 = $v$3$lcssa$i + 16 | 0; + $369 = HEAP32[$368 >> 2] | 0; + if (!$369) { + $R$1$i20 = 0; + break; + } else { + $R$0$i18 = $369; + $RP$0$i17 = $368; + } + } else { + $R$0$i18 = $366; + $RP$0$i17 = $365; + } + while (1) { + $371 = $R$0$i18 + 20 | 0; + $372 = HEAP32[$371 >> 2] | 0; + if ($372) { + $R$0$i18 = $372; + $RP$0$i17 = $371; + continue; + } + $374 = $R$0$i18 + 16 | 0; + $375 = HEAP32[$374 >> 2] | 0; + if (!$375) break; else { + $R$0$i18 = $375; + $RP$0$i17 = $374; + } + } + if ($RP$0$i17 >>> 0 < $347 >>> 0) _abort(); else { + HEAP32[$RP$0$i17 >> 2] = 0; + $R$1$i20 = $R$0$i18; + break; + } + } else { + $357 = HEAP32[$v$3$lcssa$i + 8 >> 2] | 0; + if ($357 >>> 0 < $347 >>> 0) _abort(); + $359 = $357 + 12 | 0; + if ((HEAP32[$359 >> 2] | 0) != ($v$3$lcssa$i | 0)) _abort(); + $362 = $354 + 8 | 0; + if ((HEAP32[$362 >> 2] | 0) == ($v$3$lcssa$i | 0)) { + HEAP32[$359 >> 2] = $354; + HEAP32[$362 >> 2] = $357; + $R$1$i20 = $354; + break; + } else _abort(); + } while (0); + do if ($352) { + $380 = HEAP32[$v$3$lcssa$i + 28 >> 2] | 0; + $381 = 5128 + ($380 << 2) | 0; + if (($v$3$lcssa$i | 0) == (HEAP32[$381 >> 2] | 0)) { + HEAP32[$381 >> 2] = $R$1$i20; + if (!$R$1$i20) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $380); + break; + } + } else { + if ($352 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $390 = $352 + 16 | 0; + if ((HEAP32[$390 >> 2] | 0) == ($v$3$lcssa$i | 0)) HEAP32[$390 >> 2] = $R$1$i20; else HEAP32[$352 + 20 >> 2] = $R$1$i20; + if (!$R$1$i20) break; + } + if ($R$1$i20 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1$i20 + 24 >> 2] = $352; + $399 = HEAP32[$v$3$lcssa$i + 16 >> 2] | 0; + do if ($399) if ($399 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i20 + 16 >> 2] = $399; + HEAP32[$399 + 24 >> 2] = $R$1$i20; + break; + } while (0); + $406 = HEAP32[$v$3$lcssa$i + 20 >> 2] | 0; + if ($406) if ($406 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i20 + 20 >> 2] = $406; + HEAP32[$406 + 24 >> 2] = $R$1$i20; + break; + } + } while (0); + L204 : do if ($rsize$3$lcssa$i >>> 0 < 16) { + $413 = $rsize$3$lcssa$i + $247 | 0; + HEAP32[$v$3$lcssa$i + 4 >> 2] = $413 | 3; + $416 = $v$3$lcssa$i + ($413 + 4) | 0; + HEAP32[$416 >> 2] = HEAP32[$416 >> 2] | 1; + } else { + HEAP32[$v$3$lcssa$i + 4 >> 2] = $247 | 3; + HEAP32[$v$3$lcssa$i + ($247 | 4) >> 2] = $rsize$3$lcssa$i | 1; + HEAP32[$v$3$lcssa$i + ($rsize$3$lcssa$i + $247) >> 2] = $rsize$3$lcssa$i; + $424 = $rsize$3$lcssa$i >>> 3; + if ($rsize$3$lcssa$i >>> 0 < 256) { + $426 = $424 << 1; + $427 = 4864 + ($426 << 2) | 0; + $428 = HEAP32[1206] | 0; + $429 = 1 << $424; + do if (!($428 & $429)) { + HEAP32[1206] = $428 | $429; + $$pre$phi$i26Z2D = 4864 + ($426 + 2 << 2) | 0; + $F5$0$i = $427; + } else { + $433 = 4864 + ($426 + 2 << 2) | 0; + $434 = HEAP32[$433 >> 2] | 0; + if ($434 >>> 0 >= (HEAP32[1210] | 0) >>> 0) { + $$pre$phi$i26Z2D = $433; + $F5$0$i = $434; + break; + } + _abort(); + } while (0); + HEAP32[$$pre$phi$i26Z2D >> 2] = $349; + HEAP32[$F5$0$i + 12 >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 8) >> 2] = $F5$0$i; + HEAP32[$v$3$lcssa$i + ($247 + 12) >> 2] = $427; + break; + } + $440 = $rsize$3$lcssa$i >>> 8; + if (!$440) $I7$0$i = 0; else if ($rsize$3$lcssa$i >>> 0 > 16777215) $I7$0$i = 31; else { + $445 = ($440 + 1048320 | 0) >>> 16 & 8; + $446 = $440 << $445; + $449 = ($446 + 520192 | 0) >>> 16 & 4; + $451 = $446 << $449; + $454 = ($451 + 245760 | 0) >>> 16 & 2; + $459 = 14 - ($449 | $445 | $454) + ($451 << $454 >>> 15) | 0; + $I7$0$i = $rsize$3$lcssa$i >>> ($459 + 7 | 0) & 1 | $459 << 1; + } + $465 = 5128 + ($I7$0$i << 2) | 0; + HEAP32[$v$3$lcssa$i + ($247 + 28) >> 2] = $I7$0$i; + HEAP32[$v$3$lcssa$i + ($247 + 20) >> 2] = 0; + HEAP32[$v$3$lcssa$i + ($247 + 16) >> 2] = 0; + $469 = HEAP32[1207] | 0; + $470 = 1 << $I7$0$i; + if (!($469 & $470)) { + HEAP32[1207] = $469 | $470; + HEAP32[$465 >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 24) >> 2] = $465; + HEAP32[$v$3$lcssa$i + ($247 + 12) >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 8) >> 2] = $349; + break; + } + $477 = HEAP32[$465 >> 2] | 0; + if (($I7$0$i | 0) == 31) $486 = 0; else $486 = 25 - ($I7$0$i >>> 1) | 0; + L225 : do if ((HEAP32[$477 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) $T$0$lcssa$i = $477; else { + $K12$025$i = $rsize$3$lcssa$i << $486; + $T$024$i = $477; + while (1) { + $494 = $T$024$i + ($K12$025$i >>> 31 << 2) + 16 | 0; + $489 = HEAP32[$494 >> 2] | 0; + if (!$489) break; + if ((HEAP32[$489 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) { + $T$0$lcssa$i = $489; + break L225; + } else { + $K12$025$i = $K12$025$i << 1; + $T$024$i = $489; + } + } + if ($494 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$494 >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 24) >> 2] = $T$024$i; + HEAP32[$v$3$lcssa$i + ($247 + 12) >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 8) >> 2] = $349; + break L204; + } + } while (0); + $501 = $T$0$lcssa$i + 8 | 0; + $502 = HEAP32[$501 >> 2] | 0; + $503 = HEAP32[1210] | 0; + if ($T$0$lcssa$i >>> 0 < $503 >>> 0) _abort(); + if ($502 >>> 0 < $503 >>> 0) _abort(); else { + HEAP32[$502 + 12 >> 2] = $349; + HEAP32[$501 >> 2] = $349; + HEAP32[$v$3$lcssa$i + ($247 + 8) >> 2] = $502; + HEAP32[$v$3$lcssa$i + ($247 + 12) >> 2] = $T$0$lcssa$i; + HEAP32[$v$3$lcssa$i + ($247 + 24) >> 2] = 0; + break; + } + } while (0); + $mem$0 = $v$3$lcssa$i + 8 | 0; + STACKTOP = sp; + return $mem$0 | 0; + } else $nb$0 = $247; + } + } while (0); + $511 = HEAP32[1208] | 0; + if ($nb$0 >>> 0 <= $511 >>> 0) { + $513 = $511 - $nb$0 | 0; + $514 = HEAP32[1211] | 0; + if ($513 >>> 0 > 15) { + HEAP32[1211] = $514 + $nb$0; + HEAP32[1208] = $513; + HEAP32[$514 + ($nb$0 + 4) >> 2] = $513 | 1; + HEAP32[$514 + $511 >> 2] = $513; + HEAP32[$514 + 4 >> 2] = $nb$0 | 3; + } else { + HEAP32[1208] = 0; + HEAP32[1211] = 0; + HEAP32[$514 + 4 >> 2] = $511 | 3; + $524 = $514 + ($511 + 4) | 0; + HEAP32[$524 >> 2] = HEAP32[$524 >> 2] | 1; + } + $mem$0 = $514 + 8 | 0; + STACKTOP = sp; + return $mem$0 | 0; + } + $528 = HEAP32[1209] | 0; + if ($nb$0 >>> 0 < $528 >>> 0) { + $530 = $528 - $nb$0 | 0; + HEAP32[1209] = $530; + $531 = HEAP32[1212] | 0; + HEAP32[1212] = $531 + $nb$0; + HEAP32[$531 + ($nb$0 + 4) >> 2] = $530 | 1; + HEAP32[$531 + 4 >> 2] = $nb$0 | 3; + $mem$0 = $531 + 8 | 0; + STACKTOP = sp; + return $mem$0 | 0; + } + do if (!(HEAP32[1324] | 0)) { + $540 = _sysconf(30) | 0; + if (!($540 + -1 & $540)) { + HEAP32[1326] = $540; + HEAP32[1325] = $540; + HEAP32[1327] = -1; + HEAP32[1328] = -1; + HEAP32[1329] = 0; + HEAP32[1317] = 0; + HEAP32[1324] = (_time(0) | 0) & -16 ^ 1431655768; + break; + } else _abort(); + } while (0); + $547 = $nb$0 + 48 | 0; + $548 = HEAP32[1326] | 0; + $549 = $nb$0 + 47 | 0; + $550 = $548 + $549 | 0; + $551 = 0 - $548 | 0; + $552 = $550 & $551; + if ($552 >>> 0 <= $nb$0 >>> 0) { + $mem$0 = 0; + STACKTOP = sp; + return $mem$0 | 0; + } + $554 = HEAP32[1316] | 0; + if ($554) { + $556 = HEAP32[1314] | 0; + $557 = $556 + $552 | 0; + if ($557 >>> 0 <= $556 >>> 0 | $557 >>> 0 > $554 >>> 0) { + $mem$0 = 0; + STACKTOP = sp; + return $mem$0 | 0; + } + } + L269 : do if (!(HEAP32[1317] & 4)) { + $563 = HEAP32[1212] | 0; + L271 : do if (!$563) label = 182; else { + $sp$0$i$i = 5272 | 0; + while (1) { + $565 = HEAP32[$sp$0$i$i >> 2] | 0; + if ($565 >>> 0 <= $563 >>> 0) { + $567 = $sp$0$i$i + 4 | 0; + if (($565 + (HEAP32[$567 >> 2] | 0) | 0) >>> 0 > $563 >>> 0) break; + } + $572 = HEAP32[$sp$0$i$i + 8 >> 2] | 0; + if (!$572) { + label = 182; + break L271; + } else $sp$0$i$i = $572; + } + if (!$sp$0$i$i) label = 182; else { + $599 = $550 - (HEAP32[1209] | 0) & $551; + if ($599 >>> 0 < 2147483647) { + $601 = _sbrk($599 | 0) | 0; + $605 = ($601 | 0) == ((HEAP32[$sp$0$i$i >> 2] | 0) + (HEAP32[$567 >> 2] | 0) | 0); + $br$0$i = $601; + $ssize$1$i = $599; + $tbase$0$i = $605 ? $601 : -1; + $tsize$0$i = $605 ? $599 : 0; + label = 191; + } else $tsize$0323841$i = 0; + } + } while (0); + do if ((label | 0) == 182) { + $575 = _sbrk(0) | 0; + if (($575 | 0) == (-1 | 0)) $tsize$0323841$i = 0; else { + $577 = $575; + $578 = HEAP32[1325] | 0; + $579 = $578 + -1 | 0; + if (!($579 & $577)) $ssize$0$i = $552; else $ssize$0$i = $552 - $577 + ($579 + $577 & 0 - $578) | 0; + $587 = HEAP32[1314] | 0; + $588 = $587 + $ssize$0$i | 0; + if ($ssize$0$i >>> 0 > $nb$0 >>> 0 & $ssize$0$i >>> 0 < 2147483647) { + $591 = HEAP32[1316] | 0; + if ($591) if ($588 >>> 0 <= $587 >>> 0 | $588 >>> 0 > $591 >>> 0) { + $tsize$0323841$i = 0; + break; + } + $595 = _sbrk($ssize$0$i | 0) | 0; + $596 = ($595 | 0) == ($575 | 0); + $br$0$i = $595; + $ssize$1$i = $ssize$0$i; + $tbase$0$i = $596 ? $575 : -1; + $tsize$0$i = $596 ? $ssize$0$i : 0; + label = 191; + } else $tsize$0323841$i = 0; + } + } while (0); + L291 : do if ((label | 0) == 191) { + $606 = 0 - $ssize$1$i | 0; + if (($tbase$0$i | 0) != (-1 | 0)) { + $tbase$247$i = $tbase$0$i; + $tsize$246$i = $tsize$0$i; + label = 202; + break L269; + } + do if (($br$0$i | 0) != (-1 | 0) & $ssize$1$i >>> 0 < 2147483647 & $ssize$1$i >>> 0 < $547 >>> 0) { + $611 = HEAP32[1326] | 0; + $615 = $549 - $ssize$1$i + $611 & 0 - $611; + if ($615 >>> 0 < 2147483647) if ((_sbrk($615 | 0) | 0) == (-1 | 0)) { + _sbrk($606 | 0) | 0; + $tsize$0323841$i = $tsize$0$i; + break L291; + } else { + $ssize$2$i = $615 + $ssize$1$i | 0; + break; + } else $ssize$2$i = $ssize$1$i; + } else $ssize$2$i = $ssize$1$i; while (0); + if (($br$0$i | 0) == (-1 | 0)) $tsize$0323841$i = $tsize$0$i; else { + $tbase$247$i = $br$0$i; + $tsize$246$i = $ssize$2$i; + label = 202; + break L269; + } + } while (0); + HEAP32[1317] = HEAP32[1317] | 4; + $tsize$1$i = $tsize$0323841$i; + label = 199; + } else { + $tsize$1$i = 0; + label = 199; + } while (0); + if ((label | 0) == 199) if ($552 >>> 0 < 2147483647) { + $624 = _sbrk($552 | 0) | 0; + $625 = _sbrk(0) | 0; + if (($625 | 0) != (-1 | 0) & ($624 | 0) != (-1 | 0) & $624 >>> 0 < $625 >>> 0) { + $629 = $625 - $624 | 0; + $631 = $629 >>> 0 > ($nb$0 + 40 | 0) >>> 0; + if ($631) { + $tbase$247$i = $624; + $tsize$246$i = $631 ? $629 : $tsize$1$i; + label = 202; + } + } + } + if ((label | 0) == 202) { + $633 = (HEAP32[1314] | 0) + $tsize$246$i | 0; + HEAP32[1314] = $633; + if ($633 >>> 0 > (HEAP32[1315] | 0) >>> 0) HEAP32[1315] = $633; + $636 = HEAP32[1212] | 0; + L311 : do if (!$636) { + $638 = HEAP32[1210] | 0; + if (($638 | 0) == 0 | $tbase$247$i >>> 0 < $638 >>> 0) HEAP32[1210] = $tbase$247$i; + HEAP32[1318] = $tbase$247$i; + HEAP32[1319] = $tsize$246$i; + HEAP32[1321] = 0; + HEAP32[1215] = HEAP32[1324]; + HEAP32[1214] = -1; + $i$02$i$i = 0; + do { + $642 = $i$02$i$i << 1; + $643 = 4864 + ($642 << 2) | 0; + HEAP32[4864 + ($642 + 3 << 2) >> 2] = $643; + HEAP32[4864 + ($642 + 2 << 2) >> 2] = $643; + $i$02$i$i = $i$02$i$i + 1 | 0; + } while (($i$02$i$i | 0) != 32); + $649 = $tbase$247$i + 8 | 0; + if (!($649 & 7)) $655 = 0; else $655 = 0 - $649 & 7; + $656 = $tsize$246$i + -40 - $655 | 0; + HEAP32[1212] = $tbase$247$i + $655; + HEAP32[1209] = $656; + HEAP32[$tbase$247$i + ($655 + 4) >> 2] = $656 | 1; + HEAP32[$tbase$247$i + ($tsize$246$i + -36) >> 2] = 40; + HEAP32[1213] = HEAP32[1328]; + } else { + $sp$075$i = 5272 | 0; + while (1) { + $661 = HEAP32[$sp$075$i >> 2] | 0; + $662 = $sp$075$i + 4 | 0; + $663 = HEAP32[$662 >> 2] | 0; + if (($tbase$247$i | 0) == ($661 + $663 | 0)) { + label = 214; + break; + } + $667 = HEAP32[$sp$075$i + 8 >> 2] | 0; + if (!$667) break; else $sp$075$i = $667; + } + if ((label | 0) == 214) if (!(HEAP32[$sp$075$i + 12 >> 2] & 8)) if ($636 >>> 0 >= $661 >>> 0 & $636 >>> 0 < $tbase$247$i >>> 0) { + HEAP32[$662 >> 2] = $663 + $tsize$246$i; + $677 = (HEAP32[1209] | 0) + $tsize$246$i | 0; + $679 = $636 + 8 | 0; + if (!($679 & 7)) $685 = 0; else $685 = 0 - $679 & 7; + $686 = $677 - $685 | 0; + HEAP32[1212] = $636 + $685; + HEAP32[1209] = $686; + HEAP32[$636 + ($685 + 4) >> 2] = $686 | 1; + HEAP32[$636 + ($677 + 4) >> 2] = 40; + HEAP32[1213] = HEAP32[1328]; + break; + } + if ($tbase$247$i >>> 0 < (HEAP32[1210] | 0) >>> 0) HEAP32[1210] = $tbase$247$i; + $693 = $tbase$247$i + $tsize$246$i | 0; + $sp$168$i = 5272 | 0; + while (1) { + if ((HEAP32[$sp$168$i >> 2] | 0) == ($693 | 0)) { + label = 224; + break; + } + $697 = HEAP32[$sp$168$i + 8 >> 2] | 0; + if (!$697) break; else $sp$168$i = $697; + } + if ((label | 0) == 224) if (!(HEAP32[$sp$168$i + 12 >> 2] & 8)) { + HEAP32[$sp$168$i >> 2] = $tbase$247$i; + $703 = $sp$168$i + 4 | 0; + HEAP32[$703 >> 2] = (HEAP32[$703 >> 2] | 0) + $tsize$246$i; + $707 = $tbase$247$i + 8 | 0; + if (!($707 & 7)) $713 = 0; else $713 = 0 - $707 & 7; + $715 = $tbase$247$i + ($tsize$246$i + 8) | 0; + if (!($715 & 7)) $720 = 0; else $720 = 0 - $715 & 7; + $721 = $tbase$247$i + ($720 + $tsize$246$i) | 0; + $$sum$i21$i = $713 + $nb$0 | 0; + $725 = $tbase$247$i + $$sum$i21$i | 0; + $726 = $721 - ($tbase$247$i + $713) - $nb$0 | 0; + HEAP32[$tbase$247$i + ($713 + 4) >> 2] = $nb$0 | 3; + L348 : do if (($721 | 0) == (HEAP32[1212] | 0)) { + $732 = (HEAP32[1209] | 0) + $726 | 0; + HEAP32[1209] = $732; + HEAP32[1212] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 4) >> 2] = $732 | 1; + } else { + if (($721 | 0) == (HEAP32[1211] | 0)) { + $738 = (HEAP32[1208] | 0) + $726 | 0; + HEAP32[1208] = $738; + HEAP32[1211] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 4) >> 2] = $738 | 1; + HEAP32[$tbase$247$i + ($738 + $$sum$i21$i) >> 2] = $738; + break; + } + $$sum2$i23$i = $tsize$246$i + 4 | 0; + $743 = HEAP32[$tbase$247$i + ($$sum2$i23$i + $720) >> 2] | 0; + if (($743 & 3 | 0) == 1) { + $746 = $743 & -8; + $747 = $743 >>> 3; + L356 : do if ($743 >>> 0 < 256) { + $750 = HEAP32[$tbase$247$i + (($720 | 8) + $tsize$246$i) >> 2] | 0; + $752 = HEAP32[$tbase$247$i + ($tsize$246$i + 12 + $720) >> 2] | 0; + $754 = 4864 + ($747 << 1 << 2) | 0; + do if (($750 | 0) != ($754 | 0)) { + if ($750 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + if ((HEAP32[$750 + 12 >> 2] | 0) == ($721 | 0)) break; + _abort(); + } while (0); + if (($752 | 0) == ($750 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $747); + break; + } + do if (($752 | 0) == ($754 | 0)) $$pre$phi58$i$iZ2D = $752 + 8 | 0; else { + if ($752 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $769 = $752 + 8 | 0; + if ((HEAP32[$769 >> 2] | 0) == ($721 | 0)) { + $$pre$phi58$i$iZ2D = $769; + break; + } + _abort(); + } while (0); + HEAP32[$750 + 12 >> 2] = $752; + HEAP32[$$pre$phi58$i$iZ2D >> 2] = $750; + } else { + $774 = HEAP32[$tbase$247$i + (($720 | 24) + $tsize$246$i) >> 2] | 0; + $776 = HEAP32[$tbase$247$i + ($tsize$246$i + 12 + $720) >> 2] | 0; + do if (($776 | 0) == ($721 | 0)) { + $$sum67$i$i = $720 | 16; + $788 = $tbase$247$i + ($$sum2$i23$i + $$sum67$i$i) | 0; + $789 = HEAP32[$788 >> 2] | 0; + if (!$789) { + $791 = $tbase$247$i + ($$sum67$i$i + $tsize$246$i) | 0; + $792 = HEAP32[$791 >> 2] | 0; + if (!$792) { + $R$1$i$i = 0; + break; + } else { + $R$0$i$i = $792; + $RP$0$i$i = $791; + } + } else { + $R$0$i$i = $789; + $RP$0$i$i = $788; + } + while (1) { + $794 = $R$0$i$i + 20 | 0; + $795 = HEAP32[$794 >> 2] | 0; + if ($795) { + $R$0$i$i = $795; + $RP$0$i$i = $794; + continue; + } + $797 = $R$0$i$i + 16 | 0; + $798 = HEAP32[$797 >> 2] | 0; + if (!$798) break; else { + $R$0$i$i = $798; + $RP$0$i$i = $797; + } + } + if ($RP$0$i$i >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$RP$0$i$i >> 2] = 0; + $R$1$i$i = $R$0$i$i; + break; + } + } else { + $779 = HEAP32[$tbase$247$i + (($720 | 8) + $tsize$246$i) >> 2] | 0; + if ($779 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $782 = $779 + 12 | 0; + if ((HEAP32[$782 >> 2] | 0) != ($721 | 0)) _abort(); + $785 = $776 + 8 | 0; + if ((HEAP32[$785 >> 2] | 0) == ($721 | 0)) { + HEAP32[$782 >> 2] = $776; + HEAP32[$785 >> 2] = $779; + $R$1$i$i = $776; + break; + } else _abort(); + } while (0); + if (!$774) break; + $804 = HEAP32[$tbase$247$i + ($tsize$246$i + 28 + $720) >> 2] | 0; + $805 = 5128 + ($804 << 2) | 0; + do if (($721 | 0) == (HEAP32[$805 >> 2] | 0)) { + HEAP32[$805 >> 2] = $R$1$i$i; + if ($R$1$i$i) break; + HEAP32[1207] = HEAP32[1207] & ~(1 << $804); + break L356; + } else { + if ($774 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $814 = $774 + 16 | 0; + if ((HEAP32[$814 >> 2] | 0) == ($721 | 0)) HEAP32[$814 >> 2] = $R$1$i$i; else HEAP32[$774 + 20 >> 2] = $R$1$i$i; + if (!$R$1$i$i) break L356; + } while (0); + if ($R$1$i$i >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1$i$i + 24 >> 2] = $774; + $$sum3132$i$i = $720 | 16; + $823 = HEAP32[$tbase$247$i + ($$sum3132$i$i + $tsize$246$i) >> 2] | 0; + do if ($823) if ($823 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i$i + 16 >> 2] = $823; + HEAP32[$823 + 24 >> 2] = $R$1$i$i; + break; + } while (0); + $830 = HEAP32[$tbase$247$i + ($$sum2$i23$i + $$sum3132$i$i) >> 2] | 0; + if (!$830) break; + if ($830 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i$i + 20 >> 2] = $830; + HEAP32[$830 + 24 >> 2] = $R$1$i$i; + break; + } + } while (0); + $oldfirst$0$i$i = $tbase$247$i + (($746 | $720) + $tsize$246$i) | 0; + $qsize$0$i$i = $746 + $726 | 0; + } else { + $oldfirst$0$i$i = $721; + $qsize$0$i$i = $726; + } + $838 = $oldfirst$0$i$i + 4 | 0; + HEAP32[$838 >> 2] = HEAP32[$838 >> 2] & -2; + HEAP32[$tbase$247$i + ($$sum$i21$i + 4) >> 2] = $qsize$0$i$i | 1; + HEAP32[$tbase$247$i + ($qsize$0$i$i + $$sum$i21$i) >> 2] = $qsize$0$i$i; + $844 = $qsize$0$i$i >>> 3; + if ($qsize$0$i$i >>> 0 < 256) { + $846 = $844 << 1; + $847 = 4864 + ($846 << 2) | 0; + $848 = HEAP32[1206] | 0; + $849 = 1 << $844; + do if (!($848 & $849)) { + HEAP32[1206] = $848 | $849; + $$pre$phi$i26$iZ2D = 4864 + ($846 + 2 << 2) | 0; + $F4$0$i$i = $847; + } else { + $853 = 4864 + ($846 + 2 << 2) | 0; + $854 = HEAP32[$853 >> 2] | 0; + if ($854 >>> 0 >= (HEAP32[1210] | 0) >>> 0) { + $$pre$phi$i26$iZ2D = $853; + $F4$0$i$i = $854; + break; + } + _abort(); + } while (0); + HEAP32[$$pre$phi$i26$iZ2D >> 2] = $725; + HEAP32[$F4$0$i$i + 12 >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 8) >> 2] = $F4$0$i$i; + HEAP32[$tbase$247$i + ($$sum$i21$i + 12) >> 2] = $847; + break; + } + $860 = $qsize$0$i$i >>> 8; + do if (!$860) $I7$0$i$i = 0; else { + if ($qsize$0$i$i >>> 0 > 16777215) { + $I7$0$i$i = 31; + break; + } + $865 = ($860 + 1048320 | 0) >>> 16 & 8; + $866 = $860 << $865; + $869 = ($866 + 520192 | 0) >>> 16 & 4; + $871 = $866 << $869; + $874 = ($871 + 245760 | 0) >>> 16 & 2; + $879 = 14 - ($869 | $865 | $874) + ($871 << $874 >>> 15) | 0; + $I7$0$i$i = $qsize$0$i$i >>> ($879 + 7 | 0) & 1 | $879 << 1; + } while (0); + $885 = 5128 + ($I7$0$i$i << 2) | 0; + HEAP32[$tbase$247$i + ($$sum$i21$i + 28) >> 2] = $I7$0$i$i; + HEAP32[$tbase$247$i + ($$sum$i21$i + 20) >> 2] = 0; + HEAP32[$tbase$247$i + ($$sum$i21$i + 16) >> 2] = 0; + $889 = HEAP32[1207] | 0; + $890 = 1 << $I7$0$i$i; + if (!($889 & $890)) { + HEAP32[1207] = $889 | $890; + HEAP32[$885 >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 24) >> 2] = $885; + HEAP32[$tbase$247$i + ($$sum$i21$i + 12) >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 8) >> 2] = $725; + break; + } + $897 = HEAP32[$885 >> 2] | 0; + if (($I7$0$i$i | 0) == 31) $906 = 0; else $906 = 25 - ($I7$0$i$i >>> 1) | 0; + L445 : do if ((HEAP32[$897 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) $T$0$lcssa$i28$i = $897; else { + $K8$052$i$i = $qsize$0$i$i << $906; + $T$051$i$i = $897; + while (1) { + $914 = $T$051$i$i + ($K8$052$i$i >>> 31 << 2) + 16 | 0; + $909 = HEAP32[$914 >> 2] | 0; + if (!$909) break; + if ((HEAP32[$909 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) { + $T$0$lcssa$i28$i = $909; + break L445; + } else { + $K8$052$i$i = $K8$052$i$i << 1; + $T$051$i$i = $909; + } + } + if ($914 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$914 >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 24) >> 2] = $T$051$i$i; + HEAP32[$tbase$247$i + ($$sum$i21$i + 12) >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 8) >> 2] = $725; + break L348; + } + } while (0); + $921 = $T$0$lcssa$i28$i + 8 | 0; + $922 = HEAP32[$921 >> 2] | 0; + $923 = HEAP32[1210] | 0; + if ($T$0$lcssa$i28$i >>> 0 < $923 >>> 0) _abort(); + if ($922 >>> 0 < $923 >>> 0) _abort(); else { + HEAP32[$922 + 12 >> 2] = $725; + HEAP32[$921 >> 2] = $725; + HEAP32[$tbase$247$i + ($$sum$i21$i + 8) >> 2] = $922; + HEAP32[$tbase$247$i + ($$sum$i21$i + 12) >> 2] = $T$0$lcssa$i28$i; + HEAP32[$tbase$247$i + ($$sum$i21$i + 24) >> 2] = 0; + break; + } + } while (0); + $mem$0 = $tbase$247$i + ($713 | 8) | 0; + STACKTOP = sp; + return $mem$0 | 0; + } + $sp$0$i$i$i = 5272 | 0; + while (1) { + $931 = HEAP32[$sp$0$i$i$i >> 2] | 0; + if ($931 >>> 0 <= $636 >>> 0) { + $934 = HEAP32[$sp$0$i$i$i + 4 >> 2] | 0; + $935 = $931 + $934 | 0; + if ($935 >>> 0 > $636 >>> 0) break; + } + $sp$0$i$i$i = HEAP32[$sp$0$i$i$i + 8 >> 2] | 0; + } + $940 = $931 + ($934 + -39) | 0; + if (!($940 & 7)) $945 = 0; else $945 = 0 - $940 & 7; + $946 = $931 + ($934 + -47 + $945) | 0; + $949 = $946 >>> 0 < ($636 + 16 | 0) >>> 0 ? $636 : $946; + $950 = $949 + 8 | 0; + $953 = $tbase$247$i + 8 | 0; + if (!($953 & 7)) $959 = 0; else $959 = 0 - $953 & 7; + $960 = $tsize$246$i + -40 - $959 | 0; + HEAP32[1212] = $tbase$247$i + $959; + HEAP32[1209] = $960; + HEAP32[$tbase$247$i + ($959 + 4) >> 2] = $960 | 1; + HEAP32[$tbase$247$i + ($tsize$246$i + -36) >> 2] = 40; + HEAP32[1213] = HEAP32[1328]; + HEAP32[$949 + 4 >> 2] = 27; + HEAP32[$950 + 0 >> 2] = HEAP32[1318]; + HEAP32[$950 + 4 >> 2] = HEAP32[1319]; + HEAP32[$950 + 8 >> 2] = HEAP32[1320]; + HEAP32[$950 + 12 >> 2] = HEAP32[1321]; + HEAP32[1318] = $tbase$247$i; + HEAP32[1319] = $tsize$246$i; + HEAP32[1321] = 0; + HEAP32[1320] = $950; + $966 = $949 + 28 | 0; + HEAP32[$966 >> 2] = 7; + if (($949 + 32 | 0) >>> 0 < $935 >>> 0) { + $970 = $966; + do { + $970$looptemp = $970; + $970 = $970 + 4 | 0; + HEAP32[$970 >> 2] = 7; + } while (($970$looptemp + 8 | 0) >>> 0 < $935 >>> 0); + } + if (($949 | 0) != ($636 | 0)) { + $976 = $949 - $636 | 0; + $978 = $636 + ($976 + 4) | 0; + HEAP32[$978 >> 2] = HEAP32[$978 >> 2] & -2; + HEAP32[$636 + 4 >> 2] = $976 | 1; + HEAP32[$636 + $976 >> 2] = $976; + $983 = $976 >>> 3; + if ($976 >>> 0 < 256) { + $985 = $983 << 1; + $986 = 4864 + ($985 << 2) | 0; + $987 = HEAP32[1206] | 0; + $988 = 1 << $983; + do if (!($987 & $988)) { + HEAP32[1206] = $987 | $988; + $$pre$phi$i$iZ2D = 4864 + ($985 + 2 << 2) | 0; + $F$0$i$i = $986; + } else { + $992 = 4864 + ($985 + 2 << 2) | 0; + $993 = HEAP32[$992 >> 2] | 0; + if ($993 >>> 0 >= (HEAP32[1210] | 0) >>> 0) { + $$pre$phi$i$iZ2D = $992; + $F$0$i$i = $993; + break; + } + _abort(); + } while (0); + HEAP32[$$pre$phi$i$iZ2D >> 2] = $636; + HEAP32[$F$0$i$i + 12 >> 2] = $636; + HEAP32[$636 + 8 >> 2] = $F$0$i$i; + HEAP32[$636 + 12 >> 2] = $986; + break; + } + $999 = $976 >>> 8; + if (!$999) $I1$0$i$i = 0; else if ($976 >>> 0 > 16777215) $I1$0$i$i = 31; else { + $1004 = ($999 + 1048320 | 0) >>> 16 & 8; + $1005 = $999 << $1004; + $1008 = ($1005 + 520192 | 0) >>> 16 & 4; + $1010 = $1005 << $1008; + $1013 = ($1010 + 245760 | 0) >>> 16 & 2; + $1018 = 14 - ($1008 | $1004 | $1013) + ($1010 << $1013 >>> 15) | 0; + $I1$0$i$i = $976 >>> ($1018 + 7 | 0) & 1 | $1018 << 1; + } + $1024 = 5128 + ($I1$0$i$i << 2) | 0; + HEAP32[$636 + 28 >> 2] = $I1$0$i$i; + HEAP32[$636 + 20 >> 2] = 0; + HEAP32[$636 + 16 >> 2] = 0; + $1028 = HEAP32[1207] | 0; + $1029 = 1 << $I1$0$i$i; + if (!($1028 & $1029)) { + HEAP32[1207] = $1028 | $1029; + HEAP32[$1024 >> 2] = $636; + HEAP32[$636 + 24 >> 2] = $1024; + HEAP32[$636 + 12 >> 2] = $636; + HEAP32[$636 + 8 >> 2] = $636; + break; + } + $1036 = HEAP32[$1024 >> 2] | 0; + if (($I1$0$i$i | 0) == 31) $1045 = 0; else $1045 = 25 - ($I1$0$i$i >>> 1) | 0; + L499 : do if ((HEAP32[$1036 + 4 >> 2] & -8 | 0) == ($976 | 0)) $T$0$lcssa$i$i = $1036; else { + $K2$014$i$i = $976 << $1045; + $T$013$i$i = $1036; + while (1) { + $1053 = $T$013$i$i + ($K2$014$i$i >>> 31 << 2) + 16 | 0; + $1048 = HEAP32[$1053 >> 2] | 0; + if (!$1048) break; + if ((HEAP32[$1048 + 4 >> 2] & -8 | 0) == ($976 | 0)) { + $T$0$lcssa$i$i = $1048; + break L499; + } else { + $K2$014$i$i = $K2$014$i$i << 1; + $T$013$i$i = $1048; + } + } + if ($1053 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$1053 >> 2] = $636; + HEAP32[$636 + 24 >> 2] = $T$013$i$i; + HEAP32[$636 + 12 >> 2] = $636; + HEAP32[$636 + 8 >> 2] = $636; + break L311; + } + } while (0); + $1060 = $T$0$lcssa$i$i + 8 | 0; + $1061 = HEAP32[$1060 >> 2] | 0; + $1062 = HEAP32[1210] | 0; + if ($T$0$lcssa$i$i >>> 0 < $1062 >>> 0) _abort(); + if ($1061 >>> 0 < $1062 >>> 0) _abort(); else { + HEAP32[$1061 + 12 >> 2] = $636; + HEAP32[$1060 >> 2] = $636; + HEAP32[$636 + 8 >> 2] = $1061; + HEAP32[$636 + 12 >> 2] = $T$0$lcssa$i$i; + HEAP32[$636 + 24 >> 2] = 0; + break; + } + } + } while (0); + $1069 = HEAP32[1209] | 0; + if ($1069 >>> 0 > $nb$0 >>> 0) { + $1071 = $1069 - $nb$0 | 0; + HEAP32[1209] = $1071; + $1072 = HEAP32[1212] | 0; + HEAP32[1212] = $1072 + $nb$0; + HEAP32[$1072 + ($nb$0 + 4) >> 2] = $1071 | 1; + HEAP32[$1072 + 4 >> 2] = $nb$0 | 3; + $mem$0 = $1072 + 8 | 0; + STACKTOP = sp; + return $mem$0 | 0; + } + } + HEAP32[(___errno_location() | 0) >> 2] = 12; + $mem$0 = 0; + STACKTOP = sp; + return $mem$0 | 0; +} +function ___floatscan($f, $prec, $pok) { + $f = $f | 0; + $prec = $prec | 0; + $pok = $pok | 0; + var $$0 = 0.0, $$02$i = 0, $$08$i = 0, $$09$i = 0, $$1$be$i = 0, $$1$ph$i = 0, $$14$i = 0, $$2$i = 0, $$3$be$i = 0, $$3$lcssa$i = 0, $$388$i = 0, $$397$i = 0, $$in = 0, $$lcssa43$i = 0, $$pn$i = 0.0, $$pre$i17 = 0, $$pre$phi$iZ2D = 0.0, $$sink$off0$us$i = 0, $$sink$off0$us53$i = 0, $0 = 0, $1 = 0, $114 = 0, $122 = 0, $124 = 0, $131 = 0, $138 = 0, $146 = 0, $15 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $161 = 0, $164 = 0, $169 = 0, $172 = 0, $183 = 0.0, $190 = 0, $192 = 0, $2 = 0, $201 = 0, $204 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $220 = 0, $221 = 0, $222 = 0, $232 = 0, $233 = 0, $245 = 0, $247 = 0, $249 = 0, $250 = 0, $251 = 0, $252 = 0, $266 = 0, $268 = 0, $280 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $305 = 0.0, $306 = 0.0, $309 = 0, $317 = 0.0, $325 = 0, $326 = 0, $333 = 0, $341 = 0, $349 = 0, $350 = 0, $351 = 0, $353 = 0, $355 = 0, $356 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $364 = 0, $369 = 0, $370 = 0, $374 = 0, $384 = 0, $386 = 0, $387 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $394 = 0, $395 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $415 = 0, $42 = 0, $420 = 0, $421 = 0, $423 = 0, $424 = 0, $437 = 0, $439 = 0, $449 = 0, $451 = 0, $463 = 0, $465 = 0, $487 = 0, $499 = 0, $503 = 0, $506 = 0, $508 = 0, $509 = 0, $510 = 0, $513 = 0, $527 = 0, $530 = 0, $532 = 0, $534 = 0, $535 = 0, $541 = 0, $543 = 0, $548 = 0, $551 = 0, $556 = 0, $558 = 0, $560 = 0, $561 = 0, $567 = 0, $569 = 0, $574 = 0, $577 = 0, $581 = 0, $584 = 0, $589 = 0, $59 = 0, $594 = 0, $596 = 0, $599 = 0, $601 = 0, $605 = 0, $606 = 0, $608 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $617 = 0, $627 = 0, $632 = 0, $640 = 0.0, $642 = 0, $645 = 0, $649 = 0.0, $650 = 0.0, $653 = 0.0, $657 = 0, $66 = 0, $660 = 0, $667 = 0.0, $68 = 0, $685 = 0.0, $687 = 0, $703 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $76 = 0, $81 = 0, $89 = 0, $9 = 0, $98 = 0, $a$0$lcssa161$i = 0, $a$061$i = 0, $a$1$i = 0, $a$2$ph40$i = 0, $a$3$i = 0, $a$3$i$ph = 0, $a$3$ph$i = 0, $a$427$i = 0, $bias$0$i = 0.0, $bias$07$i = 0.0, $bits$0$ph = 0, $c$0 = 0, $c$0$i = 0, $c$1$lcssa = 0, $c$1$ph$i = 0, $c$169 = 0, $c$2 = 0, $c$2$i = 0, $c$2$lcssa$i = 0, $c$364 = 0, $c$4 = 0, $c$5 = 0, $c$6 = 0, $carry$063$i = 0, $carry1$0$us$i = 0, $carry1$0$us49$i = 0, $carry1$1$lcssa$lcssa$i = 0, $carry1$1$us$i = 0, $carry1$1$us54$i = 0, $carry3$030$i = 0, $d$0$i = 0, $denormal$0$i = 0, $denormal$2$i = 0, $e2$0$ph$i = 0, $e2$0$us$i = 0, $e2$0$us44$i = 0, $e2$1$i = 0, $e2$1$i$ph = 0, $e2$1$ph$i = 0, $e2$2$i = 0, $e2$3$i = 0, $emin$0$ph = 0, $frac$0$i = 0.0, $frac$1$i = 0.0, $frac$2$i = 0.0, $gotdig$0$i = 0, $gotdig$0$i9 = 0, $gotdig$2$i = 0, $gotdig$2$i11 = 0, $gotdig$3$i = 0, $gotdig$3$lcssa$i = 0, $gotdig$381$i = 0, $gotdig$393$i = 0, $gotdig$4$i = 0, $gotrad$0$i = 0, $gotrad$0$i12 = 0, $gotrad$1$i = 0, $gotrad$1$lcssa$i = 0, $gotrad$194$i = 0, $gotrad$2$i = 0, $gottail$0$i = 0, $gottail$1$i = 0, $gottail$2$i = 0, $i$0$lcssa = 0, $i$025$i = 0, $i$068 = 0, $i$1$i = 0, $i$166 = 0, $i$263 = 0, $i$3 = 0, $i$4 = 0, $j$0$lcssa$i = 0, $j$086$i = 0, $j$096$i = 0, $j$2$i = 0, $j$371$i = 0, $k$0$lcssa$i = 0, $k$084$i = 0, $k$095$i = 0, $k$2$i = 0, $k$3$i = 0, $k$462$i = 0, $k$5$in$us$i = 0, $k$5$in$us48$i = 0, $k$5$us$i = 0, $k$5$us50$i = 0, $k$628$i = 0, $lnz$0$lcssa$i = 0, $lnz$079$i = 0, $lnz$092$i = 0, $lnz$2$i = 0, $or$cond15$i = 0, $rp$0$lcssa162$i = 0, $rp$060$i = 0, $rp$1$i18 = 0, $rp$2$ph38$i = 0, $rp$3$i$ph = 0, $rp$3$ph33$i = 0, $rp$426$i = 0, $scale$0$i = 0.0, $scale$1$i = 0.0, $scale$2$i = 0.0, $sign$0 = 0, $storemerge$i = 0, $sum$i = 0, $x$0$i = 0, $x$1$i = 0, $x$2$i = 0, $x$3$lcssa$i = 0, $x$313$i = 0, $x$4$lcssa$i = 0, $x$48$i = 0, $x$5$i = 0, $x$6$i = 0, $x$i = 0, $y$0$i = 0.0, $y$1$i = 0.0, $y$1$i23 = 0.0, $y$2$i = 0.0, $y$2$i24 = 0.0, $y$3$i = 0.0, $y$3$lcssa$i = 0.0, $y$39$i = 0.0, $y$4$i = 0.0, $y$5$i = 0.0, $z$0$i = 0, $z$1$ph39$i = 0, $z$1$us$i = 0, $z$1$us45$i = 0, $z$2$us$i = 0, $z$2$us47$i = 0, $z$3$lcssa$lcssa$i = 0, $z$3$us$i = 0, $z$3$us57$i = 0, $z$4$i = 0, $z$5$ph$i = 0, $z$7$1$i = 0, $z$7$i = 0, label = 0, sp = 0, $k$462$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512 | 0; + $x$i = sp; + if (!$prec) { + $bits$0$ph = 24; + $emin$0$ph = -149; + } else if (($prec | 0) == 2) { + $bits$0$ph = 53; + $emin$0$ph = -1074; + } else if (($prec | 0) == 1) { + $bits$0$ph = 53; + $emin$0$ph = -1074; + } else { + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } + $0 = $f + 4 | 0; + $1 = $f + 100 | 0; + do { + $2 = HEAP32[$0 >> 2] | 0; + if ($2 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $2 + 1; + $9 = HEAPU8[$2 >> 0] | 0; + } else $9 = ___shgetc($f) | 0; + } while ((_isspace($9) | 0) != 0); + do if (($9 | 0) == 43 | ($9 | 0) == 45) { + $15 = 1 - ((($9 | 0) == 45 & 1) << 1) | 0; + $16 = HEAP32[$0 >> 2] | 0; + if ($16 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $16 + 1; + $c$0 = HEAPU8[$16 >> 0] | 0; + $sign$0 = $15; + break; + } else { + $c$0 = ___shgetc($f) | 0; + $sign$0 = $15; + break; + } + } else { + $c$0 = $9; + $sign$0 = 1; + } while (0); + $c$169 = $c$0; + $i$068 = 0; + while (1) { + if (($c$169 | 32 | 0) != (HEAP8[5600 + $i$068 >> 0] | 0)) { + $c$1$lcssa = $c$169; + $i$0$lcssa = $i$068; + break; + } + do if ($i$068 >>> 0 < 7) { + $29 = HEAP32[$0 >> 2] | 0; + if ($29 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $29 + 1; + $c$2 = HEAPU8[$29 >> 0] | 0; + break; + } else { + $c$2 = ___shgetc($f) | 0; + break; + } + } else $c$2 = $c$169; while (0); + $36 = $i$068 + 1 | 0; + if ($36 >>> 0 < 8) { + $c$169 = $c$2; + $i$068 = $36; + } else { + $c$1$lcssa = $c$2; + $i$0$lcssa = $36; + break; + } + } + do if (($i$0$lcssa | 0) == 3) label = 23; else if (($i$0$lcssa | 0) != 8) { + $39 = ($pok | 0) == 0; + if (!($i$0$lcssa >>> 0 < 4 | $39)) if (($i$0$lcssa | 0) == 8) break; else { + label = 23; + break; + } + L34 : do if (!$i$0$lcssa) { + $c$364 = $c$1$lcssa; + $i$263 = 0; + while (1) { + if (($c$364 | 32 | 0) != (HEAP8[5616 + $i$263 >> 0] | 0)) { + $c$5 = $c$364; + $i$3 = $i$263; + break L34; + } + do if ($i$263 >>> 0 < 2) { + $59 = HEAP32[$0 >> 2] | 0; + if ($59 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $59 + 1; + $c$4 = HEAPU8[$59 >> 0] | 0; + break; + } else { + $c$4 = ___shgetc($f) | 0; + break; + } + } else $c$4 = $c$364; while (0); + $66 = $i$263 + 1 | 0; + if ($66 >>> 0 < 3) { + $c$364 = $c$4; + $i$263 = $66; + } else { + $c$5 = $c$4; + $i$3 = $66; + break; + } + } + } else { + $c$5 = $c$1$lcssa; + $i$3 = $i$0$lcssa; + } while (0); + if (!$i$3) { + do if (($c$5 | 0) == 48) { + $114 = HEAP32[$0 >> 2] | 0; + if ($114 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $114 + 1; + $122 = HEAPU8[$114 >> 0] | 0; + } else $122 = ___shgetc($f) | 0; + if (($122 | 32 | 0) != 120) { + if (!(HEAP32[$1 >> 2] | 0)) { + $c$6 = 48; + break; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $c$6 = 48; + break; + } + $124 = HEAP32[$0 >> 2] | 0; + if ($124 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $124 + 1; + $c$0$i = HEAPU8[$124 >> 0] | 0; + $gotdig$0$i = 0; + } else { + $c$0$i = ___shgetc($f) | 0; + $gotdig$0$i = 0; + } + while (1) { + if (($c$0$i | 0) == 46) { + label = 70; + break; + } else if (($c$0$i | 0) != 48) { + $169 = 0; + $172 = 0; + $212 = 0; + $214 = 0; + $c$2$i = $c$0$i; + $gotdig$2$i = $gotdig$0$i; + $gotrad$0$i = 0; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + break; + } + $131 = HEAP32[$0 >> 2] | 0; + if ($131 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $131 + 1; + $c$0$i = HEAPU8[$131 >> 0] | 0; + $gotdig$0$i = 1; + continue; + } else { + $c$0$i = ___shgetc($f) | 0; + $gotdig$0$i = 1; + continue; + } + } + L66 : do if ((label | 0) == 70) { + $138 = HEAP32[$0 >> 2] | 0; + if ($138 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $138 + 1; + $c$1$ph$i = HEAPU8[$138 >> 0] | 0; + } else $c$1$ph$i = ___shgetc($f) | 0; + if (($c$1$ph$i | 0) == 48) { + $155 = -1; + $156 = -1; + while (1) { + $146 = HEAP32[$0 >> 2] | 0; + if ($146 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $146 + 1; + $154 = HEAPU8[$146 >> 0] | 0; + } else $154 = ___shgetc($f) | 0; + if (($154 | 0) != 48) { + $169 = 0; + $172 = 0; + $212 = $155; + $214 = $156; + $c$2$i = $154; + $gotdig$2$i = 1; + $gotrad$0$i = 1; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + break L66; + } + $157 = _i64Add($155 | 0, $156 | 0, -1, -1) | 0; + $155 = $157; + $156 = tempRet0; + } + } else { + $169 = 0; + $172 = 0; + $212 = 0; + $214 = 0; + $c$2$i = $c$1$ph$i; + $gotdig$2$i = $gotdig$0$i; + $gotrad$0$i = 1; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + } + } while (0); + L79 : while (1) { + $159 = $c$2$i + -48 | 0; + do if ($159 >>> 0 < 10) { + $d$0$i = $159; + label = 84; + } else { + $161 = $c$2$i | 32; + $164 = ($c$2$i | 0) == 46; + if (!(($161 + -97 | 0) >>> 0 < 6 | $164)) { + $c$2$lcssa$i = $c$2$i; + break L79; + } + if ($164) if (!$gotrad$0$i) { + $712 = $172; + $713 = $169; + $714 = $172; + $715 = $169; + $gotdig$3$i = $gotdig$2$i; + $gotrad$1$i = 1; + $gottail$2$i = $gottail$0$i; + $scale$2$i = $scale$0$i; + $x$2$i = $x$0$i; + $y$2$i = $y$0$i; + break; + } else { + $c$2$lcssa$i = 46; + break L79; + } else { + $d$0$i = ($c$2$i | 0) > 57 ? $161 + -87 | 0 : $159; + label = 84; + break; + } + } while (0); + if ((label | 0) == 84) { + label = 0; + do if (($169 | 0) < 0 | ($169 | 0) == 0 & $172 >>> 0 < 8) { + $gottail$1$i = $gottail$0$i; + $scale$1$i = $scale$0$i; + $x$1$i = $d$0$i + ($x$0$i << 4) | 0; + $y$1$i = $y$0$i; + } else { + if (($169 | 0) < 0 | ($169 | 0) == 0 & $172 >>> 0 < 14) { + $183 = $scale$0$i * .0625; + $gottail$1$i = $gottail$0$i; + $scale$1$i = $183; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i + $183 * +($d$0$i | 0); + break; + } + if (($d$0$i | 0) != 0 & ($gottail$0$i | 0) == 0) { + $gottail$1$i = 1; + $scale$1$i = $scale$0$i; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i + $scale$0$i * .5; + } else { + $gottail$1$i = $gottail$0$i; + $scale$1$i = $scale$0$i; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i; + } + } while (0); + $190 = _i64Add($172 | 0, $169 | 0, 1, 0) | 0; + $712 = $212; + $713 = $214; + $714 = $190; + $715 = tempRet0; + $gotdig$3$i = 1; + $gotrad$1$i = $gotrad$0$i; + $gottail$2$i = $gottail$1$i; + $scale$2$i = $scale$1$i; + $x$2$i = $x$1$i; + $y$2$i = $y$1$i; + } + $192 = HEAP32[$0 >> 2] | 0; + if ($192 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $192 + 1; + $169 = $715; + $172 = $714; + $212 = $712; + $214 = $713; + $c$2$i = HEAPU8[$192 >> 0] | 0; + $gotdig$2$i = $gotdig$3$i; + $gotrad$0$i = $gotrad$1$i; + $gottail$0$i = $gottail$2$i; + $scale$0$i = $scale$2$i; + $x$0$i = $x$2$i; + $y$0$i = $y$2$i; + continue; + } else { + $169 = $715; + $172 = $714; + $212 = $712; + $214 = $713; + $c$2$i = ___shgetc($f) | 0; + $gotdig$2$i = $gotdig$3$i; + $gotrad$0$i = $gotrad$1$i; + $gottail$0$i = $gottail$2$i; + $scale$0$i = $scale$2$i; + $x$0$i = $x$2$i; + $y$0$i = $y$2$i; + continue; + } + } + if (!$gotdig$2$i) { + $201 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$201) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if ($39) ___shlim($f, 0); else if (!$201) { + $204 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $204 + -1; + if ($gotrad$0$i) HEAP32[$0 >> 2] = $204 + -2; + } + $$0 = +($sign$0 | 0) * 0.0; + STACKTOP = sp; + return +$$0; + } + $210 = ($gotrad$0$i | 0) == 0; + $211 = $210 ? $172 : $212; + $213 = $210 ? $169 : $214; + if (($169 | 0) < 0 | ($169 | 0) == 0 & $172 >>> 0 < 8) { + $221 = $172; + $222 = $169; + $x$313$i = $x$0$i; + while (1) { + $220 = $x$313$i << 4; + $221 = _i64Add($221 | 0, $222 | 0, 1, 0) | 0; + $222 = tempRet0; + if (!(($222 | 0) < 0 | ($222 | 0) == 0 & $221 >>> 0 < 8)) { + $x$3$lcssa$i = $220; + break; + } else $x$313$i = $220; + } + } else $x$3$lcssa$i = $x$0$i; + do if (($c$2$lcssa$i | 32 | 0) == 112) { + $232 = _scanexp($f, $pok) | 0; + $233 = tempRet0; + if (($232 | 0) == 0 & ($233 | 0) == -2147483648) if ($39) { + ___shlim($f, 0); + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } else { + if (!(HEAP32[$1 >> 2] | 0)) { + $249 = 0; + $250 = 0; + break; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $249 = 0; + $250 = 0; + break; + } else { + $249 = $232; + $250 = $233; + } + } else if (!(HEAP32[$1 >> 2] | 0)) { + $249 = 0; + $250 = 0; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $249 = 0; + $250 = 0; + } while (0); + $245 = _bitshift64Shl($211 | 0, $213 | 0, 2) | 0; + $247 = _i64Add($245 | 0, tempRet0 | 0, -32, -1) | 0; + $251 = _i64Add($247 | 0, tempRet0 | 0, $249 | 0, $250 | 0) | 0; + $252 = tempRet0; + if (!$x$3$lcssa$i) { + $$0 = +($sign$0 | 0) * 0.0; + STACKTOP = sp; + return +$$0; + } + if (($252 | 0) > 0 | ($252 | 0) == 0 & $251 >>> 0 > (0 - $emin$0$ph | 0) >>> 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $$0 = +($sign$0 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308; + STACKTOP = sp; + return +$$0; + } + $266 = $emin$0$ph + -106 | 0; + $268 = (($266 | 0) < 0) << 31 >> 31; + if (($252 | 0) < ($268 | 0) | ($252 | 0) == ($268 | 0) & $251 >>> 0 < $266 >>> 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $$0 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; + STACKTOP = sp; + return +$$0; + } + if (($x$3$lcssa$i | 0) > -1) { + $283 = $251; + $284 = $252; + $x$48$i = $x$3$lcssa$i; + $y$39$i = $y$0$i; + while (1) { + $280 = $x$48$i << 1; + if (!($y$39$i >= .5)) { + $$pn$i = $y$39$i; + $x$5$i = $280; + } else { + $$pn$i = $y$39$i + -1.0; + $x$5$i = $280 | 1; + } + $y$4$i = $y$39$i + $$pn$i; + $285 = _i64Add($283 | 0, $284 | 0, -1, -1) | 0; + $286 = tempRet0; + if (($x$5$i | 0) > -1) { + $283 = $285; + $284 = $286; + $x$48$i = $x$5$i; + $y$39$i = $y$4$i; + } else { + $292 = $285; + $293 = $286; + $x$4$lcssa$i = $x$5$i; + $y$3$lcssa$i = $y$4$i; + break; + } + } + } else { + $292 = $251; + $293 = $252; + $x$4$lcssa$i = $x$3$lcssa$i; + $y$3$lcssa$i = $y$0$i; + } + $290 = _i64Subtract(32, 0, $emin$0$ph | 0, (($emin$0$ph | 0) < 0) << 31 >> 31 | 0) | 0; + $294 = _i64Add($292 | 0, $293 | 0, $290 | 0, tempRet0 | 0) | 0; + $295 = tempRet0; + if (0 > ($295 | 0) | 0 == ($295 | 0) & $bits$0$ph >>> 0 > $294 >>> 0) $$02$i = ($294 | 0) < 0 ? 0 : $294; else $$02$i = $bits$0$ph; + do if (($$02$i | 0) < 53) { + $305 = +($sign$0 | 0); + $306 = +_copysignl(+(+_scalbn(1.0, 84 - $$02$i | 0)), +$305); + if (!(($$02$i | 0) < 32 & $y$3$lcssa$i != 0.0)) { + $$pre$phi$iZ2D = $305; + $bias$07$i = $306; + $x$6$i = $x$4$lcssa$i; + $y$5$i = $y$3$lcssa$i; + break; + } + $309 = $x$4$lcssa$i & 1; + $$pre$phi$iZ2D = $305; + $bias$07$i = $306; + $x$6$i = ($309 ^ 1) + $x$4$lcssa$i | 0; + $y$5$i = ($309 | 0) == 0 ? 0.0 : $y$3$lcssa$i; + } else { + $$pre$phi$iZ2D = +($sign$0 | 0); + $bias$07$i = 0.0; + $x$6$i = $x$4$lcssa$i; + $y$5$i = $y$3$lcssa$i; + } while (0); + $317 = $$pre$phi$iZ2D * $y$5$i + ($bias$07$i + $$pre$phi$iZ2D * +($x$6$i >>> 0)) - $bias$07$i; + if (!($317 != 0.0)) HEAP32[(___errno_location() | 0) >> 2] = 34; + $$0 = +_scalbnl($317, $292); + STACKTOP = sp; + return +$$0; + } else $c$6 = $c$5; while (0); + $sum$i = $emin$0$ph + $bits$0$ph | 0; + $325 = 0 - $sum$i | 0; + $$08$i = $c$6; + $gotdig$0$i9 = 0; + while (1) { + if (($$08$i | 0) == 46) { + label = 139; + break; + } else if (($$08$i | 0) != 48) { + $$2$i = $$08$i; + $716 = 0; + $717 = 0; + $gotdig$2$i11 = $gotdig$0$i9; + $gotrad$0$i12 = 0; + break; + } + $326 = HEAP32[$0 >> 2] | 0; + if ($326 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $326 + 1; + $$08$i = HEAPU8[$326 >> 0] | 0; + $gotdig$0$i9 = 1; + continue; + } else { + $$08$i = ___shgetc($f) | 0; + $gotdig$0$i9 = 1; + continue; + } + } + L168 : do if ((label | 0) == 139) { + $333 = HEAP32[$0 >> 2] | 0; + if ($333 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $333 + 1; + $$1$ph$i = HEAPU8[$333 >> 0] | 0; + } else $$1$ph$i = ___shgetc($f) | 0; + if (($$1$ph$i | 0) == 48) { + $349 = -1; + $350 = -1; + while (1) { + $341 = HEAP32[$0 >> 2] | 0; + if ($341 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $341 + 1; + $$1$be$i = HEAPU8[$341 >> 0] | 0; + } else $$1$be$i = ___shgetc($f) | 0; + if (($$1$be$i | 0) != 48) { + $$2$i = $$1$be$i; + $716 = $349; + $717 = $350; + $gotdig$2$i11 = 1; + $gotrad$0$i12 = 1; + break L168; + } + $351 = _i64Add($349 | 0, $350 | 0, -1, -1) | 0; + $349 = $351; + $350 = tempRet0; + } + } else { + $$2$i = $$1$ph$i; + $716 = 0; + $717 = 0; + $gotdig$2$i11 = $gotdig$0$i9; + $gotrad$0$i12 = 1; + } + } while (0); + HEAP32[$x$i >> 2] = 0; + $353 = $$2$i + -48 | 0; + $355 = ($$2$i | 0) == 46; + L182 : do if ($353 >>> 0 < 10 | $355) { + $356 = $x$i + 496 | 0; + $$397$i = $$2$i; + $358 = 0; + $359 = 0; + $718 = $355; + $719 = $353; + $720 = $716; + $721 = $717; + $gotdig$393$i = $gotdig$2$i11; + $gotrad$194$i = $gotrad$0$i12; + $j$096$i = 0; + $k$095$i = 0; + $lnz$092$i = 0; + while (1) { + do if ($718) if (!$gotrad$194$i) { + $722 = $358; + $723 = $359; + $724 = $358; + $725 = $359; + $gotdig$4$i = $gotdig$393$i; + $gotrad$2$i = 1; + $j$2$i = $j$096$i; + $k$2$i = $k$095$i; + $lnz$2$i = $lnz$092$i; + } else { + $$388$i = $$397$i; + $405 = $720; + $406 = $721; + $421 = $358; + $424 = $359; + $gotdig$381$i = $gotdig$393$i; + $j$086$i = $j$096$i; + $k$084$i = $k$095$i; + $lnz$079$i = $lnz$092$i; + break L182; + } else { + $360 = _i64Add($358 | 0, $359 | 0, 1, 0) | 0; + $361 = tempRet0; + $362 = ($$397$i | 0) != 48; + if (($k$095$i | 0) >= 125) { + if (!$362) { + $722 = $720; + $723 = $721; + $724 = $360; + $725 = $361; + $gotdig$4$i = $gotdig$393$i; + $gotrad$2$i = $gotrad$194$i; + $j$2$i = $j$096$i; + $k$2$i = $k$095$i; + $lnz$2$i = $lnz$092$i; + break; + } + HEAP32[$356 >> 2] = HEAP32[$356 >> 2] | 1; + $722 = $720; + $723 = $721; + $724 = $360; + $725 = $361; + $gotdig$4$i = $gotdig$393$i; + $gotrad$2$i = $gotrad$194$i; + $j$2$i = $j$096$i; + $k$2$i = $k$095$i; + $lnz$2$i = $lnz$092$i; + break; + } + $364 = $x$i + ($k$095$i << 2) | 0; + if (!$j$096$i) $storemerge$i = $719; else $storemerge$i = $$397$i + -48 + ((HEAP32[$364 >> 2] | 0) * 10 | 0) | 0; + HEAP32[$364 >> 2] = $storemerge$i; + $369 = $j$096$i + 1 | 0; + $370 = ($369 | 0) == 9; + $722 = $720; + $723 = $721; + $724 = $360; + $725 = $361; + $gotdig$4$i = 1; + $gotrad$2$i = $gotrad$194$i; + $j$2$i = $370 ? 0 : $369; + $k$2$i = ($370 & 1) + $k$095$i | 0; + $lnz$2$i = $362 ? $360 : $lnz$092$i; + } while (0); + $374 = HEAP32[$0 >> 2] | 0; + if ($374 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $374 + 1; + $$3$be$i = HEAPU8[$374 >> 0] | 0; + } else $$3$be$i = ___shgetc($f) | 0; + $719 = $$3$be$i + -48 | 0; + $718 = ($$3$be$i | 0) == 46; + if (!($719 >>> 0 < 10 | $718)) { + $$3$lcssa$i = $$3$be$i; + $386 = $724; + $387 = $722; + $389 = $725; + $390 = $723; + $gotdig$3$lcssa$i = $gotdig$4$i; + $gotrad$1$lcssa$i = $gotrad$2$i; + $j$0$lcssa$i = $j$2$i; + $k$0$lcssa$i = $k$2$i; + $lnz$0$lcssa$i = $lnz$2$i; + label = 162; + break; + } else { + $$397$i = $$3$be$i; + $358 = $724; + $359 = $725; + $720 = $722; + $721 = $723; + $gotdig$393$i = $gotdig$4$i; + $gotrad$194$i = $gotrad$2$i; + $j$096$i = $j$2$i; + $k$095$i = $k$2$i; + $lnz$092$i = $lnz$2$i; + } + } + } else { + $$3$lcssa$i = $$2$i; + $386 = 0; + $387 = $716; + $389 = 0; + $390 = $717; + $gotdig$3$lcssa$i = $gotdig$2$i11; + $gotrad$1$lcssa$i = $gotrad$0$i12; + $j$0$lcssa$i = 0; + $k$0$lcssa$i = 0; + $lnz$0$lcssa$i = 0; + label = 162; + } while (0); + if ((label | 0) == 162) { + $384 = ($gotrad$1$lcssa$i | 0) == 0; + $$388$i = $$3$lcssa$i; + $405 = $384 ? $386 : $387; + $406 = $384 ? $389 : $390; + $421 = $386; + $424 = $389; + $gotdig$381$i = $gotdig$3$lcssa$i; + $j$086$i = $j$0$lcssa$i; + $k$084$i = $k$0$lcssa$i; + $lnz$079$i = $lnz$0$lcssa$i; + } + $391 = ($gotdig$381$i | 0) != 0; + if ($391) if (($$388$i | 32 | 0) == 101) { + $394 = _scanexp($f, $pok) | 0; + $395 = tempRet0; + do if (($394 | 0) == 0 & ($395 | 0) == -2147483648) if ($39) { + ___shlim($f, 0); + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } else { + if (!(HEAP32[$1 >> 2] | 0)) { + $403 = 0; + $404 = 0; + break; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $403 = 0; + $404 = 0; + break; + } else { + $403 = $394; + $404 = $395; + } while (0); + $407 = _i64Add($403 | 0, $404 | 0, $405 | 0, $406 | 0) | 0; + $420 = $407; + $423 = tempRet0; + } else label = 171; else label = 171; + if ((label | 0) == 171) if (($$388$i | 0) > -1) if (!(HEAP32[$1 >> 2] | 0)) { + $420 = $405; + $423 = $406; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $420 = $405; + $423 = $406; + } else { + $420 = $405; + $423 = $406; + } + if (!$391) { + HEAP32[(___errno_location() | 0) >> 2] = 22; + ___shlim($f, 0); + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } + $415 = HEAP32[$x$i >> 2] | 0; + if (!$415) { + $$0 = +($sign$0 | 0) * 0.0; + STACKTOP = sp; + return +$$0; + } + do if (($420 | 0) == ($421 | 0) & ($423 | 0) == ($424 | 0) & (($424 | 0) < 0 | ($424 | 0) == 0 & $421 >>> 0 < 10)) { + if ($bits$0$ph >>> 0 <= 30) if ($415 >>> $bits$0$ph) break; + $$0 = +($sign$0 | 0) * +($415 >>> 0); + STACKTOP = sp; + return +$$0; + } while (0); + $437 = ($emin$0$ph | 0) / -2 | 0; + $439 = (($437 | 0) < 0) << 31 >> 31; + if (($423 | 0) > ($439 | 0) | ($423 | 0) == ($439 | 0) & $420 >>> 0 > $437 >>> 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $$0 = +($sign$0 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308; + STACKTOP = sp; + return +$$0; + } + $449 = $emin$0$ph + -106 | 0; + $451 = (($449 | 0) < 0) << 31 >> 31; + if (($423 | 0) < ($451 | 0) | ($423 | 0) == ($451 | 0) & $420 >>> 0 < $449 >>> 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $$0 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; + STACKTOP = sp; + return +$$0; + } + if (!$j$086$i) $k$3$i = $k$084$i; else { + if (($j$086$i | 0) < 9) { + $463 = $x$i + ($k$084$i << 2) | 0; + $465 = HEAP32[$463 >> 2] | 0; + $j$371$i = $j$086$i; + do { + $465 = $465 * 10 | 0; + $j$371$i = $j$371$i + 1 | 0; + } while (($j$371$i | 0) != 9); + HEAP32[$463 >> 2] = $465; + } + $k$3$i = $k$084$i + 1 | 0; + } + do if (($lnz$079$i | 0) < 9) if (($lnz$079$i | 0) <= ($420 | 0) & ($420 | 0) < 18) { + if (($420 | 0) == 9) { + $$0 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0); + STACKTOP = sp; + return +$$0; + } + if (($420 | 0) < 9) { + $$0 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0) / +(HEAP32[5632 + (8 - $420 << 2) >> 2] | 0); + STACKTOP = sp; + return +$$0; + } + $487 = $bits$0$ph + 27 + (Math_imul($420, -3) | 0) | 0; + $$pre$i17 = HEAP32[$x$i >> 2] | 0; + if (($487 | 0) <= 30) if ($$pre$i17 >>> $487) break; + $$0 = +($sign$0 | 0) * +($$pre$i17 >>> 0) * +(HEAP32[5632 + ($420 + -10 << 2) >> 2] | 0); + STACKTOP = sp; + return +$$0; + } while (0); + $499 = ($420 | 0) % 9 | 0; + if (!$499) { + $a$2$ph40$i = 0; + $e2$0$ph$i = 0; + $rp$2$ph38$i = $420; + $z$1$ph39$i = $k$3$i; + } else { + $503 = ($420 | 0) > -1 ? $499 : $499 + 9 | 0; + $506 = HEAP32[5632 + (8 - $503 << 2) >> 2] | 0; + if (!$k$3$i) { + $a$0$lcssa161$i = 0; + $rp$0$lcssa162$i = $420; + $z$0$i = 0; + } else { + $508 = 1e9 / ($506 | 0) | 0; + $a$061$i = 0; + $carry$063$i = 0; + $k$462$i = 0; + $rp$060$i = $420; + while (1) { + $509 = $x$i + ($k$462$i << 2) | 0; + $510 = HEAP32[$509 >> 2] | 0; + $513 = (($510 >>> 0) / ($506 >>> 0) | 0) + $carry$063$i | 0; + HEAP32[$509 >> 2] = $513; + $carry$063$i = Math_imul(($510 >>> 0) % ($506 >>> 0) | 0, $508) | 0; + $k$462$i$looptemp = $k$462$i; + $k$462$i = $k$462$i + 1 | 0; + if (($k$462$i$looptemp | 0) == ($a$061$i | 0) & ($513 | 0) == 0) { + $a$1$i = $k$462$i & 127; + $rp$1$i18 = $rp$060$i + -9 | 0; + } else { + $a$1$i = $a$061$i; + $rp$1$i18 = $rp$060$i; + } + if (($k$462$i | 0) == ($k$3$i | 0)) break; else { + $a$061$i = $a$1$i; + $rp$060$i = $rp$1$i18; + } + } + if (!$carry$063$i) { + $a$0$lcssa161$i = $a$1$i; + $rp$0$lcssa162$i = $rp$1$i18; + $z$0$i = $k$3$i; + } else { + HEAP32[$x$i + ($k$3$i << 2) >> 2] = $carry$063$i; + $a$0$lcssa161$i = $a$1$i; + $rp$0$lcssa162$i = $rp$1$i18; + $z$0$i = $k$3$i + 1 | 0; + } + } + $a$2$ph40$i = $a$0$lcssa161$i; + $e2$0$ph$i = 0; + $rp$2$ph38$i = 9 - $503 + $rp$0$lcssa162$i | 0; + $z$1$ph39$i = $z$0$i; + } + L280 : while (1) { + $527 = $x$i + ($a$2$ph40$i << 2) | 0; + if (($rp$2$ph38$i | 0) < 18) { + $e2$0$us$i = $e2$0$ph$i; + $z$1$us$i = $z$1$ph39$i; + while (1) { + $carry1$0$us$i = 0; + $k$5$in$us$i = $z$1$us$i + 127 | 0; + $z$2$us$i = $z$1$us$i; + while (1) { + $k$5$us$i = $k$5$in$us$i & 127; + $530 = $x$i + ($k$5$us$i << 2) | 0; + $532 = _bitshift64Shl(HEAP32[$530 >> 2] | 0, 0, 29) | 0; + $534 = _i64Add($532 | 0, tempRet0 | 0, $carry1$0$us$i | 0, 0) | 0; + $535 = tempRet0; + if ($535 >>> 0 > 0 | ($535 | 0) == 0 & $534 >>> 0 > 1e9) { + $541 = ___udivdi3($534 | 0, $535 | 0, 1e9, 0) | 0; + $543 = ___uremdi3($534 | 0, $535 | 0, 1e9, 0) | 0; + $$sink$off0$us$i = $543; + $carry1$1$us$i = $541; + } else { + $$sink$off0$us$i = $534; + $carry1$1$us$i = 0; + } + HEAP32[$530 >> 2] = $$sink$off0$us$i; + $548 = ($k$5$us$i | 0) == ($a$2$ph40$i | 0); + if (($k$5$us$i | 0) != ($z$2$us$i + 127 & 127 | 0) | $548) $z$3$us$i = $z$2$us$i; else $z$3$us$i = ($$sink$off0$us$i | 0) == 0 ? $k$5$us$i : $z$2$us$i; + if ($548) break; else { + $carry1$0$us$i = $carry1$1$us$i; + $k$5$in$us$i = $k$5$us$i + -1 | 0; + $z$2$us$i = $z$3$us$i; + } + } + $551 = $e2$0$us$i + -29 | 0; + if (!$carry1$1$us$i) { + $e2$0$us$i = $551; + $z$1$us$i = $z$3$us$i; + } else { + $$lcssa43$i = $551; + $carry1$1$lcssa$lcssa$i = $carry1$1$us$i; + $z$3$lcssa$lcssa$i = $z$3$us$i; + break; + } + } + } else { + if (($rp$2$ph38$i | 0) == 18) { + $e2$0$us44$i = $e2$0$ph$i; + $z$1$us45$i = $z$1$ph39$i; + } else { + $a$3$ph$i = $a$2$ph40$i; + $e2$1$ph$i = $e2$0$ph$i; + $rp$3$ph33$i = $rp$2$ph38$i; + $z$5$ph$i = $z$1$ph39$i; + break; + } + while (1) { + if ((HEAP32[$527 >> 2] | 0) >>> 0 >= 9007199) { + $a$3$ph$i = $a$2$ph40$i; + $e2$1$ph$i = $e2$0$us44$i; + $rp$3$ph33$i = 18; + $z$5$ph$i = $z$1$us45$i; + break L280; + } + $carry1$0$us49$i = 0; + $k$5$in$us48$i = $z$1$us45$i + 127 | 0; + $z$2$us47$i = $z$1$us45$i; + while (1) { + $k$5$us50$i = $k$5$in$us48$i & 127; + $556 = $x$i + ($k$5$us50$i << 2) | 0; + $558 = _bitshift64Shl(HEAP32[$556 >> 2] | 0, 0, 29) | 0; + $560 = _i64Add($558 | 0, tempRet0 | 0, $carry1$0$us49$i | 0, 0) | 0; + $561 = tempRet0; + if ($561 >>> 0 > 0 | ($561 | 0) == 0 & $560 >>> 0 > 1e9) { + $567 = ___udivdi3($560 | 0, $561 | 0, 1e9, 0) | 0; + $569 = ___uremdi3($560 | 0, $561 | 0, 1e9, 0) | 0; + $$sink$off0$us53$i = $569; + $carry1$1$us54$i = $567; + } else { + $$sink$off0$us53$i = $560; + $carry1$1$us54$i = 0; + } + HEAP32[$556 >> 2] = $$sink$off0$us53$i; + $574 = ($k$5$us50$i | 0) == ($a$2$ph40$i | 0); + if (($k$5$us50$i | 0) != ($z$2$us47$i + 127 & 127 | 0) | $574) $z$3$us57$i = $z$2$us47$i; else $z$3$us57$i = ($$sink$off0$us53$i | 0) == 0 ? $k$5$us50$i : $z$2$us47$i; + if ($574) break; else { + $carry1$0$us49$i = $carry1$1$us54$i; + $k$5$in$us48$i = $k$5$us50$i + -1 | 0; + $z$2$us47$i = $z$3$us57$i; + } + } + $577 = $e2$0$us44$i + -29 | 0; + if (!$carry1$1$us54$i) { + $e2$0$us44$i = $577; + $z$1$us45$i = $z$3$us57$i; + } else { + $$lcssa43$i = $577; + $carry1$1$lcssa$lcssa$i = $carry1$1$us54$i; + $z$3$lcssa$lcssa$i = $z$3$us57$i; + break; + } + } + } + $581 = $a$2$ph40$i + 127 & 127; + if (($581 | 0) == ($z$3$lcssa$lcssa$i | 0)) { + $584 = $z$3$lcssa$lcssa$i + 127 & 127; + $589 = $x$i + (($z$3$lcssa$lcssa$i + 126 & 127) << 2) | 0; + HEAP32[$589 >> 2] = HEAP32[$589 >> 2] | HEAP32[$x$i + ($584 << 2) >> 2]; + $z$4$i = $584; + } else $z$4$i = $z$3$lcssa$lcssa$i; + HEAP32[$x$i + ($581 << 2) >> 2] = $carry1$1$lcssa$lcssa$i; + $a$2$ph40$i = $581; + $e2$0$ph$i = $$lcssa43$i; + $rp$2$ph38$i = $rp$2$ph38$i + 9 | 0; + $z$1$ph39$i = $z$4$i; + } + L311 : while (1) { + $627 = $z$5$ph$i + 1 & 127; + $632 = $x$i + (($z$5$ph$i + 127 & 127) << 2) | 0; + $a$3$i$ph = $a$3$ph$i; + $e2$1$i$ph = $e2$1$ph$i; + $rp$3$i$ph = $rp$3$ph33$i; + while (1) { + $605 = ($rp$3$i$ph | 0) == 18; + $$14$i = ($rp$3$i$ph | 0) > 27 ? 9 : 1; + $a$3$i = $a$3$i$ph; + $e2$1$i = $e2$1$i$ph; + while (1) { + $i$025$i = 0; + while (1) { + $596 = $i$025$i + $a$3$i & 127; + if (($596 | 0) == ($z$5$ph$i | 0)) { + $i$1$i = 2; + break; + } + $599 = HEAP32[$x$i + ($596 << 2) >> 2] | 0; + $601 = HEAP32[5624 + ($i$025$i << 2) >> 2] | 0; + if ($599 >>> 0 < $601 >>> 0) { + $i$1$i = 2; + break; + } + $594 = $i$025$i + 1 | 0; + if ($599 >>> 0 > $601 >>> 0) { + $i$1$i = $i$025$i; + break; + } + if (($594 | 0) < 2) $i$025$i = $594; else { + $i$1$i = $594; + break; + } + } + if (($i$1$i | 0) == 2 & $605) break L311; + $608 = $$14$i + $e2$1$i | 0; + if (($a$3$i | 0) == ($z$5$ph$i | 0)) { + $a$3$i = $z$5$ph$i; + $e2$1$i = $608; + } else break; + } + $611 = (1 << $$14$i) + -1 | 0; + $612 = 1e9 >>> $$14$i; + $a$427$i = $a$3$i; + $carry3$030$i = 0; + $k$628$i = $a$3$i; + $rp$426$i = $rp$3$i$ph; + do { + $613 = $x$i + ($k$628$i << 2) | 0; + $614 = HEAP32[$613 >> 2] | 0; + $617 = ($614 >>> $$14$i) + $carry3$030$i | 0; + HEAP32[$613 >> 2] = $617; + $carry3$030$i = Math_imul($614 & $611, $612) | 0; + $or$cond15$i = ($k$628$i | 0) == ($a$427$i | 0) & ($617 | 0) == 0; + $k$628$i = $k$628$i + 1 & 127; + $rp$426$i = $or$cond15$i ? $rp$426$i + -9 | 0 : $rp$426$i; + $a$427$i = $or$cond15$i ? $k$628$i : $a$427$i; + } while (($k$628$i | 0) != ($z$5$ph$i | 0)); + if (!$carry3$030$i) { + $a$3$i$ph = $a$427$i; + $e2$1$i$ph = $608; + $rp$3$i$ph = $rp$426$i; + continue; + } + if (($627 | 0) != ($a$427$i | 0)) break; + HEAP32[$632 >> 2] = HEAP32[$632 >> 2] | 1; + $a$3$i$ph = $a$427$i; + $e2$1$i$ph = $608; + $rp$3$i$ph = $rp$426$i; + } + HEAP32[$x$i + ($z$5$ph$i << 2) >> 2] = $carry3$030$i; + $a$3$ph$i = $a$427$i; + $e2$1$ph$i = $608; + $rp$3$ph33$i = $rp$426$i; + $z$5$ph$i = $627; + } + $606 = $a$3$i & 127; + if (($606 | 0) == ($z$5$ph$i | 0)) { + HEAP32[$x$i + ($627 + -1 << 2) >> 2] = 0; + $z$7$i = $627; + } else $z$7$i = $z$5$ph$i; + $640 = +((HEAP32[$x$i + ($606 << 2) >> 2] | 0) >>> 0); + $642 = $a$3$i + 1 & 127; + if (($642 | 0) == ($z$7$i | 0)) { + $703 = $z$7$i + 1 & 127; + HEAP32[$x$i + ($703 + -1 << 2) >> 2] = 0; + $z$7$1$i = $703; + } else $z$7$1$i = $z$7$i; + $667 = +($sign$0 | 0); + $649 = $667 * ($640 * 1.0e9 + +((HEAP32[$x$i + ($642 << 2) >> 2] | 0) >>> 0)); + $687 = $e2$1$i + 53 | 0; + $645 = $687 - $emin$0$ph | 0; + if (($645 | 0) < ($bits$0$ph | 0)) { + $$09$i = ($645 | 0) < 0 ? 0 : $645; + $denormal$0$i = 1; + } else { + $$09$i = $bits$0$ph; + $denormal$0$i = 0; + } + if (($$09$i | 0) < 53) { + $650 = +_copysignl(+(+_scalbn(1.0, 105 - $$09$i | 0)), +$649); + $653 = +_fmodl(+$649, +(+_scalbn(1.0, 53 - $$09$i | 0))); + $bias$0$i = $650; + $frac$0$i = $653; + $y$1$i23 = $650 + ($649 - $653); + } else { + $bias$0$i = 0.0; + $frac$0$i = 0.0; + $y$1$i23 = $649; + } + $657 = $a$3$i + 2 & 127; + do if (($657 | 0) == ($z$7$1$i | 0)) $frac$2$i = $frac$0$i; else { + $660 = HEAP32[$x$i + ($657 << 2) >> 2] | 0; + do if ($660 >>> 0 < 5e8) { + if (!$660) if (($a$3$i + 3 & 127 | 0) == ($z$7$1$i | 0)) { + $frac$1$i = $frac$0$i; + break; + } + $frac$1$i = $667 * .25 + $frac$0$i; + } else { + if ($660 >>> 0 > 5e8) { + $frac$1$i = $667 * .75 + $frac$0$i; + break; + } + if (($a$3$i + 3 & 127 | 0) == ($z$7$1$i | 0)) { + $frac$1$i = $667 * .5 + $frac$0$i; + break; + } else { + $frac$1$i = $667 * .75 + $frac$0$i; + break; + } + } while (0); + if ((53 - $$09$i | 0) <= 1) { + $frac$2$i = $frac$1$i; + break; + } + if (+_fmodl(+$frac$1$i, 1.0) != 0.0) { + $frac$2$i = $frac$1$i; + break; + } + $frac$2$i = $frac$1$i + 1.0; + } while (0); + $685 = $y$1$i23 + $frac$2$i - $bias$0$i; + do if (($687 & 2147483647 | 0) > (-2 - $sum$i | 0)) { + if (!(+Math_abs(+$685) >= 9007199254740992.0)) { + $denormal$2$i = $denormal$0$i; + $e2$2$i = $e2$1$i; + $y$2$i24 = $685; + } else { + $denormal$2$i = ($denormal$0$i | 0) != 0 & ($$09$i | 0) == ($645 | 0) ? 0 : $denormal$0$i; + $e2$2$i = $e2$1$i + 1 | 0; + $y$2$i24 = $685 * .5; + } + if (($e2$2$i + 50 | 0) <= ($325 | 0)) if (!(($denormal$2$i | 0) != 0 & $frac$2$i != 0.0)) { + $e2$3$i = $e2$2$i; + $y$3$i = $y$2$i24; + break; + } + HEAP32[(___errno_location() | 0) >> 2] = 34; + $e2$3$i = $e2$2$i; + $y$3$i = $y$2$i24; + } else { + $e2$3$i = $e2$1$i; + $y$3$i = $685; + } while (0); + $$0 = +_scalbnl($y$3$i, $e2$3$i); + STACKTOP = sp; + return +$$0; + } else if (($i$3 | 0) == 3) { + $68 = HEAP32[$0 >> 2] | 0; + if ($68 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $68 + 1; + $76 = HEAPU8[$68 >> 0] | 0; + } else $76 = ___shgetc($f) | 0; + if (($76 | 0) == 40) $i$4 = 1; else { + if (!(HEAP32[$1 >> 2] | 0)) { + $$0 = nan; + STACKTOP = sp; + return +$$0; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $$0 = nan; + STACKTOP = sp; + return +$$0; + } + while (1) { + $81 = HEAP32[$0 >> 2] | 0; + if ($81 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $81 + 1; + $89 = HEAPU8[$81 >> 0] | 0; + } else $89 = ___shgetc($f) | 0; + if (!(($89 + -48 | 0) >>> 0 < 10 | ($89 + -65 | 0) >>> 0 < 26)) if (!(($89 + -97 | 0) >>> 0 < 26 | ($89 | 0) == 95)) break; + $i$4 = $i$4 + 1 | 0; + } + if (($89 | 0) == 41) { + $$0 = nan; + STACKTOP = sp; + return +$$0; + } + $98 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$98) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if ($39) { + HEAP32[(___errno_location() | 0) >> 2] = 22; + ___shlim($f, 0); + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } + if (($i$4 | 0) == 0 | $98) { + $$0 = nan; + STACKTOP = sp; + return +$$0; + } else $$in = $i$4; + do { + $$in = $$in + -1 | 0; + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + } while (($$in | 0) != 0); + $$0 = nan; + STACKTOP = sp; + return +$$0; + } else { + if (HEAP32[$1 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + HEAP32[(___errno_location() | 0) >> 2] = 22; + ___shlim($f, 0); + $$0 = 0.0; + STACKTOP = sp; + return +$$0; + } + } while (0); + if ((label | 0) == 23) { + $42 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if (!($i$0$lcssa >>> 0 < 4 | ($pok | 0) == 0 | $42)) { + $i$166 = $i$0$lcssa; + do { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $i$166 = $i$166 + -1 | 0; + } while ($i$166 >>> 0 > 3); + } + } + $$0 = +($sign$0 | 0) * inf; + STACKTOP = sp; + return +$$0; +} +function __ZN7Minisat10SimpSolver12eliminateVarEi($this, $v) { + $this = $this | 0; + $v = $v | 0; + var $$0 = 0, $$lcssa1$i$i = 0, $$ph = 0, $$pre$i$i = 0, $$pre107 = 0, $$pre109 = 0, $$pre3$i = 0, $$v_pos$0$i = 0, $$v_pos$0$i27 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $11 = 0, $113 = 0, $123 = 0, $125 = 0, $128 = 0, $129 = 0, $135 = 0, $137 = 0, $14 = 0, $141 = 0, $154 = 0, $157 = 0, $159 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $172 = 0, $173 = 0, $176 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $199 = 0, $2 = 0, $200 = 0, $203 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $232 = 0, $234 = 0, $235 = 0, $236 = 0, $240 = 0, $241 = 0, $25 = 0, $252 = 0, $253 = 0, $254 = 0, $258 = 0, $259 = 0, $260 = 0, $261 = 0, $264 = 0, $265 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $274 = 0, $277 = 0, $279 = 0, $28 = 0, $280 = 0, $282 = 0, $283 = 0, $284 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $52 = 0, $55 = 0, $56 = 0, $58 = 0, $6 = 0, $60 = 0, $68 = 0, $70 = 0, $73 = 0, $75 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $91 = 0, $92 = 0, $98 = 0, $cnt$090 = 0, $cnt$1$lcssa = 0, $cnt$183 = 0, $cnt$2 = 0, $i$0$lcssa$i$i = 0, $i$02$i = 0, $i$02$i$i = 0, $i$02$i26 = 0, $i$07$i = 0, $i$098 = 0, $i1$091 = 0, $i2$060 = 0, $i3$072 = 0, $i4$050 = 0, $i5$046 = 0, $i5$046$us = 0, $j$0$lcssa$i = 0, $j$0$lcssa$i$i = 0, $j$01$i = 0, $j$03$i$i = 0, $j$06$i = 0, $j$085 = 0, $j$1$i$i = 0, $j6$045$us = 0, $neg = 0, $pos = 0, $v_pos$0$lcssa$i = 0, $v_pos$0$lcssa$i29 = 0, $v_pos$03$i = 0, $v_pos$03$i25 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + $0 = sp + 36 | 0; + $1 = sp + 32 | 0; + $2 = sp + 28 | 0; + $3 = sp + 24 | 0; + $pos = sp + 12 | 0; + $neg = sp; + $6 = (HEAP32[$this + 776 >> 2] | 0) + $v | 0; + $$pre3$i = $this + 760 | 0; + if (HEAP8[$6 >> 0] | 0) { + $9 = HEAP32[$$pre3$i >> 2] | 0; + $10 = $9 + ($v * 12 | 0) + 4 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if (($11 | 0) > 0) { + $14 = $this + 804 | 0; + $$pre$i$i = HEAP32[$9 + ($v * 12 | 0) >> 2] | 0; + $282 = $11; + $i$02$i$i = 0; + $j$03$i$i = 0; + while (1) { + $17 = HEAP32[$$pre$i$i + ($i$02$i$i << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[HEAP32[$14 >> 2] >> 2] | 0) + ($17 << 2) >> 2] & 3 | 0) == 1) { + $27 = $282; + $j$1$i$i = $j$03$i$i; + } else { + HEAP32[$$pre$i$i + ($j$03$i$i << 2) >> 2] = $17; + $27 = HEAP32[$10 >> 2] | 0; + $j$1$i$i = $j$03$i$i + 1 | 0; + } + $25 = $i$02$i$i + 1 | 0; + if (($25 | 0) < ($27 | 0)) { + $282 = $27; + $i$02$i$i = $25; + $j$03$i$i = $j$1$i$i; + } else { + $$lcssa1$i$i = $27; + $i$0$lcssa$i$i = $25; + $j$0$lcssa$i$i = $j$1$i$i; + break; + } + } + } else { + $$lcssa1$i$i = $11; + $i$0$lcssa$i$i = 0; + $j$0$lcssa$i$i = 0; + } + $28 = $i$0$lcssa$i$i - $j$0$lcssa$i$i | 0; + if (($28 | 0) > 0) HEAP32[$10 >> 2] = $$lcssa1$i$i - $28; + HEAP8[$6 >> 0] = 0; + } + $31 = HEAP32[$$pre3$i >> 2] | 0; + $32 = $31 + ($v * 12 | 0) | 0; + HEAP32[$pos >> 2] = 0; + $33 = $pos + 4 | 0; + HEAP32[$33 >> 2] = 0; + $34 = $pos + 8 | 0; + HEAP32[$34 >> 2] = 0; + HEAP32[$neg >> 2] = 0; + $35 = $neg + 4 | 0; + HEAP32[$35 >> 2] = 0; + $36 = $neg + 8 | 0; + HEAP32[$36 >> 2] = 0; + $37 = $31 + ($v * 12 | 0) + 4 | 0; + L15 : do if ((HEAP32[$37 >> 2] | 0) > 0) { + $40 = $this + 544 | 0; + $41 = $v << 1; + $i$098 = 0; + do { + $52 = (HEAP32[$32 >> 2] | 0) + ($i$098 << 2) | 0; + $55 = (HEAP32[$40 >> 2] | 0) + (HEAP32[$52 >> 2] << 2) | 0; + $56 = HEAP32[$55 >> 2] | 0; + $58 = $56 >>> 5; + L19 : do if ($56 >>> 0 > 31) { + $j$01$i = 0; + while (1) { + $60 = $j$01$i + 1 | 0; + if ((HEAP32[$55 + ($j$01$i << 2) + 4 >> 2] | 0) == ($41 | 0)) { + $j$0$lcssa$i = $j$01$i; + break L19; + } + if (($60 | 0) < ($58 | 0)) $j$01$i = $60; else { + $j$0$lcssa$i = $60; + break; + } + } + } else $j$0$lcssa$i = 0; while (0); + __ZN7Minisat3vecIjiE4pushERKj(($j$0$lcssa$i | 0) < ($58 | 0) ? $pos : $neg, $52); + $i$098 = $i$098 + 1 | 0; + } while (($i$098 | 0) < (HEAP32[$37 >> 2] | 0)); + $$pre107 = HEAP32[$33 >> 2] | 0; + $42 = ($$pre107 | 0) > 0; + if ($42) { + $43 = HEAP32[$35 >> 2] | 0; + $44 = ($43 | 0) > 0; + $45 = $this + 544 | 0; + $46 = HEAP32[$pos >> 2] | 0; + $47 = HEAP32[$neg >> 2] | 0; + $48 = $this + 708 | 0; + $49 = $this + 684 | 0; + $50 = $this + 688 | 0; + $cnt$090 = 0; + $i1$091 = 0; + while (1) { + if ($44) { + $68 = $46 + ($i1$091 << 2) | 0; + $$pre109 = HEAP32[$45 >> 2] | 0; + $75 = HEAP32[$48 >> 2] | 0; + $cnt$183 = $cnt$090; + $j$085 = 0; + while (1) { + $70 = $$pre109 + (HEAP32[$68 >> 2] << 2) | 0; + $73 = $$pre109 + (HEAP32[$47 + ($j$085 << 2) >> 2] << 2) | 0; + $75 = $75 + 1 | 0; + HEAP32[$48 >> 2] = $75; + $80 = (HEAP32[$70 >> 2] | 0) >>> 5 >>> 0 < (HEAP32[$73 >> 2] | 0) >>> 5 >>> 0; + $81 = $80 ? $73 : $70; + $82 = $80 ? $70 : $73; + $83 = $81 + 4 | 0; + $84 = $82 + 4 | 0; + $85 = HEAP32[$81 >> 2] | 0; + $86 = $85 >>> 5; + $87 = $86 + -1 | 0; + $88 = HEAP32[$82 >> 2] | 0; + L32 : do if ($88 >>> 0 > 31) { + $104 = $87; + $i$07$i = 0; + while (1) { + $91 = HEAP32[$84 + ($i$07$i << 2) >> 2] | 0; + $92 = $91 >> 1; + L35 : do if (($92 | 0) == ($v | 0)) $284 = $104; else { + L37 : do if ($85 >>> 0 > 31) { + $j$06$i = 0; + while (1) { + $98 = HEAP32[$83 + ($j$06$i << 2) >> 2] | 0; + $j$06$i = $j$06$i + 1 | 0; + if (($98 >> 1 | 0) == ($92 | 0)) break; + if (($j$06$i | 0) >= ($86 | 0)) break L37; + } + if (($98 | 0) == ($91 ^ 1 | 0)) { + $cnt$2 = $cnt$183; + break L32; + } else { + $284 = $104; + break L35; + } + } while (0); + $284 = $104 + 1 | 0; + } while (0); + $i$07$i = $i$07$i + 1 | 0; + if (($i$07$i | 0) >= ($88 >>> 5 | 0)) { + $$ph = $284; + label = 28; + break; + } else $104 = $284; + } + } else { + $$ph = $87; + label = 28; + } while (0); + if ((label | 0) == 28) { + label = 0; + if (($cnt$183 | 0) >= ((HEAP32[$49 >> 2] | 0) + (HEAP32[$37 >> 2] | 0) | 0)) { + $$0 = 1; + $279 = $47; + break L15; + } + $113 = HEAP32[$50 >> 2] | 0; + if (($113 | 0) != -1 & ($$ph | 0) > ($113 | 0)) { + $$0 = 1; + $279 = $47; + break L15; + } else $cnt$2 = $cnt$183 + 1 | 0; + } + $j$085 = $j$085 + 1 | 0; + if (($j$085 | 0) >= ($43 | 0)) { + $cnt$1$lcssa = $cnt$2; + break; + } else $cnt$183 = $cnt$2; + } + } else $cnt$1$lcssa = $cnt$090; + $i1$091 = $i1$091 + 1 | 0; + if (($i1$091 | 0) >= ($$pre107 | 0)) { + $159 = $$pre107; + $283 = $42; + label = 32; + break; + } else $cnt$090 = $cnt$1$lcssa; + } + } else { + $159 = $$pre107; + $283 = 0; + label = 32; + } + } else { + $159 = 0; + $283 = 0; + label = 32; + } while (0); + L49 : do if ((label | 0) == 32) { + HEAP8[(HEAP32[$this + 904 >> 2] | 0) + $v >> 0] = 1; + $123 = $this + 380 | 0; + $125 = (HEAP32[$123 >> 2] | 0) + $v | 0; + if (HEAP8[$125 >> 0] | 0) { + $128 = $this + 200 | 0; + $129 = $128; + $135 = _i64Add(HEAP32[$129 >> 2] | 0, HEAP32[$129 + 4 >> 2] | 0, -1, -1) | 0; + $137 = $128; + HEAP32[$137 >> 2] = $135; + HEAP32[$137 + 4 >> 2] = tempRet0; + } + HEAP8[$125 >> 0] = 0; + $141 = $this + 460 | 0; + if ((HEAP32[$this + 476 >> 2] | 0) > ($v | 0)) { + if ((HEAP32[(HEAP32[$this + 472 >> 2] | 0) + ($v << 2) >> 2] | 0) <= -1) label = 36; + } else label = 36; + if ((label | 0) == 36) if (HEAP8[(HEAP32[$123 >> 2] | 0) + $v >> 0] | 0) __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE6insertEi($141, $v); + $154 = $this + 716 | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $157 = HEAP32[$35 >> 2] | 0; + if (($159 | 0) > ($157 | 0)) { + $165 = $this + 732 | 0; + if (($157 | 0) > 0) { + $166 = $this + 544 | 0; + $167 = HEAP32[$neg >> 2] | 0; + $168 = $this + 736 | 0; + $i2$060 = 0; + do { + $172 = (HEAP32[$166 >> 2] | 0) + (HEAP32[$167 + ($i2$060 << 2) >> 2] << 2) | 0; + $173 = HEAP32[$168 >> 2] | 0; + if ((HEAP32[$172 >> 2] | 0) >>> 0 > 31) { + $i$02$i26 = 0; + $v_pos$03$i25 = -1; + while (1) { + $176 = $172 + ($i$02$i26 << 2) + 4 | 0; + HEAP32[$0 >> 2] = HEAP32[$176 >> 2]; + __ZN7Minisat3vecIjiE4pushERKj($165, $0); + $$v_pos$0$i27 = (HEAP32[$176 >> 2] >> 1 | 0) == ($v | 0) ? $i$02$i26 + $173 | 0 : $v_pos$03$i25; + $i$02$i26 = $i$02$i26 + 1 | 0; + if (($i$02$i26 | 0) >= ((HEAP32[$172 >> 2] | 0) >>> 5 | 0)) { + $v_pos$0$lcssa$i29 = $$v_pos$0$i27; + break; + } else $v_pos$03$i25 = $$v_pos$0$i27; + } + } else $v_pos$0$lcssa$i29 = -1; + $186 = HEAP32[$165 >> 2] | 0; + $187 = $186 + ($v_pos$0$lcssa$i29 << 2) | 0; + $188 = HEAP32[$187 >> 2] | 0; + $189 = $186 + ($173 << 2) | 0; + HEAP32[$187 >> 2] = HEAP32[$189 >> 2]; + HEAP32[$189 >> 2] = $188; + HEAP32[$1 >> 2] = (HEAP32[$172 >> 2] | 0) >>> 5; + __ZN7Minisat3vecIjiE4pushERKj($165, $1); + $i2$060 = $i2$060 + 1 | 0; + } while (($i2$060 | 0) < ($157 | 0)); + } + HEAP32[$0 >> 2] = $v << 1; + __ZN7Minisat3vecIjiE4pushERKj($165, $0); + HEAP32[$1 >> 2] = 1; + __ZN7Minisat3vecIjiE4pushERKj($165, $1); + } else { + $160 = $this + 732 | 0; + if ($283) { + $161 = $this + 544 | 0; + $162 = HEAP32[$pos >> 2] | 0; + $163 = $this + 736 | 0; + $i3$072 = 0; + do { + $199 = (HEAP32[$161 >> 2] | 0) + (HEAP32[$162 + ($i3$072 << 2) >> 2] << 2) | 0; + $200 = HEAP32[$163 >> 2] | 0; + if ((HEAP32[$199 >> 2] | 0) >>> 0 > 31) { + $i$02$i = 0; + $v_pos$03$i = -1; + while (1) { + $203 = $199 + ($i$02$i << 2) + 4 | 0; + HEAP32[$0 >> 2] = HEAP32[$203 >> 2]; + __ZN7Minisat3vecIjiE4pushERKj($160, $0); + $$v_pos$0$i = (HEAP32[$203 >> 2] >> 1 | 0) == ($v | 0) ? $i$02$i + $200 | 0 : $v_pos$03$i; + $i$02$i = $i$02$i + 1 | 0; + if (($i$02$i | 0) >= ((HEAP32[$199 >> 2] | 0) >>> 5 | 0)) { + $v_pos$0$lcssa$i = $$v_pos$0$i; + break; + } else $v_pos$03$i = $$v_pos$0$i; + } + } else $v_pos$0$lcssa$i = -1; + $213 = HEAP32[$160 >> 2] | 0; + $214 = $213 + ($v_pos$0$lcssa$i << 2) | 0; + $215 = HEAP32[$214 >> 2] | 0; + $216 = $213 + ($200 << 2) | 0; + HEAP32[$214 >> 2] = HEAP32[$216 >> 2]; + HEAP32[$216 >> 2] = $215; + HEAP32[$1 >> 2] = (HEAP32[$199 >> 2] | 0) >>> 5; + __ZN7Minisat3vecIjiE4pushERKj($160, $1); + $i3$072 = $i3$072 + 1 | 0; + } while (($i3$072 | 0) < ($159 | 0)); + } + HEAP32[$2 >> 2] = $v << 1 | 1; + __ZN7Minisat3vecIjiE4pushERKj($160, $2); + HEAP32[$3 >> 2] = 1; + __ZN7Minisat3vecIjiE4pushERKj($160, $3); + } + if ((HEAP32[$37 >> 2] | 0) > 0) { + $i4$050 = 0; + do { + __ZN7Minisat10SimpSolver12removeClauseEj($this, HEAP32[(HEAP32[$32 >> 2] | 0) + ($i4$050 << 2) >> 2] | 0); + $i4$050 = $i4$050 + 1 | 0; + } while (($i4$050 | 0) < (HEAP32[$37 >> 2] | 0)); + } + $232 = $this + 628 | 0; + L87 : do if ($283) { + $234 = $this + 544 | 0; + $235 = HEAP32[$pos >> 2] | 0; + $236 = HEAP32[$neg >> 2] | 0; + if (($157 | 0) > 0) $i5$046$us = 0; else { + $i5$046 = 0; + while (1) { + $i5$046 = $i5$046 + 1 | 0; + if (($i5$046 | 0) >= ($159 | 0)) break L87; + } + } + do { + $240 = $235 + ($i5$046$us << 2) | 0; + $j6$045$us = 0; + do { + $241 = HEAP32[$234 >> 2] | 0; + if (__ZN7Minisat10SimpSolver5mergeERKNS_6ClauseES3_iRNS_3vecINS_3LitEiEE($this, $241 + (HEAP32[$240 >> 2] << 2) | 0, $241 + (HEAP32[$236 + ($j6$045$us << 2) >> 2] << 2) | 0, $v, $232) | 0) if (!(__ZN7Minisat10SimpSolver10addClause_ERNS_3vecINS_3LitEiEE($this, $232) | 0)) { + $$0 = 0; + $279 = $236; + break L49; + } + $j6$045$us = $j6$045$us + 1 | 0; + } while (($j6$045$us | 0) < ($157 | 0)); + $i5$046$us = $i5$046$us + 1 | 0; + } while (($i5$046$us | 0) < ($159 | 0)); + } while (0); + $252 = HEAP32[$$pre3$i >> 2] | 0; + $253 = $252 + ($v * 12 | 0) | 0; + $254 = HEAP32[$253 >> 2] | 0; + if ($254) { + HEAP32[$252 + ($v * 12 | 0) + 4 >> 2] = 0; + _free($254); + HEAP32[$253 >> 2] = 0; + HEAP32[$252 + ($v * 12 | 0) + 8 >> 2] = 0; + } + $258 = $this + 412 | 0; + $259 = $v << 1; + $260 = HEAP32[$258 >> 2] | 0; + $261 = $260 + ($259 * 12 | 0) + 4 | 0; + if (!(HEAP32[$261 >> 2] | 0)) { + $264 = $260 + ($259 * 12 | 0) | 0; + $265 = HEAP32[$264 >> 2] | 0; + if (!$265) $270 = $260; else { + HEAP32[$261 >> 2] = 0; + _free($265); + HEAP32[$264 >> 2] = 0; + HEAP32[$260 + ($259 * 12 | 0) + 8 >> 2] = 0; + $270 = HEAP32[$258 >> 2] | 0; + } + } else $270 = $260; + $268 = $259 | 1; + $269 = $270 + ($268 * 12 | 0) + 4 | 0; + if (!(HEAP32[$269 >> 2] | 0)) { + $273 = $270 + ($268 * 12 | 0) | 0; + $274 = HEAP32[$273 >> 2] | 0; + if ($274) { + HEAP32[$269 >> 2] = 0; + _free($274); + HEAP32[$273 >> 2] = 0; + HEAP32[$270 + ($268 * 12 | 0) + 8 >> 2] = 0; + } + } + $277 = __ZN7Minisat10SimpSolver24backwardSubsumptionCheckEb($this, 0) | 0; + $$0 = $277; + $279 = HEAP32[$neg >> 2] | 0; + } while (0); + if ($279) { + HEAP32[$35 >> 2] = 0; + _free($279); + HEAP32[$neg >> 2] = 0; + HEAP32[$36 >> 2] = 0; + } + $280 = HEAP32[$pos >> 2] | 0; + if (!$280) { + STACKTOP = sp; + return $$0 | 0; + } + HEAP32[$33 >> 2] = 0; + _free($280); + HEAP32[$pos >> 2] = 0; + HEAP32[$34 >> 2] = 0; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat6Solver7analyzeEjRNS_3vecINS_3LitEiEERi($this, $confl, $out_learnt, $out_btlevel) { + $this = $this | 0; + $confl = $confl | 0; + $out_learnt = $out_learnt | 0; + $out_btlevel = $out_btlevel | 0; + var $$0 = 0, $$byval_copy = 0, $$in$in$i$i$i$i = 0, $$phi$trans$insert$i = 0, $$pre = 0, $$pre$i1 = 0, $$pre84 = 0, $$pre86 = 0, $$promoted$i = 0, $$sink$in$lcssa$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $107 = 0, $109 = 0, $111 = 0, $113 = 0, $116 = 0, $117 = 0, $119 = 0, $13 = 0, $14 = 0, $141 = 0, $142 = 0, $145 = 0, $146 = 0, $147 = 0, $152 = 0, $153 = 0, $157 = 0, $158 = 0, $16 = 0, $160 = 0, $162 = 0, $163 = 0, $164 = 0, $168 = 0, $171 = 0, $173 = 0, $176 = 0, $178 = 0, $183 = 0, $184 = 0, $186 = 0, $187 = 0, $189 = 0, $191 = 0, $192 = 0, $193 = 0, $198 = 0, $2 = 0, $201 = 0, $203 = 0, $205 = 0, $207 = 0, $21 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $222 = 0, $225 = 0, $23 = 0, $230 = 0, $231 = 0, $233 = 0, $236 = 0, $24 = 0, $248 = 0, $249 = 0, $253 = 0, $254 = 0, $260 = 0, $262 = 0, $266 = 0, $268 = 0, $27 = 0, $270 = 0, $272 = 0, $273 = 0, $279 = 0, $281 = 0, $287 = 0, $288 = 0, $3 = 0, $302 = 0, $303 = 0, $304 = 0, $31 = 0, $32 = 0, $321 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $51 = 0.0, $53 = 0, $57 = 0.0, $60 = 0, $64 = 0, $67 = 0, $75 = 0, $76 = 0, $8 = 0, $81 = 0, $82 = 0, $84 = 0, $92 = 0, $93 = 0, $95 = 0.0, $97 = 0, $99 = 0, $i$01$i = 0, $i$01$i$i = 0, $i$01$i$i9 = 0, $i$01$i6 = 0, $i$036 = 0, $i$148 = 0, $i$2 = 0, $i3$0$max_i$0 = 0, $i3$031 = 0, $index$0 = 0, $index$1 = 0, $j$056 = 0, $j1$038 = 0, $j1$1 = 0, $j1$251 = 0, $j1$3 = 0, $j1$4 = 0, $j5$029 = 0, $k$043 = 0, $max_i$0$lcssa = 0, $max_i$030 = 0, $pathC$0 = 0, $pathC$1$lcssa = 0, $pathC$157 = 0, $pathC$2 = 0, $q = 0, $storemerge = 0, label = 0, sp = 0, $$in$in$i$i$i$i$looptemp = 0, $index$1$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 8 | 0; + $q = sp + 4 | 0; + $0 = sp; + $1 = $out_learnt + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $out_learnt + 8 | 0; + if (($2 | 0) == (HEAP32[$3 >> 2] | 0)) { + $8 = ($2 >> 1) + 2 & -2; + $10 = ($8 | 0) < 2 ? 2 : $8; + if (($10 | 0) > (2147483647 - $2 | 0)) { + $21 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($21 | 0, 48, 0); + } + $13 = HEAP32[$out_learnt >> 2] | 0; + $14 = $10 + $2 | 0; + HEAP32[$3 >> 2] = $14; + $16 = _realloc($13, $14 << 2) | 0; + HEAP32[$out_learnt >> 2] = $16; + if (!$16) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $21 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($21 | 0, 48, 0); + } + $24 = HEAP32[$1 >> 2] | 0; + } else $24 = $2; + $23 = (HEAP32[$out_learnt >> 2] | 0) + ($24 << 2) | 0; + if (!$23) $27 = $24; else { + HEAP32[$23 >> 2] = 0; + $27 = HEAP32[$1 >> 2] | 0; + } + HEAP32[$1 >> 2] = $27 + 1; + $31 = $this + 544 | 0; + $32 = $this + 280 | 0; + $33 = $this + 588 | 0; + $34 = $this + 396 | 0; + $35 = $this + 504 | 0; + $36 = $this + 316 | 0; + $37 = $this + 540 | 0; + $38 = $this + 476 | 0; + $39 = $this + 472 | 0; + $40 = $this + 460 | 0; + $41 = $this + 488 | 0; + $42 = $this + 296 | 0; + $43 = $this + 496 | 0; + $44 = $this + 272 | 0; + $45 = $this + 268 | 0; + $$0 = $confl; + $75 = -2; + $index$0 = (HEAP32[$this + 284 >> 2] | 0) + -1 | 0; + $pathC$0 = 0; + while (1) { + $46 = HEAP32[$31 >> 2] | 0; + $47 = $46 + ($$0 << 2) | 0; + $48 = HEAP32[$47 >> 2] | 0; + if ($48 & 4) { + $51 = +HEAPF64[$43 >> 3]; + $53 = $47 + ($48 >>> 5 << 2) + 4 | 0; + $57 = $51 + +HEAPF32[$53 >> 2]; + HEAPF32[$53 >> 2] = $57; + if ($57 > 1.0e20) { + $60 = HEAP32[$44 >> 2] | 0; + if (($60 | 0) > 0) { + $$pre$i1 = HEAP32[$45 >> 2] | 0; + $i$01$i = 0; + do { + $64 = $46 + (HEAP32[$$pre$i1 + ($i$01$i << 2) >> 2] << 2) | 0; + $67 = $64 + ((HEAP32[$64 >> 2] | 0) >>> 5 << 2) + 4 | 0; + HEAPF32[$67 >> 2] = +HEAPF32[$67 >> 2] * 1.0e-20; + $i$01$i = $i$01$i + 1 | 0; + } while (($i$01$i | 0) != ($60 | 0)); + } + HEAPF64[$43 >> 3] = $51 * 1.0e-20; + } + } + $76 = ($75 | 0) != -2 & 1; + if ($76 >>> 0 < (HEAP32[$47 >> 2] | 0) >>> 5 >>> 0) { + $j$056 = $76; + $pathC$157 = $pathC$0; + while (1) { + $81 = HEAP32[$47 + ($j$056 << 2) + 4 >> 2] | 0; + HEAP32[$q >> 2] = $81; + $82 = $81 >> 1; + $84 = (HEAP32[$33 >> 2] | 0) + $82 | 0; + do if (!(HEAP8[$84 >> 0] | 0)) if ((HEAP32[(HEAP32[$34 >> 2] | 0) + ($82 << 3) + 4 >> 2] | 0) > 0) { + $92 = HEAP32[$36 >> 2] | 0; + $93 = $92 + ($82 << 3) | 0; + $95 = +HEAPF64[$35 >> 3] + +HEAPF64[$93 >> 3]; + HEAPF64[$93 >> 3] = $95; + if ($95 > 1.0e+100) { + $97 = HEAP32[$37 >> 2] | 0; + if (($97 | 0) > 0) { + $i$01$i$i9 = 0; + do { + $99 = $92 + ($i$01$i$i9 << 3) | 0; + HEAPF64[$99 >> 3] = +HEAPF64[$99 >> 3] * 1.0e-100; + $i$01$i$i9 = $i$01$i$i9 + 1 | 0; + } while (($i$01$i$i9 | 0) != ($97 | 0)); + } + HEAPF64[$35 >> 3] = +HEAPF64[$35 >> 3] * 1.0e-100; + } + if ((HEAP32[$38 >> 2] | 0) > ($82 | 0)) { + $107 = HEAP32[$39 >> 2] | 0; + $109 = HEAP32[$107 + ($82 << 2) >> 2] | 0; + if (($109 | 0) > -1) { + $111 = HEAP32[$40 >> 2] | 0; + $113 = HEAP32[$111 + ($109 << 2) >> 2] | 0; + L41 : do if (!$109) $$sink$in$lcssa$i$i$i$i = 0; else { + $$in$in$i$i$i$i = $109; + while (1) { + $$in$in$i$i$i$i$looptemp = $$in$in$i$i$i$i; + $$in$in$i$i$i$i = $$in$in$i$i$i$i + -1 >> 1; + $116 = $111 + ($$in$in$i$i$i$i << 2) | 0; + $117 = HEAP32[$116 >> 2] | 0; + $119 = HEAP32[HEAP32[$41 >> 2] >> 2] | 0; + if (!(+HEAPF64[$119 + ($113 << 3) >> 3] > +HEAPF64[$119 + ($117 << 3) >> 3])) { + $$sink$in$lcssa$i$i$i$i = $$in$in$i$i$i$i$looptemp; + break L41; + } + HEAP32[$111 + ($$in$in$i$i$i$i$looptemp << 2) >> 2] = $117; + HEAP32[$107 + (HEAP32[$116 >> 2] << 2) >> 2] = $$in$in$i$i$i$i$looptemp; + if (!$$in$in$i$i$i$i) { + $$sink$in$lcssa$i$i$i$i = 0; + break; + } + } + } while (0); + HEAP32[$111 + ($$sink$in$lcssa$i$i$i$i << 2) >> 2] = $113; + HEAP32[$107 + ($113 << 2) >> 2] = $$sink$in$lcssa$i$i$i$i; + } + } + HEAP8[$84 >> 0] = 1; + if ((HEAP32[(HEAP32[$34 >> 2] | 0) + ($82 << 3) + 4 >> 2] | 0) < (HEAP32[$42 >> 2] | 0)) { + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($out_learnt, $q); + $pathC$2 = $pathC$157; + break; + } else { + $pathC$2 = $pathC$157 + 1 | 0; + break; + } + } else $pathC$2 = $pathC$157; else $pathC$2 = $pathC$157; while (0); + $j$056 = $j$056 + 1 | 0; + if (($j$056 | 0) >= ((HEAP32[$47 >> 2] | 0) >>> 5 | 0)) { + $pathC$1$lcssa = $pathC$2; + break; + } else $pathC$157 = $pathC$2; + } + } else $pathC$1$lcssa = $pathC$0; + $141 = HEAP32[$32 >> 2] | 0; + $142 = HEAP32[$33 >> 2] | 0; + $index$1 = $index$0; + do { + $index$1$looptemp = $index$1; + $index$1 = $index$1 + -1 | 0; + $145 = HEAP32[$141 + ($index$1$looptemp << 2) >> 2] | 0; + $146 = $145 >> 1; + $147 = $142 + $146 | 0; + } while ((HEAP8[$147 >> 0] | 0) == 0); + $152 = HEAP32[(HEAP32[$34 >> 2] | 0) + ($146 << 3) >> 2] | 0; + HEAP8[$147 >> 0] = 0; + $153 = $pathC$1$lcssa + -1 | 0; + if (($153 | 0) > 0) { + $$0 = $152; + $75 = $145; + $index$0 = $index$1; + $pathC$0 = $153; + } else break; + } + HEAP32[HEAP32[$out_learnt >> 2] >> 2] = $145 ^ 1; + $157 = $this + 616 | 0; + $158 = HEAP32[$157 >> 2] | 0; + $$phi$trans$insert$i = $this + 620 | 0; + if (!$158) $162 = HEAP32[$$phi$trans$insert$i >> 2] | 0; else { + HEAP32[$$phi$trans$insert$i >> 2] = 0; + $162 = 0; + } + $160 = HEAP32[$1 >> 2] | 0; + if (($162 | 0) < ($160 | 0)) { + $163 = $this + 624 | 0; + $164 = HEAP32[$163 >> 2] | 0; + if (($164 | 0) < ($160 | 0)) { + $168 = $160 + 1 - $164 & -2; + $171 = ($164 >> 1) + 2 & -2; + $173 = ($168 | 0) > ($171 | 0) ? $168 : $171; + if (($173 | 0) > (2147483647 - $164 | 0)) { + $183 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($183 | 0, 48, 0); + } + $176 = $173 + $164 | 0; + HEAP32[$163 >> 2] = $176; + $178 = _realloc($158, $176 << 2) | 0; + HEAP32[$157 >> 2] = $178; + if (!$178) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $183 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($183 | 0, 48, 0); + } else $321 = $178; else $321 = $178; + } else $321 = $158; + $184 = HEAP32[$$phi$trans$insert$i >> 2] | 0; + L70 : do if (($184 | 0) < ($160 | 0)) { + $187 = $321; + $i$01$i$i = $184; + while (1) { + $186 = $187 + ($i$01$i$i << 2) | 0; + if ($186) HEAP32[$186 >> 2] = 0; + $189 = $i$01$i$i + 1 | 0; + if (($189 | 0) == ($160 | 0)) break L70; + $187 = HEAP32[$157 >> 2] | 0; + $i$01$i$i = $189; + } + } while (0); + HEAP32[$$phi$trans$insert$i >> 2] = $160; + $191 = HEAP32[$1 >> 2] | 0; + } else $191 = $160; + if (($191 | 0) > 0) { + $192 = HEAP32[$157 >> 2] | 0; + $193 = HEAP32[$out_learnt >> 2] | 0; + $i$01$i6 = 0; + do { + HEAP32[$192 + ($i$01$i6 << 2) >> 2] = HEAP32[$193 + ($i$01$i6 << 2) >> 2]; + $i$01$i6 = $i$01$i6 + 1 | 0; + $198 = HEAP32[$1 >> 2] | 0; + } while (($i$01$i6 | 0) < ($198 | 0)); + $203 = $198; + } else $203 = $191; + $201 = HEAP32[$this + 84 >> 2] | 0; + if (($201 | 0) == 2) if (($203 | 0) > 1) { + $i$036 = 1; + $j1$038 = 1; + while (1) { + $205 = HEAP32[$out_learnt >> 2] | 0; + $207 = HEAP32[$205 + ($i$036 << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[$34 >> 2] | 0) + ($207 >> 1 << 3) >> 2] | 0) == -1) { + $216 = $205; + $217 = $207; + label = 62; + } else { + HEAP32[$0 >> 2] = $207; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + if (__ZN7Minisat6Solver12litRedundantENS_3LitE($this, $$byval_copy) | 0) $j1$1 = $j1$038; else { + $$pre84 = HEAP32[$out_learnt >> 2] | 0; + $216 = $$pre84; + $217 = HEAP32[$$pre84 + ($i$036 << 2) >> 2] | 0; + label = 62; + } + } + if ((label | 0) == 62) { + label = 0; + HEAP32[$216 + ($j1$038 << 2) >> 2] = $217; + $j1$1 = $j1$038 + 1 | 0; + } + $218 = $i$036 + 1 | 0; + $219 = HEAP32[$1 >> 2] | 0; + if (($218 | 0) < ($219 | 0)) { + $i$036 = $218; + $j1$038 = $j1$1; + } else { + $$promoted$i = $219; + $i$2 = $218; + $j1$4 = $j1$1; + break; + } + } + } else { + $$promoted$i = $203; + $i$2 = 1; + $j1$4 = 1; + } else if (($201 | 0) == 1) if (($203 | 0) > 1) { + $$pre = HEAP32[$out_learnt >> 2] | 0; + $$pre86 = HEAP32[$34 >> 2] | 0; + $i$148 = 1; + $j1$251 = 1; + while (1) { + $222 = HEAP32[$$pre + ($i$148 << 2) >> 2] | 0; + $225 = HEAP32[$$pre86 + ($222 >> 1 << 3) >> 2] | 0; + L99 : do if (($225 | 0) == -1) { + HEAP32[$$pre + ($j1$251 << 2) >> 2] = $222; + $j1$3 = $j1$251 + 1 | 0; + } else { + $230 = (HEAP32[$31 >> 2] | 0) + ($225 << 2) | 0; + $231 = HEAP32[$230 >> 2] | 0; + if ($231 >>> 0 > 63) { + $233 = HEAP32[$33 >> 2] | 0; + $k$043 = 1; + while (1) { + $236 = HEAP32[$230 + ($k$043 << 2) + 4 >> 2] >> 1; + if (!(HEAP8[$233 + $236 >> 0] | 0)) if ((HEAP32[$$pre86 + ($236 << 3) + 4 >> 2] | 0) > 0) break; + $k$043 = $k$043 + 1 | 0; + if (($k$043 | 0) >= ($231 >>> 5 | 0)) { + $j1$3 = $j1$251; + break L99; + } + } + HEAP32[$$pre + ($j1$251 << 2) >> 2] = $222; + $j1$3 = $j1$251 + 1 | 0; + } else $j1$3 = $j1$251; + } while (0); + $248 = $i$148 + 1 | 0; + $249 = HEAP32[$1 >> 2] | 0; + if (($248 | 0) < ($249 | 0)) { + $i$148 = $248; + $j1$251 = $j1$3; + } else { + $$promoted$i = $249; + $i$2 = $248; + $j1$4 = $j1$3; + break; + } + } + } else { + $$promoted$i = $203; + $i$2 = 1; + $j1$4 = 1; + } else { + $$promoted$i = $203; + $i$2 = $203; + $j1$4 = $203; + } + $253 = $this + 240 | 0; + $254 = $253; + $260 = _i64Add(HEAP32[$254 >> 2] | 0, HEAP32[$254 + 4 >> 2] | 0, $$promoted$i | 0, (($$promoted$i | 0) < 0) << 31 >> 31 | 0) | 0; + $262 = $253; + HEAP32[$262 >> 2] = $260; + HEAP32[$262 + 4 >> 2] = tempRet0; + $266 = $i$2 - $j1$4 | 0; + if (($266 | 0) > 0) { + $268 = $$promoted$i - $266 | 0; + HEAP32[$1 >> 2] = $268; + $270 = $268; + } else $270 = $$promoted$i; + $272 = $this + 248 | 0; + $273 = $272; + $279 = _i64Add(HEAP32[$273 >> 2] | 0, HEAP32[$273 + 4 >> 2] | 0, $270 | 0, (($270 | 0) < 0) << 31 >> 31 | 0) | 0; + $281 = $272; + HEAP32[$281 >> 2] = $279; + HEAP32[$281 + 4 >> 2] = tempRet0; + if (($270 | 0) == 1) $storemerge = 0; else { + $287 = HEAP32[$out_learnt >> 2] | 0; + if (($270 | 0) > 2) { + $288 = HEAP32[$34 >> 2] | 0; + $i3$031 = 2; + $max_i$030 = 1; + while (1) { + $i3$0$max_i$0 = (HEAP32[$288 + (HEAP32[$287 + ($i3$031 << 2) >> 2] >> 1 << 3) + 4 >> 2] | 0) > (HEAP32[$288 + (HEAP32[$287 + ($max_i$030 << 2) >> 2] >> 1 << 3) + 4 >> 2] | 0) ? $i3$031 : $max_i$030; + $i3$031 = $i3$031 + 1 | 0; + if (($i3$031 | 0) >= ($270 | 0)) { + $max_i$0$lcssa = $i3$0$max_i$0; + break; + } else $max_i$030 = $i3$0$max_i$0; + } + } else $max_i$0$lcssa = 1; + $302 = $287 + ($max_i$0$lcssa << 2) | 0; + $303 = HEAP32[$302 >> 2] | 0; + $304 = $287 + 4 | 0; + HEAP32[$302 >> 2] = HEAP32[$304 >> 2]; + HEAP32[$304 >> 2] = $303; + $storemerge = HEAP32[(HEAP32[$34 >> 2] | 0) + ($303 >> 1 << 3) + 4 >> 2] | 0; + } + HEAP32[$out_btlevel >> 2] = $storemerge; + if ((HEAP32[$$phi$trans$insert$i >> 2] | 0) > 0) $j5$029 = 0; else { + STACKTOP = sp; + return; + } + do { + HEAP8[(HEAP32[$33 >> 2] | 0) + (HEAP32[(HEAP32[$157 >> 2] | 0) + ($j5$029 << 2) >> 2] >> 1) >> 0] = 0; + $j5$029 = $j5$029 + 1 | 0; + } while (($j5$029 | 0) < (HEAP32[$$phi$trans$insert$i >> 2] | 0)); + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver6searchEi($agg$result, $this, $nof_conflicts) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $nof_conflicts = $nof_conflicts | 0; + var $$byval_copy = 0, $$in = 0, $$in$i = 0, $$in$i22 = 0, $$pre$i13 = 0, $0 = 0, $1 = 0, $104 = 0, $106 = 0, $109 = 0, $11 = 0, $110 = 0, $112 = 0, $119 = 0, $121 = 0, $123 = 0, $124 = 0, $125 = 0.0, $128 = 0, $13 = 0, $132 = 0.0, $135 = 0, $139 = 0, $142 = 0, $150 = 0, $151 = 0, $160 = 0, $161 = 0, $165 = 0, $17 = 0, $178 = 0, $18 = 0, $182 = 0.0, $186 = 0.0, $19 = 0, $191 = 0, $197 = 0, $2 = 0, $20 = 0, $201 = 0, $204 = 0, $207 = 0, $21 = 0, $213 = 0, $219 = 0, $22 = 0, $223 = 0, $225 = 0, $228 = 0, $23 = 0, $230 = 0.0, $231 = 0.0, $24 = 0, $245 = 0, $248 = 0.0, $25 = 0, $259 = 0, $26 = 0, $264 = 0, $266 = 0, $27 = 0, $271 = 0, $277 = 0, $28 = 0, $282 = 0, $284 = 0, $289 = 0, $29 = 0, $296 = 0.0, $297 = 0.0, $298 = 0, $3 = 0, $30 = 0, $31 = 0, $312 = 0, $315 = 0.0, $32 = 0, $33 = 0, $330 = 0, $335 = 0, $34 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $35 = 0, $356 = 0, $357 = 0, $36 = 0, $368 = 0, $37 = 0, $371 = 0, $377 = 0, $379 = 0, $38 = 0, $383 = 0, $387 = 0, $388 = 0, $39 = 0, $397 = 0, $398 = 0, $4 = 0, $40 = 0, $402 = 0, $406 = 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, $55 = 0, $57 = 0, $63 = 0, $65 = 0, $69 = 0, $79 = 0, $80 = 0, $89 = 0, $90 = 0, $94 = 0, $98 = 0, $99 = 0, $backtrack_level = 0, $conflictC$0$ph = 0, $i$01$i = 0, $i$01$i17 = 0, $i$01$i21 = 0, $learnt_clause = 0, $or$cond = 0, $progress$0$lcssa$i = 0.0, $progress$0$lcssa$i23 = 0.0, $progress$02$i = 0.0, $progress$02$i20 = 0.0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + $$byval_copy = sp; + $0 = sp + 60 | 0; + $backtrack_level = sp + 56 | 0; + $learnt_clause = sp + 44 | 0; + $1 = sp + 40 | 0; + HEAP32[$learnt_clause >> 2] = 0; + $2 = $learnt_clause + 4 | 0; + HEAP32[$2 >> 2] = 0; + $3 = $learnt_clause + 8 | 0; + HEAP32[$3 >> 2] = 0; + $4 = $this + 160 | 0; + $5 = $4; + $11 = _i64Add(HEAP32[$5 >> 2] | 0, HEAP32[$5 + 4 >> 2] | 0, 1, 0) | 0; + $13 = $4; + HEAP32[$13 >> 2] = $11; + HEAP32[$13 + 4 >> 2] = tempRet0; + $17 = ($nof_conflicts | 0) < 0; + $18 = $this + 680 | 0; + $19 = $this + 664 | 0; + $20 = $this + 672 | 0; + $21 = $this + 296 | 0; + $22 = $this + 272 | 0; + $23 = $this + 284 | 0; + $24 = $this + 640 | 0; + $25 = $this + 308 | 0; + $26 = $this + 304 | 0; + $27 = $this + 332 | 0; + $28 = $this + 292 | 0; + $29 = $this + 168 | 0; + $30 = $this + 396 | 0; + $31 = $this + 280 | 0; + $32 = $this + 184 | 0; + $33 = $this + 192 | 0; + $34 = $this + 48 | 0; + $35 = $this + 504 | 0; + $36 = $this + 56 | 0; + $37 = $this + 496 | 0; + $38 = $this + 656 | 0; + $39 = $this + 144 | 0; + $40 = $this + 648 | 0; + $41 = $this + 128 | 0; + $42 = $this + 44 | 0; + $43 = $this + 200 | 0; + $44 = $this + 208 | 0; + $45 = $this + 224 | 0; + $46 = $this + 216 | 0; + $47 = $this + 232 | 0; + $48 = $this + 540 | 0; + $49 = $this + 292 | 0; + $50 = $this + 544 | 0; + $51 = $this + 276 | 0; + $52 = $this + 268 | 0; + $53 = $this + 268 | 0; + $conflictC$0$ph = 0; + L1 : while (1) { + $or$cond = $17 | ($conflictC$0$ph | 0) < ($nof_conflicts | 0); + while (1) { + $55 = __ZN7Minisat6Solver9propagateEv($this) | 0; + if (($55 | 0) != -1) break; + if (!$or$cond) { + label = 41; + break L1; + } + if (HEAP8[$18 >> 0] | 0) { + label = 41; + break L1; + } + $259 = $19; + $264 = HEAP32[$259 + 4 >> 2] | 0; + if (($264 | 0) >= 0) { + $266 = $33; + $271 = HEAP32[$266 + 4 >> 2] | 0; + if (!($271 >>> 0 < $264 >>> 0 | (($271 | 0) == ($264 | 0) ? (HEAP32[$266 >> 2] | 0) >>> 0 < (HEAP32[$259 >> 2] | 0) >>> 0 : 0))) { + label = 41; + break L1; + } + } + $277 = $20; + $282 = HEAP32[$277 + 4 >> 2] | 0; + if (($282 | 0) >= 0) { + $284 = $32; + $289 = HEAP32[$284 + 4 >> 2] | 0; + if (!($289 >>> 0 < $282 >>> 0 | (($289 | 0) == ($282 | 0) ? (HEAP32[$284 >> 2] | 0) >>> 0 < (HEAP32[$277 >> 2] | 0) >>> 0 : 0))) { + label = 41; + break L1; + } + } + if (!(HEAP32[$21 >> 2] | 0)) if (!(__ZN7Minisat6Solver8simplifyEv($this) | 0)) { + label = 50; + break L1; + } + if (+((HEAP32[$22 >> 2] | 0) - (HEAP32[$23 >> 2] | 0) | 0) >= +HEAPF64[$24 >> 3]) __ZN7Minisat6Solver8reduceDBEv($this); + while (1) { + $330 = HEAP32[$21 >> 2] | 0; + if (($330 | 0) >= (HEAP32[$25 >> 2] | 0)) { + label = 59; + break; + } + $335 = HEAP32[(HEAP32[$26 >> 2] | 0) + ($330 << 2) >> 2] | 0; + $341 = HEAPU8[(HEAP32[$27 >> 2] | 0) + ($335 >> 1) >> 0] | 0; + $342 = $341 ^ $335 & 1; + $343 = $342 & 255; + $344 = HEAP8[528] | 0; + $345 = $344 & 255; + if (!($343 << 24 >> 24 == $344 << 24 >> 24 & ($345 >>> 1 ^ 1) | $345 & 2 & $342)) { + label = 56; + break; + } + HEAP32[$0 >> 2] = HEAP32[$23 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($28, $0); + } + if ((label | 0) == 56) { + label = 0; + $356 = HEAP8[536] | 0; + $357 = $356 & 255; + if (($357 >>> 1 ^ 1) & $343 << 24 >> 24 == $356 << 24 >> 24 | $341 & 2 & $357) { + label = 57; + break L1; + } + if (($335 | 0) == -2) label = 59; else $388 = $335; + } + if ((label | 0) == 59) { + label = 0; + $371 = $29; + $377 = _i64Add(HEAP32[$371 >> 2] | 0, HEAP32[$371 + 4 >> 2] | 0, 1, 0) | 0; + $379 = $29; + HEAP32[$379 >> 2] = $377; + HEAP32[$379 + 4 >> 2] = tempRet0; + $383 = __ZN7Minisat6Solver13pickBranchLitEv($this) | 0; + if (($383 | 0) == -2) { + label = 60; + break L1; + } else $388 = $383; + } + HEAP32[$$byval_copy >> 2] = HEAP32[$23 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($28, $$byval_copy); + $387 = $388 >> 1; + HEAP8[(HEAP32[$27 >> 2] | 0) + $387 >> 0] = ($388 & 1 ^ 1) & 255 ^ 1; + $397 = HEAP32[$21 >> 2] | 0; + $398 = (HEAP32[$30 >> 2] | 0) + ($387 << 3) | 0; + HEAP32[$398 >> 2] = -1; + HEAP32[$398 + 4 >> 2] = $397; + $402 = HEAP32[$23 >> 2] | 0; + HEAP32[$23 >> 2] = $402 + 1; + HEAP32[(HEAP32[$31 >> 2] | 0) + ($402 << 2) >> 2] = $388; + } + $57 = $33; + $63 = _i64Add(HEAP32[$57 >> 2] | 0, HEAP32[$57 + 4 >> 2] | 0, 1, 0) | 0; + $65 = $33; + HEAP32[$65 >> 2] = $63; + HEAP32[$65 + 4 >> 2] = tempRet0; + $69 = $conflictC$0$ph + 1 | 0; + if (!(HEAP32[$21 >> 2] | 0)) { + label = 5; + break; + } + if (HEAP32[$learnt_clause >> 2] | 0) HEAP32[$2 >> 2] = 0; + __ZN7Minisat6Solver7analyzeEjRNS_3vecINS_3LitEiEERi($this, $55, $learnt_clause, $backtrack_level); + __ZN7Minisat6Solver11cancelUntilEi($this, HEAP32[$backtrack_level >> 2] | 0); + if ((HEAP32[$2 >> 2] | 0) == 1) { + $79 = HEAP32[HEAP32[$learnt_clause >> 2] >> 2] | 0; + $80 = $79 >> 1; + HEAP8[(HEAP32[$27 >> 2] | 0) + $80 >> 0] = ($79 & 1 ^ 1) & 255 ^ 1; + $89 = HEAP32[$21 >> 2] | 0; + $90 = (HEAP32[$30 >> 2] | 0) + ($80 << 3) | 0; + HEAP32[$90 >> 2] = -1; + HEAP32[$90 + 4 >> 2] = $89; + $94 = HEAP32[$23 >> 2] | 0; + HEAP32[$23 >> 2] = $94 + 1; + HEAP32[(HEAP32[$31 >> 2] | 0) + ($94 << 2) >> 2] = $79; + } else { + $98 = __ZN7Minisat15ClauseAllocator5allocERKNS_3vecINS_3LitEiEEb($50, $learnt_clause, 1) | 0; + $99 = HEAP32[$22 >> 2] | 0; + if (($99 | 0) == (HEAP32[$51 >> 2] | 0)) { + $104 = ($99 >> 1) + 2 & -2; + $106 = ($104 | 0) < 2 ? 2 : $104; + if (($106 | 0) > (2147483647 - $99 | 0)) { + label = 14; + break; + } + $109 = HEAP32[$52 >> 2] | 0; + $110 = $106 + $99 | 0; + HEAP32[$51 >> 2] = $110; + $112 = _realloc($109, $110 << 2) | 0; + HEAP32[$52 >> 2] = $112; + if (!$112) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + label = 14; + break; + } + $119 = HEAP32[$22 >> 2] | 0; + } else $119 = $99; + HEAP32[$22 >> 2] = $119 + 1; + $121 = (HEAP32[$52 >> 2] | 0) + ($119 << 2) | 0; + if ($121) HEAP32[$121 >> 2] = $98; + __ZN7Minisat6Solver12attachClauseEj($this, $98); + $123 = HEAP32[$50 >> 2] | 0; + $124 = $123 + ($98 << 2) | 0; + $125 = +HEAPF64[$37 >> 3]; + $128 = $124 + ((HEAP32[$124 >> 2] | 0) >>> 5 << 2) + 4 | 0; + $132 = $125 + +HEAPF32[$128 >> 2]; + HEAPF32[$128 >> 2] = $132; + if ($132 > 1.0e20) { + $135 = HEAP32[$22 >> 2] | 0; + if (($135 | 0) > 0) { + $$pre$i13 = HEAP32[$53 >> 2] | 0; + $i$01$i = 0; + do { + $139 = $123 + (HEAP32[$$pre$i13 + ($i$01$i << 2) >> 2] << 2) | 0; + $142 = $139 + ((HEAP32[$139 >> 2] | 0) >>> 5 << 2) + 4 | 0; + HEAPF32[$142 >> 2] = +HEAPF32[$142 >> 2] * 1.0e-20; + $i$01$i = $i$01$i + 1 | 0; + } while (($i$01$i | 0) != ($135 | 0)); + } + HEAPF64[$37 >> 3] = $125 * 1.0e-20; + } + $150 = HEAP32[HEAP32[$learnt_clause >> 2] >> 2] | 0; + $151 = $150 >> 1; + HEAP8[(HEAP32[$27 >> 2] | 0) + $151 >> 0] = ($150 & 1 ^ 1) & 255 ^ 1; + $160 = HEAP32[$21 >> 2] | 0; + $161 = (HEAP32[$30 >> 2] | 0) + ($151 << 3) | 0; + HEAP32[$161 >> 2] = $98; + HEAP32[$161 + 4 >> 2] = $160; + $165 = HEAP32[$23 >> 2] | 0; + HEAP32[$23 >> 2] = $165 + 1; + HEAP32[(HEAP32[$31 >> 2] | 0) + ($165 << 2) >> 2] = $150; + } + HEAPF64[$35 >> 3] = 1.0 / +HEAPF64[$34 >> 3] * +HEAPF64[$35 >> 3]; + HEAPF64[$37 >> 3] = 1.0 / +HEAPF64[$36 >> 3] * +HEAPF64[$37 >> 3]; + $178 = (HEAP32[$38 >> 2] | 0) + -1 | 0; + HEAP32[$38 >> 2] = $178; + if ($178) { + $conflictC$0$ph = $69; + continue; + } + $182 = +HEAPF64[$39 >> 3] * +HEAPF64[$40 >> 3]; + HEAPF64[$40 >> 3] = $182; + HEAP32[$38 >> 2] = ~~$182; + $186 = +HEAPF64[$41 >> 3] * +HEAPF64[$24 >> 3]; + HEAPF64[$24 >> 3] = $186; + if ((HEAP32[$42 >> 2] | 0) <= 0) { + $conflictC$0$ph = $69; + continue; + } + $191 = HEAP32[$33 >> 2] | 0; + $197 = HEAP32[$43 >> 2] | 0; + $201 = HEAP32[$21 >> 2] | 0; + if (!$201) $$in = $23; else $$in = HEAP32[$49 >> 2] | 0; + $204 = HEAP32[$$in >> 2] | 0; + $207 = HEAP32[$44 >> 2] | 0; + $213 = HEAP32[$45 >> 2] | 0; + $219 = HEAP32[$46 >> 2] | 0; + $223 = $47; + $225 = HEAP32[$223 >> 2] | 0; + $228 = HEAP32[$223 + 4 >> 2] | 0; + $230 = +(HEAP32[$48 >> 2] | 0); + $231 = 1.0 / $230; + if (($201 | 0) < 0) $progress$0$lcssa$i23 = 0.0; else { + $i$01$i21 = 0; + $progress$02$i20 = 0.0; + while (1) { + if (!$i$01$i21) $245 = 0; else $245 = HEAP32[(HEAP32[$49 >> 2] | 0) + ($i$01$i21 + -1 << 2) >> 2] | 0; + if (($i$01$i21 | 0) == ($201 | 0)) $$in$i22 = $23; else $$in$i22 = (HEAP32[$49 >> 2] | 0) + ($i$01$i21 << 2) | 0; + $248 = $progress$02$i20 + +Math_pow(+$231, +(+($i$01$i21 | 0))) * +((HEAP32[$$in$i22 >> 2] | 0) - $245 | 0); + if (($i$01$i21 | 0) == ($201 | 0)) { + $progress$0$lcssa$i23 = $248; + break; + } else { + $i$01$i21 = $i$01$i21 + 1 | 0; + $progress$02$i20 = $248; + } + } + } + HEAP32[$$byval_copy >> 2] = $191; + HEAP32[$$byval_copy + 4 >> 2] = $197 - $204; + HEAP32[$$byval_copy + 8 >> 2] = $207; + HEAP32[$$byval_copy + 12 >> 2] = $213; + HEAP32[$$byval_copy + 16 >> 2] = ~~$186; + HEAP32[$$byval_copy + 20 >> 2] = $219; + $vararg_ptr6 = $$byval_copy + 24 | 0; + HEAPF64[tempDoublePtr >> 3] = (+($225 >>> 0) + 4294967296.0 * +($228 >>> 0)) / +($219 | 0); + HEAP32[$vararg_ptr6 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_ptr6 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + $vararg_ptr7 = $$byval_copy + 32 | 0; + HEAPF64[tempDoublePtr >> 3] = $progress$0$lcssa$i23 / $230 * 100.0; + HEAP32[$vararg_ptr7 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_ptr7 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + _printf(1832, $$byval_copy | 0) | 0; + $conflictC$0$ph = $69; + } + if ((label | 0) == 5) HEAP8[$agg$result >> 0] = HEAP8[536] | 0; else if ((label | 0) == 14) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); else if ((label | 0) == 41) { + $296 = +(HEAP32[$48 >> 2] | 0); + $297 = 1.0 / $296; + $298 = HEAP32[$21 >> 2] | 0; + if (($298 | 0) < 0) $progress$0$lcssa$i = 0.0; else { + $i$01$i17 = 0; + $progress$02$i = 0.0; + while (1) { + if (!$i$01$i17) $312 = 0; else $312 = HEAP32[(HEAP32[$49 >> 2] | 0) + ($i$01$i17 + -1 << 2) >> 2] | 0; + if (($i$01$i17 | 0) == ($298 | 0)) $$in$i = $23; else $$in$i = (HEAP32[$49 >> 2] | 0) + ($i$01$i17 << 2) | 0; + $315 = $progress$02$i + +Math_pow(+$297, +(+($i$01$i17 | 0))) * +((HEAP32[$$in$i >> 2] | 0) - $312 | 0); + if (($i$01$i17 | 0) == ($298 | 0)) { + $progress$0$lcssa$i = $315; + break; + } else { + $i$01$i17 = $i$01$i17 + 1 | 0; + $progress$02$i = $315; + } + } + } + HEAPF64[$this + 528 >> 3] = $progress$0$lcssa$i / $296; + __ZN7Minisat6Solver11cancelUntilEi($this, 0); + HEAP8[$agg$result >> 0] = HEAP8[544] | 0; + } else if ((label | 0) == 50) HEAP8[$agg$result >> 0] = HEAP8[536] | 0; else if ((label | 0) == 57) { + HEAP32[$1 >> 2] = $335 ^ 1; + $368 = $this + 16 | 0; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$1 + 0 >> 2]; + __ZN7Minisat6Solver12analyzeFinalENS_3LitERNS_4LSetE($this, $$byval_copy, $368); + HEAP8[$agg$result >> 0] = HEAP8[536] | 0; + } else if ((label | 0) == 60) HEAP8[$agg$result >> 0] = HEAP8[528] | 0; + $406 = HEAP32[$learnt_clause >> 2] | 0; + if (!$406) { + STACKTOP = sp; + return; + } + HEAP32[$2 >> 2] = 0; + _free($406); + HEAP32[$learnt_clause >> 2] = 0; + HEAP32[$3 >> 2] = 0; + STACKTOP = sp; + return; +} +function _free($mem) { + $mem = $mem | 0; + var $$pre$phi68Z2D = 0, $$pre$phi70Z2D = 0, $$pre$phiZ2D = 0, $$sum2 = 0, $1 = 0, $104 = 0, $113 = 0, $114 = 0, $12 = 0, $122 = 0, $130 = 0, $135 = 0, $136 = 0, $139 = 0, $14 = 0, $141 = 0, $143 = 0, $15 = 0, $158 = 0, $163 = 0, $165 = 0, $168 = 0, $171 = 0, $174 = 0, $177 = 0, $178 = 0, $180 = 0, $181 = 0, $183 = 0, $184 = 0, $186 = 0, $187 = 0, $19 = 0, $193 = 0, $194 = 0, $2 = 0, $203 = 0, $212 = 0, $219 = 0, $22 = 0, $234 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $250 = 0, $255 = 0, $256 = 0, $259 = 0, $26 = 0, $261 = 0, $264 = 0, $269 = 0, $275 = 0, $279 = 0, $280 = 0, $287 = 0, $296 = 0, $299 = 0, $304 = 0, $311 = 0, $312 = 0, $313 = 0, $321 = 0, $39 = 0, $44 = 0, $46 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $63 = 0, $64 = 0, $66 = 0, $67 = 0, $72 = 0, $73 = 0, $8 = 0, $82 = 0, $9 = 0, $91 = 0, $98 = 0, $F16$0 = 0, $I18$0 = 0, $K19$057 = 0, $R$0 = 0, $R$1 = 0, $R7$0 = 0, $R7$1 = 0, $RP$0 = 0, $RP9$0 = 0, $T$0$lcssa = 0, $T$056 = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0, sp = 0; + sp = STACKTOP; + if (!$mem) { + STACKTOP = sp; + return; + } + $1 = $mem + -8 | 0; + $2 = HEAP32[1210] | 0; + if ($1 >>> 0 < $2 >>> 0) _abort(); + $5 = HEAP32[$mem + -4 >> 2] | 0; + $6 = $5 & 3; + if (($6 | 0) == 1) _abort(); + $8 = $5 & -8; + $9 = $mem + ($8 + -8) | 0; + do if (!($5 & 1)) { + $12 = HEAP32[$1 >> 2] | 0; + if (!$6) { + STACKTOP = sp; + return; + } + $$sum2 = -8 - $12 | 0; + $14 = $mem + $$sum2 | 0; + $15 = $12 + $8 | 0; + if ($14 >>> 0 < $2 >>> 0) _abort(); + if (($14 | 0) == (HEAP32[1211] | 0)) { + $104 = $mem + ($8 + -4) | 0; + if ((HEAP32[$104 >> 2] & 3 | 0) != 3) { + $p$0 = $14; + $psize$0 = $15; + break; + } + HEAP32[1208] = $15; + HEAP32[$104 >> 2] = HEAP32[$104 >> 2] & -2; + HEAP32[$mem + ($$sum2 + 4) >> 2] = $15 | 1; + HEAP32[$9 >> 2] = $15; + STACKTOP = sp; + return; + } + $19 = $12 >>> 3; + if ($12 >>> 0 < 256) { + $22 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; + $24 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; + $26 = 4864 + ($19 << 1 << 2) | 0; + if (($22 | 0) != ($26 | 0)) { + if ($22 >>> 0 < $2 >>> 0) _abort(); + if ((HEAP32[$22 + 12 >> 2] | 0) != ($14 | 0)) _abort(); + } + if (($24 | 0) == ($22 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $19); + $p$0 = $14; + $psize$0 = $15; + break; + } + if (($24 | 0) == ($26 | 0)) $$pre$phi70Z2D = $24 + 8 | 0; else { + if ($24 >>> 0 < $2 >>> 0) _abort(); + $39 = $24 + 8 | 0; + if ((HEAP32[$39 >> 2] | 0) == ($14 | 0)) $$pre$phi70Z2D = $39; else _abort(); + } + HEAP32[$22 + 12 >> 2] = $24; + HEAP32[$$pre$phi70Z2D >> 2] = $22; + $p$0 = $14; + $psize$0 = $15; + break; + } + $44 = HEAP32[$mem + ($$sum2 + 24) >> 2] | 0; + $46 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; + do if (($46 | 0) == ($14 | 0)) { + $57 = $mem + ($$sum2 + 20) | 0; + $58 = HEAP32[$57 >> 2] | 0; + if (!$58) { + $60 = $mem + ($$sum2 + 16) | 0; + $61 = HEAP32[$60 >> 2] | 0; + if (!$61) { + $R$1 = 0; + break; + } else { + $R$0 = $61; + $RP$0 = $60; + } + } else { + $R$0 = $58; + $RP$0 = $57; + } + while (1) { + $63 = $R$0 + 20 | 0; + $64 = HEAP32[$63 >> 2] | 0; + if ($64) { + $R$0 = $64; + $RP$0 = $63; + continue; + } + $66 = $R$0 + 16 | 0; + $67 = HEAP32[$66 >> 2] | 0; + if (!$67) break; else { + $R$0 = $67; + $RP$0 = $66; + } + } + if ($RP$0 >>> 0 < $2 >>> 0) _abort(); else { + HEAP32[$RP$0 >> 2] = 0; + $R$1 = $R$0; + break; + } + } else { + $49 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; + if ($49 >>> 0 < $2 >>> 0) _abort(); + $51 = $49 + 12 | 0; + if ((HEAP32[$51 >> 2] | 0) != ($14 | 0)) _abort(); + $54 = $46 + 8 | 0; + if ((HEAP32[$54 >> 2] | 0) == ($14 | 0)) { + HEAP32[$51 >> 2] = $46; + HEAP32[$54 >> 2] = $49; + $R$1 = $46; + break; + } else _abort(); + } while (0); + if (!$44) { + $p$0 = $14; + $psize$0 = $15; + } else { + $72 = HEAP32[$mem + ($$sum2 + 28) >> 2] | 0; + $73 = 5128 + ($72 << 2) | 0; + if (($14 | 0) == (HEAP32[$73 >> 2] | 0)) { + HEAP32[$73 >> 2] = $R$1; + if (!$R$1) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $72); + $p$0 = $14; + $psize$0 = $15; + break; + } + } else { + if ($44 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $82 = $44 + 16 | 0; + if ((HEAP32[$82 >> 2] | 0) == ($14 | 0)) HEAP32[$82 >> 2] = $R$1; else HEAP32[$44 + 20 >> 2] = $R$1; + if (!$R$1) { + $p$0 = $14; + $psize$0 = $15; + break; + } + } + if ($R$1 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $44; + $91 = HEAP32[$mem + ($$sum2 + 16) >> 2] | 0; + do if ($91) if ($91 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $91; + HEAP32[$91 + 24 >> 2] = $R$1; + break; + } while (0); + $98 = HEAP32[$mem + ($$sum2 + 20) >> 2] | 0; + if (!$98) { + $p$0 = $14; + $psize$0 = $15; + } else if ($98 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $98; + HEAP32[$98 + 24 >> 2] = $R$1; + $p$0 = $14; + $psize$0 = $15; + break; + } + } + } else { + $p$0 = $1; + $psize$0 = $8; + } while (0); + if ($p$0 >>> 0 >= $9 >>> 0) _abort(); + $113 = $mem + ($8 + -4) | 0; + $114 = HEAP32[$113 >> 2] | 0; + if (!($114 & 1)) _abort(); + if (!($114 & 2)) { + if (($9 | 0) == (HEAP32[1212] | 0)) { + $122 = (HEAP32[1209] | 0) + $psize$0 | 0; + HEAP32[1209] = $122; + HEAP32[1212] = $p$0; + HEAP32[$p$0 + 4 >> 2] = $122 | 1; + if (($p$0 | 0) != (HEAP32[1211] | 0)) { + STACKTOP = sp; + return; + } + HEAP32[1211] = 0; + HEAP32[1208] = 0; + STACKTOP = sp; + return; + } + if (($9 | 0) == (HEAP32[1211] | 0)) { + $130 = (HEAP32[1208] | 0) + $psize$0 | 0; + HEAP32[1208] = $130; + HEAP32[1211] = $p$0; + HEAP32[$p$0 + 4 >> 2] = $130 | 1; + HEAP32[$p$0 + $130 >> 2] = $130; + STACKTOP = sp; + return; + } + $135 = ($114 & -8) + $psize$0 | 0; + $136 = $114 >>> 3; + do if ($114 >>> 0 < 256) { + $139 = HEAP32[$mem + $8 >> 2] | 0; + $141 = HEAP32[$mem + ($8 | 4) >> 2] | 0; + $143 = 4864 + ($136 << 1 << 2) | 0; + if (($139 | 0) != ($143 | 0)) { + if ($139 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + if ((HEAP32[$139 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + } + if (($141 | 0) == ($139 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $136); + break; + } + if (($141 | 0) == ($143 | 0)) $$pre$phi68Z2D = $141 + 8 | 0; else { + if ($141 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $158 = $141 + 8 | 0; + if ((HEAP32[$158 >> 2] | 0) == ($9 | 0)) $$pre$phi68Z2D = $158; else _abort(); + } + HEAP32[$139 + 12 >> 2] = $141; + HEAP32[$$pre$phi68Z2D >> 2] = $139; + } else { + $163 = HEAP32[$mem + ($8 + 16) >> 2] | 0; + $165 = HEAP32[$mem + ($8 | 4) >> 2] | 0; + do if (($165 | 0) == ($9 | 0)) { + $177 = $mem + ($8 + 12) | 0; + $178 = HEAP32[$177 >> 2] | 0; + if (!$178) { + $180 = $mem + ($8 + 8) | 0; + $181 = HEAP32[$180 >> 2] | 0; + if (!$181) { + $R7$1 = 0; + break; + } else { + $R7$0 = $181; + $RP9$0 = $180; + } + } else { + $R7$0 = $178; + $RP9$0 = $177; + } + while (1) { + $183 = $R7$0 + 20 | 0; + $184 = HEAP32[$183 >> 2] | 0; + if ($184) { + $R7$0 = $184; + $RP9$0 = $183; + continue; + } + $186 = $R7$0 + 16 | 0; + $187 = HEAP32[$186 >> 2] | 0; + if (!$187) break; else { + $R7$0 = $187; + $RP9$0 = $186; + } + } + if ($RP9$0 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$RP9$0 >> 2] = 0; + $R7$1 = $R7$0; + break; + } + } else { + $168 = HEAP32[$mem + $8 >> 2] | 0; + if ($168 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $171 = $168 + 12 | 0; + if ((HEAP32[$171 >> 2] | 0) != ($9 | 0)) _abort(); + $174 = $165 + 8 | 0; + if ((HEAP32[$174 >> 2] | 0) == ($9 | 0)) { + HEAP32[$171 >> 2] = $165; + HEAP32[$174 >> 2] = $168; + $R7$1 = $165; + break; + } else _abort(); + } while (0); + if ($163) { + $193 = HEAP32[$mem + ($8 + 20) >> 2] | 0; + $194 = 5128 + ($193 << 2) | 0; + if (($9 | 0) == (HEAP32[$194 >> 2] | 0)) { + HEAP32[$194 >> 2] = $R7$1; + if (!$R7$1) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $193); + break; + } + } else { + if ($163 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $203 = $163 + 16 | 0; + if ((HEAP32[$203 >> 2] | 0) == ($9 | 0)) HEAP32[$203 >> 2] = $R7$1; else HEAP32[$163 + 20 >> 2] = $R7$1; + if (!$R7$1) break; + } + if ($R7$1 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R7$1 + 24 >> 2] = $163; + $212 = HEAP32[$mem + ($8 + 8) >> 2] | 0; + do if ($212) if ($212 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 16 >> 2] = $212; + HEAP32[$212 + 24 >> 2] = $R7$1; + break; + } while (0); + $219 = HEAP32[$mem + ($8 + 12) >> 2] | 0; + if ($219) if ($219 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 20 >> 2] = $219; + HEAP32[$219 + 24 >> 2] = $R7$1; + break; + } + } + } while (0); + HEAP32[$p$0 + 4 >> 2] = $135 | 1; + HEAP32[$p$0 + $135 >> 2] = $135; + if (($p$0 | 0) == (HEAP32[1211] | 0)) { + HEAP32[1208] = $135; + STACKTOP = sp; + return; + } else $psize$1 = $135; + } else { + HEAP32[$113 >> 2] = $114 & -2; + HEAP32[$p$0 + 4 >> 2] = $psize$0 | 1; + HEAP32[$p$0 + $psize$0 >> 2] = $psize$0; + $psize$1 = $psize$0; + } + $234 = $psize$1 >>> 3; + if ($psize$1 >>> 0 < 256) { + $236 = $234 << 1; + $237 = 4864 + ($236 << 2) | 0; + $238 = HEAP32[1206] | 0; + $239 = 1 << $234; + if (!($238 & $239)) { + HEAP32[1206] = $238 | $239; + $$pre$phiZ2D = 4864 + ($236 + 2 << 2) | 0; + $F16$0 = $237; + } else { + $243 = 4864 + ($236 + 2 << 2) | 0; + $244 = HEAP32[$243 >> 2] | 0; + if ($244 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $243; + $F16$0 = $244; + } + } + HEAP32[$$pre$phiZ2D >> 2] = $p$0; + HEAP32[$F16$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $F16$0; + HEAP32[$p$0 + 12 >> 2] = $237; + STACKTOP = sp; + return; + } + $250 = $psize$1 >>> 8; + if (!$250) $I18$0 = 0; else if ($psize$1 >>> 0 > 16777215) $I18$0 = 31; else { + $255 = ($250 + 1048320 | 0) >>> 16 & 8; + $256 = $250 << $255; + $259 = ($256 + 520192 | 0) >>> 16 & 4; + $261 = $256 << $259; + $264 = ($261 + 245760 | 0) >>> 16 & 2; + $269 = 14 - ($259 | $255 | $264) + ($261 << $264 >>> 15) | 0; + $I18$0 = $psize$1 >>> ($269 + 7 | 0) & 1 | $269 << 1; + } + $275 = 5128 + ($I18$0 << 2) | 0; + HEAP32[$p$0 + 28 >> 2] = $I18$0; + HEAP32[$p$0 + 20 >> 2] = 0; + HEAP32[$p$0 + 16 >> 2] = 0; + $279 = HEAP32[1207] | 0; + $280 = 1 << $I18$0; + L199 : do if (!($279 & $280)) { + HEAP32[1207] = $279 | $280; + HEAP32[$275 >> 2] = $p$0; + HEAP32[$p$0 + 24 >> 2] = $275; + HEAP32[$p$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $p$0; + } else { + $287 = HEAP32[$275 >> 2] | 0; + if (($I18$0 | 0) == 31) $296 = 0; else $296 = 25 - ($I18$0 >>> 1) | 0; + L205 : do if ((HEAP32[$287 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) $T$0$lcssa = $287; else { + $K19$057 = $psize$1 << $296; + $T$056 = $287; + while (1) { + $304 = $T$056 + ($K19$057 >>> 31 << 2) + 16 | 0; + $299 = HEAP32[$304 >> 2] | 0; + if (!$299) break; + if ((HEAP32[$299 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) { + $T$0$lcssa = $299; + break L205; + } else { + $K19$057 = $K19$057 << 1; + $T$056 = $299; + } + } + if ($304 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$304 >> 2] = $p$0; + HEAP32[$p$0 + 24 >> 2] = $T$056; + HEAP32[$p$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $p$0; + break L199; + } + } while (0); + $311 = $T$0$lcssa + 8 | 0; + $312 = HEAP32[$311 >> 2] | 0; + $313 = HEAP32[1210] | 0; + if ($T$0$lcssa >>> 0 < $313 >>> 0) _abort(); + if ($312 >>> 0 < $313 >>> 0) _abort(); else { + HEAP32[$312 + 12 >> 2] = $p$0; + HEAP32[$311 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $312; + HEAP32[$p$0 + 12 >> 2] = $T$0$lcssa; + HEAP32[$p$0 + 24 >> 2] = 0; + break; + } + } while (0); + $321 = (HEAP32[1214] | 0) + -1 | 0; + HEAP32[1214] = $321; + if (!$321) $sp$0$in$i = 5280 | 0; else { + STACKTOP = sp; + return; + } + while (1) { + $sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0; + if (!$sp$0$i) break; else $sp$0$in$i = $sp$0$i + 8 | 0; + } + HEAP32[1214] = -1; + STACKTOP = sp; + return; +} +function _dispose_chunk($p, $psize) { + $p = $p | 0; + $psize = $psize | 0; + var $$0 = 0, $$02 = 0, $$1 = 0, $$pre$phi63Z2D = 0, $$pre$phi65Z2D = 0, $$pre$phiZ2D = 0, $$sum24 = 0, $$sum27 = 0, $0 = 0, $10 = 0, $100 = 0, $108 = 0, $11 = 0, $110 = 0, $111 = 0, $117 = 0, $125 = 0, $130 = 0, $131 = 0, $134 = 0, $136 = 0, $138 = 0, $15 = 0, $151 = 0, $156 = 0, $158 = 0, $161 = 0, $163 = 0, $166 = 0, $169 = 0, $170 = 0, $172 = 0, $173 = 0, $175 = 0, $176 = 0, $178 = 0, $179 = 0, $18 = 0, $184 = 0, $185 = 0, $194 = 0, $2 = 0, $20 = 0, $203 = 0, $210 = 0, $22 = 0, $225 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $234 = 0, $235 = 0, $241 = 0, $246 = 0, $247 = 0, $250 = 0, $252 = 0, $255 = 0, $260 = 0, $266 = 0, $270 = 0, $271 = 0, $278 = 0, $287 = 0, $290 = 0, $295 = 0, $302 = 0, $303 = 0, $304 = 0, $35 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $62 = 0, $63 = 0, $68 = 0, $69 = 0, $78 = 0, $87 = 0, $9 = 0, $94 = 0, $F16$0 = 0, $I19$0 = 0, $K20$049 = 0, $R$0 = 0, $R$1 = 0, $R7$0 = 0, $R7$1 = 0, $RP$0 = 0, $RP9$0 = 0, $T$0$lcssa = 0, $T$048 = 0, sp = 0; + sp = STACKTOP; + $0 = $p + $psize | 0; + $2 = HEAP32[$p + 4 >> 2] | 0; + do if (!($2 & 1)) { + $5 = HEAP32[$p >> 2] | 0; + if (!($2 & 3)) { + STACKTOP = sp; + return; + } + $9 = $p + (0 - $5) | 0; + $10 = $5 + $psize | 0; + $11 = HEAP32[1210] | 0; + if ($9 >>> 0 < $11 >>> 0) _abort(); + if (($9 | 0) == (HEAP32[1211] | 0)) { + $100 = $p + ($psize + 4) | 0; + if ((HEAP32[$100 >> 2] & 3 | 0) != 3) { + $$0 = $9; + $$02 = $10; + break; + } + HEAP32[1208] = $10; + HEAP32[$100 >> 2] = HEAP32[$100 >> 2] & -2; + HEAP32[$p + (4 - $5) >> 2] = $10 | 1; + HEAP32[$0 >> 2] = $10; + STACKTOP = sp; + return; + } + $15 = $5 >>> 3; + if ($5 >>> 0 < 256) { + $18 = HEAP32[$p + (8 - $5) >> 2] | 0; + $20 = HEAP32[$p + (12 - $5) >> 2] | 0; + $22 = 4864 + ($15 << 1 << 2) | 0; + if (($18 | 0) != ($22 | 0)) { + if ($18 >>> 0 < $11 >>> 0) _abort(); + if ((HEAP32[$18 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + } + if (($20 | 0) == ($18 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $15); + $$0 = $9; + $$02 = $10; + break; + } + if (($20 | 0) == ($22 | 0)) $$pre$phi65Z2D = $20 + 8 | 0; else { + if ($20 >>> 0 < $11 >>> 0) _abort(); + $35 = $20 + 8 | 0; + if ((HEAP32[$35 >> 2] | 0) == ($9 | 0)) $$pre$phi65Z2D = $35; else _abort(); + } + HEAP32[$18 + 12 >> 2] = $20; + HEAP32[$$pre$phi65Z2D >> 2] = $18; + $$0 = $9; + $$02 = $10; + break; + } + $40 = HEAP32[$p + (24 - $5) >> 2] | 0; + $42 = HEAP32[$p + (12 - $5) >> 2] | 0; + do if (($42 | 0) == ($9 | 0)) { + $$sum24 = 16 - $5 | 0; + $53 = $p + ($$sum24 + 4) | 0; + $54 = HEAP32[$53 >> 2] | 0; + if (!$54) { + $56 = $p + $$sum24 | 0; + $57 = HEAP32[$56 >> 2] | 0; + if (!$57) { + $R$1 = 0; + break; + } else { + $R$0 = $57; + $RP$0 = $56; + } + } else { + $R$0 = $54; + $RP$0 = $53; + } + while (1) { + $59 = $R$0 + 20 | 0; + $60 = HEAP32[$59 >> 2] | 0; + if ($60) { + $R$0 = $60; + $RP$0 = $59; + continue; + } + $62 = $R$0 + 16 | 0; + $63 = HEAP32[$62 >> 2] | 0; + if (!$63) break; else { + $R$0 = $63; + $RP$0 = $62; + } + } + if ($RP$0 >>> 0 < $11 >>> 0) _abort(); else { + HEAP32[$RP$0 >> 2] = 0; + $R$1 = $R$0; + break; + } + } else { + $45 = HEAP32[$p + (8 - $5) >> 2] | 0; + if ($45 >>> 0 < $11 >>> 0) _abort(); + $47 = $45 + 12 | 0; + if ((HEAP32[$47 >> 2] | 0) != ($9 | 0)) _abort(); + $50 = $42 + 8 | 0; + if ((HEAP32[$50 >> 2] | 0) == ($9 | 0)) { + HEAP32[$47 >> 2] = $42; + HEAP32[$50 >> 2] = $45; + $R$1 = $42; + break; + } else _abort(); + } while (0); + if (!$40) { + $$0 = $9; + $$02 = $10; + } else { + $68 = HEAP32[$p + (28 - $5) >> 2] | 0; + $69 = 5128 + ($68 << 2) | 0; + if (($9 | 0) == (HEAP32[$69 >> 2] | 0)) { + HEAP32[$69 >> 2] = $R$1; + if (!$R$1) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $68); + $$0 = $9; + $$02 = $10; + break; + } + } else { + if ($40 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $78 = $40 + 16 | 0; + if ((HEAP32[$78 >> 2] | 0) == ($9 | 0)) HEAP32[$78 >> 2] = $R$1; else HEAP32[$40 + 20 >> 2] = $R$1; + if (!$R$1) { + $$0 = $9; + $$02 = $10; + break; + } + } + if ($R$1 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $40; + $$sum27 = 16 - $5 | 0; + $87 = HEAP32[$p + $$sum27 >> 2] | 0; + do if ($87) if ($87 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $87; + HEAP32[$87 + 24 >> 2] = $R$1; + break; + } while (0); + $94 = HEAP32[$p + ($$sum27 + 4) >> 2] | 0; + if (!$94) { + $$0 = $9; + $$02 = $10; + } else if ($94 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $94; + HEAP32[$94 + 24 >> 2] = $R$1; + $$0 = $9; + $$02 = $10; + break; + } + } + } else { + $$0 = $p; + $$02 = $psize; + } while (0); + $108 = HEAP32[1210] | 0; + if ($0 >>> 0 < $108 >>> 0) _abort(); + $110 = $p + ($psize + 4) | 0; + $111 = HEAP32[$110 >> 2] | 0; + if (!($111 & 2)) { + if (($0 | 0) == (HEAP32[1212] | 0)) { + $117 = (HEAP32[1209] | 0) + $$02 | 0; + HEAP32[1209] = $117; + HEAP32[1212] = $$0; + HEAP32[$$0 + 4 >> 2] = $117 | 1; + if (($$0 | 0) != (HEAP32[1211] | 0)) { + STACKTOP = sp; + return; + } + HEAP32[1211] = 0; + HEAP32[1208] = 0; + STACKTOP = sp; + return; + } + if (($0 | 0) == (HEAP32[1211] | 0)) { + $125 = (HEAP32[1208] | 0) + $$02 | 0; + HEAP32[1208] = $125; + HEAP32[1211] = $$0; + HEAP32[$$0 + 4 >> 2] = $125 | 1; + HEAP32[$$0 + $125 >> 2] = $125; + STACKTOP = sp; + return; + } + $130 = ($111 & -8) + $$02 | 0; + $131 = $111 >>> 3; + do if ($111 >>> 0 < 256) { + $134 = HEAP32[$p + ($psize + 8) >> 2] | 0; + $136 = HEAP32[$p + ($psize + 12) >> 2] | 0; + $138 = 4864 + ($131 << 1 << 2) | 0; + if (($134 | 0) != ($138 | 0)) { + if ($134 >>> 0 < $108 >>> 0) _abort(); + if ((HEAP32[$134 + 12 >> 2] | 0) != ($0 | 0)) _abort(); + } + if (($136 | 0) == ($134 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $131); + break; + } + if (($136 | 0) == ($138 | 0)) $$pre$phi63Z2D = $136 + 8 | 0; else { + if ($136 >>> 0 < $108 >>> 0) _abort(); + $151 = $136 + 8 | 0; + if ((HEAP32[$151 >> 2] | 0) == ($0 | 0)) $$pre$phi63Z2D = $151; else _abort(); + } + HEAP32[$134 + 12 >> 2] = $136; + HEAP32[$$pre$phi63Z2D >> 2] = $134; + } else { + $156 = HEAP32[$p + ($psize + 24) >> 2] | 0; + $158 = HEAP32[$p + ($psize + 12) >> 2] | 0; + do if (($158 | 0) == ($0 | 0)) { + $169 = $p + ($psize + 20) | 0; + $170 = HEAP32[$169 >> 2] | 0; + if (!$170) { + $172 = $p + ($psize + 16) | 0; + $173 = HEAP32[$172 >> 2] | 0; + if (!$173) { + $R7$1 = 0; + break; + } else { + $R7$0 = $173; + $RP9$0 = $172; + } + } else { + $R7$0 = $170; + $RP9$0 = $169; + } + while (1) { + $175 = $R7$0 + 20 | 0; + $176 = HEAP32[$175 >> 2] | 0; + if ($176) { + $R7$0 = $176; + $RP9$0 = $175; + continue; + } + $178 = $R7$0 + 16 | 0; + $179 = HEAP32[$178 >> 2] | 0; + if (!$179) break; else { + $R7$0 = $179; + $RP9$0 = $178; + } + } + if ($RP9$0 >>> 0 < $108 >>> 0) _abort(); else { + HEAP32[$RP9$0 >> 2] = 0; + $R7$1 = $R7$0; + break; + } + } else { + $161 = HEAP32[$p + ($psize + 8) >> 2] | 0; + if ($161 >>> 0 < $108 >>> 0) _abort(); + $163 = $161 + 12 | 0; + if ((HEAP32[$163 >> 2] | 0) != ($0 | 0)) _abort(); + $166 = $158 + 8 | 0; + if ((HEAP32[$166 >> 2] | 0) == ($0 | 0)) { + HEAP32[$163 >> 2] = $158; + HEAP32[$166 >> 2] = $161; + $R7$1 = $158; + break; + } else _abort(); + } while (0); + if ($156) { + $184 = HEAP32[$p + ($psize + 28) >> 2] | 0; + $185 = 5128 + ($184 << 2) | 0; + if (($0 | 0) == (HEAP32[$185 >> 2] | 0)) { + HEAP32[$185 >> 2] = $R7$1; + if (!$R7$1) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $184); + break; + } + } else { + if ($156 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $194 = $156 + 16 | 0; + if ((HEAP32[$194 >> 2] | 0) == ($0 | 0)) HEAP32[$194 >> 2] = $R7$1; else HEAP32[$156 + 20 >> 2] = $R7$1; + if (!$R7$1) break; + } + if ($R7$1 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R7$1 + 24 >> 2] = $156; + $203 = HEAP32[$p + ($psize + 16) >> 2] | 0; + do if ($203) if ($203 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 16 >> 2] = $203; + HEAP32[$203 + 24 >> 2] = $R7$1; + break; + } while (0); + $210 = HEAP32[$p + ($psize + 20) >> 2] | 0; + if ($210) if ($210 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 20 >> 2] = $210; + HEAP32[$210 + 24 >> 2] = $R7$1; + break; + } + } + } while (0); + HEAP32[$$0 + 4 >> 2] = $130 | 1; + HEAP32[$$0 + $130 >> 2] = $130; + if (($$0 | 0) == (HEAP32[1211] | 0)) { + HEAP32[1208] = $130; + STACKTOP = sp; + return; + } else $$1 = $130; + } else { + HEAP32[$110 >> 2] = $111 & -2; + HEAP32[$$0 + 4 >> 2] = $$02 | 1; + HEAP32[$$0 + $$02 >> 2] = $$02; + $$1 = $$02; + } + $225 = $$1 >>> 3; + if ($$1 >>> 0 < 256) { + $227 = $225 << 1; + $228 = 4864 + ($227 << 2) | 0; + $229 = HEAP32[1206] | 0; + $230 = 1 << $225; + if (!($229 & $230)) { + HEAP32[1206] = $229 | $230; + $$pre$phiZ2D = 4864 + ($227 + 2 << 2) | 0; + $F16$0 = $228; + } else { + $234 = 4864 + ($227 + 2 << 2) | 0; + $235 = HEAP32[$234 >> 2] | 0; + if ($235 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $234; + $F16$0 = $235; + } + } + HEAP32[$$pre$phiZ2D >> 2] = $$0; + HEAP32[$F16$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $F16$0; + HEAP32[$$0 + 12 >> 2] = $228; + STACKTOP = sp; + return; + } + $241 = $$1 >>> 8; + if (!$241) $I19$0 = 0; else if ($$1 >>> 0 > 16777215) $I19$0 = 31; else { + $246 = ($241 + 1048320 | 0) >>> 16 & 8; + $247 = $241 << $246; + $250 = ($247 + 520192 | 0) >>> 16 & 4; + $252 = $247 << $250; + $255 = ($252 + 245760 | 0) >>> 16 & 2; + $260 = 14 - ($250 | $246 | $255) + ($252 << $255 >>> 15) | 0; + $I19$0 = $$1 >>> ($260 + 7 | 0) & 1 | $260 << 1; + } + $266 = 5128 + ($I19$0 << 2) | 0; + HEAP32[$$0 + 28 >> 2] = $I19$0; + HEAP32[$$0 + 20 >> 2] = 0; + HEAP32[$$0 + 16 >> 2] = 0; + $270 = HEAP32[1207] | 0; + $271 = 1 << $I19$0; + if (!($270 & $271)) { + HEAP32[1207] = $270 | $271; + HEAP32[$266 >> 2] = $$0; + HEAP32[$$0 + 24 >> 2] = $266; + HEAP32[$$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $$0; + STACKTOP = sp; + return; + } + $278 = HEAP32[$266 >> 2] | 0; + if (($I19$0 | 0) == 31) $287 = 0; else $287 = 25 - ($I19$0 >>> 1) | 0; + L194 : do if ((HEAP32[$278 + 4 >> 2] & -8 | 0) == ($$1 | 0)) $T$0$lcssa = $278; else { + $K20$049 = $$1 << $287; + $T$048 = $278; + while (1) { + $295 = $T$048 + ($K20$049 >>> 31 << 2) + 16 | 0; + $290 = HEAP32[$295 >> 2] | 0; + if (!$290) break; + if ((HEAP32[$290 + 4 >> 2] & -8 | 0) == ($$1 | 0)) { + $T$0$lcssa = $290; + break L194; + } else { + $K20$049 = $K20$049 << 1; + $T$048 = $290; + } + } + if ($295 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$295 >> 2] = $$0; + HEAP32[$$0 + 24 >> 2] = $T$048; + HEAP32[$$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $$0; + STACKTOP = sp; + return; + } while (0); + $302 = $T$0$lcssa + 8 | 0; + $303 = HEAP32[$302 >> 2] | 0; + $304 = HEAP32[1210] | 0; + if ($T$0$lcssa >>> 0 < $304 >>> 0) _abort(); + if ($303 >>> 0 < $304 >>> 0) _abort(); + HEAP32[$303 + 12 >> 2] = $$0; + HEAP32[$302 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $303; + HEAP32[$$0 + 12 >> 2] = $T$0$lcssa; + HEAP32[$$0 + 24 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver9propagateEv($this) { + $this = $this | 0; + var $$lcssa2$i$i = 0, $$pre4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $11 = 0, $116 = 0, $12 = 0, $124 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $131 = 0, $133 = 0, $138 = 0, $139 = 0, $14 = 0, $146 = 0, $147 = 0, $153 = 0, $161 = 0, $167 = 0, $168 = 0, $17 = 0, $173 = 0, $174 = 0, $178 = 0, $180 = 0, $181 = 0, $184 = 0, $186 = 0, $187 = 0, $199 = 0, $2 = 0, $200 = 0, $201 = 0, $206 = 0, $207 = 0, $217 = 0, $218 = 0, $22 = 0, $222 = 0, $228 = 0, $23 = 0, $230 = 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, $250 = 0, $251 = 0, $252 = 0, $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, $27 = 0, $28 = 0, $38 = 0, $43 = 0, $44 = 0, $48 = 0, $5 = 0, $50 = 0, $51 = 0, $56 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $63 = 0, $66 = 0, $7 = 0, $73 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $80 = 0, $88 = 0, $9 = 0, $93 = 0, $94 = 0, $99 = 0, $confl$0$lcssa = 0, $confl$098 = 0, $confl$1$ph$ph89 = 0, $confl$1$ph$ph93 = 0, $i$0$lcssa = 0, $i$0$lcssa$i$i = 0, $i$0$ph$be = 0, $i$0$ph$ph92 = 0, $i$0$ph80 = 0, $i$03$i$i = 0, $i$065 = 0, $i$1$lcssa = 0, $i$143 = 0, $j$0$lcssa$i$i = 0, $j$0$ph$be = 0, $j$0$ph$ph91 = 0, $j$0$ph72 = 0, $j$0$ph78 = 0, $j$04$i$i = 0, $j$1$i$i = 0, $j$1$lcssa = 0, $j$142 = 0, $k$041 = 0, $num_props$097 = 0, $w = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $w = sp; + $0 = $this + 512 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 284 | 0; + if (($1 | 0) >= (HEAP32[$2 >> 2] | 0)) { + $244 = 0; + $245 = 0; + $confl$0$lcssa = -1; + $237 = $this + 184 | 0; + $238 = $237; + $239 = $238; + $240 = HEAP32[$239 >> 2] | 0; + $241 = $238 + 4 | 0; + $242 = $241; + $243 = HEAP32[$242 >> 2] | 0; + $246 = _i64Add($240 | 0, $243 | 0, $244 | 0, $245 | 0) | 0; + $247 = tempRet0; + $248 = $237; + $249 = $248; + HEAP32[$249 >> 2] = $246; + $250 = $248 + 4 | 0; + $251 = $250; + HEAP32[$251 >> 2] = $247; + $252 = $this + 520 | 0; + $253 = $252; + $254 = $253; + $255 = HEAP32[$254 >> 2] | 0; + $256 = $253 + 4 | 0; + $257 = $256; + $258 = HEAP32[$257 >> 2] | 0; + $259 = _i64Subtract($255 | 0, $258 | 0, $244 | 0, $245 | 0) | 0; + $260 = tempRet0; + $261 = $252; + $262 = $261; + HEAP32[$262 >> 2] = $259; + $263 = $261 + 4 | 0; + $264 = $263; + HEAP32[$264 >> 2] = $260; + STACKTOP = sp; + return $confl$0$lcssa | 0; + } + $5 = $this + 280 | 0; + $6 = $this + 428 | 0; + $$pre4$i = $this + 412 | 0; + $7 = $this + 332 | 0; + $8 = $this + 544 | 0; + $9 = $w + 4 | 0; + $10 = $this + 396 | 0; + $11 = $this + 296 | 0; + $12 = $this + 456 | 0; + $14 = $1; + $confl$098 = -1; + $num_props$097 = 1; + while (1) { + HEAP32[$0 >> 2] = $14 + 1; + $17 = HEAP32[(HEAP32[$5 >> 2] | 0) + ($14 << 2) >> 2] | 0; + if (HEAP8[(HEAP32[$6 >> 2] | 0) + $17 >> 0] | 0) { + $22 = HEAP32[$$pre4$i >> 2] | 0; + $23 = $22 + ($17 * 12 | 0) + 4 | 0; + $24 = HEAP32[$23 >> 2] | 0; + if (($24 | 0) > 0) { + $26 = $22 + ($17 * 12 | 0) | 0; + $265 = $24; + $i$03$i$i = 0; + $j$04$i$i = 0; + while (1) { + $27 = HEAP32[$26 >> 2] | 0; + $28 = $27 + ($i$03$i$i << 3) | 0; + if ((HEAP32[(HEAP32[HEAP32[$12 >> 2] >> 2] | 0) + (HEAP32[$28 >> 2] << 2) >> 2] & 3 | 0) == 1) { + $50 = $265; + $j$1$i$i = $j$04$i$i; + } else { + $38 = $28; + $43 = HEAP32[$38 + 4 >> 2] | 0; + $44 = $27 + ($j$04$i$i << 3) | 0; + HEAP32[$44 >> 2] = HEAP32[$38 >> 2]; + HEAP32[$44 + 4 >> 2] = $43; + $50 = HEAP32[$23 >> 2] | 0; + $j$1$i$i = $j$04$i$i + 1 | 0; + } + $48 = $i$03$i$i + 1 | 0; + if (($48 | 0) < ($50 | 0)) { + $265 = $50; + $i$03$i$i = $48; + $j$04$i$i = $j$1$i$i; + } else { + $$lcssa2$i$i = $50; + $i$0$lcssa$i$i = $48; + $j$0$lcssa$i$i = $j$1$i$i; + break; + } + } + } else { + $$lcssa2$i$i = $24; + $i$0$lcssa$i$i = 0; + $j$0$lcssa$i$i = 0; + } + $51 = $i$0$lcssa$i$i - $j$0$lcssa$i$i | 0; + if (($51 | 0) > 0) HEAP32[$23 >> 2] = $$lcssa2$i$i - $51; + HEAP8[(HEAP32[$6 >> 2] | 0) + $17 >> 0] = 0; + } + $56 = HEAP32[$$pre4$i >> 2] | 0; + $58 = HEAP32[$56 + ($17 * 12 | 0) >> 2] | 0; + $59 = $56 + ($17 * 12 | 0) + 4 | 0; + $60 = HEAP32[$59 >> 2] | 0; + $61 = $58 + ($60 << 3) | 0; + L20 : do if (!$60) { + $confl$1$ph$ph89 = $confl$098; + $i$0$lcssa = $58; + $j$0$ph72 = $58; + } else { + $63 = $17 ^ 1; + $confl$1$ph$ph93 = $confl$098; + $i$0$ph$ph92 = $58; + $j$0$ph$ph91 = $58; + while (1) { + $i$0$ph80 = $i$0$ph$ph92; + $j$0$ph78 = $j$0$ph$ph91; + while (1) { + $i$065 = $i$0$ph80; + L26 : while (1) { + $66 = HEAP32[$i$065 + 4 >> 2] | 0; + $73 = HEAPU8[(HEAP32[$7 >> 2] | 0) + ($66 >> 1) >> 0] ^ $66 & 1; + $75 = HEAP8[528] | 0; + $76 = $75 & 255; + $77 = $76 & 2; + $80 = $76 >>> 1 ^ 1; + if (($73 & 255) << 24 >> 24 == $75 << 24 >> 24 & $80 | $77 & $73) { + label = 18; + break; + } + $99 = HEAP32[$i$065 >> 2] | 0; + $100 = HEAP32[$8 >> 2] | 0; + $101 = $100 + ($99 << 2) | 0; + $102 = $100 + ($99 + 1 << 2) | 0; + $103 = HEAP32[$102 >> 2] | 0; + if (($103 | 0) == ($63 | 0)) { + $105 = $100 + ($99 + 2 << 2) | 0; + $106 = HEAP32[$105 >> 2] | 0; + HEAP32[$102 >> 2] = $106; + HEAP32[$105 >> 2] = $63; + $108 = $106; + } else $108 = $103; + $107 = $i$065 + 8 | 0; + HEAP32[$w >> 2] = $99; + HEAP32[$9 >> 2] = $108; + if (($108 | 0) != ($66 | 0)) { + $116 = HEAPU8[(HEAP32[$7 >> 2] | 0) + ($108 >> 1) >> 0] ^ $108 & 1; + if (($116 & 255) << 24 >> 24 == $75 << 24 >> 24 & $80 | $77 & $116) { + label = 26; + break; + } + } + $124 = HEAP32[$101 >> 2] | 0; + if ($124 >>> 0 <= 95) { + label = 30; + break; + } + $126 = HEAP32[$7 >> 2] | 0; + $127 = HEAP8[536] | 0; + $128 = $127 & 255; + $129 = $128 & 2; + $131 = $128 >>> 1 ^ 1; + $k$041 = 2; + while (1) { + $146 = $101 + ($k$041 << 2) + 4 | 0; + $147 = HEAP32[$146 >> 2] | 0; + $153 = HEAPU8[$126 + ($147 >> 1) >> 0] ^ $147 & 1; + $k$041 = $k$041 + 1 | 0; + if (!(($153 & 255) << 24 >> 24 == $127 << 24 >> 24 & $131 | $129 & $153)) break; + if (($k$041 | 0) >= ($124 >>> 5 | 0)) { + $187 = $127; + label = 31; + break L26; + } + } + $161 = $100 + ($99 + 2 << 2) | 0; + HEAP32[$161 >> 2] = $147; + HEAP32[$146 >> 2] = $63; + __ZN7Minisat3vecINS_6Solver7WatcherEiE4pushERKS2_((HEAP32[$$pre4$i >> 2] | 0) + ((HEAP32[$161 >> 2] ^ 1) * 12 | 0) | 0, $w); + if (($107 | 0) == ($61 | 0)) { + $confl$1$ph$ph89 = $confl$1$ph$ph93; + $i$0$lcssa = $61; + $j$0$ph72 = $j$0$ph78; + break L20; + } else $i$065 = $107; + } + if ((label | 0) == 18) { + label = 0; + $88 = $i$065; + $93 = HEAP32[$88 + 4 >> 2] | 0; + $94 = $j$0$ph78; + HEAP32[$94 >> 2] = HEAP32[$88 >> 2]; + HEAP32[$94 + 4 >> 2] = $93; + $i$0$ph$be = $i$065 + 8 | 0; + $j$0$ph$be = $j$0$ph78 + 8 | 0; + } else if ((label | 0) == 26) { + label = 0; + $133 = $w; + $138 = HEAP32[$133 + 4 >> 2] | 0; + $139 = $j$0$ph78; + HEAP32[$139 >> 2] = HEAP32[$133 >> 2]; + HEAP32[$139 + 4 >> 2] = $138; + $i$0$ph$be = $107; + $j$0$ph$be = $j$0$ph78 + 8 | 0; + } else if ((label | 0) == 30) { + label = 0; + $187 = HEAP8[536] | 0; + label = 31; + } + if ((label | 0) == 31) { + label = 0; + $167 = $j$0$ph78 + 8 | 0; + $168 = $w; + $173 = HEAP32[$168 + 4 >> 2] | 0; + $174 = $j$0$ph78; + HEAP32[$174 >> 2] = HEAP32[$168 >> 2]; + HEAP32[$174 + 4 >> 2] = $173; + $178 = $108 >> 1; + $180 = $108 & 1; + $181 = (HEAP32[$7 >> 2] | 0) + $178 | 0; + $184 = HEAPU8[$181 >> 0] ^ $180; + $186 = $187 & 255; + if (($184 & 255) << 24 >> 24 == $187 << 24 >> 24 & ($186 >>> 1 ^ 1) | $186 & 2 & $184) break; + HEAP8[$181 >> 0] = ($180 ^ 1) & 255 ^ 1; + $217 = HEAP32[$11 >> 2] | 0; + $218 = (HEAP32[$10 >> 2] | 0) + ($178 << 3) | 0; + HEAP32[$218 >> 2] = $99; + HEAP32[$218 + 4 >> 2] = $217; + $222 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = $222 + 1; + HEAP32[(HEAP32[$5 >> 2] | 0) + ($222 << 2) >> 2] = $108; + $i$0$ph$be = $107; + $j$0$ph$be = $167; + } + if (($i$0$ph$be | 0) == ($61 | 0)) { + $confl$1$ph$ph89 = $confl$1$ph$ph93; + $i$0$lcssa = $61; + $j$0$ph72 = $j$0$ph$be; + break L20; + } else { + $i$0$ph80 = $i$0$ph$be; + $j$0$ph78 = $j$0$ph$be; + } + } + HEAP32[$0 >> 2] = HEAP32[$2 >> 2]; + if ($107 >>> 0 < $61 >>> 0) { + $i$143 = $107; + $j$142 = $167; + while (1) { + $199 = $j$142 + 8 | 0; + $200 = $i$143 + 8 | 0; + $201 = $i$143; + $206 = HEAP32[$201 + 4 >> 2] | 0; + $207 = $j$142; + HEAP32[$207 >> 2] = HEAP32[$201 >> 2]; + HEAP32[$207 + 4 >> 2] = $206; + if ($200 >>> 0 < $61 >>> 0) { + $i$143 = $200; + $j$142 = $199; + } else { + $i$1$lcssa = $200; + $j$1$lcssa = $199; + break; + } + } + } else { + $i$1$lcssa = $107; + $j$1$lcssa = $167; + } + if (($i$1$lcssa | 0) == ($61 | 0)) { + $confl$1$ph$ph89 = $99; + $i$0$lcssa = $61; + $j$0$ph72 = $j$1$lcssa; + break; + } else { + $confl$1$ph$ph93 = $99; + $i$0$ph$ph92 = $i$1$lcssa; + $j$0$ph$ph91 = $j$1$lcssa; + } + } + } while (0); + $228 = $i$0$lcssa - $j$0$ph72 | 0; + if (($228 | 0) > 0) HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) - ($228 >> 3); + $230 = HEAP32[$0 >> 2] | 0; + if (($230 | 0) >= (HEAP32[$2 >> 2] | 0)) break; + $14 = $230; + $confl$098 = $confl$1$ph$ph89; + $num_props$097 = $num_props$097 + 1 | 0; + } + $244 = $num_props$097; + $245 = (($num_props$097 | 0) < 0) << 31 >> 31; + $confl$0$lcssa = $confl$1$ph$ph89; + $237 = $this + 184 | 0; + $238 = $237; + $239 = $238; + $240 = HEAP32[$239 >> 2] | 0; + $241 = $238 + 4 | 0; + $242 = $241; + $243 = HEAP32[$242 >> 2] | 0; + $246 = _i64Add($240 | 0, $243 | 0, $244 | 0, $245 | 0) | 0; + $247 = tempRet0; + $248 = $237; + $249 = $248; + HEAP32[$249 >> 2] = $246; + $250 = $248 + 4 | 0; + $251 = $250; + HEAP32[$251 >> 2] = $247; + $252 = $this + 520 | 0; + $253 = $252; + $254 = $253; + $255 = HEAP32[$254 >> 2] | 0; + $256 = $253 + 4 | 0; + $257 = $256; + $258 = HEAP32[$257 >> 2] | 0; + $259 = _i64Subtract($255 | 0, $258 | 0, $244 | 0, $245 | 0) | 0; + $260 = tempRet0; + $261 = $252; + $262 = $261; + HEAP32[$262 >> 2] = $259; + $263 = $261 + 4 | 0; + $264 = $263; + HEAP32[$264 >> 2] = $260; + STACKTOP = sp; + return $confl$0$lcssa | 0; +} +function ___intscan($f, $base, $pok, $0, $1) { + $f = $f | 0; + $base = $base | 0; + $pok = $pok | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$1 = 0, $$121 = 0, $$122 = 0, $$base16 = 0, $$lcssa = 0, $106 = 0, $118 = 0, $119 = 0, $126 = 0, $128 = 0, $129 = 0, $13 = 0, $133 = 0, $134 = 0, $142 = 0, $146 = 0, $147 = 0, $149 = 0, $152 = 0, $155 = 0, $158 = 0, $159 = 0, $160 = 0, $161 = 0, $163 = 0, $164 = 0, $165 = 0, $17 = 0, $18 = 0, $183 = 0, $184 = 0, $192 = 0, $197 = 0, $199 = 0, $200 = 0, $202 = 0, $205 = 0, $208 = 0, $209 = 0, $210 = 0, $211 = 0, $218 = 0, $219 = 0, $220 = 0, $235 = 0, $25 = 0, $252 = 0, $255 = 0, $264 = 0, $273 = 0, $276 = 0, $278 = 0, $279 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $29 = 0, $3 = 0, $37 = 0, $39 = 0, $4 = 0, $46 = 0, $51 = 0, $6 = 0, $67 = 0, $69 = 0, $70 = 0, $71 = 0, $78 = 0, $81 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $97 = 0, $98 = 0, $99 = 0, $c$0 = 0, $c$1 = 0, $c$123 = 0, $c$2$be = 0, $c$2$lcssa = 0, $c$3$be = 0, $c$3$lcssa = 0, $c$359 = 0, $c$4$be = 0, $c$4$lcssa = 0, $c$5$be = 0, $c$6$be = 0, $c$6$lcssa = 0, $c$7$be = 0, $c$744 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $x$068 = 0, $x$135 = 0, $x$253 = 0, label = 0, sp = 0; + sp = STACKTOP; + if ($base >>> 0 > 36) { + HEAP32[(___errno_location() | 0) >> 2] = 22; + $278 = 0; + $279 = 0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + $3 = $f + 4 | 0; + $4 = $f + 100 | 0; + do { + $6 = HEAP32[$3 >> 2] | 0; + if ($6 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $6 + 1; + $13 = HEAPU8[$6 >> 0] | 0; + } else $13 = ___shgetc($f) | 0; + } while ((_isspace($13) | 0) != 0); + do if (($13 | 0) == 43 | ($13 | 0) == 45) { + $17 = (($13 | 0) == 45) << 31 >> 31; + $18 = HEAP32[$3 >> 2] | 0; + if ($18 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $18 + 1; + $c$0 = HEAPU8[$18 >> 0] | 0; + $neg$0 = $17; + break; + } else { + $c$0 = ___shgetc($f) | 0; + $neg$0 = $17; + break; + } + } else { + $c$0 = $13; + $neg$0 = 0; + } while (0); + $25 = ($base | 0) == 0; + do if (($base & -17 | 0) == 0 & ($c$0 | 0) == 48) { + $29 = HEAP32[$3 >> 2] | 0; + if ($29 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $29 + 1; + $37 = HEAPU8[$29 >> 0] | 0; + } else $37 = ___shgetc($f) | 0; + if (($37 | 32 | 0) != 120) { + $$1 = $25 ? 8 : $base; + $c$1 = $37; + label = 32; + break; + } + $39 = HEAP32[$3 >> 2] | 0; + if ($39 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $39 + 1; + $46 = HEAPU8[$39 >> 0] | 0; + } else $46 = ___shgetc($f) | 0; + if ((HEAPU8[$46 + 5321 >> 0] | 0) > 15) { + $51 = (HEAP32[$4 >> 2] | 0) == 0; + if (!$51) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + if (!$pok) { + ___shlim($f, 0); + $278 = 0; + $279 = 0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + if ($51) { + $278 = 0; + $279 = 0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + $278 = 0; + $279 = 0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } else { + $$122 = 16; + $c$123 = $46; + label = 47; + } + } else { + $$base16 = $25 ? 10 : $base; + if ((HEAPU8[$c$0 + 5321 >> 0] | 0) >>> 0 < $$base16 >>> 0) { + $$1 = $$base16; + $c$1 = $c$0; + label = 32; + } else { + if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + ___shlim($f, 0); + HEAP32[(___errno_location() | 0) >> 2] = 22; + $278 = 0; + $279 = 0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + } while (0); + if ((label | 0) == 32) if (($$1 | 0) == 10) { + $67 = $c$1 + -48 | 0; + if ($67 >>> 0 < 10) { + $70 = $67; + $x$068 = 0; + while (1) { + $69 = $x$068 + $70 | 0; + $71 = HEAP32[$3 >> 2] | 0; + if ($71 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $71 + 1; + $c$2$be = HEAPU8[$71 >> 0] | 0; + } else $c$2$be = ___shgetc($f) | 0; + $78 = $c$2$be + -48 | 0; + if (!($78 >>> 0 < 10 & $69 >>> 0 < 429496729)) break; + $70 = $78; + $x$068 = $69 * 10 | 0; + } + $280 = $69; + $281 = 0; + $c$2$lcssa = $c$2$be; + } else { + $280 = 0; + $281 = 0; + $c$2$lcssa = $c$1; + } + $81 = $c$2$lcssa + -48 | 0; + if ($81 >>> 0 < 10) { + $83 = $280; + $84 = $281; + $88 = $81; + $c$359 = $c$2$lcssa; + while (1) { + $85 = ___muldi3($83 | 0, $84 | 0, 10, 0) | 0; + $86 = tempRet0; + $89 = (($88 | 0) < 0) << 31 >> 31; + $91 = ~$89; + if ($86 >>> 0 > $91 >>> 0 | ($86 | 0) == ($91 | 0) & $85 >>> 0 > ~$88 >>> 0) { + $$lcssa = $88; + $282 = $83; + $283 = $84; + $c$3$lcssa = $c$359; + break; + } + $97 = _i64Add($85 | 0, $86 | 0, $88 | 0, $89 | 0) | 0; + $98 = tempRet0; + $99 = HEAP32[$3 >> 2] | 0; + if ($99 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $99 + 1; + $c$3$be = HEAPU8[$99 >> 0] | 0; + } else $c$3$be = ___shgetc($f) | 0; + $106 = $c$3$be + -48 | 0; + if ($106 >>> 0 < 10 & ($98 >>> 0 < 429496729 | ($98 | 0) == 429496729 & $97 >>> 0 < 2576980378)) { + $83 = $97; + $84 = $98; + $88 = $106; + $c$359 = $c$3$be; + } else { + $$lcssa = $106; + $282 = $97; + $283 = $98; + $c$3$lcssa = $c$3$be; + break; + } + } + if ($$lcssa >>> 0 > 9) { + $252 = $283; + $255 = $282; + } else { + $$121 = 10; + $284 = $282; + $285 = $283; + $c$8 = $c$3$lcssa; + label = 73; + } + } else { + $252 = $281; + $255 = $280; + } + } else { + $$122 = $$1; + $c$123 = $c$1; + label = 47; + } + L70 : do if ((label | 0) == 47) { + if (!($$122 + -1 & $$122)) { + $126 = HEAP8[5584 + (($$122 * 23 | 0) >>> 5 & 7) >> 0] | 0; + $128 = HEAP8[$c$123 + 5321 >> 0] | 0; + $129 = $128 & 255; + if ($129 >>> 0 < $$122 >>> 0) { + $133 = $129; + $x$135 = 0; + do { + $x$135 = $133 | $x$135 << $126; + $134 = HEAP32[$3 >> 2] | 0; + if ($134 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $134 + 1; + $c$4$be = HEAPU8[$134 >> 0] | 0; + } else $c$4$be = ___shgetc($f) | 0; + $142 = HEAP8[$c$4$be + 5321 >> 0] | 0; + $133 = $142 & 255; + } while ($133 >>> 0 < $$122 >>> 0 & $x$135 >>> 0 < 134217728); + $149 = $142; + $152 = 0; + $155 = $x$135; + $c$4$lcssa = $c$4$be; + } else { + $149 = $128; + $152 = 0; + $155 = 0; + $c$4$lcssa = $c$123; + } + $146 = _bitshift64Lshr(-1, -1, $126 | 0) | 0; + $147 = tempRet0; + if (($149 & 255) >>> 0 >= $$122 >>> 0 | ($152 >>> 0 > $147 >>> 0 | ($152 | 0) == ($147 | 0) & $155 >>> 0 > $146 >>> 0)) { + $$121 = $$122; + $284 = $155; + $285 = $152; + $c$8 = $c$4$lcssa; + label = 73; + break; + } else { + $158 = $155; + $159 = $152; + $163 = $149; + } + while (1) { + $160 = _bitshift64Shl($158 | 0, $159 | 0, $126 | 0) | 0; + $161 = tempRet0; + $164 = $163 & 255 | $160; + $165 = HEAP32[$3 >> 2] | 0; + if ($165 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $165 + 1; + $c$5$be = HEAPU8[$165 >> 0] | 0; + } else $c$5$be = ___shgetc($f) | 0; + $163 = HEAP8[$c$5$be + 5321 >> 0] | 0; + if (($163 & 255) >>> 0 >= $$122 >>> 0 | ($161 >>> 0 > $147 >>> 0 | ($161 | 0) == ($147 | 0) & $164 >>> 0 > $146 >>> 0)) { + $$121 = $$122; + $284 = $164; + $285 = $161; + $c$8 = $c$5$be; + label = 73; + break L70; + } else { + $158 = $164; + $159 = $161; + } + } + } + $118 = HEAP8[$c$123 + 5321 >> 0] | 0; + $119 = $118 & 255; + if ($119 >>> 0 < $$122 >>> 0) { + $183 = $119; + $x$253 = 0; + do { + $x$253 = $183 + (Math_imul($x$253, $$122) | 0) | 0; + $184 = HEAP32[$3 >> 2] | 0; + if ($184 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $184 + 1; + $c$6$be = HEAPU8[$184 >> 0] | 0; + } else $c$6$be = ___shgetc($f) | 0; + $192 = HEAP8[$c$6$be + 5321 >> 0] | 0; + $183 = $192 & 255; + } while ($183 >>> 0 < $$122 >>> 0 & $x$253 >>> 0 < 119304647); + $197 = $192; + $286 = $x$253; + $287 = 0; + $c$6$lcssa = $c$6$be; + } else { + $197 = $118; + $286 = 0; + $287 = 0; + $c$6$lcssa = $c$123; + } + if (($197 & 255) >>> 0 < $$122 >>> 0) { + $199 = ___udivdi3(-1, -1, $$122 | 0, 0) | 0; + $200 = tempRet0; + $202 = $287; + $205 = $286; + $211 = $197; + $c$744 = $c$6$lcssa; + while (1) { + if ($202 >>> 0 > $200 >>> 0 | ($202 | 0) == ($200 | 0) & $205 >>> 0 > $199 >>> 0) { + $$121 = $$122; + $284 = $205; + $285 = $202; + $c$8 = $c$744; + label = 73; + break L70; + } + $208 = ___muldi3($205 | 0, $202 | 0, $$122 | 0, 0) | 0; + $209 = tempRet0; + $210 = $211 & 255; + if ($209 >>> 0 > 4294967295 | ($209 | 0) == -1 & $208 >>> 0 > ~$210 >>> 0) { + $$121 = $$122; + $284 = $205; + $285 = $202; + $c$8 = $c$744; + label = 73; + break L70; + } + $218 = _i64Add($210 | 0, 0, $208 | 0, $209 | 0) | 0; + $219 = tempRet0; + $220 = HEAP32[$3 >> 2] | 0; + if ($220 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $220 + 1; + $c$7$be = HEAPU8[$220 >> 0] | 0; + } else $c$7$be = ___shgetc($f) | 0; + $211 = HEAP8[$c$7$be + 5321 >> 0] | 0; + if (($211 & 255) >>> 0 >= $$122 >>> 0) { + $$121 = $$122; + $284 = $218; + $285 = $219; + $c$8 = $c$7$be; + label = 73; + break; + } else { + $202 = $219; + $205 = $218; + $c$744 = $c$7$be; + } + } + } else { + $$121 = $$122; + $284 = $286; + $285 = $287; + $c$8 = $c$6$lcssa; + label = 73; + } + } while (0); + if ((label | 0) == 73) if ((HEAPU8[$c$8 + 5321 >> 0] | 0) >>> 0 < $$121 >>> 0) { + do { + $235 = HEAP32[$3 >> 2] | 0; + if ($235 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $235 + 1; + $c$9$be = HEAPU8[$235 >> 0] | 0; + } else $c$9$be = ___shgetc($f) | 0; + } while ((HEAPU8[$c$9$be + 5321 >> 0] | 0) >>> 0 < $$121 >>> 0); + HEAP32[(___errno_location() | 0) >> 2] = 34; + $252 = $1; + $255 = $0; + } else { + $252 = $285; + $255 = $284; + } + if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + if (!($252 >>> 0 < $1 >>> 0 | ($252 | 0) == ($1 | 0) & $255 >>> 0 < $0 >>> 0)) { + if (($0 & 1 | 0) == 0 & 0 == 0 & ($neg$0 | 0) == 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $264 = _i64Add($0 | 0, $1 | 0, -1, -1) | 0; + $278 = tempRet0; + $279 = $264; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + if ($252 >>> 0 > $1 >>> 0 | ($252 | 0) == ($1 | 0) & $255 >>> 0 > $0 >>> 0) { + HEAP32[(___errno_location() | 0) >> 2] = 34; + $278 = $1; + $279 = $0; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; + } + } + $273 = (($neg$0 | 0) < 0) << 31 >> 31; + $276 = _i64Subtract($255 ^ $neg$0 | 0, $252 ^ $273 | 0, $neg$0 | 0, $273 | 0) | 0; + $278 = tempRet0; + $279 = $276; + tempRet0 = $278; + STACKTOP = sp; + return $279 | 0; +} +function __ZN7Minisat10SimpSolver24backwardSubsumptionCheckEb($this, $verbose) { + $this = $this | 0; + $verbose = $verbose | 0; + var $$ = 0, $$0 = 0, $$byval_copy = 0, $$lcssa$i = 0, $$lcssa1$i$i = 0, $$lcssa12 = 0, $$pre$i$i = 0, $$pre63 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $110 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $124 = 0, $126 = 0, $127 = 0, $13 = 0, $130 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $141 = 0, $144 = 0, $15 = 0, $153 = 0, $157 = 0, $159 = 0, $16 = 0, $161 = 0, $17 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $19 = 0, $2 = 0, $23 = 0, $3 = 0, $33 = 0, $34 = 0, $4 = 0, $46 = 0, $48 = 0, $5 = 0, $55 = 0, $6 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $74 = 0, $77 = 0, $8 = 0, $81 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, $90 = 0, $94 = 0, $abstraction$0$lcssa$i = 0, $abstraction$01$i = 0, $cnt$0$ph = 0, $cnt$1 = 0, $deleted_literals$0$ph = 0, $deleted_literals$124 = 0, $deleted_literals$2 = 0, $i$0$lcssa$i$i = 0, $i$014 = 0, $i$02$i = 0, $i$02$i$i = 0, $i$08$i = 0, $j$0$lcssa$i$i = 0, $j$028 = 0, $j$03$i = 0, $j$03$i$i = 0, $j$03$us$i = 0, $j$1 = 0, $j$1$i$i = 0, $subsumed$0$ph = 0, $subsumed$126 = 0, $subsumed$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp; + $0 = sp + 12 | 0; + $1 = $this + 856 | 0; + $2 = $this + 872 | 0; + $3 = $this + 868 | 0; + $4 = $this + 860 | 0; + $5 = $this + 680 | 0; + $6 = $this + 920 | 0; + $7 = $this + 284 | 0; + $8 = $this + 280 | 0; + $9 = $this + 544 | 0; + $10 = $this + 928 | 0; + $11 = $this + 44 | 0; + $12 = $this + 776 | 0; + $13 = $this + 692 | 0; + $14 = $this + 804 | 0; + $15 = $this + 760 | 0; + $cnt$0$ph = 0; + $deleted_literals$0$ph = 0; + $subsumed$0$ph = 0; + L1 : while (1) { + $18 = HEAP32[$3 >> 2] | 0; + do { + $16 = HEAP32[$2 >> 2] | 0; + $17 = ($16 | 0) < ($18 | 0); + $19 = $16 - $18 | 0; + if ($17) $23 = (HEAP32[$4 >> 2] | 0) + $19 | 0; else $23 = $19; + if (($23 | 0) <= 0) if ((HEAP32[$6 >> 2] | 0) >= (HEAP32[$7 >> 2] | 0)) { + $$0 = 1; + label = 53; + break L1; + } + if (HEAP8[$5 >> 0] | 0) { + label = 8; + break L1; + } + if ($17) $33 = (HEAP32[$4 >> 2] | 0) + $19 | 0; else $33 = $19; + if (!$33) { + $34 = HEAP32[$6 >> 2] | 0; + if (($34 | 0) < (HEAP32[$7 >> 2] | 0)) { + HEAP32[$6 >> 2] = $34 + 1; + HEAP32[(HEAP32[$9 >> 2] | 0) + ((HEAP32[$10 >> 2] | 0) + 1 << 2) >> 2] = HEAP32[(HEAP32[$8 >> 2] | 0) + ($34 << 2) >> 2]; + $46 = (HEAP32[$9 >> 2] | 0) + (HEAP32[$10 >> 2] << 2) | 0; + $48 = (HEAP32[$46 >> 2] | 0) >>> 5; + if (!$48) { + $$lcssa$i = 0; + $abstraction$0$lcssa$i = 0; + } else { + $abstraction$01$i = 0; + $i$02$i = 0; + while (1) { + $55 = 1 << ((HEAP32[$46 + ($i$02$i << 2) + 4 >> 2] | 0) >>> 1 & 31) | $abstraction$01$i; + $i$02$i = $i$02$i + 1 | 0; + if (($i$02$i | 0) >= ($48 | 0)) { + $$lcssa$i = $48; + $abstraction$0$lcssa$i = $55; + break; + } else $abstraction$01$i = $55; + } + } + HEAP32[$46 + ($$lcssa$i << 2) + 4 >> 2] = $abstraction$0$lcssa$i; + __ZN7Minisat5QueueIjE6insertEj($1, HEAP32[$10 >> 2] | 0); + $62 = HEAP32[$3 >> 2] | 0; + } else $62 = $18; + } else $62 = $18; + $63 = HEAP32[(HEAP32[$1 >> 2] | 0) + ($62 << 2) >> 2] | 0; + $64 = $62 + 1 | 0; + $65 = HEAP32[$4 >> 2] | 0; + $18 = ($64 | 0) == ($65 | 0) ? 0 : $64; + HEAP32[$3 >> 2] = $18; + $67 = HEAP32[$9 >> 2] | 0; + $68 = $67 + ($63 << 2) | 0; + $69 = HEAP32[$68 >> 2] | 0; + } while (($69 & 3 | 0) != 0); + if ($verbose) if ((HEAP32[$11 >> 2] | 0) > 1) { + $74 = $cnt$0$ph + 1 | 0; + if (!(($cnt$0$ph | 0) % 1e3 | 0)) { + $77 = HEAP32[$2 >> 2] | 0; + HEAP32[$$byval_copy >> 2] = $77 - $18 + (($77 | 0) < ($18 | 0) ? $65 : 0); + HEAP32[$$byval_copy + 4 >> 2] = $subsumed$0$ph; + HEAP32[$$byval_copy + 8 >> 2] = $deleted_literals$0$ph; + _printf(3440, $$byval_copy | 0) | 0; + $85 = HEAP32[$68 >> 2] | 0; + $cnt$1 = $74; + } else { + $85 = $69; + $cnt$1 = $74; + } + } else { + $85 = $69; + $cnt$1 = $cnt$0$ph; + } else { + $85 = $69; + $cnt$1 = $cnt$0$ph; + } + $81 = $67 + ($63 + 1 << 2) | 0; + $83 = HEAP32[$81 >> 2] >> 1; + if ($85 >>> 0 > 63) { + $86 = HEAP32[$15 >> 2] | 0; + $87 = $85 >>> 5; + $94 = $83; + $i$014 = 1; + while (1) { + $90 = HEAP32[$68 + ($i$014 << 2) + 4 >> 2] >> 1; + $$ = (HEAP32[$86 + ($90 * 12 | 0) + 4 >> 2] | 0) < (HEAP32[$86 + ($94 * 12 | 0) + 4 >> 2] | 0) ? $90 : $94; + $i$014 = $i$014 + 1 | 0; + if (($i$014 | 0) >= ($87 | 0)) { + $$lcssa12 = $$; + break; + } else $94 = $$; + } + } else $$lcssa12 = $83; + $100 = (HEAP32[$12 >> 2] | 0) + $$lcssa12 | 0; + if (HEAP8[$100 >> 0] | 0) { + $103 = HEAP32[$15 >> 2] | 0; + $104 = $103 + ($$lcssa12 * 12 | 0) + 4 | 0; + $105 = HEAP32[$104 >> 2] | 0; + if (($105 | 0) > 0) { + $$pre$i$i = HEAP32[$103 + ($$lcssa12 * 12 | 0) >> 2] | 0; + $185 = $105; + $i$02$i$i = 0; + $j$03$i$i = 0; + while (1) { + $110 = HEAP32[$$pre$i$i + ($i$02$i$i << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[HEAP32[$14 >> 2] >> 2] | 0) + ($110 << 2) >> 2] & 3 | 0) == 1) { + $120 = $185; + $j$1$i$i = $j$03$i$i; + } else { + HEAP32[$$pre$i$i + ($j$03$i$i << 2) >> 2] = $110; + $120 = HEAP32[$104 >> 2] | 0; + $j$1$i$i = $j$03$i$i + 1 | 0; + } + $118 = $i$02$i$i + 1 | 0; + if (($118 | 0) < ($120 | 0)) { + $185 = $120; + $i$02$i$i = $118; + $j$03$i$i = $j$1$i$i; + } else { + $$lcssa1$i$i = $120; + $i$0$lcssa$i$i = $118; + $j$0$lcssa$i$i = $j$1$i$i; + break; + } + } + } else { + $$lcssa1$i$i = $105; + $i$0$lcssa$i$i = 0; + $j$0$lcssa$i$i = 0; + } + $121 = $i$0$lcssa$i$i - $j$0$lcssa$i$i | 0; + if (($121 | 0) > 0) HEAP32[$104 >> 2] = $$lcssa1$i$i - $121; + HEAP8[$100 >> 0] = 0; + } + $124 = HEAP32[$15 >> 2] | 0; + $126 = HEAP32[$124 + ($$lcssa12 * 12 | 0) >> 2] | 0; + $127 = $124 + ($$lcssa12 * 12 | 0) + 4 | 0; + if ((HEAP32[$127 >> 2] | 0) > 0) { + $deleted_literals$124 = $deleted_literals$0$ph; + $j$028 = 0; + $subsumed$126 = $subsumed$0$ph; + } else { + $cnt$0$ph = $cnt$1; + continue; + } + while (1) { + $130 = HEAP32[$68 >> 2] | 0; + if ($130 & 3) { + $cnt$0$ph = $cnt$1; + $deleted_literals$0$ph = $deleted_literals$124; + $subsumed$0$ph = $subsumed$126; + continue L1; + } + $134 = HEAP32[$126 + ($j$028 << 2) >> 2] | 0; + $135 = HEAP32[$9 >> 2] | 0; + $136 = $135 + ($134 << 2) | 0; + $137 = HEAP32[$136 >> 2] | 0; + L51 : do if (($137 & 3 | 0) != 0 | ($134 | 0) == ($63 | 0)) { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + } else { + $141 = HEAP32[$13 >> 2] | 0; + $$pre63 = $137 >>> 5; + if (($141 | 0) == -1 | ($$pre63 | 0) < ($141 | 0)) { + $144 = $130 >>> 5; + if ($$pre63 >>> 0 < $144 >>> 0) { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + } else if (!(HEAP32[$68 + ($144 << 2) + 4 >> 2] & ~HEAP32[$136 + ($$pre63 << 2) + 4 >> 2])) { + $153 = $135 + ($134 + 1 << 2) | 0; + do if ($130 >>> 0 > 31) { + if ($137 >>> 0 > 31) { + $159 = -2; + $i$08$i = 0; + } else { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + break L51; + } + while (1) { + $157 = HEAP32[$81 + ($i$08$i << 2) >> 2] | 0; + L60 : do if (($159 | 0) == -2) { + $j$03$us$i = 0; + while (1) { + $161 = HEAP32[$153 + ($j$03$us$i << 2) >> 2] | 0; + if (($157 | 0) == ($161 | 0)) { + $176 = -2; + break L60; + } + if (($157 | 0) == ($161 ^ 1 | 0)) { + $176 = $157; + break L60; + } + $j$03$us$i = $j$03$us$i + 1 | 0; + if ($j$03$us$i >>> 0 >= $$pre63 >>> 0) { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + break L51; + } + } + } else { + $j$03$i = 0; + while (1) { + if (($157 | 0) == (HEAP32[$153 + ($j$03$i << 2) >> 2] | 0)) { + $176 = $159; + break L60; + } + $j$03$i = $j$03$i + 1 | 0; + if ($j$03$i >>> 0 >= $$pre63 >>> 0) { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + break L51; + } + } + } while (0); + $i$08$i = $i$08$i + 1 | 0; + if ($i$08$i >>> 0 >= $144 >>> 0) break; else $159 = $176; + } + if (($176 | 0) == -2) break; else if (($176 | 0) == -1) { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + break L51; + } + HEAP32[$0 >> 2] = $176 ^ 1; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + if (!(__ZN7Minisat10SimpSolver16strengthenClauseEjNS_3LitE($this, $134, $$byval_copy) | 0)) { + $$0 = 0; + label = 53; + break L1; + } + $deleted_literals$2 = $deleted_literals$124 + 1 | 0; + $j$1 = ((($176 >> 1 | 0) == ($$lcssa12 | 0)) << 31 >> 31) + $j$028 | 0; + $subsumed$2 = $subsumed$126; + break L51; + } while (0); + __ZN7Minisat10SimpSolver12removeClauseEj($this, $134); + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126 + 1 | 0; + } else { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + } + } else { + $deleted_literals$2 = $deleted_literals$124; + $j$1 = $j$028; + $subsumed$2 = $subsumed$126; + } + } while (0); + $182 = $j$1 + 1 | 0; + if (($182 | 0) < (HEAP32[$127 >> 2] | 0)) { + $deleted_literals$124 = $deleted_literals$2; + $j$028 = $182; + $subsumed$126 = $subsumed$2; + } else { + $cnt$0$ph = $cnt$1; + $deleted_literals$0$ph = $deleted_literals$2; + $subsumed$0$ph = $subsumed$2; + continue L1; + } + } + } + if ((label | 0) == 8) { + __ZN7Minisat5QueueIjE5clearEb($1, 0); + HEAP32[$6 >> 2] = HEAP32[$7 >> 2]; + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } else if ((label | 0) == 53) { + STACKTOP = sp; + return $$0 | 0; + } + return 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, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 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, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 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, $_0$0 = 0, $_0$1 = 0, $q_sroa_1_1198$looptemp = 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) { + $4 = ($rem | 0) != 0; + if (!$d_sroa_1_4_extract_trunc) { + 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 | 0; + 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) { + if ($17) { + if ($rem) { + 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) { + if ($rem) { + 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)) { + if ($rem) { + HEAP32[$rem >> 2] = $a$0 | 0; + 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; + } + $51 = (_llvm_ctlz_i32($d_sroa_1_4_extract_trunc | 0) | 0) - (_llvm_ctlz_i32($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$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 | 0; + 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) { + $119 = (_llvm_ctlz_i32($d_sroa_1_4_extract_trunc | 0) | 0) - (_llvm_ctlz_i32($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$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 | 0; + 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) { + $88 = (_llvm_ctlz_i32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 - (_llvm_ctlz_i32($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) { + 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 = $a$0 | 0 | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = $n_sroa_1_4_extract_trunc >>> ($78 >>> 0) | 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) { + $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 = $b$0 | 0 | 0; + $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, $d_sroa_0_0_insert_insert99$1, -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; + do { + $q_sroa_1_1198$looptemp = $q_sroa_1_1198; + $q_sroa_1_1198 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $q_sroa_0_1199 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = $r_sroa_0_1201 << 1 | $q_sroa_1_1198$looptemp >>> 31 | 0; + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0, $137$1, $r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $carry_0203 = $151$0 & 1; + $r_sroa_0_1201 = _i64Subtract($r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1, $151$0 & $d_sroa_0_0_insert_insert99$0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1) | 0; + $r_sroa_1_1200 = tempRet0; + $sr_1202 = $sr_1202 - 1 | 0; + } while (($sr_1202 | 0) != 0); + $q_sroa_1_1_lcssa = $q_sroa_1_1198; + $q_sroa_0_1_lcssa = $q_sroa_0_1199; + $r_sroa_1_1_lcssa = $r_sroa_1_1200; + $r_sroa_0_1_lcssa = $r_sroa_0_1201; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $carry_0203; + } + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + if ($rem) { + HEAP32[$rem >> 2] = $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa; + } + $_0$1 = ($q_sroa_0_0_insert_ext75$0 | 0) >>> 31 | ($q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$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 __ZN7Minisat6Solver6newVarENS_5lboolEb($this, $upol, $dvar) { + $this = $this | 0; + $upol = $upol | 0; + $dvar = $dvar | 0; + var $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $105 = 0, $11 = 0, $110 = 0.0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $121 = 0, $122 = 0, $126 = 0, $129 = 0, $13 = 0, $131 = 0, $134 = 0, $135 = 0, $136 = 0, $14 = 0, $141 = 0, $142 = 0, $145 = 0, $148 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $16 = 0, $161 = 0, $162 = 0, $163 = 0, $165 = 0, $17 = 0, $170 = 0, $171 = 0, $173 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $183 = 0, $185 = 0, $189 = 0, $190 = 0, $196 = 0, $198 = 0, $2 = 0, $203 = 0, $21 = 0, $22 = 0, $25 = 0, $26 = 0, $3 = 0, $30 = 0, $33 = 0, $35 = 0, $38 = 0, $39 = 0, $41 = 0, $46 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $59 = 0, $63 = 0, $67 = 0, $69 = 0.0, $74 = 0.0, $77 = 0, $80 = 0, $81 = 0, $85 = 0, $88 = 0, $9 = 0, $90 = 0, $93 = 0, $94 = 0, $96 = 0, $i$01$i$i = 0, $i$01$i$i$i = 0, $i$01$i$i$i5 = 0, $v$0 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = $this + 580 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) > 0) { + $5 = $3 + -1 | 0; + $9 = HEAP32[(HEAP32[$this + 576 >> 2] | 0) + ($5 << 2) >> 2] | 0; + HEAP32[$2 >> 2] = $5; + $v$0 = $9; + } else { + $10 = $this + 540 | 0; + $11 = HEAP32[$10 >> 2] | 0; + HEAP32[$10 >> 2] = $11 + 1; + $v$0 = $11; + } + $13 = $this + 412 | 0; + $14 = $v$0 << 1; + HEAP32[$0 >> 2] = $14; + __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEE4initERKS1_($13, $0); + HEAP32[$1 >> 2] = $14 | 1; + __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEE4initERKS1_($13, $1); + $16 = $this + 332 | 0; + $17 = HEAP8[544] | 0; + $18 = $v$0 + 1 | 0; + __ZN7Minisat3vecINS_5lboolEiE6growToEi($16, $18); + HEAP8[(HEAP32[$16 >> 2] | 0) + $v$0 >> 0] = $17; + $21 = $this + 396 | 0; + $22 = $this + 400 | 0; + if ((HEAP32[$22 >> 2] | 0) < ($18 | 0)) { + $25 = $this + 404 | 0; + $26 = HEAP32[$25 >> 2] | 0; + if (($26 | 0) < ($18 | 0)) { + $30 = $v$0 + 2 - $26 & -2; + $33 = ($26 >> 1) + 2 & -2; + $35 = ($30 | 0) > ($33 | 0) ? $30 : $33; + if (($35 | 0) > (2147483647 - $26 | 0)) { + $46 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($46 | 0, 48, 0); + } + $38 = HEAP32[$21 >> 2] | 0; + $39 = $35 + $26 | 0; + HEAP32[$25 >> 2] = $39; + $41 = _realloc($38, $39 << 3) | 0; + HEAP32[$21 >> 2] = $41; + if (!$41) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $46 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($46 | 0, 48, 0); + } + } + $47 = HEAP32[$22 >> 2] | 0; + if (($47 | 0) < ($18 | 0)) { + $i$01$i$i$i = $47; + do { + $50 = (HEAP32[$21 >> 2] | 0) + ($i$01$i$i$i << 3) | 0; + if ($50) { + $52 = $50; + HEAP32[$52 >> 2] = 0; + HEAP32[$52 + 4 >> 2] = 0; + } + $i$01$i$i$i = $i$01$i$i$i + 1 | 0; + } while (($i$01$i$i$i | 0) != ($18 | 0)); + } + HEAP32[$22 >> 2] = $18; + } + $59 = (HEAP32[$21 >> 2] | 0) + ($v$0 << 3) | 0; + HEAP32[$59 >> 2] = -1; + HEAP32[$59 + 4 >> 2] = 0; + $63 = $this + 316 | 0; + if (!(HEAP8[$this + 93 >> 0] | 0)) $110 = 0.0; else { + $67 = $this + 72 | 0; + $69 = +HEAPF64[$67 >> 3] * 1389796.0; + $74 = $69 - +(~~($69 / 2147483647.0) | 0) * 2147483647.0; + HEAPF64[$67 >> 3] = $74; + $110 = $74 / 2147483647.0 * 1.0e-5; + } + $77 = $this + 320 | 0; + if ((HEAP32[$77 >> 2] | 0) < ($18 | 0)) { + $80 = $this + 324 | 0; + $81 = HEAP32[$80 >> 2] | 0; + if (($81 | 0) < ($18 | 0)) { + $85 = $v$0 + 2 - $81 & -2; + $88 = ($81 >> 1) + 2 & -2; + $90 = ($85 | 0) > ($88 | 0) ? $85 : $88; + if (($90 | 0) > (2147483647 - $81 | 0)) { + $101 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($101 | 0, 48, 0); + } + $93 = HEAP32[$63 >> 2] | 0; + $94 = $90 + $81 | 0; + HEAP32[$80 >> 2] = $94; + $96 = _realloc($93, $94 << 3) | 0; + HEAP32[$63 >> 2] = $96; + if (!$96) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $101 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($101 | 0, 48, 0); + } + } + $102 = HEAP32[$77 >> 2] | 0; + if (($102 | 0) < ($18 | 0)) { + $104 = HEAP32[$63 >> 2] | 0; + $i$01$i$i$i5 = $102; + do { + $105 = $104 + ($i$01$i$i$i5 << 3) | 0; + if ($105) HEAPF64[$105 >> 3] = 0.0; + $i$01$i$i$i5 = $i$01$i$i$i5 + 1 | 0; + } while (($i$01$i$i$i5 | 0) != ($18 | 0)); + } + HEAP32[$77 >> 2] = $18; + } + HEAPF64[(HEAP32[$63 >> 2] | 0) + ($v$0 << 3) >> 3] = $110; + __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this + 588 | 0, $v$0, 0); + __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this + 348 | 0, $v$0, 1); + $113 = $this + 364 | 0; + $114 = HEAP8[$upol >> 0] | 0; + __ZN7Minisat3vecINS_5lboolEiE6growToEi($113, $18); + HEAP8[(HEAP32[$113 >> 2] | 0) + $v$0 >> 0] = $114; + $117 = $this + 380 | 0; + $118 = $this + 384 | 0; + if ((HEAP32[$118 >> 2] | 0) < ($18 | 0)) { + $121 = $this + 388 | 0; + $122 = HEAP32[$121 >> 2] | 0; + if (($122 | 0) < ($18 | 0)) { + $126 = $v$0 + 2 - $122 & -2; + $129 = ($122 >> 1) + 2 & -2; + $131 = ($126 | 0) > ($129 | 0) ? $126 : $129; + if (($131 | 0) > (2147483647 - $122 | 0)) { + $141 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($141 | 0, 48, 0); + } + $134 = HEAP32[$117 >> 2] | 0; + $135 = $131 + $122 | 0; + HEAP32[$121 >> 2] = $135; + $136 = _realloc($134, $135) | 0; + HEAP32[$117 >> 2] = $136; + if (!$136) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $141 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($141 | 0, 48, 0); + } + } + $142 = HEAP32[$118 >> 2] | 0; + if (($142 | 0) < ($18 | 0)) { + $i$01$i$i = $142; + do { + $145 = (HEAP32[$117 >> 2] | 0) + $i$01$i$i | 0; + if ($145) HEAP8[$145 >> 0] = 0; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($18 | 0)); + } + HEAP32[$118 >> 2] = $18; + } + $148 = $this + 288 | 0; + $149 = HEAP32[$148 >> 2] | 0; + if (($149 | 0) < ($18 | 0)) { + $153 = $v$0 + 2 - $149 & -2; + $156 = ($149 >> 1) + 2 & -2; + $158 = ($153 | 0) > ($156 | 0) ? $153 : $156; + if (($158 | 0) > (2147483647 - $149 | 0)) { + $170 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($170 | 0, 48, 0); + } + $161 = $this + 280 | 0; + $162 = HEAP32[$161 >> 2] | 0; + $163 = $158 + $149 | 0; + HEAP32[$148 >> 2] = $163; + $165 = _realloc($162, $163 << 2) | 0; + HEAP32[$161 >> 2] = $165; + if (!$165) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $170 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($170 | 0, 48, 0); + } + } + $171 = $this + 380 | 0; + $173 = (HEAP32[$171 >> 2] | 0) + $v$0 | 0; + $175 = (HEAP8[$173 >> 0] | 0) == 0; + if ($dvar) { + if ($175) { + $176 = $this + 200 | 0; + $177 = $176; + $183 = _i64Add(HEAP32[$177 >> 2] | 0, HEAP32[$177 + 4 >> 2] | 0, 1, 0) | 0; + $185 = $176; + HEAP32[$185 >> 2] = $183; + HEAP32[$185 + 4 >> 2] = tempRet0; + } + } else if (!$175) { + $189 = $this + 200 | 0; + $190 = $189; + $196 = _i64Add(HEAP32[$190 >> 2] | 0, HEAP32[$190 + 4 >> 2] | 0, -1, -1) | 0; + $198 = $189; + HEAP32[$198 >> 2] = $196; + HEAP32[$198 + 4 >> 2] = tempRet0; + } + HEAP8[$173 >> 0] = $dvar & 1; + $203 = $this + 460 | 0; + if ((HEAP32[$this + 476 >> 2] | 0) > ($v$0 | 0)) if ((HEAP32[(HEAP32[$this + 472 >> 2] | 0) + ($v$0 << 2) >> 2] | 0) > -1) { + STACKTOP = sp; + return $v$0 | 0; + } + if (!(HEAP8[(HEAP32[$171 >> 2] | 0) + $v$0 >> 0] | 0)) { + STACKTOP = sp; + return $v$0 | 0; + } + __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE6insertEi($203, $v$0); + STACKTOP = sp; + return $v$0 | 0; +} +function __ZN7Minisat10SimpSolver16strengthenClauseEjNS_3LitE($this, $cr, $l) { + $this = $this | 0; + $cr = $cr | 0; + $l = $l | 0; + var $$byval_copy = 0, $$lcssa$i = 0, $$lcssa$i$i = 0, $$lcssa$i$i18 = 0, $$lcssa$i1$i = 0, $$lcssa$i1$i25 = 0, $$lcssa1$i$i = 0, $$lcssa1$i$i17 = 0, $$lcssa2$i$i = 0, $$lcssa2$i$i16 = 0, $$pre$phi$i11Z2D = 0, $$pre$phi$iZ2D = 0, $0 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $133 = 0, $134 = 0, $146 = 0, $16 = 0, $2 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $40 = 0, $44 = 0, $45 = 0, $47 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $61 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $77 = 0, $8 = 0, $81 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $88 = 0, $90 = 0, $94 = 0, $96 = 0, $abstraction$0$lcssa$i$i = 0, $abstraction$0$lcssa$i$i26 = 0, $abstraction$01$i$i = 0, $abstraction$01$i$i23 = 0, $i$02$i$i = 0, $i$02$i$i22 = 0, $j$0$lcssa$i = 0, $j$0$lcssa$i$i = 0, $j$0$lcssa$i$i12 = 0, $j$03$i = 0, $j$07$i$i = 0, $j$07$i$i9 = 0, $j$11$i = 0, $j$13$i$i = 0, $j$13$i$i14 = 0, sp = 0, $j$13$i$i$looptemp = 0, $j$13$i$i14$looptemp = 0, $j$11$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 4 | 0; + $0 = sp; + $2 = HEAP32[$this + 544 >> 2] | 0; + $3 = $2 + ($cr << 2) | 0; + __ZN7Minisat5QueueIjE6insertEj($this + 856 | 0, $cr); + if ((HEAP32[$3 >> 2] & -32 | 0) == 64) { + __ZN7Minisat10SimpSolver12removeClauseEj($this, $cr); + $7 = HEAP32[$l >> 2] | 0; + $8 = HEAP32[$3 >> 2] | 0; + L32 : do if ($8 >>> 0 > 31) { + $10 = $8 >>> 5; + $j$07$i$i = 0; + while (1) { + $12 = $j$07$i$i + 1 | 0; + if ((HEAP32[$3 + ($j$07$i$i << 2) + 4 >> 2] | 0) == ($7 | 0)) { + $$pre$phi$iZ2D = $10; + $j$0$lcssa$i$i = $j$07$i$i; + break L32; + } + if (($12 | 0) < ($10 | 0)) $j$07$i$i = $12; else { + $$pre$phi$iZ2D = $10; + $j$0$lcssa$i$i = $12; + break; + } + } + } else { + $$pre$phi$iZ2D = 0; + $j$0$lcssa$i$i = 0; + } while (0); + $16 = $$pre$phi$iZ2D + -1 | 0; + if (($j$0$lcssa$i$i | 0) < ($16 | 0)) { + $j$13$i$i = $j$0$lcssa$i$i; + do { + $j$13$i$i$looptemp = $j$13$i$i; + $j$13$i$i = $j$13$i$i + 1 | 0; + HEAP32[$3 + ($j$13$i$i$looptemp << 2) + 4 >> 2] = HEAP32[$3 + ($j$13$i$i << 2) + 4 >> 2]; + $22 = HEAP32[$3 >> 2] | 0; + $23 = $22 >>> 5; + $24 = $23 + -1 | 0; + } while (($j$13$i$i | 0) < ($24 | 0)); + $$lcssa$i$i = $22; + $$lcssa1$i$i = $23; + $$lcssa2$i$i = $24; + } else { + $$lcssa$i$i = $8; + $$lcssa1$i$i = $$pre$phi$iZ2D; + $$lcssa2$i$i = $16; + } + if (!($$lcssa$i$i & 8)) $32 = $$lcssa$i$i; else { + HEAP32[$3 + ($$lcssa2$i$i << 2) + 4 >> 2] = HEAP32[$3 + ($$lcssa1$i$i << 2) + 4 >> 2]; + $32 = HEAP32[$3 >> 2] | 0; + } + $31 = $32 + -32 | 0; + HEAP32[$3 >> 2] = $31; + $33 = $31 >>> 5; + if (!$33) { + $$lcssa$i1$i = 0; + $abstraction$0$lcssa$i$i = 0; + } else { + $abstraction$01$i$i = 0; + $i$02$i$i = 0; + while (1) { + $40 = 1 << ((HEAP32[$3 + ($i$02$i$i << 2) + 4 >> 2] | 0) >>> 1 & 31) | $abstraction$01$i$i; + $i$02$i$i = $i$02$i$i + 1 | 0; + if (($i$02$i$i | 0) >= ($33 | 0)) { + $$lcssa$i1$i = $33; + $abstraction$0$lcssa$i$i = $40; + break; + } else $abstraction$01$i$i = $40; + } + } + HEAP32[$3 + ($$lcssa$i1$i << 2) + 4 >> 2] = $abstraction$0$lcssa$i$i; + } else { + __ZN7Minisat6Solver12detachClauseEjb($this, $cr, 1); + $44 = HEAP32[$l >> 2] | 0; + $45 = HEAP32[$3 >> 2] | 0; + L3 : do if ($45 >>> 0 > 31) { + $47 = $45 >>> 5; + $j$07$i$i9 = 0; + while (1) { + $49 = $j$07$i$i9 + 1 | 0; + if ((HEAP32[$3 + ($j$07$i$i9 << 2) + 4 >> 2] | 0) == ($44 | 0)) { + $$pre$phi$i11Z2D = $47; + $j$0$lcssa$i$i12 = $j$07$i$i9; + break L3; + } + if (($49 | 0) < ($47 | 0)) $j$07$i$i9 = $49; else { + $$pre$phi$i11Z2D = $47; + $j$0$lcssa$i$i12 = $49; + break; + } + } + } else { + $$pre$phi$i11Z2D = 0; + $j$0$lcssa$i$i12 = 0; + } while (0); + $53 = $$pre$phi$i11Z2D + -1 | 0; + if (($j$0$lcssa$i$i12 | 0) < ($53 | 0)) { + $j$13$i$i14 = $j$0$lcssa$i$i12; + do { + $j$13$i$i14$looptemp = $j$13$i$i14; + $j$13$i$i14 = $j$13$i$i14 + 1 | 0; + HEAP32[$3 + ($j$13$i$i14$looptemp << 2) + 4 >> 2] = HEAP32[$3 + ($j$13$i$i14 << 2) + 4 >> 2]; + $59 = HEAP32[$3 >> 2] | 0; + $60 = $59 >>> 5; + $61 = $60 + -1 | 0; + } while (($j$13$i$i14 | 0) < ($61 | 0)); + $$lcssa$i$i18 = $59; + $$lcssa1$i$i17 = $60; + $$lcssa2$i$i16 = $61; + } else { + $$lcssa$i$i18 = $45; + $$lcssa1$i$i17 = $$pre$phi$i11Z2D; + $$lcssa2$i$i16 = $53; + } + if (!($$lcssa$i$i18 & 8)) $69 = $$lcssa$i$i18; else { + HEAP32[$3 + ($$lcssa2$i$i16 << 2) + 4 >> 2] = HEAP32[$3 + ($$lcssa1$i$i17 << 2) + 4 >> 2]; + $69 = HEAP32[$3 >> 2] | 0; + } + $68 = $69 + -32 | 0; + HEAP32[$3 >> 2] = $68; + $70 = $68 >>> 5; + if (!$70) { + $$lcssa$i1$i25 = 0; + $abstraction$0$lcssa$i$i26 = 0; + } else { + $abstraction$01$i$i23 = 0; + $i$02$i$i22 = 0; + while (1) { + $77 = 1 << ((HEAP32[$3 + ($i$02$i$i22 << 2) + 4 >> 2] | 0) >>> 1 & 31) | $abstraction$01$i$i23; + $i$02$i$i22 = $i$02$i$i22 + 1 | 0; + if (($i$02$i$i22 | 0) >= ($70 | 0)) { + $$lcssa$i1$i25 = $70; + $abstraction$0$lcssa$i$i26 = $77; + break; + } else $abstraction$01$i$i23 = $77; + } + } + HEAP32[$3 + ($$lcssa$i1$i25 << 2) + 4 >> 2] = $abstraction$0$lcssa$i$i26; + __ZN7Minisat6Solver12attachClauseEj($this, $cr); + $81 = $44 >> 1; + $83 = HEAP32[$this + 760 >> 2] | 0; + $84 = $83 + ($81 * 12 | 0) | 0; + $85 = $83 + ($81 * 12 | 0) + 4 | 0; + $86 = HEAP32[$85 >> 2] | 0; + L20 : do if (($86 | 0) > 0) { + $88 = HEAP32[$84 >> 2] | 0; + $j$03$i = 0; + while (1) { + $90 = $j$03$i + 1 | 0; + if ((HEAP32[$88 + ($j$03$i << 2) >> 2] | 0) == ($cr | 0)) { + $j$0$lcssa$i = $j$03$i; + break L20; + } + if (($90 | 0) < ($86 | 0)) $j$03$i = $90; else { + $j$0$lcssa$i = $90; + break; + } + } + } else $j$0$lcssa$i = 0; while (0); + $94 = $86 + -1 | 0; + if (($j$0$lcssa$i | 0) < ($94 | 0)) { + $96 = HEAP32[$84 >> 2] | 0; + $j$11$i = $j$0$lcssa$i; + do { + $j$11$i$looptemp = $j$11$i; + $j$11$i = $j$11$i + 1 | 0; + HEAP32[$96 + ($j$11$i$looptemp << 2) >> 2] = HEAP32[$96 + ($j$11$i << 2) >> 2]; + $102 = (HEAP32[$85 >> 2] | 0) + -1 | 0; + } while (($j$11$i | 0) < ($102 | 0)); + $$lcssa$i = $102; + } else $$lcssa$i = $94; + HEAP32[$85 >> 2] = $$lcssa$i; + $106 = (HEAP32[$this + 808 >> 2] | 0) + ($44 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + -1; + __ZN7Minisat10SimpSolver14updateElimHeapEi($this, $81); + } + if ((HEAP32[$3 >> 2] & -32 | 0) != 32) { + $146 = 1; + STACKTOP = sp; + return $146 | 0; + } + $112 = HEAP32[$2 + ($cr + 1 << 2) >> 2] | 0; + $119 = HEAPU8[(HEAP32[$this + 332 >> 2] | 0) + ($112 >> 1) >> 0] | 0; + $120 = $119 ^ $112 & 1; + $121 = $120 & 255; + $122 = HEAP8[2624] | 0; + $123 = $122 & 255; + if (!($121 << 24 >> 24 == $122 << 24 >> 24 & ($123 >>> 1 ^ 1) | $123 & 2 & $120)) { + $133 = HEAP8[2616] | 0; + $134 = $133 & 255; + if (($134 >>> 1 ^ 1) & $121 << 24 >> 24 == $133 << 24 >> 24 | $119 & 2 & $134) { + $146 = 0; + STACKTOP = sp; + return $146 | 0; + } + } else { + HEAP32[$0 >> 2] = $112; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat6Solver16uncheckedEnqueueENS_3LitEj($this, $$byval_copy, -1); + } + $146 = (__ZN7Minisat6Solver9propagateEv($this) | 0) == -1; + STACKTOP = sp; + return $146 | 0; +} +function __ZN7Minisat6Solver8relocAllERNS_15ClauseAllocatorE($this, $to) { + $this = $this | 0; + $to = $to | 0; + var $$lcssa13 = 0, $$lcssa21 = 0, $$pre45 = 0, $$pre49 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $104 = 0, $110 = 0, $111 = 0, $112 = 0, $114 = 0, $115 = 0, $118 = 0, $119 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $134 = 0, $135 = 0, $14 = 0, $141 = 0, $142 = 0, $143 = 0, $145 = 0, $146 = 0, $149 = 0, $15 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $16 = 0, $160 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $28 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $43 = 0, $44 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $53 = 0, $54 = 0, $57 = 0, $59 = 0, $6 = 0, $60 = 0, $66 = 0, $68 = 0, $69 = 0, $7 = 0, $80 = 0, $85 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $i$031 = 0, $i2$0$lcssa = 0, $i2$022 = 0, $i2$1$lcssa = 0, $i2$114 = 0, $j$033 = 0, $j$033$1 = 0, $j3$0$lcssa = 0, $j3$024 = 0, $j3$1 = 0, $j3$2$lcssa = 0, $j3$216 = 0, $j3$3 = 0, $v$039 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 412 | 0; + __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEE8cleanAllEv($0); + $1 = $this + 540 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $4 = $this + 544 | 0; + $v$039 = 0; + do { + $5 = $v$039 << 1; + $6 = HEAP32[$0 >> 2] | 0; + $7 = $6 + ($5 * 12 | 0) + 4 | 0; + if ((HEAP32[$7 >> 2] | 0) > 0) { + $17 = $6 + ($5 * 12 | 0) | 0; + $j$033 = 0; + do { + $19 = (HEAP32[$17 >> 2] | 0) + ($j$033 << 3) | 0; + $20 = HEAP32[$19 >> 2] | 0; + $21 = HEAP32[$4 >> 2] | 0; + $22 = $21 + ($20 << 2) | 0; + if (!(HEAP32[$22 >> 2] & 16)) { + $28 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $22) | 0; + HEAP32[$19 >> 2] = $28; + HEAP32[$22 >> 2] = HEAP32[$22 >> 2] | 16; + HEAP32[$21 + ($20 + 1 << 2) >> 2] = $28; + } else HEAP32[$19 >> 2] = HEAP32[$21 + ($20 + 1 << 2) >> 2]; + $j$033 = $j$033 + 1 | 0; + } while (($j$033 | 0) < (HEAP32[$7 >> 2] | 0)); + $37 = HEAP32[$0 >> 2] | 0; + } else $37 = $6; + $35 = $5 | 1; + $36 = $37 + ($35 * 12 | 0) + 4 | 0; + if ((HEAP32[$36 >> 2] | 0) > 0) { + $149 = $37 + ($35 * 12 | 0) | 0; + $j$033$1 = 0; + do { + $151 = (HEAP32[$149 >> 2] | 0) + ($j$033$1 << 3) | 0; + $152 = HEAP32[$151 >> 2] | 0; + $153 = HEAP32[$4 >> 2] | 0; + $154 = $153 + ($152 << 2) | 0; + if (!(HEAP32[$154 >> 2] & 16)) { + $160 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $154) | 0; + HEAP32[$151 >> 2] = $160; + HEAP32[$154 >> 2] = HEAP32[$154 >> 2] | 16; + HEAP32[$153 + ($152 + 1 << 2) >> 2] = $160; + } else HEAP32[$151 >> 2] = HEAP32[$153 + ($152 + 1 << 2) >> 2]; + $j$033$1 = $j$033$1 + 1 | 0; + } while (($j$033$1 | 0) < (HEAP32[$36 >> 2] | 0)); + } + $v$039 = $v$039 + 1 | 0; + } while (($v$039 | 0) < (HEAP32[$1 >> 2] | 0)); + } + $10 = $this + 284 | 0; + if ((HEAP32[$10 >> 2] | 0) > 0) { + $13 = $this + 280 | 0; + $14 = $this + 396 | 0; + $15 = $this + 544 | 0; + $16 = $this + 332 | 0; + $i$031 = 0; + do { + $49 = HEAP32[$14 >> 2] | 0; + $50 = $49 + (HEAP32[(HEAP32[$13 >> 2] | 0) + ($i$031 << 2) >> 2] >> 1 << 3) | 0; + $51 = HEAP32[$50 >> 2] | 0; + do if (($51 | 0) != -1) { + $53 = HEAP32[$15 >> 2] | 0; + $54 = $53 + ($51 << 2) | 0; + $57 = (HEAP32[$54 >> 2] & 16 | 0) == 0; + if ($57) { + $59 = HEAP32[$53 + ($51 + 1 << 2) >> 2] | 0; + $60 = $59 >> 1; + $66 = (HEAPU8[(HEAP32[$16 >> 2] | 0) + $60 >> 0] | 0) ^ $59 & 1; + $68 = HEAP8[528] | 0; + $69 = $68 & 255; + if (!(($66 & 255) << 24 >> 24 == $68 << 24 >> 24 & ($69 >>> 1 ^ 1) | $69 & 2 & $66)) break; + $80 = HEAP32[$49 + ($60 << 3) >> 2] | 0; + if (!(($80 | 0) != -1 & ($80 | 0) == ($51 | 0))) break; + if ($57) { + $85 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $54) | 0; + HEAP32[$50 >> 2] = $85; + HEAP32[$54 >> 2] = HEAP32[$54 >> 2] | 16; + HEAP32[$53 + ($51 + 1 << 2) >> 2] = $85; + break; + } + } + HEAP32[$50 >> 2] = HEAP32[$53 + ($51 + 1 << 2) >> 2]; + } while (0); + $i$031 = $i$031 + 1 | 0; + } while (($i$031 | 0) < (HEAP32[$10 >> 2] | 0)); + } + $40 = $this + 272 | 0; + $41 = HEAP32[$40 >> 2] | 0; + if (($41 | 0) > 0) { + $43 = $this + 268 | 0; + $44 = $this + 544 | 0; + $170 = $41; + $93 = HEAP32[$43 >> 2] | 0; + $i2$022 = 0; + $j3$024 = 0; + while (1) { + $92 = $93 + ($i2$022 << 2) | 0; + $94 = HEAP32[$92 >> 2] | 0; + $95 = HEAP32[$44 >> 2] | 0; + $96 = $95 + ($94 << 2) | 0; + $97 = HEAP32[$96 >> 2] | 0; + if (($97 & 3 | 0) == 1) { + $114 = $170; + $171 = $93; + $j3$1 = $j3$024; + } else { + if (!($97 & 16)) { + $104 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $96) | 0; + HEAP32[$92 >> 2] = $104; + HEAP32[$96 >> 2] = HEAP32[$96 >> 2] | 16; + HEAP32[$95 + ($94 + 1 << 2) >> 2] = $104; + $$pre45 = HEAP32[$43 >> 2] | 0; + $110 = $$pre45; + $111 = HEAP32[$$pre45 + ($i2$022 << 2) >> 2] | 0; + } else { + $103 = HEAP32[$95 + ($94 + 1 << 2) >> 2] | 0; + HEAP32[$92 >> 2] = $103; + $110 = $93; + $111 = $103; + } + HEAP32[$110 + ($j3$024 << 2) >> 2] = $111; + $114 = HEAP32[$40 >> 2] | 0; + $171 = $110; + $j3$1 = $j3$024 + 1 | 0; + } + $112 = $i2$022 + 1 | 0; + if (($112 | 0) < ($114 | 0)) { + $170 = $114; + $93 = $171; + $i2$022 = $112; + $j3$024 = $j3$1; + } else { + $$lcssa21 = $114; + $i2$0$lcssa = $112; + $j3$0$lcssa = $j3$1; + break; + } + } + } else { + $$lcssa21 = $41; + $i2$0$lcssa = 0; + $j3$0$lcssa = 0; + } + $115 = $i2$0$lcssa - $j3$0$lcssa | 0; + if (($115 | 0) > 0) HEAP32[$40 >> 2] = $$lcssa21 - $115; + $118 = $this + 260 | 0; + $119 = HEAP32[$118 >> 2] | 0; + if (($119 | 0) > 0) { + $121 = $this + 256 | 0; + $122 = $this + 544 | 0; + $124 = HEAP32[$121 >> 2] | 0; + $172 = $119; + $i2$114 = 0; + $j3$216 = 0; + while (1) { + $123 = $124 + ($i2$114 << 2) | 0; + $125 = HEAP32[$123 >> 2] | 0; + $126 = HEAP32[$122 >> 2] | 0; + $127 = $126 + ($125 << 2) | 0; + $128 = HEAP32[$127 >> 2] | 0; + if (($128 & 3 | 0) == 1) { + $145 = $172; + $173 = $124; + $j3$3 = $j3$216; + } else { + if (!($128 & 16)) { + $135 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $127) | 0; + HEAP32[$123 >> 2] = $135; + HEAP32[$127 >> 2] = HEAP32[$127 >> 2] | 16; + HEAP32[$126 + ($125 + 1 << 2) >> 2] = $135; + $$pre49 = HEAP32[$121 >> 2] | 0; + $141 = $$pre49; + $142 = HEAP32[$$pre49 + ($i2$114 << 2) >> 2] | 0; + } else { + $134 = HEAP32[$126 + ($125 + 1 << 2) >> 2] | 0; + HEAP32[$123 >> 2] = $134; + $141 = $124; + $142 = $134; + } + HEAP32[$141 + ($j3$216 << 2) >> 2] = $142; + $145 = HEAP32[$118 >> 2] | 0; + $173 = $141; + $j3$3 = $j3$216 + 1 | 0; + } + $143 = $i2$114 + 1 | 0; + if (($143 | 0) < ($145 | 0)) { + $124 = $173; + $172 = $145; + $i2$114 = $143; + $j3$216 = $j3$3; + } else { + $$lcssa13 = $145; + $i2$1$lcssa = $143; + $j3$2$lcssa = $j3$3; + break; + } + } + } else { + $$lcssa13 = $119; + $i2$1$lcssa = 0; + $j3$2$lcssa = 0; + } + $146 = $i2$1$lcssa - $j3$2$lcssa | 0; + if (($146 | 0) <= 0) { + STACKTOP = sp; + return; + } + HEAP32[$118 >> 2] = $$lcssa13 - $146; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver9eliminateEb($this, $turn_off_elim) { + $this = $this | 0; + $turn_off_elim = $turn_off_elim | 0; + var $$0 = 0, $1 = 0, $10 = 0, $100 = 0, $11 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0, $14 = 0, $140 = 0, $143 = 0, $144 = 0, $149 = 0, $15 = 0, $150 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $190 = 0, $20 = 0, $21 = 0, $22 = 0, $30 = 0, $31 = 0, $33 = 0, $37 = 0, $4 = 0, $45 = 0, $49 = 0, $5 = 0, $50 = 0, $58 = 0, $59 = 0, $6 = 0, $61 = 0, $63 = 0, $64 = 0, $68 = 0, $7 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0, $99 = 0, $cnt$012 = 0, $i$03$i = 0, $i$03$i3 = 0, $vararg_buffer1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer1 = sp; + if (!(__ZN7Minisat6Solver8simplifyEv($this) | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $1 = $this + 724 | 0; + if (!(HEAP8[$1 >> 0] | 0)) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $4 = $this + 924 | 0; + $5 = $this + 872 | 0; + $6 = $this + 868 | 0; + $7 = $this + 860 | 0; + $8 = $this + 680 | 0; + $9 = $this + 824 | 0; + $10 = $this + 828 | 0; + $11 = $this + 836 | 0; + $12 = $this + 904 | 0; + $13 = $this + 332 | 0; + $14 = $this + 44 | 0; + $15 = $this + 704 | 0; + $16 = $this + 706 | 0; + $17 = $this + 696 | 0; + $18 = $this + 556 | 0; + $19 = $this + 548 | 0; + $20 = $this + 876 | 0; + $21 = $this + 920 | 0; + $22 = $this + 284 | 0; + L7 : while (1) { + if ((HEAP32[$4 >> 2] | 0) <= 0) if ((HEAP32[$21 >> 2] | 0) >= (HEAP32[$22 >> 2] | 0)) if ((HEAP32[$10 >> 2] | 0) <= 0) break; + __ZN7Minisat10SimpSolver20gatherTouchedClausesEv($this); + $30 = HEAP32[$5 >> 2] | 0; + $31 = HEAP32[$6 >> 2] | 0; + $33 = $30 - $31 | 0; + if (($30 | 0) < ($31 | 0)) $37 = (HEAP32[$7 >> 2] | 0) + $33 | 0; else $37 = $33; + if (($37 | 0) > 0) label = 11; else if ((HEAP32[$21 >> 2] | 0) < (HEAP32[$22 >> 2] | 0)) label = 11; + if ((label | 0) == 11) { + label = 0; + if (!(__ZN7Minisat10SimpSolver24backwardSubsumptionCheckEb($this, 1) | 0)) { + label = 12; + break; + } + } + $45 = HEAP32[$10 >> 2] | 0; + if (HEAP8[$8 >> 0] | 0) { + label = 15; + break; + } + if (!$45) continue; else { + $61 = $45; + $cnt$012 = 0; + } + while (1) { + $58 = HEAP32[$9 >> 2] | 0; + $59 = HEAP32[$58 >> 2] | 0; + $63 = HEAP32[$58 + ($61 + -1 << 2) >> 2] | 0; + HEAP32[$58 >> 2] = $63; + $64 = HEAP32[$11 >> 2] | 0; + HEAP32[$64 + ($63 << 2) >> 2] = 0; + HEAP32[$64 + ($59 << 2) >> 2] = -1; + $68 = (HEAP32[$10 >> 2] | 0) + -1 | 0; + HEAP32[$10 >> 2] = $68; + if (($68 | 0) > 1) __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE13percolateDownEi($9, 0); + if (HEAP8[$8 >> 0] | 0) continue L7; + if (!(HEAP8[(HEAP32[$12 >> 2] | 0) + $59 >> 0] | 0)) { + $78 = HEAP8[(HEAP32[$13 >> 2] | 0) + $59 >> 0] | 0; + $79 = HEAP8[2624] | 0; + $80 = $79 & 255; + if (($80 >>> 1 ^ 1) & $78 << 24 >> 24 == $79 << 24 >> 24 | $78 & 2 & $80) { + if ((HEAP32[$14 >> 2] | 0) > 1) if (!(($cnt$012 | 0) % 100 | 0)) { + HEAP32[$vararg_buffer1 >> 2] = HEAP32[$10 >> 2]; + _printf(3504, $vararg_buffer1 | 0) | 0; + } + if (HEAP8[$15 >> 0] | 0) { + $99 = (HEAP32[$20 >> 2] | 0) + $59 | 0; + $100 = HEAP8[$99 >> 0] | 0; + HEAP8[$99 >> 0] = 1; + if (!(__ZN7Minisat10SimpSolver8asymmVarEi($this, $59) | 0)) { + label = 30; + break L7; + } + HEAP8[(HEAP32[$20 >> 2] | 0) + $59 >> 0] = $100 << 24 >> 24 != 0 & 1; + } + if (HEAP8[$16 >> 0] | 0) { + $111 = HEAP8[(HEAP32[$13 >> 2] | 0) + $59 >> 0] | 0; + $112 = HEAP8[2624] | 0; + $113 = $112 & 255; + if (($113 >>> 1 ^ 1) & $111 << 24 >> 24 == $112 << 24 >> 24 | $111 & 2 & $113) if (!(HEAP8[(HEAP32[$20 >> 2] | 0) + $59 >> 0] | 0)) if (!(__ZN7Minisat10SimpSolver12eliminateVarEi($this, $59) | 0)) { + label = 36; + break L7; + } + } + if (+((HEAP32[$18 >> 2] | 0) >>> 0) > +HEAPF64[$17 >> 3] * +((HEAP32[$19 >> 2] | 0) >>> 0)) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 31]($this); + } + } + $140 = HEAP32[$10 >> 2] | 0; + if (!$140) continue L7; + $61 = $140; + $cnt$012 = $cnt$012 + 1 | 0; + } + } + do if ((label | 0) == 12) HEAP8[$this + 492 >> 0] = 0; else if ((label | 0) == 15) { + $49 = HEAP32[$this + 824 >> 2] | 0; + if (($45 | 0) > 0) { + $50 = HEAP32[$11 >> 2] | 0; + $i$03$i3 = 0; + do { + HEAP32[$50 + (HEAP32[$49 + ($i$03$i3 << 2) >> 2] << 2) >> 2] = -1; + $i$03$i3 = $i$03$i3 + 1 | 0; + } while (($i$03$i3 | 0) < (HEAP32[$10 >> 2] | 0)); + } else if (!$49) break; + HEAP32[$10 >> 2] = 0; + } else if ((label | 0) == 30) HEAP8[$this + 492 >> 0] = 0; else if ((label | 0) == 36) HEAP8[$this + 492 >> 0] = 0; while (0); + if ($turn_off_elim) { + $143 = $this + 744 | 0; + $144 = HEAP32[$143 >> 2] | 0; + if ($144) { + HEAP32[$this + 748 >> 2] = 0; + _free($144); + HEAP32[$143 >> 2] = 0; + HEAP32[$this + 752 >> 2] = 0; + } + __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE5clearEb($this + 760 | 0, 1); + $149 = $this + 808 | 0; + $150 = HEAP32[$149 >> 2] | 0; + if ($150) { + HEAP32[$this + 812 >> 2] = 0; + _free($150); + HEAP32[$149 >> 2] = 0; + HEAP32[$this + 816 >> 2] = 0; + } + $156 = $this + 824 | 0; + $157 = HEAP32[$156 >> 2] | 0; + if ((HEAP32[$10 >> 2] | 0) > 0) { + $158 = HEAP32[$11 >> 2] | 0; + $i$03$i = 0; + do { + HEAP32[$158 + (HEAP32[$157 + ($i$03$i << 2) >> 2] << 2) >> 2] = -1; + $i$03$i = $i$03$i + 1 | 0; + } while (($i$03$i | 0) < (HEAP32[$10 >> 2] | 0)); + label = 50; + } else if ($157) label = 50; + if ((label | 0) == 50) { + HEAP32[$10 >> 2] = 0; + _free($157); + HEAP32[$156 >> 2] = 0; + HEAP32[$this + 832 >> 2] = 0; + } + __ZN7Minisat5QueueIjE5clearEb($this + 856 | 0, 1); + HEAP8[$1 >> 0] = 0; + HEAP8[$this + 536 >> 0] = 1; + HEAP8[$this + 560 >> 0] = 0; + HEAP32[$this + 728 >> 2] = HEAP32[$this + 540 >> 2]; + __ZN7Minisat6Solver16rebuildOrderHeapEv($this); + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 31]($this); + } else if (+((HEAP32[$18 >> 2] | 0) >>> 0) > +HEAPF64[$this + 96 >> 3] * +((HEAP32[$19 >> 2] | 0) >>> 0)) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 31]($this); + if ((HEAP32[$14 >> 2] | 0) > 0) { + $190 = HEAP32[$this + 736 >> 2] | 0; + if (($190 | 0) > 0) { + HEAPF64[tempDoublePtr >> 3] = +($190 << 2 >>> 0) * 9.5367431640625e-7; + HEAP32[$vararg_buffer1 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_buffer1 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + _printf(3528, $vararg_buffer1 | 0) | 0; + } + } + $$0 = (HEAP8[$this + 492 >> 0] | 0) != 0; + STACKTOP = sp; + return $$0 | 0; +} +function _try_realloc_chunk($p, $nb) { + $p = $p | 0; + $nb = $nb | 0; + var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $103 = 0, $105 = 0, $108 = 0, $111 = 0, $112 = 0, $114 = 0, $115 = 0, $117 = 0, $118 = 0, $120 = 0, $121 = 0, $126 = 0, $127 = 0, $136 = 0, $145 = 0, $152 = 0, $163 = 0, $173 = 0, $2 = 0, $22 = 0, $3 = 0, $35 = 0, $37 = 0, $4 = 0, $47 = 0, $49 = 0, $58 = 0, $6 = 0, $64 = 0, $70 = 0, $72 = 0, $73 = 0, $76 = 0, $78 = 0, $80 = 0, $9 = 0, $93 = 0, $98 = 0, $R$0 = 0, $R$1 = 0, $RP$0 = 0, $newp$0 = 0, $storemerge = 0, $storemerge21 = 0, sp = 0; + sp = STACKTOP; + $0 = $p + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 & -8; + $3 = $p + $2 | 0; + $4 = HEAP32[1210] | 0; + if ($p >>> 0 < $4 >>> 0) _abort(); + $6 = $1 & 3; + if (!(($6 | 0) != 1 & $p >>> 0 < $3 >>> 0)) _abort(); + $9 = $p + ($2 | 4) | 0; + $10 = HEAP32[$9 >> 2] | 0; + if (!($10 & 1)) _abort(); + if (!$6) { + if ($nb >>> 0 < 256) { + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + if ($2 >>> 0 >= ($nb + 4 | 0) >>> 0) if (($2 - $nb | 0) >>> 0 <= HEAP32[1326] << 1 >>> 0) { + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + if ($2 >>> 0 >= $nb >>> 0) { + $22 = $2 - $nb | 0; + if ($22 >>> 0 <= 15) { + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $22 | 3; + HEAP32[$9 >> 2] = HEAP32[$9 >> 2] | 1; + _dispose_chunk($p + $nb | 0, $22); + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + if (($3 | 0) == (HEAP32[1212] | 0)) { + $35 = (HEAP32[1209] | 0) + $2 | 0; + if ($35 >>> 0 <= $nb >>> 0) { + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + $37 = $35 - $nb | 0; + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $37 | 1; + HEAP32[1212] = $p + $nb; + HEAP32[1209] = $37; + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + if (($3 | 0) == (HEAP32[1211] | 0)) { + $47 = (HEAP32[1208] | 0) + $2 | 0; + if ($47 >>> 0 < $nb >>> 0) { + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + $49 = $47 - $nb | 0; + if ($49 >>> 0 > 15) { + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $49 | 1; + HEAP32[$p + $47 >> 2] = $49; + $58 = $p + ($47 + 4) | 0; + HEAP32[$58 >> 2] = HEAP32[$58 >> 2] & -2; + $storemerge = $p + $nb | 0; + $storemerge21 = $49; + } else { + HEAP32[$0 >> 2] = $1 & 1 | $47 | 2; + $64 = $p + ($47 + 4) | 0; + HEAP32[$64 >> 2] = HEAP32[$64 >> 2] | 1; + $storemerge = 0; + $storemerge21 = 0; + } + HEAP32[1208] = $storemerge21; + HEAP32[1211] = $storemerge; + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + if ($10 & 2) { + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + $70 = ($10 & -8) + $2 | 0; + if ($70 >>> 0 < $nb >>> 0) { + $newp$0 = 0; + STACKTOP = sp; + return $newp$0 | 0; + } + $72 = $70 - $nb | 0; + $73 = $10 >>> 3; + do if ($10 >>> 0 < 256) { + $76 = HEAP32[$p + ($2 + 8) >> 2] | 0; + $78 = HEAP32[$p + ($2 + 12) >> 2] | 0; + $80 = 4864 + ($73 << 1 << 2) | 0; + if (($76 | 0) != ($80 | 0)) { + if ($76 >>> 0 < $4 >>> 0) _abort(); + if ((HEAP32[$76 + 12 >> 2] | 0) != ($3 | 0)) _abort(); + } + if (($78 | 0) == ($76 | 0)) { + HEAP32[1206] = HEAP32[1206] & ~(1 << $73); + break; + } + if (($78 | 0) == ($80 | 0)) $$pre$phiZ2D = $78 + 8 | 0; else { + if ($78 >>> 0 < $4 >>> 0) _abort(); + $93 = $78 + 8 | 0; + if ((HEAP32[$93 >> 2] | 0) == ($3 | 0)) $$pre$phiZ2D = $93; else _abort(); + } + HEAP32[$76 + 12 >> 2] = $78; + HEAP32[$$pre$phiZ2D >> 2] = $76; + } else { + $98 = HEAP32[$p + ($2 + 24) >> 2] | 0; + $100 = HEAP32[$p + ($2 + 12) >> 2] | 0; + do if (($100 | 0) == ($3 | 0)) { + $111 = $p + ($2 + 20) | 0; + $112 = HEAP32[$111 >> 2] | 0; + if (!$112) { + $114 = $p + ($2 + 16) | 0; + $115 = HEAP32[$114 >> 2] | 0; + if (!$115) { + $R$1 = 0; + break; + } else { + $R$0 = $115; + $RP$0 = $114; + } + } else { + $R$0 = $112; + $RP$0 = $111; + } + while (1) { + $117 = $R$0 + 20 | 0; + $118 = HEAP32[$117 >> 2] | 0; + if ($118) { + $R$0 = $118; + $RP$0 = $117; + continue; + } + $120 = $R$0 + 16 | 0; + $121 = HEAP32[$120 >> 2] | 0; + if (!$121) break; else { + $R$0 = $121; + $RP$0 = $120; + } + } + if ($RP$0 >>> 0 < $4 >>> 0) _abort(); else { + HEAP32[$RP$0 >> 2] = 0; + $R$1 = $R$0; + break; + } + } else { + $103 = HEAP32[$p + ($2 + 8) >> 2] | 0; + if ($103 >>> 0 < $4 >>> 0) _abort(); + $105 = $103 + 12 | 0; + if ((HEAP32[$105 >> 2] | 0) != ($3 | 0)) _abort(); + $108 = $100 + 8 | 0; + if ((HEAP32[$108 >> 2] | 0) == ($3 | 0)) { + HEAP32[$105 >> 2] = $100; + HEAP32[$108 >> 2] = $103; + $R$1 = $100; + break; + } else _abort(); + } while (0); + if ($98) { + $126 = HEAP32[$p + ($2 + 28) >> 2] | 0; + $127 = 5128 + ($126 << 2) | 0; + if (($3 | 0) == (HEAP32[$127 >> 2] | 0)) { + HEAP32[$127 >> 2] = $R$1; + if (!$R$1) { + HEAP32[1207] = HEAP32[1207] & ~(1 << $126); + break; + } + } else { + if ($98 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + $136 = $98 + 16 | 0; + if ((HEAP32[$136 >> 2] | 0) == ($3 | 0)) HEAP32[$136 >> 2] = $R$1; else HEAP32[$98 + 20 >> 2] = $R$1; + if (!$R$1) break; + } + if ($R$1 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $98; + $145 = HEAP32[$p + ($2 + 16) >> 2] | 0; + do if ($145) if ($145 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $145; + HEAP32[$145 + 24 >> 2] = $R$1; + break; + } while (0); + $152 = HEAP32[$p + ($2 + 20) >> 2] | 0; + if ($152) if ($152 >>> 0 < (HEAP32[1210] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $152; + HEAP32[$152 + 24 >> 2] = $R$1; + break; + } + } + } while (0); + if ($72 >>> 0 < 16) { + HEAP32[$0 >> 2] = $70 | HEAP32[$0 >> 2] & 1 | 2; + $163 = $p + ($70 | 4) | 0; + HEAP32[$163 >> 2] = HEAP32[$163 >> 2] | 1; + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } else { + HEAP32[$0 >> 2] = HEAP32[$0 >> 2] & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $72 | 3; + $173 = $p + ($70 | 4) | 0; + HEAP32[$173 >> 2] = HEAP32[$173 >> 2] | 1; + _dispose_chunk($p + $nb | 0, $72); + $newp$0 = $p; + STACKTOP = sp; + return $newp$0 | 0; + } + return 0; +} +function __ZN7Minisat6Solver6solve_Ev($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + var $$01$i = 0, $0 = 0, $1 = 0, $105 = 0.0, $107 = 0, $110 = 0, $115 = 0, $117 = 0, $122 = 0, $128 = 0, $133 = 0, $135 = 0, $140 = 0, $147 = 0, $148 = 0, $161 = 0, $162 = 0, $164 = 0, $165 = 0, $174 = 0, $178 = 0, $187 = 0, $188 = 0, $20 = 0, $24 = 0, $25 = 0, $31 = 0, $33 = 0, $47 = 0.0, $48 = 0, $5 = 0, $51 = 0.0, $54 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0.0, $85 = 0, $9 = 0, $92 = 0, $93 = 0, $94 = 0, $curr_restarts$015 = 0, $i$01$i = 0, $i$012 = 0, $seq$0$lcssa$i = 0, $seq$04$i = 0, $seq$1$lcssa$i = 0, $seq$12$i = 0, $size$0$lcssa$i = 0, $size$03$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp; + $1 = $this + 4 | 0; + if (HEAP32[$1 >> 2] | 0) HEAP32[$this + 8 >> 2] = 0; + $5 = $this + 36 | 0; + $8 = $this + 32 | 0; + if ((HEAP32[$5 >> 2] | 0) > 0) { + $9 = $this + 16 | 0; + $i$01$i = 0; + do { + HEAP8[(HEAP32[$9 >> 2] | 0) + (HEAP32[(HEAP32[$8 >> 2] | 0) + ($i$01$i << 2) >> 2] | 0) >> 0] = 0; + $i$01$i = $i$01$i + 1 | 0; + } while (($i$01$i | 0) < (HEAP32[$5 >> 2] | 0)); + } + if (HEAP32[$8 >> 2] | 0) HEAP32[$5 >> 2] = 0; + $20 = $this + 492 | 0; + if (!(HEAP8[$20 >> 0] | 0)) { + HEAP8[$agg$result >> 0] = HEAP8[536] | 0; + STACKTOP = sp; + return; + } + $24 = $this + 152 | 0; + $25 = $24; + $31 = _i64Add(HEAP32[$25 >> 2] | 0, HEAP32[$25 + 4 >> 2] | 0, 1, 0) | 0; + $33 = $24; + HEAP32[$33 >> 2] = $31; + HEAP32[$33 + 4 >> 2] = tempRet0; + $47 = +HEAPF64[$this + 120 >> 3] * +(HEAP32[$this + 208 >> 2] | 0); + $48 = $this + 640 | 0; + HEAPF64[$48 >> 3] = $47; + $51 = +(HEAP32[$this + 104 >> 2] | 0); + if ($47 < $51) HEAPF64[$48 >> 3] = $51; + $54 = HEAP32[$this + 136 >> 2] | 0; + HEAPF64[$this + 648 >> 3] = +($54 | 0); + HEAP32[$this + 656 >> 2] = $54; + $58 = HEAP8[544] | 0; + $59 = $this + 44 | 0; + if ((HEAP32[$59 >> 2] | 0) > 0) { + _puts(2288) | 0; + _puts(2368) | 0; + _puts(2448) | 0; + _puts(2528) | 0; + $65 = HEAP8[544] | 0; + } else $65 = $58; + $62 = $this + 192 | 0; + $63 = $this + 184 | 0; + $64 = $65 & 255; + L22 : do if (!(($64 >>> 1 ^ 1) & $58 << 24 >> 24 == $65 << 24 >> 24 | $58 & 2 & $64)) $164 = $58; else { + $76 = $this + 80 | 0; + $77 = $this + 112 | 0; + $78 = $this + 108 | 0; + $79 = $this + 680 | 0; + $80 = $this + 664 | 0; + $81 = $this + 672 | 0; + $curr_restarts$015 = 0; + while (1) { + $84 = +HEAPF64[$77 >> 3]; + if (!(HEAP8[$76 >> 0] | 0)) $105 = +Math_pow(+$84, +(+($curr_restarts$015 | 0))); else { + $85 = $curr_restarts$015 + 1 | 0; + if (($curr_restarts$015 | 0) > 0) { + $seq$04$i = 0; + $size$03$i = 1; + do { + $seq$04$i = $seq$04$i + 1 | 0; + $size$03$i = $size$03$i << 1 | 1; + } while (($size$03$i | 0) < ($85 | 0)); + $seq$0$lcssa$i = $seq$04$i; + $size$0$lcssa$i = $size$03$i + -1 | 0; + } else { + $seq$0$lcssa$i = 0; + $size$0$lcssa$i = 0; + } + if (($size$0$lcssa$i | 0) == ($curr_restarts$015 | 0)) $seq$1$lcssa$i = $seq$0$lcssa$i; else { + $$01$i = $curr_restarts$015; + $93 = $size$0$lcssa$i; + $seq$12$i = $seq$0$lcssa$i; + while (1) { + $92 = $93 >> 1; + $94 = $seq$12$i + -1 | 0; + $$01$i = ($$01$i | 0) % ($92 | 0) | 0; + $93 = $92 + -1 | 0; + if (($93 | 0) == ($$01$i | 0)) { + $seq$1$lcssa$i = $94; + break; + } else $seq$12$i = $94; + } + } + $105 = +Math_pow(+$84, +(+($seq$1$lcssa$i | 0))); + } + __ZN7Minisat6Solver6searchEi($0, $this, ~~($105 * +(HEAP32[$78 >> 2] | 0))); + $107 = HEAP8[$0 >> 0] | 0; + if (HEAP8[$79 >> 0] | 0) { + $164 = $107; + break L22; + } + $110 = $80; + $115 = HEAP32[$110 + 4 >> 2] | 0; + if (($115 | 0) >= 0) { + $117 = $62; + $122 = HEAP32[$117 + 4 >> 2] | 0; + if (!($122 >>> 0 < $115 >>> 0 | (($122 | 0) == ($115 | 0) ? (HEAP32[$117 >> 2] | 0) >>> 0 < (HEAP32[$110 >> 2] | 0) >>> 0 : 0))) { + $164 = $107; + break L22; + } + } + $128 = $81; + $133 = HEAP32[$128 + 4 >> 2] | 0; + if (($133 | 0) >= 0) { + $135 = $63; + $140 = HEAP32[$135 + 4 >> 2] | 0; + if (!($140 >>> 0 < $133 >>> 0 | (($140 | 0) == ($133 | 0) ? (HEAP32[$135 >> 2] | 0) >>> 0 < (HEAP32[$128 >> 2] | 0) >>> 0 : 0))) { + $164 = $107; + break L22; + } + } + $147 = HEAP8[544] | 0; + $148 = $147 & 255; + if (!(($148 >>> 1 ^ 1) & $107 << 24 >> 24 == $147 << 24 >> 24 | $107 & 2 & $148)) { + $164 = $107; + break; + } else $curr_restarts$015 = $curr_restarts$015 + 1 | 0; + } + } while (0); + if ((HEAP32[$59 >> 2] | 0) > 0) _puts(2528) | 0; + $161 = HEAP8[528] | 0; + $162 = $161 & 255; + $165 = $164 & 2; + if (!(($162 >>> 1 ^ 1) & $164 << 24 >> 24 == $161 << 24 >> 24 | $165 & $162)) { + $187 = HEAP8[536] | 0; + $188 = $187 & 255; + if (($188 >>> 1 ^ 1) & $164 << 24 >> 24 == $187 << 24 >> 24 | $165 & $188) if (!(HEAP32[$5 >> 2] | 0)) HEAP8[$20 >> 0] = 0; + } else { + $174 = $this + 540 | 0; + __ZN7Minisat3vecINS_5lboolEiE6growToEi($1, HEAP32[$174 >> 2] | 0); + if ((HEAP32[$174 >> 2] | 0) > 0) { + $178 = $this + 332 | 0; + $i$012 = 0; + do { + HEAP8[(HEAP32[$1 >> 2] | 0) + $i$012 >> 0] = HEAP8[(HEAP32[$178 >> 2] | 0) + $i$012 >> 0] | 0; + $i$012 = $i$012 + 1 | 0; + } while (($i$012 | 0) < (HEAP32[$174 >> 2] | 0)); + } + } + __ZN7Minisat6Solver11cancelUntilEi($this, 0); + HEAP8[$agg$result >> 0] = $164; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver8simplifyEv($this) { + $this = $this | 0; + var $$0 = 0, $$pre = 0, $$pre22 = 0, $0 = 0, $10 = 0, $100 = 0, $101 = 0, $108 = 0, $11 = 0, $124 = 0, $131 = 0, $137 = 0, $139 = 0, $143 = 0, $16 = 0, $27 = 0, $28 = 0, $31 = 0, $32 = 0, $45 = 0, $5 = 0, $52 = 0, $54 = 0, $55 = 0, $57 = 0, $58 = 0, $60 = 0, $63 = 0, $7 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $81 = 0, $83 = 0, $86 = 0, $87 = 0, $89 = 0, $95 = 0, $96 = 0, $97 = 0, $i$01$i$i = 0, $i$014 = 0, $i1$0$lcssa = 0, $i1$04 = 0, $i2$01 = 0, $j$0$lcssa = 0, $j$05 = 0, $j$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 492 | 0; + if (HEAP8[$0 >> 0] | 0) if ((__ZN7Minisat6Solver9propagateEv($this) | 0) == -1) { + $5 = $this + 284 | 0; + $7 = $this + 516 | 0; + if ((HEAP32[$5 >> 2] | 0) == (HEAP32[$7 >> 2] | 0)) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $10 = $this + 520 | 0; + $11 = $10; + $16 = HEAP32[$11 + 4 >> 2] | 0; + if (($16 | 0) > 0 | ($16 | 0) == 0 & (HEAP32[$11 >> 2] | 0) >>> 0 > 0) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + __ZN7Minisat6Solver15removeSatisfiedERNS_3vecIjiEE($this, $this + 268 | 0); + if (HEAP8[$this + 536 >> 0] | 0) { + __ZN7Minisat6Solver15removeSatisfiedERNS_3vecIjiEE($this, $this + 256 | 0); + $27 = $this + 564 | 0; + $28 = $this + 568 | 0; + if ((HEAP32[$28 >> 2] | 0) > 0) { + $31 = $this + 588 | 0; + $i$014 = 0; + do { + HEAP8[(HEAP32[$31 >> 2] | 0) + (HEAP32[(HEAP32[$27 >> 2] | 0) + ($i$014 << 2) >> 2] | 0) >> 0] = 1; + $i$014 = $i$014 + 1 | 0; + } while (($i$014 | 0) < (HEAP32[$28 >> 2] | 0)); + } + $32 = HEAP32[$5 >> 2] | 0; + if (($32 | 0) > 0) { + $$pre = HEAP32[$this + 280 >> 2] | 0; + $$pre22 = HEAP32[$this + 588 >> 2] | 0; + $143 = $32; + $i1$04 = 0; + $j$05 = 0; + while (1) { + $45 = HEAP32[$$pre + ($i1$04 << 2) >> 2] | 0; + if (!(HEAP8[$$pre22 + ($45 >> 1) >> 0] | 0)) { + HEAP32[$$pre + ($j$05 << 2) >> 2] = $45; + $54 = HEAP32[$5 >> 2] | 0; + $j$1 = $j$05 + 1 | 0; + } else { + $54 = $143; + $j$1 = $j$05; + } + $52 = $i1$04 + 1 | 0; + if (($52 | 0) < ($54 | 0)) { + $143 = $54; + $i1$04 = $52; + $j$05 = $j$1; + } else { + $58 = $54; + $i1$0$lcssa = $52; + $j$0$lcssa = $j$1; + break; + } + } + } else { + $58 = $32; + $i1$0$lcssa = 0; + $j$0$lcssa = 0; + } + $55 = $i1$0$lcssa - $j$0$lcssa | 0; + if (($55 | 0) > 0) { + $57 = $58 - $55 | 0; + HEAP32[$5 >> 2] = $57; + $60 = $57; + } else $60 = $58; + HEAP32[$this + 512 >> 2] = $60; + L28 : do if ((HEAP32[$28 >> 2] | 0) > 0) { + $63 = $this + 588 | 0; + $i2$01 = 0; + do { + HEAP8[(HEAP32[$63 >> 2] | 0) + (HEAP32[(HEAP32[$27 >> 2] | 0) + ($i2$01 << 2) >> 2] | 0) >> 0] = 0; + $i2$01 = $i2$01 + 1 | 0; + $70 = HEAP32[$28 >> 2] | 0; + } while (($i2$01 | 0) < ($70 | 0)); + if (($70 | 0) > 0) { + $73 = $this + 580 | 0; + $74 = $this + 584 | 0; + $75 = $this + 576 | 0; + $i$01$i$i = 0; + while (1) { + $76 = HEAP32[$73 >> 2] | 0; + if (($76 | 0) == (HEAP32[$74 >> 2] | 0)) { + $81 = ($76 >> 1) + 2 & -2; + $83 = ($81 | 0) < 2 ? 2 : $81; + if (($83 | 0) > (2147483647 - $76 | 0)) { + label = 28; + break; + } + $86 = HEAP32[$75 >> 2] | 0; + $87 = $83 + $76 | 0; + HEAP32[$74 >> 2] = $87; + $89 = _realloc($86, $87 << 2) | 0; + HEAP32[$75 >> 2] = $89; + if (!$89) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + label = 28; + break; + } + $96 = $89; + $97 = HEAP32[$73 >> 2] | 0; + } else { + $96 = HEAP32[$75 >> 2] | 0; + $97 = $76; + } + $95 = $96 + ($97 << 2) | 0; + if (!$95) $100 = $97; else { + HEAP32[$95 >> 2] = 0; + $100 = HEAP32[$73 >> 2] | 0; + } + HEAP32[$73 >> 2] = $100 + 1; + $101 = HEAP32[$27 >> 2] | 0; + HEAP32[$96 + ($100 << 2) >> 2] = HEAP32[$101 + ($i$01$i$i << 2) >> 2]; + $i$01$i$i = $i$01$i$i + 1 | 0; + if (($i$01$i$i | 0) >= (HEAP32[$28 >> 2] | 0)) { + $108 = $101; + break L28; + } + } + if ((label | 0) == 28) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + } else label = 21; + } else label = 21; while (0); + if ((label | 0) == 21) $108 = HEAP32[$27 >> 2] | 0; + if ($108) HEAP32[$28 >> 2] = 0; + } + if (+((HEAP32[$this + 556 >> 2] | 0) >>> 0) > +HEAPF64[$this + 96 >> 3] * +((HEAP32[$this + 548 >> 2] | 0) >>> 0)) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 31]($this); + __ZN7Minisat6Solver16rebuildOrderHeapEv($this); + HEAP32[$7 >> 2] = HEAP32[$5 >> 2]; + $124 = $this + 224 | 0; + $131 = $this + 232 | 0; + $137 = _i64Add(HEAP32[$131 >> 2] | 0, HEAP32[$131 + 4 >> 2] | 0, HEAP32[$124 >> 2] | 0, HEAP32[$124 + 4 >> 2] | 0) | 0; + $139 = $10; + HEAP32[$139 >> 2] = $137; + HEAP32[$139 + 4 >> 2] = tempRet0; + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + HEAP8[$0 >> 0] = 0; + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat6Solver12litRedundantENS_3LitE($this, $p) { + $this = $this | 0; + $p = $p | 0; + var $$0 = 0, $$pre53 = 0, $0 = 0, $101 = 0, $108 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $118 = 0, $12 = 0, $120 = 0, $124 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $14 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $27 = 0, $3 = 0, $32 = 0, $34 = 0, $37 = 0, $39 = 0, $42 = 0, $43 = 0, $45 = 0, $50 = 0, $51 = 0, $52 = 0, $54 = 0, $56 = 0, $6 = 0, $60 = 0, $62 = 0, $68 = 0, $75 = 0, $78 = 0, $8 = 0, $80 = 0, $83 = 0, $84 = 0, $86 = 0, $9 = 0, $93 = 0, $95 = 0, $97 = 0, $c$0 = 0, $c$1 = 0, $i$0 = 0, $i$1 = 0, $i1$025 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$p >> 2] | 0; + $2 = $this + 396 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $6 = $this + 544 | 0; + $8 = (HEAP32[$6 >> 2] | 0) + (HEAP32[$3 + ($0 >> 1 << 3) >> 2] << 2) | 0; + $9 = $this + 604 | 0; + $$pre53 = $this + 608 | 0; + if (HEAP32[$9 >> 2] | 0) HEAP32[$$pre53 >> 2] = 0; + $12 = $this + 588 | 0; + $13 = $this + 612 | 0; + $14 = $this + 616 | 0; + $22 = $3; + $60 = $0; + $c$0 = $8; + $i$0 = 1; + while (1) { + if ($i$0 >>> 0 < (HEAP32[$c$0 >> 2] | 0) >>> 5 >>> 0) { + $19 = HEAP32[$c$0 + ($i$0 << 2) + 4 >> 2] | 0; + $20 = $19 >> 1; + if (!(HEAP32[$22 + ($20 << 3) + 4 >> 2] | 0)) { + $126 = $60; + $127 = $22; + $c$1 = $c$0; + $i$1 = $i$0; + } else { + $27 = HEAP8[(HEAP32[$12 >> 2] | 0) + $20 >> 0] | 0; + if (($27 + -1 << 24 >> 24 & 255) < 2) { + $126 = $60; + $127 = $22; + $c$1 = $c$0; + $i$1 = $i$0; + } else { + $32 = HEAP32[$$pre53 >> 2] | 0; + $34 = ($32 | 0) == (HEAP32[$13 >> 2] | 0); + if ($27 << 24 >> 24 == 3 ? 1 : (HEAP32[$22 + ($20 << 3) >> 2] | 0) == -1) { + label = 8; + break; + } + if ($34) { + $78 = ($32 >> 1) + 2 & -2; + $80 = ($78 | 0) < 2 ? 2 : $78; + if (($80 | 0) > (2147483647 - $32 | 0)) { + label = 24; + break; + } + $83 = HEAP32[$9 >> 2] | 0; + $84 = $80 + $32 | 0; + HEAP32[$13 >> 2] = $84; + $86 = _realloc($83, $84 << 3) | 0; + HEAP32[$9 >> 2] = $86; + if (!$86) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + label = 24; + break; + } + $93 = HEAP32[$$pre53 >> 2] | 0; + } else $93 = $32; + HEAP32[$$pre53 >> 2] = $93 + 1; + $95 = (HEAP32[$9 >> 2] | 0) + ($93 << 3) | 0; + if ($95) { + $97 = $95; + HEAP32[$97 >> 2] = $i$0; + HEAP32[$97 + 4 >> 2] = $60; + } + HEAP32[$p >> 2] = $19; + $101 = HEAP32[$2 >> 2] | 0; + $126 = $19; + $127 = $101; + $c$1 = (HEAP32[$6 >> 2] | 0) + (HEAP32[$101 + ($20 << 3) >> 2] << 2) | 0; + $i$1 = 0; + } + } + } else { + $108 = (HEAP32[$12 >> 2] | 0) + ($60 >> 1) | 0; + if (!(HEAP8[$108 >> 0] | 0)) { + HEAP8[$108 >> 0] = 2; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($14, $p); + } + $111 = HEAP32[$$pre53 >> 2] | 0; + if (!$111) { + $$0 = 1; + label = 34; + break; + } + $113 = $111 + -1 | 0; + $114 = HEAP32[$9 >> 2] | 0; + $116 = HEAP32[$114 + ($113 << 3) >> 2] | 0; + $118 = HEAP32[$114 + ($113 << 3) + 4 >> 2] | 0; + HEAP32[$p >> 2] = $118; + $120 = HEAP32[$2 >> 2] | 0; + $124 = (HEAP32[$6 >> 2] | 0) + (HEAP32[$120 + ($118 >> 1 << 3) >> 2] << 2) | 0; + HEAP32[$$pre53 >> 2] = $113; + $126 = $118; + $127 = $120; + $c$1 = $124; + $i$1 = $116; + } + $22 = $127; + $60 = $126; + $c$0 = $c$1; + $i$0 = $i$1 + 1 | 0; + } + if ((label | 0) == 8) { + if ($34) { + $37 = ($32 >> 1) + 2 & -2; + $39 = ($37 | 0) < 2 ? 2 : $37; + if (($39 | 0) > (2147483647 - $32 | 0)) { + $50 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($50 | 0, 48, 0); + } + $42 = HEAP32[$9 >> 2] | 0; + $43 = $39 + $32 | 0; + HEAP32[$13 >> 2] = $43; + $45 = _realloc($42, $43 << 3) | 0; + HEAP32[$9 >> 2] = $45; + if (!$45) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $50 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($50 | 0, 48, 0); + } + $52 = HEAP32[$$pre53 >> 2] | 0; + } else $52 = $32; + $51 = $52 + 1 | 0; + HEAP32[$$pre53 >> 2] = $51; + $54 = (HEAP32[$9 >> 2] | 0) + ($52 << 3) | 0; + if (!$54) $62 = $51; else { + $56 = $54; + HEAP32[$56 >> 2] = 0; + HEAP32[$56 + 4 >> 2] = $60; + $62 = HEAP32[$$pre53 >> 2] | 0; + } + if (($62 | 0) > 0) { + $128 = $62; + $i1$025 = 0; + } else { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + while (1) { + $68 = (HEAP32[$12 >> 2] | 0) + (HEAP32[(HEAP32[$9 >> 2] | 0) + ($i1$025 << 3) + 4 >> 2] >> 1) | 0; + if (!(HEAP8[$68 >> 0] | 0)) { + HEAP8[$68 >> 0] = 3; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($14, (HEAP32[$9 >> 2] | 0) + ($i1$025 << 3) + 4 | 0); + $75 = HEAP32[$$pre53 >> 2] | 0; + } else $75 = $128; + $i1$025 = $i1$025 + 1 | 0; + if (($i1$025 | 0) >= ($75 | 0)) { + $$0 = 0; + break; + } else $128 = $75; + } + STACKTOP = sp; + return $$0 | 0; + } else if ((label | 0) == 24) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); else if ((label | 0) == 34) { + STACKTOP = sp; + return $$0 | 0; + } + return 0; +} +function __ZN7Minisat6Solver12detachClauseEjb($this, $cr, $strict) { + $this = $this | 0; + $cr = $cr | 0; + $strict = $strict | 0; + var $$lcssa$i = 0, $$lcssa$i11 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $105 = 0, $11 = 0, $111 = 0, $113 = 0, $117 = 0, $118 = 0, $12 = 0, $124 = 0, $126 = 0, $13 = 0, $132 = 0, $133 = 0, $139 = 0, $141 = 0, $15 = 0, $17 = 0, $21 = 0, $23 = 0, $27 = 0, $3 = 0, $32 = 0, $33 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $47 = 0, $49 = 0, $53 = 0, $55 = 0, $59 = 0, $64 = 0, $65 = 0, $7 = 0, $70 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $89 = 0, $9 = 0, $90 = 0, $96 = 0, $98 = 0, $j$0$lcssa$i = 0, $j$0$lcssa$i6 = 0, $j$03$i = 0, $j$03$i5 = 0, $j$11$i = 0, $j$11$i9 = 0, sp = 0, $j$11$i9$looptemp = 0, $j$11$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $3 = HEAP32[$this + 544 >> 2] | 0; + $4 = $3 + ($cr << 2) | 0; + $7 = HEAP32[$3 + ($cr + 1 << 2) >> 2] ^ 1; + if ($strict) { + $8 = $this + 412 | 0; + $9 = HEAP32[$8 >> 2] | 0; + $10 = $9 + ($7 * 12 | 0) | 0; + $11 = $3 + ($cr + 2 << 2) | 0; + $12 = $9 + ($7 * 12 | 0) + 4 | 0; + $13 = HEAP32[$12 >> 2] | 0; + L8 : do if (($13 | 0) > 0) { + $15 = HEAP32[$10 >> 2] | 0; + $j$03$i5 = 0; + while (1) { + $17 = $j$03$i5 + 1 | 0; + if ((HEAP32[$15 + ($j$03$i5 << 3) >> 2] | 0) == ($cr | 0)) { + $j$0$lcssa$i6 = $j$03$i5; + break L8; + } + if (($17 | 0) < ($13 | 0)) $j$03$i5 = $17; else { + $j$0$lcssa$i6 = $17; + break; + } + } + } else $j$0$lcssa$i6 = 0; while (0); + $21 = $13 + -1 | 0; + if (($j$0$lcssa$i6 | 0) < ($21 | 0)) { + $j$11$i9 = $j$0$lcssa$i6; + do { + $23 = HEAP32[$10 >> 2] | 0; + $j$11$i9$looptemp = $j$11$i9; + $j$11$i9 = $j$11$i9 + 1 | 0; + $27 = $23 + ($j$11$i9 << 3) | 0; + $32 = HEAP32[$27 + 4 >> 2] | 0; + $33 = $23 + ($j$11$i9$looptemp << 3) | 0; + HEAP32[$33 >> 2] = HEAP32[$27 >> 2]; + HEAP32[$33 + 4 >> 2] = $32; + $38 = (HEAP32[$12 >> 2] | 0) + -1 | 0; + } while (($j$11$i9 | 0) < ($38 | 0)); + $$lcssa$i11 = $38; + $43 = HEAP32[$8 >> 2] | 0; + } else { + $$lcssa$i11 = $21; + $43 = $9; + } + HEAP32[$12 >> 2] = $$lcssa$i11; + $41 = HEAP32[$11 >> 2] ^ 1; + $42 = $43 + ($41 * 12 | 0) | 0; + $44 = $43 + ($41 * 12 | 0) + 4 | 0; + $45 = HEAP32[$44 >> 2] | 0; + L20 : do if (($45 | 0) > 0) { + $47 = HEAP32[$42 >> 2] | 0; + $j$03$i = 0; + while (1) { + $49 = $j$03$i + 1 | 0; + if ((HEAP32[$47 + ($j$03$i << 3) >> 2] | 0) == ($cr | 0)) { + $j$0$lcssa$i = $j$03$i; + break L20; + } + if (($49 | 0) < ($45 | 0)) $j$03$i = $49; else { + $j$0$lcssa$i = $49; + break; + } + } + } else $j$0$lcssa$i = 0; while (0); + $53 = $45 + -1 | 0; + if (($j$0$lcssa$i | 0) < ($53 | 0)) { + $j$11$i = $j$0$lcssa$i; + do { + $55 = HEAP32[$42 >> 2] | 0; + $j$11$i$looptemp = $j$11$i; + $j$11$i = $j$11$i + 1 | 0; + $59 = $55 + ($j$11$i << 3) | 0; + $64 = HEAP32[$59 + 4 >> 2] | 0; + $65 = $55 + ($j$11$i$looptemp << 3) | 0; + HEAP32[$65 >> 2] = HEAP32[$59 >> 2]; + HEAP32[$65 + 4 >> 2] = $64; + $70 = (HEAP32[$44 >> 2] | 0) + -1 | 0; + } while (($j$11$i | 0) < ($70 | 0)); + $$lcssa$i = $70; + } else $$lcssa$i = $53; + HEAP32[$44 >> 2] = $$lcssa$i; + } else { + HEAP32[$0 >> 2] = $7; + $72 = $this + 428 | 0; + $73 = HEAP32[$72 >> 2] | 0; + $74 = $73 + $7 | 0; + if (!(HEAP8[$74 >> 0] | 0)) { + HEAP8[$74 >> 0] = 1; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($this + 444 | 0, $0); + $82 = HEAP32[$72 >> 2] | 0; + } else $82 = $73; + $80 = HEAP32[$3 + ($cr + 2 << 2) >> 2] ^ 1; + HEAP32[$1 >> 2] = $80; + $81 = $82 + $80 | 0; + if (!(HEAP8[$81 >> 0] | 0)) { + HEAP8[$81 >> 0] = 1; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($this + 444 | 0, $1); + } + } + if (!(HEAP32[$4 >> 2] & 4)) { + $117 = $this + 208 | 0; + $118 = $117; + $124 = _i64Add(HEAP32[$118 >> 2] | 0, HEAP32[$118 + 4 >> 2] | 0, -1, -1) | 0; + $126 = $117; + HEAP32[$126 >> 2] = $124; + HEAP32[$126 + 4 >> 2] = tempRet0; + $132 = $this + 224 | 0; + $133 = $132; + $139 = _i64Subtract(HEAP32[$133 >> 2] | 0, HEAP32[$133 + 4 >> 2] | 0, (HEAP32[$4 >> 2] | 0) >>> 5 | 0, 0) | 0; + $141 = $132; + HEAP32[$141 >> 2] = $139; + HEAP32[$141 + 4 >> 2] = tempRet0; + STACKTOP = sp; + return; + } else { + $89 = $this + 216 | 0; + $90 = $89; + $96 = _i64Add(HEAP32[$90 >> 2] | 0, HEAP32[$90 + 4 >> 2] | 0, -1, -1) | 0; + $98 = $89; + HEAP32[$98 >> 2] = $96; + HEAP32[$98 + 4 >> 2] = tempRet0; + $104 = $this + 232 | 0; + $105 = $104; + $111 = _i64Subtract(HEAP32[$105 >> 2] | 0, HEAP32[$105 + 4 >> 2] | 0, (HEAP32[$4 >> 2] | 0) >>> 5 | 0, 0) | 0; + $113 = $104; + HEAP32[$113 >> 2] = $111; + HEAP32[$113 + 4 >> 2] = tempRet0; + STACKTOP = sp; + return; + } +} +function __ZN7Minisat10SimpSolver6solve_Ebb($agg$result, $this, $do_simp, $turn_off_simp) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $do_simp = $do_simp | 0; + $turn_off_simp = $turn_off_simp | 0; + var $$lcssa$i = 0, $0 = 0, $1 = 0, $10 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $111 = 0, $118 = 0, $120 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $20 = 0, $25 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $4 = 0, $42 = 0, $46 = 0, $47 = 0, $49 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $79 = 0, $81 = 0, $83 = 0, $85 = 0, $9 = 0, $90 = 0, $extra_frozen = 0, $i$015 = 0, $i$018$i = 0, $i$1$i = 0, $i$1$lcssa$i = 0, $i$111$i = 0, $i$113$i = 0, $i$115$i = 0, $i1$07 = 0, $j$0$lcssa$i = 0, $j$014$i = 0, $j$09$i = 0, $v = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + $extra_frozen = sp + 4 | 0; + $v = sp; + $0 = sp + 16 | 0; + HEAP32[$extra_frozen >> 2] = 0; + $1 = $extra_frozen + 4 | 0; + HEAP32[$1 >> 2] = 0; + $2 = $extra_frozen + 8 | 0; + HEAP32[$2 >> 2] = 0; + $3 = HEAP8[2608] | 0; + HEAP8[$agg$result >> 0] = $3; + $4 = $this + 724 | 0; + $9 = (HEAPU8[$4 >> 0] & ($do_simp & 1) | 0) != 0; + if ($9) { + $10 = $this + 308 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if (($11 | 0) > 0) { + $13 = $this + 304 | 0; + $14 = $this + 876 | 0; + $120 = $11; + $i$015 = 0; + while (1) { + $18 = HEAP32[(HEAP32[$13 >> 2] | 0) + ($i$015 << 2) >> 2] >> 1; + HEAP32[$v >> 2] = $18; + $20 = (HEAP32[$14 >> 2] | 0) + $18 | 0; + if (!(HEAP8[$20 >> 0] | 0)) { + HEAP8[$20 >> 0] = 1; + __ZN7Minisat3vecIiiE4pushERKi($extra_frozen, $v); + $25 = HEAP32[$10 >> 2] | 0; + } else $25 = $120; + $i$015 = $i$015 + 1 | 0; + if (($i$015 | 0) >= ($25 | 0)) break; else $120 = $25; + } + } + $28 = (__ZN7Minisat10SimpSolver9eliminateEb($this, $turn_off_simp) | 0) & 1 ^ 1; + HEAP8[$agg$result >> 0] = $28; + $30 = HEAP8[2608] | 0; + $32 = $28; + } else { + $30 = $3; + $32 = $3; + } + $29 = $30 & 255; + if (!(($29 >>> 1 ^ 1) & $32 << 24 >> 24 == $30 << 24 >> 24 | $29 & 2 & ($32 & 255))) if ((HEAP32[$this + 44 >> 2] | 0) > 0) { + _puts(3760) | 0; + $49 = $32; + } else $49 = $32; else { + __ZN7Minisat6Solver6solve_Ev($0, $this); + $42 = HEAP8[$0 >> 0] | 0; + HEAP8[$agg$result >> 0] = $42; + $49 = $42; + } + $46 = HEAP8[2608] | 0; + $47 = $46 & 255; + if (($47 >>> 1 ^ 1) & $49 << 24 >> 24 == $46 << 24 >> 24 | $47 & 2 & ($49 & 255)) if (HEAP8[$this + 707 >> 0] | 0) { + $64 = (HEAP32[$this + 736 >> 2] | 0) + -1 | 0; + if (($64 | 0) > 0) { + $66 = $this + 732 | 0; + $67 = $this + 4 | 0; + $i$018$i = $64; + do { + $68 = HEAP32[$66 >> 2] | 0; + $70 = HEAP32[$68 + ($i$018$i << 2) >> 2] | 0; + $i$113$i = $i$018$i + -1 | 0; + $73 = HEAP32[$68 + ($i$113$i << 2) >> 2] | 0; + $74 = HEAP32[$67 >> 2] | 0; + L23 : do if (($70 | 0) > 1) { + $75 = HEAP8[2616] | 0; + $76 = $75 & 255; + $77 = $76 & 2; + $79 = $76 >>> 1 ^ 1; + $85 = $73; + $i$115$i = $i$113$i; + $j$014$i = $70; + while (1) { + $90 = HEAPU8[$74 + ($85 >> 1) >> 0] ^ $85 & 1; + $81 = $j$014$i + -1 | 0; + if (!(($90 & 255) << 24 >> 24 == $75 << 24 >> 24 & $79 | $77 & $90)) { + $i$111$i = $i$115$i; + $j$09$i = $j$014$i; + break L23; + } + $i$1$i = $i$115$i + -1 | 0; + $83 = HEAP32[$68 + ($i$1$i << 2) >> 2] | 0; + if (($81 | 0) > 1) { + $85 = $83; + $i$115$i = $i$1$i; + $j$014$i = $81; + } else { + $$lcssa$i = $83; + $i$1$lcssa$i = $i$1$i; + $j$0$lcssa$i = $81; + label = 20; + break; + } + } + } else { + $$lcssa$i = $73; + $i$1$lcssa$i = $i$113$i; + $j$0$lcssa$i = $70; + label = 20; + } while (0); + if ((label | 0) == 20) { + label = 0; + HEAP8[$74 + ($$lcssa$i >> 1) >> 0] = ($$lcssa$i & 1 ^ 1) & 255 ^ 1; + $i$111$i = $i$1$lcssa$i; + $j$09$i = $j$0$lcssa$i; + } + $i$018$i = $i$111$i - $j$09$i | 0; + } while (($i$018$i | 0) > 0); + } + } + if ($9) { + $106 = HEAP32[$1 >> 2] | 0; + if (($106 | 0) > 0) { + $108 = HEAP32[$extra_frozen >> 2] | 0; + $109 = $this + 876 | 0; + $i1$07 = 0; + do { + $111 = HEAP32[$108 + ($i1$07 << 2) >> 2] | 0; + HEAP8[(HEAP32[$109 >> 2] | 0) + $111 >> 0] = 0; + if (HEAP8[$4 >> 0] | 0) __ZN7Minisat10SimpSolver14updateElimHeapEi($this, $111); + $i1$07 = $i1$07 + 1 | 0; + } while (($i1$07 | 0) < ($106 | 0)); + } + } + $118 = HEAP32[$extra_frozen >> 2] | 0; + if (!$118) { + STACKTOP = sp; + return; + } + HEAP32[$1 >> 2] = 0; + _free($118); + HEAP32[$extra_frozen >> 2] = 0; + HEAP32[$2 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver20gatherTouchedClausesEv($this) { + $this = $this | 0; + var $$lcssa1$i$i = 0, $$pre$i$i = 0, $$pre3$i = 0, $0 = 0, $101 = 0, $109 = 0, $11 = 0, $110 = 0, $115 = 0, $116 = 0, $117 = 0, $15 = 0, $16 = 0, $17 = 0, $19 = 0, $20 = 0, $21 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $41 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $51 = 0, $59 = 0, $6 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $69 = 0, $7 = 0, $72 = 0, $8 = 0, $82 = 0, $88 = 0, $9 = 0, $93 = 0, $94 = 0, $95 = 0, $97 = 0, $i$0$lcssa$i$i = 0, $i$02$i$i = 0, $j$0$lcssa$i$i = 0, $j$03$i$i = 0, $j$05 = 0, $j$1$i$i = 0, $storemerge = 0, $storemerge17 = 0, $storemerge2 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 924 | 0; + if (!(HEAP32[$0 >> 2] | 0)) { + STACKTOP = sp; + return; + } + $3 = $this + 856 | 0; + $4 = $this + 872 | 0; + $5 = $this + 868 | 0; + $6 = $this + 860 | 0; + $7 = $this + 544 | 0; + $storemerge = 0; + while (1) { + $8 = HEAP32[$4 >> 2] | 0; + $9 = HEAP32[$5 >> 2] | 0; + $11 = $8 - $9 | 0; + if (($8 | 0) < ($9 | 0)) $15 = (HEAP32[$6 >> 2] | 0) + $11 | 0; else $15 = $11; + if (($storemerge | 0) >= ($15 | 0)) break; + $29 = (HEAP32[$7 >> 2] | 0) + (HEAP32[(HEAP32[$3 >> 2] | 0) + ((($9 + $storemerge | 0) % (HEAP32[$6 >> 2] | 0) | 0) << 2) >> 2] << 2) | 0; + $30 = HEAP32[$29 >> 2] | 0; + if (!($30 & 3)) HEAP32[$29 >> 2] = $30 & -4 | 2; + $storemerge = $storemerge + 1 | 0; + } + $16 = $this + 540 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (($17 | 0) > 0) { + $19 = $this + 744 | 0; + $20 = $this + 776 | 0; + $$pre3$i = $this + 760 | 0; + $21 = $this + 804 | 0; + $115 = $17; + $storemerge17 = 0; + while (1) { + if (!(HEAP8[(HEAP32[$19 >> 2] | 0) + $storemerge17 >> 0] | 0)) $93 = $115; else { + $41 = (HEAP32[$20 >> 2] | 0) + $storemerge17 | 0; + if (HEAP8[$41 >> 0] | 0) { + $44 = HEAP32[$$pre3$i >> 2] | 0; + $45 = $44 + ($storemerge17 * 12 | 0) + 4 | 0; + $46 = HEAP32[$45 >> 2] | 0; + if (($46 | 0) > 0) { + $$pre$i$i = HEAP32[$44 + ($storemerge17 * 12 | 0) >> 2] | 0; + $116 = $46; + $i$02$i$i = 0; + $j$03$i$i = 0; + while (1) { + $51 = HEAP32[$$pre$i$i + ($i$02$i$i << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[HEAP32[$21 >> 2] >> 2] | 0) + ($51 << 2) >> 2] & 3 | 0) == 1) { + $61 = $116; + $j$1$i$i = $j$03$i$i; + } else { + HEAP32[$$pre$i$i + ($j$03$i$i << 2) >> 2] = $51; + $61 = HEAP32[$45 >> 2] | 0; + $j$1$i$i = $j$03$i$i + 1 | 0; + } + $59 = $i$02$i$i + 1 | 0; + if (($59 | 0) < ($61 | 0)) { + $116 = $61; + $i$02$i$i = $59; + $j$03$i$i = $j$1$i$i; + } else { + $$lcssa1$i$i = $61; + $i$0$lcssa$i$i = $59; + $j$0$lcssa$i$i = $j$1$i$i; + break; + } + } + } else { + $$lcssa1$i$i = $46; + $i$0$lcssa$i$i = 0; + $j$0$lcssa$i$i = 0; + } + $62 = $i$0$lcssa$i$i - $j$0$lcssa$i$i | 0; + if (($62 | 0) > 0) HEAP32[$45 >> 2] = $$lcssa1$i$i - $62; + HEAP8[$41 >> 0] = 0; + } + $65 = HEAP32[$$pre3$i >> 2] | 0; + $66 = $65 + ($storemerge17 * 12 | 0) + 4 | 0; + $67 = HEAP32[$66 >> 2] | 0; + if (($67 | 0) > 0) { + $69 = $65 + ($storemerge17 * 12 | 0) | 0; + $117 = $67; + $j$05 = 0; + while (1) { + $72 = HEAP32[(HEAP32[$69 >> 2] | 0) + ($j$05 << 2) >> 2] | 0; + if (!(HEAP32[(HEAP32[$7 >> 2] | 0) + ($72 << 2) >> 2] & 3)) { + __ZN7Minisat5QueueIjE6insertEj($3, $72); + $82 = (HEAP32[$7 >> 2] | 0) + (HEAP32[(HEAP32[$69 >> 2] | 0) + ($j$05 << 2) >> 2] << 2) | 0; + HEAP32[$82 >> 2] = HEAP32[$82 >> 2] & -4 | 2; + $88 = HEAP32[$66 >> 2] | 0; + } else $88 = $117; + $j$05 = $j$05 + 1 | 0; + if (($j$05 | 0) >= ($88 | 0)) break; else $117 = $88; + } + } + HEAP8[(HEAP32[$19 >> 2] | 0) + $storemerge17 >> 0] = 0; + $93 = HEAP32[$16 >> 2] | 0; + } + $storemerge17 = $storemerge17 + 1 | 0; + if (($storemerge17 | 0) >= ($93 | 0)) { + $storemerge2 = 0; + break; + } else $115 = $93; + } + } else $storemerge2 = 0; + while (1) { + $94 = HEAP32[$4 >> 2] | 0; + $95 = HEAP32[$5 >> 2] | 0; + $97 = $94 - $95 | 0; + if (($94 | 0) < ($95 | 0)) $101 = (HEAP32[$6 >> 2] | 0) + $97 | 0; else $101 = $97; + if (($storemerge2 | 0) >= ($101 | 0)) break; + $109 = (HEAP32[$7 >> 2] | 0) + (HEAP32[(HEAP32[$3 >> 2] | 0) + ((($95 + $storemerge2 | 0) % (HEAP32[$6 >> 2] | 0) | 0) << 2) >> 2] << 2) | 0; + $110 = HEAP32[$109 >> 2] | 0; + if (($110 & 3 | 0) == 2) HEAP32[$109 >> 2] = $110 & -4; + $storemerge2 = $storemerge2 + 1 | 0; + } + HEAP32[$0 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6SolverD2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $104 = 0, $105 = 0, $109 = 0, $11 = 0, $110 = 0, $15 = 0, $16 = 0, $20 = 0, $21 = 0, $25 = 0, $26 = 0, $31 = 0, $33 = 0, $34 = 0, $38 = 0, $39 = 0, $44 = 0, $45 = 0, $49 = 0, $5 = 0, $50 = 0, $54 = 0, $55 = 0, $59 = 0, $6 = 0, $60 = 0, $64 = 0, $65 = 0, $69 = 0, $70 = 0, $74 = 0, $75 = 0, $79 = 0, $80 = 0, $84 = 0, $85 = 0, $89 = 0, $90 = 0, $94 = 0, $95 = 0, $99 = 0, sp = 0; + sp = STACKTOP; + HEAP32[$this >> 2] = 1816; + $0 = $this + 628 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1) { + HEAP32[$this + 632 >> 2] = 0; + _free($1); + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 636 >> 2] = 0; + } + $5 = $this + 616 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($6) { + HEAP32[$this + 620 >> 2] = 0; + _free($6); + HEAP32[$5 >> 2] = 0; + HEAP32[$this + 624 >> 2] = 0; + } + $10 = $this + 604 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + HEAP32[$this + 608 >> 2] = 0; + _free($11); + HEAP32[$10 >> 2] = 0; + HEAP32[$this + 612 >> 2] = 0; + } + $15 = $this + 588 | 0; + $16 = HEAP32[$15 >> 2] | 0; + if ($16) { + HEAP32[$this + 592 >> 2] = 0; + _free($16); + HEAP32[$15 >> 2] = 0; + HEAP32[$this + 596 >> 2] = 0; + } + $20 = $this + 576 | 0; + $21 = HEAP32[$20 >> 2] | 0; + if ($21) { + HEAP32[$this + 580 >> 2] = 0; + _free($21); + HEAP32[$20 >> 2] = 0; + HEAP32[$this + 584 >> 2] = 0; + } + $25 = $this + 564 | 0; + $26 = HEAP32[$25 >> 2] | 0; + if ($26) { + HEAP32[$this + 568 >> 2] = 0; + _free($26); + HEAP32[$25 >> 2] = 0; + HEAP32[$this + 572 >> 2] = 0; + } + $31 = HEAP32[$this + 544 >> 2] | 0; + if ($31) _free($31); + $33 = $this + 472 | 0; + $34 = HEAP32[$33 >> 2] | 0; + if ($34) { + HEAP32[$this + 476 >> 2] = 0; + _free($34); + HEAP32[$33 >> 2] = 0; + HEAP32[$this + 480 >> 2] = 0; + } + $38 = $this + 460 | 0; + $39 = HEAP32[$38 >> 2] | 0; + if ($39) { + HEAP32[$this + 464 >> 2] = 0; + _free($39); + HEAP32[$38 >> 2] = 0; + HEAP32[$this + 468 >> 2] = 0; + } + __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEED1Ev($this + 412 | 0); + $44 = $this + 396 | 0; + $45 = HEAP32[$44 >> 2] | 0; + if ($45) { + HEAP32[$this + 400 >> 2] = 0; + _free($45); + HEAP32[$44 >> 2] = 0; + HEAP32[$this + 404 >> 2] = 0; + } + $49 = $this + 380 | 0; + $50 = HEAP32[$49 >> 2] | 0; + if ($50) { + HEAP32[$this + 384 >> 2] = 0; + _free($50); + HEAP32[$49 >> 2] = 0; + HEAP32[$this + 388 >> 2] = 0; + } + $54 = $this + 364 | 0; + $55 = HEAP32[$54 >> 2] | 0; + if ($55) { + HEAP32[$this + 368 >> 2] = 0; + _free($55); + HEAP32[$54 >> 2] = 0; + HEAP32[$this + 372 >> 2] = 0; + } + $59 = $this + 348 | 0; + $60 = HEAP32[$59 >> 2] | 0; + if ($60) { + HEAP32[$this + 352 >> 2] = 0; + _free($60); + HEAP32[$59 >> 2] = 0; + HEAP32[$this + 356 >> 2] = 0; + } + $64 = $this + 332 | 0; + $65 = HEAP32[$64 >> 2] | 0; + if ($65) { + HEAP32[$this + 336 >> 2] = 0; + _free($65); + HEAP32[$64 >> 2] = 0; + HEAP32[$this + 340 >> 2] = 0; + } + $69 = $this + 316 | 0; + $70 = HEAP32[$69 >> 2] | 0; + if ($70) { + HEAP32[$this + 320 >> 2] = 0; + _free($70); + HEAP32[$69 >> 2] = 0; + HEAP32[$this + 324 >> 2] = 0; + } + $74 = $this + 304 | 0; + $75 = HEAP32[$74 >> 2] | 0; + if ($75) { + HEAP32[$this + 308 >> 2] = 0; + _free($75); + HEAP32[$74 >> 2] = 0; + HEAP32[$this + 312 >> 2] = 0; + } + $79 = $this + 292 | 0; + $80 = HEAP32[$79 >> 2] | 0; + if ($80) { + HEAP32[$this + 296 >> 2] = 0; + _free($80); + HEAP32[$79 >> 2] = 0; + HEAP32[$this + 300 >> 2] = 0; + } + $84 = $this + 280 | 0; + $85 = HEAP32[$84 >> 2] | 0; + if ($85) { + HEAP32[$this + 284 >> 2] = 0; + _free($85); + HEAP32[$84 >> 2] = 0; + HEAP32[$this + 288 >> 2] = 0; + } + $89 = $this + 268 | 0; + $90 = HEAP32[$89 >> 2] | 0; + if ($90) { + HEAP32[$this + 272 >> 2] = 0; + _free($90); + HEAP32[$89 >> 2] = 0; + HEAP32[$this + 276 >> 2] = 0; + } + $94 = $this + 256 | 0; + $95 = HEAP32[$94 >> 2] | 0; + if ($95) { + HEAP32[$this + 260 >> 2] = 0; + _free($95); + HEAP32[$94 >> 2] = 0; + HEAP32[$this + 264 >> 2] = 0; + } + $99 = $this + 32 | 0; + $100 = HEAP32[$99 >> 2] | 0; + if ($100) { + HEAP32[$this + 36 >> 2] = 0; + _free($100); + HEAP32[$99 >> 2] = 0; + HEAP32[$this + 40 >> 2] = 0; + } + $104 = $this + 16 | 0; + $105 = HEAP32[$104 >> 2] | 0; + if ($105) { + HEAP32[$this + 20 >> 2] = 0; + _free($105); + HEAP32[$104 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + } + $109 = $this + 4 | 0; + $110 = HEAP32[$109 >> 2] | 0; + if (!$110) { + STACKTOP = sp; + return; + } + HEAP32[$this + 8 >> 2] = 0; + _free($110); + HEAP32[$109 >> 2] = 0; + HEAP32[$this + 12 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver8relocAllERNS_15ClauseAllocatorE($this, $to) { + $this = $this | 0; + $to = $to | 0; + var $$lcssa1$i = 0, $$pre$i = 0, $$pre$phi19Z2D = 0, $10 = 0, $103 = 0, $107 = 0, $11 = 0, $12 = 0, $17 = 0, $25 = 0, $27 = 0, $28 = 0, $3 = 0, $33 = 0, $34 = 0, $37 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $48 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $64 = 0, $69 = 0, $7 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $87 = 0, $9 = 0, $91 = 0, $92 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $i$0$lcssa$i = 0, $i$02$i = 0, $i1$0$ph = 0, $i1$07 = 0, $j$0$lcssa$i = 0, $j$03$i = 0, $j$09 = 0, $j$1$i = 0, $storemerge11 = 0, sp = 0; + sp = STACKTOP; + if (!(HEAP8[$this + 724 >> 0] | 0)) { + STACKTOP = sp; + return; + } + $3 = $this + 540 | 0; + if ((HEAP32[$3 >> 2] | 0) > 0) { + $6 = $this + 760 | 0; + $7 = $this + 804 | 0; + $8 = $this + 776 | 0; + $9 = $this + 544 | 0; + $storemerge11 = 0; + do { + $10 = HEAP32[$6 >> 2] | 0; + $11 = $10 + ($storemerge11 * 12 | 0) + 4 | 0; + $12 = HEAP32[$11 >> 2] | 0; + if (($12 | 0) > 0) { + $$pre$i = HEAP32[$10 + ($storemerge11 * 12 | 0) >> 2] | 0; + $107 = $12; + $i$02$i = 0; + $j$03$i = 0; + while (1) { + $17 = HEAP32[$$pre$i + ($i$02$i << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[HEAP32[$7 >> 2] >> 2] | 0) + ($17 << 2) >> 2] & 3 | 0) == 1) { + $27 = $107; + $j$1$i = $j$03$i; + } else { + HEAP32[$$pre$i + ($j$03$i << 2) >> 2] = $17; + $27 = HEAP32[$11 >> 2] | 0; + $j$1$i = $j$03$i + 1 | 0; + } + $25 = $i$02$i + 1 | 0; + if (($25 | 0) < ($27 | 0)) { + $107 = $27; + $i$02$i = $25; + $j$03$i = $j$1$i; + } else { + $$lcssa1$i = $27; + $i$0$lcssa$i = $25; + $j$0$lcssa$i = $j$1$i; + break; + } + } + } else { + $$lcssa1$i = $12; + $i$0$lcssa$i = 0; + $j$0$lcssa$i = 0; + } + $28 = $i$0$lcssa$i - $j$0$lcssa$i | 0; + if (($28 | 0) > 0) HEAP32[$11 >> 2] = $$lcssa1$i - $28; + HEAP8[(HEAP32[$8 >> 2] | 0) + $storemerge11 >> 0] = 0; + $33 = HEAP32[$6 >> 2] | 0; + $34 = $33 + ($storemerge11 * 12 | 0) + 4 | 0; + if ((HEAP32[$34 >> 2] | 0) > 0) { + $37 = $33 + ($storemerge11 * 12 | 0) | 0; + $j$09 = 0; + do { + $39 = (HEAP32[$37 >> 2] | 0) + ($j$09 << 2) | 0; + $40 = HEAP32[$39 >> 2] | 0; + $41 = HEAP32[$9 >> 2] | 0; + $42 = $41 + ($40 << 2) | 0; + if (!(HEAP32[$42 >> 2] & 16)) { + $48 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $42) | 0; + HEAP32[$39 >> 2] = $48; + HEAP32[$42 >> 2] = HEAP32[$42 >> 2] | 16; + HEAP32[$41 + ($40 + 1 << 2) >> 2] = $48; + } else HEAP32[$39 >> 2] = HEAP32[$41 + ($40 + 1 << 2) >> 2]; + $j$09 = $j$09 + 1 | 0; + } while (($j$09 | 0) < (HEAP32[$34 >> 2] | 0)); + } + $storemerge11 = $storemerge11 + 1 | 0; + } while (($storemerge11 | 0) < (HEAP32[$3 >> 2] | 0)); + } + $58 = $this + 856 | 0; + $60 = HEAP32[$this + 872 >> 2] | 0; + $61 = $this + 868 | 0; + $62 = HEAP32[$61 >> 2] | 0; + $64 = $60 - $62 | 0; + if (($60 | 0) < ($62 | 0)) $i1$0$ph = (HEAP32[$this + 860 >> 2] | 0) + $64 | 0; else $i1$0$ph = $64; + L32 : do if (($i1$0$ph | 0) > 0) { + $69 = $this + 860 | 0; + $70 = $this + 544 | 0; + $73 = $62; + $i1$07 = $i1$0$ph; + while (1) { + $74 = HEAP32[(HEAP32[$58 >> 2] | 0) + ($73 << 2) >> 2] | 0; + $75 = $73 + 1 | 0; + HEAP32[$61 >> 2] = ($75 | 0) == (HEAP32[$69 >> 2] | 0) ? 0 : $75; + $78 = HEAP32[$70 >> 2] | 0; + $79 = $78 + ($74 << 2) | 0; + $80 = HEAP32[$79 >> 2] | 0; + if (!($80 & 3)) { + if (!($80 & 16)) { + $87 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $79) | 0; + HEAP32[$79 >> 2] = HEAP32[$79 >> 2] | 16; + HEAP32[$78 + ($74 + 1 << 2) >> 2] = $87; + $91 = $87; + } else $91 = HEAP32[$78 + ($74 + 1 << 2) >> 2] | 0; + __ZN7Minisat5QueueIjE6insertEj($58, $91); + } + $92 = $i1$07 + -1 | 0; + if (($92 | 0) <= 0) { + $$pre$phi19Z2D = $70; + break L32; + } + $73 = HEAP32[$61 >> 2] | 0; + $i1$07 = $92; + } + } else $$pre$phi19Z2D = $this + 544 | 0; while (0); + $94 = $this + 928 | 0; + $95 = HEAP32[$94 >> 2] | 0; + $96 = HEAP32[$$pre$phi19Z2D >> 2] | 0; + $97 = $96 + ($95 << 2) | 0; + if (!(HEAP32[$97 >> 2] & 16)) { + $103 = __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($to, $97) | 0; + HEAP32[$94 >> 2] = $103; + HEAP32[$97 >> 2] = HEAP32[$97 >> 2] | 16; + HEAP32[$96 + ($95 + 1 << 2) >> 2] = $103; + STACKTOP = sp; + return; + } else { + HEAP32[$94 >> 2] = HEAP32[$96 + ($95 + 1 << 2) >> 2]; + STACKTOP = sp; + return; + } +} +function __ZN7Minisat4sortIj11reduceDB_ltEEvPT_iT0_($array, $size, $lt) { + $array = $array | 0; + $size = $size | 0; + $lt = $lt | 0; + var $$byval_copy1 = 0, $$in17 = 0, $$in18 = 0, $$lcssa10 = 0, $$lcssa6 = 0, $$lcssa7 = 0, $$lcssa9 = 0, $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $17 = 0, $19 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $65 = 0, $73 = 0, $74 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $best_i$0$lcssa$i = 0, $best_i$02$i = 0, $i$0$ph = 0, $i$03$i = 0, $j$0$ph = 0, $j$01$i = 0, sp = 0, $i$03$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy1 = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + if (($size | 0) < 16) { + $3 = $size + -1 | 0; + if (($3 | 0) <= 0) { + STACKTOP = sp; + return; + } + $5 = HEAP32[$lt >> 2] | 0; + $i$03$i = 0; + do { + $i$03$i$looptemp = $i$03$i; + $i$03$i = $i$03$i + 1 | 0; + if (($i$03$i | 0) < ($size | 0)) { + $8 = HEAP32[$5 >> 2] | 0; + $best_i$02$i = $i$03$i$looptemp; + $j$01$i = $i$03$i; + while (1) { + $11 = $8 + (HEAP32[$array + ($j$01$i << 2) >> 2] << 2) | 0; + $12 = HEAP32[$11 >> 2] | 0; + $13 = $12 >>> 5; + if ($12 >>> 0 > 95) { + $17 = $8 + (HEAP32[$array + ($best_i$02$i << 2) >> 2] << 2) | 0; + $19 = (HEAP32[$17 >> 2] | 0) >>> 5; + if (($19 | 0) == 2) $80 = $j$01$i; else $80 = +HEAPF32[$11 + ($13 << 2) + 4 >> 2] < +HEAPF32[$17 + ($19 << 2) + 4 >> 2] ? $j$01$i : $best_i$02$i; + } else $80 = $best_i$02$i; + $j$01$i = $j$01$i + 1 | 0; + if (($j$01$i | 0) == ($size | 0)) { + $best_i$0$lcssa$i = $80; + break; + } else $best_i$02$i = $80; + } + } else $best_i$0$lcssa$i = $i$03$i$looptemp; + $27 = $array + ($i$03$i$looptemp << 2) | 0; + $28 = HEAP32[$27 >> 2] | 0; + $29 = $array + ($best_i$0$lcssa$i << 2) | 0; + HEAP32[$27 >> 2] = HEAP32[$29 >> 2]; + HEAP32[$29 >> 2] = $28; + } while (($i$03$i | 0) != ($3 | 0)); + STACKTOP = sp; + return; + } + $33 = HEAP32[$array + ((($size | 0) / 2 | 0) << 2) >> 2] | 0; + $i$0$ph = -1; + $j$0$ph = $size; + while (1) { + $34 = $i$0$ph + 1 | 0; + $35 = $array + ($34 << 2) | 0; + $36 = HEAP32[$35 >> 2] | 0; + $37 = HEAP32[$lt >> 2] | 0; + $38 = HEAP32[$37 >> 2] | 0; + $39 = $38 + ($36 << 2) | 0; + $40 = HEAP32[$39 >> 2] | 0; + $$phi$trans$insert = $38 + ($33 << 2) | 0; + $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; + L21 : do if ($40 >>> 0 > 95) { + $$in17 = $40; + $$in18 = $39; + $51 = $34; + $81 = $36; + $82 = $35; + while (1) { + $42 = $$pre >>> 5; + if (($42 | 0) != 2) if (!(+HEAPF32[$$in18 + ($$in17 >>> 5 << 2) + 4 >> 2] < +HEAPF32[$$phi$trans$insert + ($42 << 2) + 4 >> 2])) { + $$lcssa10 = $82; + $$lcssa9 = $51; + $78 = $81; + break L21; + } + $50 = $51 + 1 | 0; + $52 = $array + ($50 << 2) | 0; + $53 = HEAP32[$52 >> 2] | 0; + $$in18 = $38 + ($53 << 2) | 0; + $$in17 = HEAP32[$$in18 >> 2] | 0; + if ($$in17 >>> 0 <= 95) { + $$lcssa10 = $52; + $$lcssa9 = $50; + $78 = $53; + break; + } else { + $51 = $50; + $81 = $53; + $82 = $52; + } + } + } else { + $$lcssa10 = $35; + $$lcssa9 = $34; + $78 = $36; + } while (0); + $57 = $j$0$ph + -1 | 0; + $58 = $array + ($57 << 2) | 0; + $59 = $38 + ($33 << 2) | 0; + L28 : do if ($$pre >>> 0 > 95) { + $62 = $58; + $74 = $57; + while (1) { + $63 = $38 + (HEAP32[$62 >> 2] << 2) | 0; + $65 = (HEAP32[$63 >> 2] | 0) >>> 5; + if (($65 | 0) != 2) if (!(+HEAPF32[$59 + ($$pre >>> 5 << 2) + 4 >> 2] < +HEAPF32[$63 + ($65 << 2) + 4 >> 2])) { + $$lcssa6 = $74; + $$lcssa7 = $62; + break L28; + } + $73 = $74 + -1 | 0; + $62 = $array + ($73 << 2) | 0; + $74 = $73; + } + } else { + $$lcssa6 = $57; + $$lcssa7 = $58; + } while (0); + if (($$lcssa9 | 0) >= ($$lcssa6 | 0)) break; + HEAP32[$$lcssa10 >> 2] = HEAP32[$$lcssa7 >> 2]; + HEAP32[$$lcssa7 >> 2] = $78; + $i$0$ph = $$lcssa9; + $j$0$ph = $$lcssa6; + } + HEAP32[$0 >> 2] = $37; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat4sortIj11reduceDB_ltEEvPT_iT0_($array, $$lcssa9, $$byval_copy1); + $79 = $size - $$lcssa9 | 0; + HEAP32[$1 >> 2] = $37; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$1 + 0 >> 2]; + __ZN7Minisat4sortIj11reduceDB_ltEEvPT_iT0_($$lcssa10, $79, $$byval_copy1); + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver10addClause_ERNS_3vecINS_3LitEiEE($this, $ps) { + $this = $this | 0; + $ps = $ps | 0; + var $$0 = 0, $$byval_copy = 0, $$pr = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $106 = 0, $108 = 0, $110 = 0, $111 = 0, $12 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $33 = 0, $34 = 0, $4 = 0, $47 = 0, $49 = 0, $5 = 0, $50 = 0, $52 = 0, $54 = 0, $55 = 0, $6 = 0, $67 = 0, $68 = 0, $7 = 0, $72 = 0, $73 = 0, $79 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $91 = 0, $93 = 0, $96 = 0, $97 = 0, $99 = 0, $i$0$lcssa = 0, $i$022 = 0, $j$0$lcssa = 0, $j$023 = 0, $j$1 = 0, $p$sroa$0$021 = 0, $p$sroa$0$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 1 | 0; + $0 = sp; + $1 = $this + 492 | 0; + if (!(HEAP8[$1 >> 0] | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $4 = HEAP32[$ps >> 2] | 0; + $5 = $ps + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + HEAP8[$$byval_copy + 0 >> 0] = HEAP8[$0 + 0 >> 0] | 0; + __ZN7Minisat4sortINS_3LitENS_16LessThan_defaultIS1_EEEEvPT_iT0_($4, $6, $$byval_copy); + $7 = HEAP32[$5 >> 2] | 0; + L4 : do if (($7 | 0) > 0) { + $9 = $this + 332 | 0; + $$pre = HEAP8[528] | 0; + $110 = $7; + $i$022 = 0; + $j$023 = 0; + $p$sroa$0$021 = -2; + while (1) { + $10 = HEAP32[$ps >> 2] | 0; + $12 = HEAP32[$10 + ($i$022 << 2) >> 2] | 0; + $18 = HEAPU8[(HEAP32[$9 >> 2] | 0) + ($12 >> 1) >> 0] | 0; + $19 = $18 ^ $12 & 1; + $20 = $19 & 255; + $21 = $$pre & 255; + if ($20 << 24 >> 24 == $$pre << 24 >> 24 & ($21 >>> 1 ^ 1) | $21 & 2 & $19) { + $$0 = 1; + label = 23; + break; + } + if (($12 | 0) == ($p$sroa$0$021 ^ 1 | 0)) { + $$0 = 1; + label = 23; + break; + } + $33 = HEAP8[536] | 0; + $34 = $33 & 255; + if (($12 | 0) != ($p$sroa$0$021 | 0) ? (($34 >>> 1 ^ 1) & $20 << 24 >> 24 == $33 << 24 >> 24 | $18 & 2 & $34 | 0) == 0 : 0) { + HEAP32[$10 + ($j$023 << 2) >> 2] = $12; + $49 = HEAP32[$5 >> 2] | 0; + $j$1 = $j$023 + 1 | 0; + $p$sroa$0$1 = $12; + } else { + $49 = $110; + $j$1 = $j$023; + $p$sroa$0$1 = $p$sroa$0$021; + } + $47 = $i$022 + 1 | 0; + if (($47 | 0) < ($49 | 0)) { + $110 = $49; + $i$022 = $47; + $j$023 = $j$1; + $p$sroa$0$021 = $p$sroa$0$1; + } else { + $$pr = $49; + $i$0$lcssa = $47; + $j$0$lcssa = $j$1; + break L4; + } + } + if ((label | 0) == 23) { + STACKTOP = sp; + return $$0 | 0; + } + } else { + $$pr = $7; + $i$0$lcssa = 0; + $j$0$lcssa = 0; + } while (0); + $50 = $i$0$lcssa - $j$0$lcssa | 0; + if (($50 | 0) > 0) { + $52 = $$pr - $50 | 0; + HEAP32[$5 >> 2] = $52; + $111 = $52; + } else $111 = $$pr; + if (!$111) { + HEAP8[$1 >> 0] = 0; + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } else if (($111 | 0) == 1) { + $54 = HEAP32[HEAP32[$ps >> 2] >> 2] | 0; + $55 = $54 >> 1; + HEAP8[(HEAP32[$this + 332 >> 2] | 0) + $55 >> 0] = ($54 & 1 ^ 1) & 255 ^ 1; + $67 = HEAP32[$this + 296 >> 2] | 0; + $68 = (HEAP32[$this + 396 >> 2] | 0) + ($55 << 3) | 0; + HEAP32[$68 >> 2] = -1; + HEAP32[$68 + 4 >> 2] = $67; + $72 = $this + 284 | 0; + $73 = HEAP32[$72 >> 2] | 0; + HEAP32[$72 >> 2] = $73 + 1; + HEAP32[(HEAP32[$this + 280 >> 2] | 0) + ($73 << 2) >> 2] = $54; + $79 = (__ZN7Minisat6Solver9propagateEv($this) | 0) == -1; + HEAP8[$1 >> 0] = $79 & 1; + $$0 = $79; + STACKTOP = sp; + return $$0 | 0; + } else { + $82 = __ZN7Minisat15ClauseAllocator5allocERKNS_3vecINS_3LitEiEEb($this + 544 | 0, $ps, 0) | 0; + $83 = $this + 256 | 0; + $84 = $this + 260 | 0; + $85 = HEAP32[$84 >> 2] | 0; + $86 = $this + 264 | 0; + if (($85 | 0) == (HEAP32[$86 >> 2] | 0)) { + $91 = ($85 >> 1) + 2 & -2; + $93 = ($91 | 0) < 2 ? 2 : $91; + if (($93 | 0) > (2147483647 - $85 | 0)) { + $104 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($104 | 0, 48, 0); + } + $96 = HEAP32[$83 >> 2] | 0; + $97 = $93 + $85 | 0; + HEAP32[$86 >> 2] = $97; + $99 = _realloc($96, $97 << 2) | 0; + HEAP32[$83 >> 2] = $99; + if (!$99) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $104 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($104 | 0, 48, 0); + } + $106 = HEAP32[$84 >> 2] | 0; + } else $106 = $85; + HEAP32[$84 >> 2] = $106 + 1; + $108 = (HEAP32[$83 >> 2] | 0) + ($106 << 2) | 0; + if ($108) HEAP32[$108 >> 2] = $82; + __ZN7Minisat6Solver12attachClauseEj($this, $82); + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + return 0; +} +function _addClause($terms) { + $terms = $terms | 0; + var $$017 = 0, $$1 = 0, $$lcssa = 0, $$lcssa14 = 0, $$phi$trans$insert$i$i = 0, $0 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $21 = 0, $23 = 0, $26 = 0, $28 = 0, $29 = 0, $3 = 0, $35 = 0, $36 = 0, $41 = 0, $42 = 0, $43 = 0, $46 = 0, $47 = 0, $48 = 0, $52 = 0, $55 = 0, $57 = 0, $60 = 0, $62 = 0, $67 = 0, $68 = 0, $7 = 0, $70 = 0, $71 = 0, $73 = 0, $75 = 0, $80 = 0, $82 = 0, $83 = 0, $9 = 0, $_ZN7MinisatL7l_UndefE158$byval_copy = 0, $i$01$i$i = 0, $i$01$i$i$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $_ZN7MinisatL7l_UndefE158$byval_copy = sp; + $0 = HEAP32[$terms >> 2] | 0; + L1 : do if (!$0) { + $$lcssa = 0; + $$lcssa14 = 0; + } else { + $$017 = $terms; + $15 = 0; + $16 = 0; + $28 = 0; + $3 = $0; + while (1) { + $$1 = ($3 | 0) < 0 ? 0 - $3 | 0 : $3; + if (($$1 | 0) > (HEAP32[964] | 0)) do { + $7 = HEAP32[962] | 0; + HEAP8[$_ZN7MinisatL7l_UndefE158$byval_copy + 0 >> 0] = HEAP8[3840] | 0; + __ZN7Minisat10SimpSolver6newVarENS_5lboolEb($7, $_ZN7MinisatL7l_UndefE158$byval_copy, 1) | 0; + $9 = (HEAP32[964] | 0) + 1 | 0; + HEAP32[964] = $9; + } while (($$1 | 0) > ($9 | 0)); + $13 = ($$1 << 1) + -2 | $3 >>> 31; + $17 = $15 + 1 | 0; + if (($15 | 0) == ($16 | 0) & ($16 | 0) < ($17 | 0)) { + $21 = ($15 >> 1) + 2 & -2; + $23 = ($21 | 0) < 2 ? 2 : $21; + if (($23 | 0) > (2147483647 - $15 | 0)) { + label = 8; + break; + } + $26 = $23 + $15 | 0; + $29 = _realloc($28, $26 << 2) | 0; + if (!$29) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + label = 8; + break; + } else { + $36 = $29; + $82 = $26; + } else { + $36 = $29; + $82 = $26; + } + } else { + $36 = $28; + $82 = $16; + } + $35 = $36 + ($15 << 2) | 0; + if ($35) HEAP32[$35 >> 2] = $13; + $$017 = $$017 + 4 | 0; + $3 = HEAP32[$$017 >> 2] | 0; + if (!$3) { + $$lcssa = $17; + $$lcssa14 = $36; + break L1; + } else { + $15 = $17; + $16 = $82; + $28 = $36; + } + } + if ((label | 0) == 8) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + } while (0); + $41 = HEAP32[962] | 0; + $42 = $41 + 628 | 0; + $43 = HEAP32[$42 >> 2] | 0; + $$phi$trans$insert$i$i = $41 + 632 | 0; + if (!$43) $46 = HEAP32[$$phi$trans$insert$i$i >> 2] | 0; else { + HEAP32[$$phi$trans$insert$i$i >> 2] = 0; + $46 = 0; + } + if (($46 | 0) < ($$lcssa | 0)) { + $47 = $41 + 636 | 0; + $48 = HEAP32[$47 >> 2] | 0; + if (($48 | 0) < ($$lcssa | 0)) { + $52 = $$lcssa + 1 - $48 & -2; + $55 = ($48 >> 1) + 2 & -2; + $57 = ($52 | 0) > ($55 | 0) ? $52 : $55; + if (($57 | 0) > (2147483647 - $48 | 0)) { + $67 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($67 | 0, 48, 0); + } + $60 = $57 + $48 | 0; + HEAP32[$47 >> 2] = $60; + $62 = _realloc($43, $60 << 2) | 0; + HEAP32[$42 >> 2] = $62; + if (!$62) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $67 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($67 | 0, 48, 0); + } else $83 = $62; else $83 = $62; + } else $83 = $43; + $68 = HEAP32[$$phi$trans$insert$i$i >> 2] | 0; + L34 : do if (($68 | 0) < ($$lcssa | 0)) { + $71 = $83; + $i$01$i$i$i = $68; + while (1) { + $70 = $71 + ($i$01$i$i$i << 2) | 0; + if ($70) HEAP32[$70 >> 2] = 0; + $73 = $i$01$i$i$i + 1 | 0; + if (($73 | 0) == ($$lcssa | 0)) break L34; + $71 = HEAP32[$42 >> 2] | 0; + $i$01$i$i$i = $73; + } + } while (0); + HEAP32[$$phi$trans$insert$i$i >> 2] = $$lcssa; + } + if (($$lcssa | 0) > 0) { + $75 = HEAP32[$42 >> 2] | 0; + $i$01$i$i = 0; + do { + HEAP32[$75 + ($i$01$i$i << 2) >> 2] = HEAP32[$$lcssa14 + ($i$01$i$i << 2) >> 2]; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($$lcssa | 0)); + } + $80 = __ZN7Minisat10SimpSolver10addClause_ERNS_3vecINS_3LitEiEE($41, $42) | 0; + if (!$$lcssa14) { + STACKTOP = sp; + return $80 | 0; + } + _free($$lcssa14); + STACKTOP = sp; + return $80 | 0; +} +function __ZN7Minisat6SolverC2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $2 = 0, $32 = 0, $49 = 0, $59 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $72 = 0, $73 = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + HEAP32[$this >> 2] = 1816; + $0 = $this + 4 | 0; + $1 = $this + 32 | 0; + $2 = $this + 48 | 0; + HEAP32[$0 + 0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + HEAP32[$0 + 12 >> 2] = 0; + HEAP32[$0 + 16 >> 2] = 0; + HEAP32[$0 + 20 >> 2] = 0; + HEAP32[$1 + 0 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 + 12 >> 2] = 0; + HEAPF64[$2 >> 3] = +HEAPF64[75]; + HEAPF64[$this + 56 >> 3] = +HEAPF64[89]; + HEAPF64[$this + 64 >> 3] = +HEAPF64[103]; + HEAPF64[$this + 72 >> 3] = +HEAPF64[123]; + HEAP8[$this + 80 >> 0] = HEAP8[1364] | 0; + HEAP32[$this + 84 >> 2] = HEAP32[269]; + HEAP32[$this + 88 >> 2] = HEAP32[297]; + HEAP8[$this + 92 >> 0] = 0; + HEAP8[$this + 93 >> 0] = HEAP8[1292] | 0; + HEAPF64[$this + 96 >> 3] = +HEAPF64[204]; + HEAP32[$this + 104 >> 2] = HEAP32[439]; + HEAP32[$this + 108 >> 2] = HEAP32[359]; + HEAPF64[$this + 112 >> 3] = +HEAPF64[191]; + HEAPF64[$this + 120 >> 3] = .3333333333333333; + HEAPF64[$this + 128 >> 3] = 1.1; + HEAP32[$this + 136 >> 2] = 100; + HEAPF64[$this + 144 >> 3] = 1.5; + $32 = $this + 316 | 0; + HEAP32[$this + 332 >> 2] = 0; + HEAP32[$this + 336 >> 2] = 0; + HEAP32[$this + 340 >> 2] = 0; + HEAP32[$this + 348 >> 2] = 0; + HEAP32[$this + 352 >> 2] = 0; + HEAP32[$this + 356 >> 2] = 0; + HEAP32[$this + 364 >> 2] = 0; + HEAP32[$this + 368 >> 2] = 0; + HEAP32[$this + 372 >> 2] = 0; + HEAP32[$this + 380 >> 2] = 0; + HEAP32[$this + 384 >> 2] = 0; + HEAP32[$this + 388 >> 2] = 0; + HEAP32[$this + 396 >> 2] = 0; + HEAP32[$this + 400 >> 2] = 0; + HEAP32[$this + 404 >> 2] = 0; + $49 = $this + 544 | 0; + HEAP32[$this + 412 >> 2] = 0; + HEAP32[$this + 416 >> 2] = 0; + HEAP32[$this + 420 >> 2] = 0; + HEAP32[$this + 428 >> 2] = 0; + HEAP32[$this + 432 >> 2] = 0; + HEAP32[$this + 436 >> 2] = 0; + HEAP32[$this + 444 >> 2] = 0; + HEAP32[$this + 448 >> 2] = 0; + HEAP32[$this + 452 >> 2] = 0; + _memset($this + 152 | 0, 0, 176) | 0; + HEAP32[$this + 456 >> 2] = $49; + $59 = $this + 460 | 0; + HEAP32[$59 + 0 >> 2] = 0; + HEAP32[$59 + 4 >> 2] = 0; + HEAP32[$59 + 8 >> 2] = 0; + HEAP32[$59 + 12 >> 2] = 0; + HEAP32[$59 + 16 >> 2] = 0; + HEAP32[$59 + 20 >> 2] = 0; + HEAP32[$this + 488 >> 2] = $32; + HEAP8[$this + 492 >> 0] = 1; + HEAPF64[$this + 496 >> 3] = 1.0; + HEAPF64[$this + 504 >> 3] = 1.0; + HEAP32[$this + 512 >> 2] = 0; + HEAP32[$this + 516 >> 2] = -1; + $66 = $this + 520 | 0; + $67 = $this + 536 | 0; + HEAP32[$66 + 0 >> 2] = 0; + HEAP32[$66 + 4 >> 2] = 0; + HEAP32[$66 + 8 >> 2] = 0; + HEAP32[$66 + 12 >> 2] = 0; + HEAP8[$67 >> 0] = 1; + $68 = $this + 540 | 0; + HEAP32[$68 + 0 >> 2] = 0; + HEAP32[$68 + 4 >> 2] = 0; + HEAP32[$68 + 8 >> 2] = 0; + HEAP32[$68 + 12 >> 2] = 0; + HEAP32[$68 + 16 >> 2] = 0; + __ZN7Minisat15RegionAllocatorIjE8capacityEj($49, 1048576); + HEAP8[$this + 560 >> 0] = 0; + $71 = $this + 604 | 0; + $72 = $this + 664 | 0; + dest = $this + 564 | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + dest = $71 + 0 | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $73 = $this + 680 | 0; + HEAP32[$72 + 0 >> 2] = -1; + HEAP32[$72 + 4 >> 2] = -1; + HEAP32[$72 + 8 >> 2] = -1; + HEAP32[$72 + 12 >> 2] = -1; + HEAP8[$73 >> 0] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver12analyzeFinalENS_3LitERNS_4LSetE($this, $p, $out_conflict) { + $this = $this | 0; + $p = $p | 0; + $out_conflict = $out_conflict | 0; + var $$byval_copy1 = 0, $0 = 0, $1 = 0, $17 = 0, $19 = 0, $2 = 0, $26 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $42 = 0, $43 = 0, $49 = 0, $50 = 0, $52 = 0, $54 = 0, $56 = 0, $6 = 0, $60 = 0, $61 = 0, $65 = 0, $67 = 0, $72 = 0, $74 = 0, $80 = 0, $81 = 0, $i$01$i = 0, $i$014$in = 0, $j$012 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + $$byval_copy1 = sp + 16 | 0; + $0 = sp + 12 | 0; + $1 = sp + 8 | 0; + $2 = sp; + $3 = $out_conflict + 20 | 0; + $6 = $out_conflict + 16 | 0; + if ((HEAP32[$3 >> 2] | 0) > 0) { + $i$01$i = 0; + do { + HEAP8[(HEAP32[$out_conflict >> 2] | 0) + (HEAP32[(HEAP32[$6 >> 2] | 0) + ($i$01$i << 2) >> 2] | 0) >> 0] = 0; + $i$01$i = $i$01$i + 1 | 0; + } while (($i$01$i | 0) < (HEAP32[$3 >> 2] | 0)); + } + if (HEAP32[$6 >> 2] | 0) HEAP32[$3 >> 2] = 0; + $17 = HEAP32[$p >> 2] | 0; + HEAP32[$1 >> 2] = $17; + HEAP32[$0 >> 2] = $17; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEcNS_10MkIndexLitEE7reserveES1_c($out_conflict, $$byval_copy1, 0); + $19 = (HEAP32[$out_conflict >> 2] | 0) + $17 | 0; + if (!(HEAP8[$19 >> 0] | 0)) { + HEAP8[$19 >> 0] = 1; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($out_conflict + 16 | 0, $1); + } + if (!(HEAP32[$this + 296 >> 2] | 0)) { + STACKTOP = sp; + return; + } + $26 = $17 >> 1; + $27 = $this + 588 | 0; + HEAP8[(HEAP32[$27 >> 2] | 0) + $26 >> 0] = 1; + $31 = HEAP32[$this + 284 >> 2] | 0; + $32 = $this + 292 | 0; + $34 = HEAP32[HEAP32[$32 >> 2] >> 2] | 0; + if (($31 | 0) > ($34 | 0)) { + $36 = $this + 280 | 0; + $37 = $this + 396 | 0; + $38 = $out_conflict + 16 | 0; + $39 = $this + 544 | 0; + $80 = $34; + $i$014$in = $31; + while (1) { + $i$014$in = $i$014$in + -1 | 0; + $42 = HEAP32[(HEAP32[$36 >> 2] | 0) + ($i$014$in << 2) >> 2] | 0; + $43 = $42 >> 1; + if (!(HEAP8[(HEAP32[$27 >> 2] | 0) + $43 >> 0] | 0)) $49 = $80; else { + $50 = HEAP32[$37 >> 2] | 0; + $52 = HEAP32[$50 + ($43 << 3) >> 2] | 0; + L21 : do if (($52 | 0) == -1) { + $54 = $42 ^ 1; + HEAP32[$2 >> 2] = $54; + HEAP32[$0 >> 2] = $54; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEcNS_10MkIndexLitEE7reserveES1_c($out_conflict, $$byval_copy1, 0); + $56 = (HEAP32[$out_conflict >> 2] | 0) + $54 | 0; + if (!(HEAP8[$56 >> 0] | 0)) { + HEAP8[$56 >> 0] = 1; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($38, $2); + } + } else { + $60 = (HEAP32[$39 >> 2] | 0) + ($52 << 2) | 0; + $61 = HEAP32[$60 >> 2] | 0; + if ($61 >>> 0 > 63) { + $67 = $50; + $81 = $61; + $j$012 = 1; + while (1) { + $65 = HEAP32[$60 + ($j$012 << 2) + 4 >> 2] >> 1; + if ((HEAP32[$67 + ($65 << 3) + 4 >> 2] | 0) > 0) { + HEAP8[(HEAP32[$27 >> 2] | 0) + $65 >> 0] = 1; + $74 = HEAP32[$60 >> 2] | 0; + } else $74 = $81; + $72 = $j$012 + 1 | 0; + if (($72 | 0) >= ($74 >>> 5 | 0)) break L21; + $67 = HEAP32[$37 >> 2] | 0; + $81 = $74; + $j$012 = $72; + } + } + } while (0); + HEAP8[(HEAP32[$27 >> 2] | 0) + $43 >> 0] = 0; + $49 = HEAP32[HEAP32[$32 >> 2] >> 2] | 0; + } + if (($i$014$in | 0) <= ($49 | 0)) break; else $80 = $49; + } + } + HEAP8[(HEAP32[$27 >> 2] | 0) + $26 >> 0] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolverC2Ev($this) { + $this = $this | 0; + var $20 = 0, $22 = 0, $31 = 0, $32 = 0, $35 = 0, $37 = 0, $38 = 0, $40 = 0, $46 = 0, $48 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $67 = 0, $dummy = 0, $i$01$i$i$i$i$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $dummy = sp; + __ZN7Minisat6SolverC2Ev($this); + HEAP32[$this >> 2] = 3424; + HEAP32[$this + 684 >> 2] = HEAP32[719]; + HEAP32[$this + 688 >> 2] = HEAP32[747]; + HEAP32[$this + 692 >> 2] = HEAP32[785]; + HEAPF64[$this + 696 >> 3] = +HEAPF64[411]; + HEAP8[$this + 704 >> 0] = HEAP8[2652] | 0; + HEAP8[$this + 705 >> 0] = HEAP8[2724] | 0; + HEAP8[$this + 706 >> 0] = HEAP8[2804] | 0; + HEAP8[$this + 707 >> 0] = 1; + HEAP32[$this + 708 >> 2] = 0; + HEAP32[$this + 712 >> 2] = 0; + HEAP32[$this + 716 >> 2] = 0; + HEAP32[$this + 720 >> 2] = 1; + HEAP8[$this + 724 >> 0] = 1; + $20 = $this + 732 | 0; + $22 = $this + 544 | 0; + HEAP32[$this + 760 >> 2] = 0; + HEAP32[$this + 764 >> 2] = 0; + HEAP32[$this + 768 >> 2] = 0; + HEAP32[$this + 776 >> 2] = 0; + HEAP32[$this + 780 >> 2] = 0; + HEAP32[$this + 784 >> 2] = 0; + HEAP32[$this + 792 >> 2] = 0; + HEAP32[$this + 796 >> 2] = 0; + HEAP32[$this + 800 >> 2] = 0; + $31 = $this + 804 | 0; + HEAP32[$20 + 0 >> 2] = 0; + HEAP32[$20 + 4 >> 2] = 0; + HEAP32[$20 + 8 >> 2] = 0; + HEAP32[$20 + 12 >> 2] = 0; + HEAP32[$20 + 16 >> 2] = 0; + HEAP32[$20 + 20 >> 2] = 0; + HEAP32[$31 >> 2] = $22; + $32 = $this + 808 | 0; + HEAP32[$32 >> 2] = 0; + HEAP32[$this + 812 >> 2] = 0; + HEAP32[$this + 816 >> 2] = 0; + $35 = $this + 824 | 0; + HEAP32[$35 + 0 >> 2] = 0; + HEAP32[$35 + 4 >> 2] = 0; + HEAP32[$35 + 8 >> 2] = 0; + HEAP32[$35 + 12 >> 2] = 0; + HEAP32[$35 + 16 >> 2] = 0; + HEAP32[$35 + 20 >> 2] = 0; + HEAP32[$this + 852 >> 2] = $32; + $37 = $this + 856 | 0; + HEAP32[$37 >> 2] = 0; + $38 = $this + 860 | 0; + HEAP32[$38 >> 2] = 0; + HEAP32[$this + 864 >> 2] = 2; + $40 = _realloc(0, 8) | 0; + HEAP32[$37 >> 2] = $40; + if (!$40) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + $46 = HEAP32[$38 >> 2] | 0; + if (($46 | 0) < 1) { + $i$01$i$i$i$i$i = $46; + while (1) { + $48 = $40 + ($i$01$i$i$i$i$i << 2) | 0; + if ($48) HEAP32[$48 >> 2] = 0; + if (!$i$01$i$i$i$i$i) break; else $i$01$i$i$i$i$i = $i$01$i$i$i$i$i + 1 | 0; + } + } + HEAP32[$38 >> 2] = 1; + $51 = $this + 868 | 0; + $52 = $this + 892 | 0; + HEAP32[$this + 920 >> 2] = 0; + HEAP32[$this + 924 >> 2] = 0; + HEAP32[$51 + 0 >> 2] = 0; + HEAP32[$51 + 4 >> 2] = 0; + HEAP32[$51 + 8 >> 2] = 0; + HEAP32[$51 + 12 >> 2] = 0; + HEAP32[$51 + 16 >> 2] = 0; + HEAP32[$52 + 0 >> 2] = 0; + HEAP32[$52 + 4 >> 2] = 0; + HEAP32[$52 + 8 >> 2] = 0; + HEAP32[$52 + 12 >> 2] = 0; + HEAP32[$52 + 16 >> 2] = 0; + HEAP32[$52 + 20 >> 2] = 0; + $55 = $dummy + 4 | 0; + HEAP32[$55 >> 2] = 0; + $56 = $dummy + 8 | 0; + HEAP32[$56 >> 2] = 2; + $57 = _realloc(0, 8) | 0; + HEAP32[$dummy >> 2] = $57; + if (!$57) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + HEAP32[$57 >> 2] = -2; + HEAP32[$55 >> 2] = 1; + HEAP8[$this + 560 >> 0] = 1; + HEAP32[$this + 928 >> 2] = __ZN7Minisat15ClauseAllocator5allocERKNS_3vecINS_3LitEiEEb($22, $dummy, 0) | 0; + HEAP8[$this + 536 >> 0] = 0; + $67 = HEAP32[$dummy >> 2] | 0; + if (!$67) { + STACKTOP = sp; + return; + } + HEAP32[$55 >> 2] = 0; + _free($67); + HEAP32[$dummy >> 2] = 0; + HEAP32[$56 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE5buildERKNS_3vecIiiEE($this, $ns) { + $this = $this | 0; + $ns = $ns | 0; + var $$0$lcssa$i = 0, $$01$i = 0, $$pre$i = 0, $$pre$pre$i = 0, $$pre13 = 0, $$pre7$i = 0, $$pre7$pre$i = 0, $$pre9$i = 0.0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $16 = 0, $18 = 0, $26 = 0, $28 = 0, $29 = 0, $3 = 0, $31 = 0, $33 = 0, $35 = 0, $37 = 0, $39 = 0, $40 = 0, $42 = 0, $44 = 0, $46 = 0, $48 = 0.0, $5 = 0, $50 = 0.0, $53 = 0, $56 = 0.0, $58 = 0, $62 = 0, $70 = 0, $71 = 0, $i$07 = 0, $i1$03 = 0, $i2$02 = 0, $i2$02$in = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $3 = HEAP32[$this >> 2] | 0; + if (($1 | 0) > 0) { + $5 = HEAP32[$this + 12 >> 2] | 0; + $i$07 = 0; + do { + HEAP32[$5 + (HEAP32[$3 + ($i$07 << 2) >> 2] << 2) >> 2] = -1; + $i$07 = $i$07 + 1 | 0; + $10 = HEAP32[$0 >> 2] | 0; + } while (($i$07 | 0) < ($10 | 0)); + $70 = $10; + } else $70 = $1; + if (!$3) $71 = $70; else { + HEAP32[$0 >> 2] = 0; + $71 = 0; + } + $13 = $ns + 4 | 0; + if ((HEAP32[$13 >> 2] | 0) > 0) { + $16 = $this + 12 | 0; + $i1$03 = 0; + do { + $18 = (HEAP32[$ns >> 2] | 0) + ($i1$03 << 2) | 0; + HEAP32[(HEAP32[$16 >> 2] | 0) + (HEAP32[$18 >> 2] << 2) >> 2] = $i1$03; + __ZN7Minisat3vecIiiE4pushERKi($this, $18); + $i1$03 = $i1$03 + 1 | 0; + } while (($i1$03 | 0) < (HEAP32[$13 >> 2] | 0)); + $26 = HEAP32[$0 >> 2] | 0; + } else $26 = $71; + if (($26 | 0) <= 1) { + STACKTOP = sp; + return; + } + $28 = $this + 28 | 0; + $29 = $this + 12 | 0; + $$pre13 = HEAP32[$this >> 2] | 0; + $35 = $26; + $i2$02$in = ($26 | 0) / 2 | 0; + while (1) { + $i2$02 = $i2$02$in + -1 | 0; + $31 = HEAP32[$$pre13 + ($i2$02 << 2) >> 2] | 0; + $33 = $i2$02 << 1 | 1; + L20 : do if (($33 | 0) < ($35 | 0)) { + $$01$i = $i2$02; + $39 = $35; + $40 = $33; + while (1) { + $37 = ($$01$i << 1) + 2 | 0; + if (($37 | 0) < ($39 | 0)) { + $42 = HEAP32[$$pre13 + ($37 << 2) >> 2] | 0; + $44 = HEAP32[$$pre13 + ($40 << 2) >> 2] | 0; + $46 = HEAP32[HEAP32[$28 >> 2] >> 2] | 0; + $48 = +HEAPF64[$46 + ($42 << 3) >> 3]; + $50 = +HEAPF64[$46 + ($44 << 3) >> 3]; + if ($48 > $50) { + $53 = $46; + $56 = $48; + $58 = $42; + $62 = $37; + } else { + $$pre$i = $44; + $$pre7$i = $46; + $$pre9$i = $50; + label = 16; + } + } else { + $$pre$pre$i = HEAP32[$$pre13 + ($40 << 2) >> 2] | 0; + $$pre7$pre$i = HEAP32[HEAP32[$28 >> 2] >> 2] | 0; + $$pre$i = $$pre$pre$i; + $$pre7$i = $$pre7$pre$i; + $$pre9$i = +HEAPF64[$$pre7$pre$i + ($$pre$pre$i << 3) >> 3]; + label = 16; + } + if ((label | 0) == 16) { + label = 0; + $53 = $$pre7$i; + $56 = $$pre9$i; + $58 = $$pre$i; + $62 = $40; + } + if (!($56 > +HEAPF64[$53 + ($31 << 3) >> 3])) { + $$0$lcssa$i = $$01$i; + break L20; + } + HEAP32[$$pre13 + ($$01$i << 2) >> 2] = $58; + HEAP32[(HEAP32[$29 >> 2] | 0) + ($58 << 2) >> 2] = $$01$i; + $40 = $62 << 1 | 1; + $39 = HEAP32[$0 >> 2] | 0; + if (($40 | 0) >= ($39 | 0)) { + $$0$lcssa$i = $62; + break; + } else $$01$i = $62; + } + } else $$0$lcssa$i = $i2$02; while (0); + HEAP32[$$pre13 + ($$0$lcssa$i << 2) >> 2] = $31; + HEAP32[(HEAP32[$29 >> 2] | 0) + ($31 << 2) >> 2] = $$0$lcssa$i; + if (($i2$02 | 0) <= 0) break; + $35 = HEAP32[$0 >> 2] | 0; + $i2$02$in = $i2$02; + } + STACKTOP = sp; + return; +} +function __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE13percolateDownEi($this, $i) { + $this = $this | 0; + $i = $i | 0; + var $$0$lcssa = 0, $$01 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre7 = 0, $0 = 0, $10 = 0, $11 = 0, $13 = 0, $15 = 0, $16 = 0, $18 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $25 = 0, $30 = 0, $33 = 0, $34 = 0, $35 = 0, $37 = 0, $4 = 0, $42 = 0, $45 = 0, $46 = 0, $5 = 0, $52 = 0, $53 = 0, $55 = 0, $56 = 0, $6 = 0, $61 = 0, $64 = 0, $65 = 0, $67 = 0, $71 = 0, $74 = 0, $75 = 0, $8 = 0, $85 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$this >> 2] | 0; + $2 = HEAP32[$0 + ($i << 2) >> 2] | 0; + $4 = $i << 1 | 1; + $5 = $this + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($4 | 0) >= ($6 | 0)) { + $$0$lcssa = $i; + $$pre$phiZ2D = $this + 12 | 0; + $89 = $0 + ($$0$lcssa << 2) | 0; + HEAP32[$89 >> 2] = $2; + $90 = HEAP32[$$pre$phiZ2D >> 2] | 0; + $91 = $90 + ($2 << 2) | 0; + HEAP32[$91 >> 2] = $$0$lcssa; + STACKTOP = sp; + return; + } + $8 = $this + 28 | 0; + $9 = $2 << 1; + $10 = $9 | 1; + $11 = $this + 12 | 0; + $$01 = $i; + $15 = $6; + $16 = $4; + while (1) { + $13 = ($$01 << 1) + 2 | 0; + if (($13 | 0) < ($15 | 0)) { + $18 = HEAP32[$0 + ($13 << 2) >> 2] | 0; + $20 = HEAP32[$0 + ($16 << 2) >> 2] | 0; + $22 = $18 << 1; + $23 = HEAP32[HEAP32[$8 >> 2] >> 2] | 0; + $25 = HEAP32[$23 + ($22 << 2) >> 2] | 0; + $30 = HEAP32[$23 + (($22 | 1) << 2) >> 2] | 0; + $33 = ___muldi3($30 | 0, (($30 | 0) < 0) << 31 >> 31 | 0, $25 | 0, (($25 | 0) < 0) << 31 >> 31 | 0) | 0; + $34 = tempRet0; + $35 = $20 << 1; + $37 = HEAP32[$23 + ($35 << 2) >> 2] | 0; + $42 = HEAP32[$23 + (($35 | 1) << 2) >> 2] | 0; + $45 = ___muldi3($42 | 0, (($42 | 0) < 0) << 31 >> 31 | 0, $37 | 0, (($37 | 0) < 0) << 31 >> 31 | 0) | 0; + $46 = tempRet0; + if ($34 >>> 0 < $46 >>> 0 | ($34 | 0) == ($46 | 0) & $33 >>> 0 < $45 >>> 0) { + $53 = $18; + $55 = $23; + $85 = $13; + } else { + $$pre = $20; + $$pre7 = $23; + label = 7; + } + } else { + $$pre = HEAP32[$0 + ($16 << 2) >> 2] | 0; + $$pre7 = HEAP32[HEAP32[$8 >> 2] >> 2] | 0; + label = 7; + } + if ((label | 0) == 7) { + label = 0; + $53 = $$pre; + $55 = $$pre7; + $85 = $16; + } + $52 = $53 << 1; + $56 = HEAP32[$55 + ($52 << 2) >> 2] | 0; + $61 = HEAP32[$55 + (($52 | 1) << 2) >> 2] | 0; + $64 = ___muldi3($61 | 0, (($61 | 0) < 0) << 31 >> 31 | 0, $56 | 0, (($56 | 0) < 0) << 31 >> 31 | 0) | 0; + $65 = tempRet0; + $67 = HEAP32[$55 + ($9 << 2) >> 2] | 0; + $71 = HEAP32[$55 + ($10 << 2) >> 2] | 0; + $74 = ___muldi3($71 | 0, (($71 | 0) < 0) << 31 >> 31 | 0, $67 | 0, (($67 | 0) < 0) << 31 >> 31 | 0) | 0; + $75 = tempRet0; + if (!($65 >>> 0 < $75 >>> 0 | ($65 | 0) == ($75 | 0) & $64 >>> 0 < $74 >>> 0)) { + $$0$lcssa = $$01; + $$pre$phiZ2D = $11; + label = 10; + break; + } + HEAP32[$0 + ($$01 << 2) >> 2] = $53; + HEAP32[(HEAP32[$11 >> 2] | 0) + ($53 << 2) >> 2] = $$01; + $16 = $85 << 1 | 1; + $15 = HEAP32[$5 >> 2] | 0; + if (($16 | 0) >= ($15 | 0)) { + $$0$lcssa = $85; + $$pre$phiZ2D = $11; + label = 10; + break; + } else $$01 = $85; + } + if ((label | 0) == 10) { + $89 = $0 + ($$0$lcssa << 2) | 0; + HEAP32[$89 >> 2] = $2; + $90 = HEAP32[$$pre$phiZ2D >> 2] | 0; + $91 = $90 + ($2 << 2) | 0; + HEAP32[$91 >> 2] = $$0$lcssa; + STACKTOP = sp; + return; + } +} +function __ZN7Minisat6Solver15removeSatisfiedERNS_3vecIjiEE($this, $cs) { + $this = $this | 0; + $cs = $cs | 0; + var $$lcssa7 = 0, $$pre = 0, $$pre18 = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $17 = 0, $18 = 0, $22 = 0, $28 = 0, $3 = 0, $38 = 0, $39 = 0, $4 = 0, $46 = 0, $48 = 0, $5 = 0, $60 = 0, $63 = 0, $66 = 0, $7 = 0, $71 = 0, $72 = 0, $75 = 0, $79 = 0, $80 = 0, $81 = 0, $82 = 0, $84 = 0, $87 = 0, $9 = 0, $i$0$lcssa = 0, $i$05$i = 0, $i$09 = 0, $j$0$lcssa = 0, $j$08 = 0, $j$1 = 0, $k$06 = 0, $k$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $cs + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (($1 | 0) > 0) { + $3 = $this + 544 | 0; + $4 = $this + 332 | 0; + $i$09 = 0; + $j$08 = 0; + while (1) { + $5 = HEAP32[$cs >> 2] | 0; + $7 = HEAP32[$5 + ($i$09 << 2) >> 2] | 0; + $9 = (HEAP32[$3 >> 2] | 0) + ($7 << 2) | 0; + $10 = HEAP32[$9 >> 2] | 0; + do if ($10 >>> 0 > 31) { + $12 = HEAP32[$4 >> 2] | 0; + $13 = HEAP8[528] | 0; + $14 = $13 & 255; + $15 = $14 & 2; + $17 = $14 >>> 1 ^ 1; + $18 = $10 >>> 5; + $i$05$i = 0; + do { + $22 = HEAP32[$9 + ($i$05$i << 2) + 4 >> 2] | 0; + $28 = (HEAPU8[$12 + ($22 >> 1) >> 0] | 0) ^ $22 & 1; + $i$05$i = $i$05$i + 1 | 0; + if (($28 & 255) << 24 >> 24 == $13 << 24 >> 24 & $17 | $15 & $28) { + label = 7; + break; + } + } while (($i$05$i | 0) < ($18 | 0)); + if ((label | 0) == 7) { + label = 0; + __ZN7Minisat6Solver12removeClauseEj($this, $7); + $j$1 = $j$08; + break; + } + if ($10 >>> 0 > 95) { + $$pre18 = HEAP8[536] | 0; + $60 = $10 >>> 5; + $87 = $10; + $k$06 = 2; + while (1) { + $38 = $9 + ($k$06 << 2) + 4 | 0; + $39 = HEAP32[$38 >> 2] | 0; + $46 = (HEAPU8[(HEAP32[$4 >> 2] | 0) + ($39 >> 1) >> 0] | 0) ^ $39 & 1; + $48 = $$pre18 & 255; + if (!(($46 & 255) << 24 >> 24 == $$pre18 << 24 >> 24 & ($48 >>> 1 ^ 1) | $48 & 2 & $46)) { + $75 = $87; + $k$1 = $k$06; + } else { + HEAP32[$38 >> 2] = HEAP32[$9 + ($60 + -1 << 2) + 4 >> 2]; + $63 = HEAP32[$9 >> 2] | 0; + if (!($63 & 8)) $72 = $63; else { + $66 = $63 >>> 5; + HEAP32[$9 + ($66 + -1 << 2) + 4 >> 2] = HEAP32[$9 + ($66 << 2) + 4 >> 2]; + $72 = HEAP32[$9 >> 2] | 0; + } + $71 = $72 + -32 | 0; + HEAP32[$9 >> 2] = $71; + $75 = $71; + $k$1 = $k$06 + -1 | 0; + } + $k$06 = $k$1 + 1 | 0; + $60 = $75 >>> 5; + if (($k$06 | 0) >= ($60 | 0)) break; else $87 = $75; + } + $$pre = HEAP32[$cs >> 2] | 0; + $79 = $$pre; + $80 = HEAP32[$$pre + ($i$09 << 2) >> 2] | 0; + label = 16; + } else { + $79 = $5; + $80 = $7; + label = 16; + } + } else { + $79 = $5; + $80 = $7; + label = 16; + } while (0); + if ((label | 0) == 16) { + label = 0; + HEAP32[$79 + ($j$08 << 2) >> 2] = $80; + $j$1 = $j$08 + 1 | 0; + } + $81 = $i$09 + 1 | 0; + $82 = HEAP32[$0 >> 2] | 0; + if (($81 | 0) < ($82 | 0)) { + $i$09 = $81; + $j$08 = $j$1; + } else { + $$lcssa7 = $82; + $i$0$lcssa = $81; + $j$0$lcssa = $j$1; + break; + } + } + } else { + $$lcssa7 = $1; + $i$0$lcssa = 0; + $j$0$lcssa = 0; + } + $84 = $i$0$lcssa - $j$0$lcssa | 0; + if (($84 | 0) <= 0) { + STACKTOP = sp; + return; + } + HEAP32[$0 >> 2] = $$lcssa7 - $84; + STACKTOP = sp; + return; +} +function _scanexp($f, $pok) { + $f = $f | 0; + $pok = $pok | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $20 = 0, $34 = 0, $35 = 0, $46 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $59 = 0, $60 = 0, $61 = 0, $75 = 0, $88 = 0, $89 = 0, $90 = 0, $91 = 0, $95 = 0, $96 = 0, $c$0 = 0, $c$1$be = 0, $c$18 = 0, $c$2$be = 0, $c$2$lcssa = 0, $c$23 = 0, $c$3$be = 0, $neg$0 = 0, $x$09 = 0, sp = 0; + sp = STACKTOP; + $0 = $f + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $f + 100 | 0; + if ($1 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $1 + 1; + $10 = HEAPU8[$1 >> 0] | 0; + } else $10 = ___shgetc($f) | 0; + if (($10 | 0) == 43 | ($10 | 0) == 45) { + $11 = ($10 | 0) == 45 & 1; + $12 = HEAP32[$0 >> 2] | 0; + if ($12 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $12 + 1; + $20 = HEAPU8[$12 >> 0] | 0; + } else $20 = ___shgetc($f) | 0; + if (($20 + -48 | 0) >>> 0 < 10 | ($pok | 0) == 0) { + $c$0 = $20; + $neg$0 = $11; + } else if (!(HEAP32[$2 >> 2] | 0)) { + $c$0 = $20; + $neg$0 = $11; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $c$0 = $20; + $neg$0 = $11; + } + } else { + $c$0 = $10; + $neg$0 = 0; + } + if (($c$0 + -48 | 0) >>> 0 > 9) { + if (!(HEAP32[$2 >> 2] | 0)) { + $95 = -2147483648; + $96 = 0; + tempRet0 = $95; + STACKTOP = sp; + return $96 | 0; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $95 = -2147483648; + $96 = 0; + tempRet0 = $95; + STACKTOP = sp; + return $96 | 0; + } else { + $c$18 = $c$0; + $x$09 = 0; + } + while (1) { + $34 = $c$18 + -48 + $x$09 | 0; + $35 = HEAP32[$0 >> 2] | 0; + if ($35 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $35 + 1; + $c$1$be = HEAPU8[$35 >> 0] | 0; + } else $c$1$be = ___shgetc($f) | 0; + if (!(($c$1$be + -48 | 0) >>> 0 < 10 & ($34 | 0) < 214748364)) break; + $c$18 = $c$1$be; + $x$09 = $34 * 10 | 0; + } + $46 = (($34 | 0) < 0) << 31 >> 31; + if (($c$1$be + -48 | 0) >>> 0 < 10) { + $51 = $34; + $52 = $46; + $c$23 = $c$1$be; + while (1) { + $53 = ___muldi3($51 | 0, $52 | 0, 10, 0) | 0; + $54 = tempRet0; + $57 = _i64Add($c$23 | 0, (($c$23 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; + $59 = _i64Add($57 | 0, tempRet0 | 0, $53 | 0, $54 | 0) | 0; + $60 = tempRet0; + $61 = HEAP32[$0 >> 2] | 0; + if ($61 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $61 + 1; + $c$2$be = HEAPU8[$61 >> 0] | 0; + } else $c$2$be = ___shgetc($f) | 0; + if (($c$2$be + -48 | 0) >>> 0 < 10 & (($60 | 0) < 21474836 | ($60 | 0) == 21474836 & $59 >>> 0 < 2061584302)) { + $51 = $59; + $52 = $60; + $c$23 = $c$2$be; + } else { + $89 = $59; + $90 = $60; + $c$2$lcssa = $c$2$be; + break; + } + } + } else { + $89 = $34; + $90 = $46; + $c$2$lcssa = $c$1$be; + } + if (($c$2$lcssa + -48 | 0) >>> 0 < 10) do { + $75 = HEAP32[$0 >> 2] | 0; + if ($75 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $75 + 1; + $c$3$be = HEAPU8[$75 >> 0] | 0; + } else $c$3$be = ___shgetc($f) | 0; + } while (($c$3$be + -48 | 0) >>> 0 < 10); + if (HEAP32[$2 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $88 = ($neg$0 | 0) != 0; + $91 = _i64Subtract(0, 0, $89 | 0, $90 | 0) | 0; + $95 = $88 ? tempRet0 : $90; + $96 = $88 ? $91 : $89; + tempRet0 = $95; + STACKTOP = sp; + return $96 | 0; +} +function __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE6insertEi($this, $k) { + $this = $this | 0; + $k = $k | 0; + var $$in$in$i = 0, $$sink$in$lcssa$i = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $27 = 0, $28 = 0, $3 = 0, $38 = 0, $40 = 0, $41 = 0, $43 = 0, $45 = 0, $46 = 0, $47 = 0, $49 = 0, $50 = 0, $52 = 0, $54 = 0, $58 = 0, $6 = 0, $61 = 0, $62 = 0, $63 = 0, $65 = 0, $7 = 0, $70 = 0, $73 = 0, $74 = 0, $84 = 0, $85 = 0, label = 0, sp = 0, $$in$in$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp; + HEAP32[$0 >> 2] = $k; + $1 = $this + 12 | 0; + $2 = $k + 1 | 0; + $3 = $this + 16 | 0; + if ((HEAP32[$3 >> 2] | 0) < ($2 | 0)) { + $6 = $this + 20 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if (($7 | 0) < ($2 | 0)) { + $11 = $k + 2 - $7 & -2; + $14 = ($7 >> 1) + 2 & -2; + $16 = ($11 | 0) > ($14 | 0) ? $11 : $14; + if (($16 | 0) > (2147483647 - $7 | 0)) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + $19 = HEAP32[$1 >> 2] | 0; + $20 = $16 + $7 | 0; + HEAP32[$6 >> 2] = $20; + $22 = _realloc($19, $20 << 2) | 0; + HEAP32[$1 >> 2] = $22; + if (!$22) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + } + $28 = HEAP32[$3 >> 2] | 0; + if (($28 | 0) < ($2 | 0)) _memset((HEAP32[$1 >> 2] | 0) + ($28 << 2) | 0, -1, $2 - $28 << 2 | 0) | 0; + HEAP32[$3 >> 2] = $2; + } + HEAP32[(HEAP32[$1 >> 2] | 0) + ($k << 2) >> 2] = HEAP32[$this + 4 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($this, $0); + $38 = HEAP32[$1 >> 2] | 0; + $40 = HEAP32[$38 + (HEAP32[$0 >> 2] << 2) >> 2] | 0; + $41 = HEAP32[$this >> 2] | 0; + $43 = HEAP32[$41 + ($40 << 2) >> 2] | 0; + if (!$40) { + $$sink$in$lcssa$i = 0; + $84 = $41 + ($$sink$in$lcssa$i << 2) | 0; + HEAP32[$84 >> 2] = $43; + $85 = $38 + ($43 << 2) | 0; + HEAP32[$85 >> 2] = $$sink$in$lcssa$i; + STACKTOP = sp; + return; + } + $45 = $this + 28 | 0; + $46 = $43 << 1; + $47 = $46 | 1; + $$in$in$i = $40; + while (1) { + $$in$in$i$looptemp = $$in$in$i; + $$in$in$i = $$in$in$i + -1 >> 1; + $49 = $41 + ($$in$in$i << 2) | 0; + $50 = HEAP32[$49 >> 2] | 0; + $52 = HEAP32[HEAP32[$45 >> 2] >> 2] | 0; + $54 = HEAP32[$52 + ($46 << 2) >> 2] | 0; + $58 = HEAP32[$52 + ($47 << 2) >> 2] | 0; + $61 = ___muldi3($58 | 0, (($58 | 0) < 0) << 31 >> 31 | 0, $54 | 0, (($54 | 0) < 0) << 31 >> 31 | 0) | 0; + $62 = tempRet0; + $63 = $50 << 1; + $65 = HEAP32[$52 + ($63 << 2) >> 2] | 0; + $70 = HEAP32[$52 + (($63 | 1) << 2) >> 2] | 0; + $73 = ___muldi3($70 | 0, (($70 | 0) < 0) << 31 >> 31 | 0, $65 | 0, (($65 | 0) < 0) << 31 >> 31 | 0) | 0; + $74 = tempRet0; + if (!($62 >>> 0 < $74 >>> 0 | ($62 | 0) == ($74 | 0) & $61 >>> 0 < $73 >>> 0)) { + $$sink$in$lcssa$i = $$in$in$i$looptemp; + label = 14; + break; + } + HEAP32[$41 + ($$in$in$i$looptemp << 2) >> 2] = $50; + HEAP32[$38 + (HEAP32[$49 >> 2] << 2) >> 2] = $$in$in$i$looptemp; + if (!$$in$in$i) { + $$sink$in$lcssa$i = 0; + label = 14; + break; + } + } + if ((label | 0) == 14) { + $84 = $41 + ($$sink$in$lcssa$i << 2) | 0; + HEAP32[$84 >> 2] = $43; + $85 = $38 + ($43 << 2) | 0; + HEAP32[$85 >> 2] = $$sink$in$lcssa$i; + STACKTOP = sp; + return; + } +} +function __GLOBAL__I_a() { + var $$sroa$4$i = 0, $0 = 0, $12 = 0, $4 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$sroa$4$i = sp; + HEAP8[528] = 0; + HEAP8[536] = 1; + HEAP8[544] = 2; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(552, 608, 624, 2136, 2144); + HEAP32[138] = 2168; + HEAPF64[72] = 0.0; + HEAPF64[73] = 1.0; + HEAP8[592] = 0; + HEAP8[593] = 0; + HEAP16[297] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[298] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[299] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[75] = .95; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(664, 720, 736, 2136, 2144); + HEAP32[166] = 2168; + HEAPF64[86] = 0.0; + HEAPF64[87] = 1.0; + HEAP8[704] = 0; + HEAP8[705] = 0; + HEAP16[353] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[354] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[355] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[89] = .999; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(776, 832, 848, 2136, 2144); + HEAP32[194] = 2168; + HEAPF64[100] = 0.0; + HEAPF64[101] = 1.0; + HEAP8[816] = 1; + HEAP8[817] = 1; + HEAP16[409] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[410] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[411] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[103] = 0.0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(936, 992, 1008, 2136, 2144); + HEAP32[234] = 2168; + HEAPF64[120] = 0.0; + HEAPF64[121] = inf; + HEAP8[976] = 0; + HEAP8[977] = 0; + HEAP16[489] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[490] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[491] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[123] = 91648253.0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1048, 1080, 1096, 2136, 2016); + HEAP32[262] = 280; + $0 = 1068 | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 2; + HEAP32[269] = 2; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1160, 1192, 1208, 2136, 2016); + HEAP32[290] = 280; + $4 = 1180 | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 2; + HEAP32[297] = 2; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1272, 1296, 1312, 2136, 1992); + HEAP32[318] = 160; + HEAP8[1292] = 0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1344, 1368, 1376, 2136, 1992); + HEAP32[336] = 160; + HEAP8[1364] = 1; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1408, 1440, 1448, 2136, 2016); + HEAP32[352] = 280; + $8 = 1428 | 0; + HEAP32[$8 >> 2] = 1; + HEAP32[$8 + 4 >> 2] = 2147483647; + HEAP32[359] = 100; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1480, 1536, 1544, 2136, 2144); + HEAP32[370] = 2168; + HEAPF64[188] = 1.0; + HEAPF64[189] = inf; + HEAP8[1520] = 0; + HEAP8[1521] = 0; + HEAP16[761] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[762] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[763] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[191] = 2.0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1584, 1640, 1648, 2136, 2144); + HEAP32[396] = 2168; + HEAPF64[201] = 0.0; + HEAPF64[202] = inf; + HEAP8[1624] = 0; + HEAP8[1625] = 0; + HEAP16[813] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[814] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[815] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[204] = .2; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(1728, 1760, 1776, 2136, 2016); + HEAP32[432] = 280; + $12 = 1748 | 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$12 + 4 >> 2] = 2147483647; + HEAP32[439] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver13pickBranchLitEv($this) { + $this = $this | 0; + var $$sroa$0$0 = 0, $0 = 0, $101 = 0, $102 = 0, $119 = 0.0, $12 = 0, $124 = 0.0, $13 = 0, $15 = 0.0, $2 = 0.0, $20 = 0.0, $28 = 0, $32 = 0, $33 = 0, $34 = 0, $50 = 0, $51 = 0, $57 = 0, $59 = 0, $63 = 0, $64 = 0, $65 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0, $76 = 0, $92 = 0, $93 = 0, $next$0 = 0, $next$0$ph = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 72 | 0; + $2 = +HEAPF64[$0 >> 3] * 1389796.0; + $7 = $2 - +(~~($2 / 2147483647.0) | 0) * 2147483647.0; + HEAPF64[$0 >> 3] = $7; + $12 = $this + 464 | 0; + if ($7 / 2147483647.0 < +HEAPF64[$this + 64 >> 3]) { + $13 = HEAP32[$12 >> 2] | 0; + if (!$13) $next$0$ph = -1; else { + $15 = $7 * 1389796.0; + $20 = $15 - +(~~($15 / 2147483647.0) | 0) * 2147483647.0; + HEAPF64[$0 >> 3] = $20; + $28 = HEAP32[(HEAP32[$this + 460 >> 2] | 0) + (~~(+($13 | 0) * ($20 / 2147483647.0)) << 2) >> 2] | 0; + $32 = HEAP8[(HEAP32[$this + 332 >> 2] | 0) + $28 >> 0] | 0; + $33 = HEAP8[544] | 0; + $34 = $33 & 255; + if (!(($34 >>> 1 ^ 1) & $32 << 24 >> 24 == $33 << 24 >> 24 | $32 & 2 & $34)) $next$0$ph = $28; else if (!(HEAP8[(HEAP32[$this + 380 >> 2] | 0) + $28 >> 0] | 0)) $next$0$ph = $28; else { + $50 = $this + 176 | 0; + $51 = $50; + $57 = _i64Add(HEAP32[$51 >> 2] | 0, HEAP32[$51 + 4 >> 2] | 0, 1, 0) | 0; + $59 = $50; + HEAP32[$59 >> 2] = $57; + HEAP32[$59 + 4 >> 2] = tempRet0; + $next$0$ph = $28; + } + } + } else $next$0$ph = -1; + $63 = $this + 460 | 0; + $64 = $this + 332 | 0; + $65 = $this + 380 | 0; + $next$0 = $next$0$ph; + while (1) { + if (($next$0 | 0) != -1) { + $69 = HEAP8[(HEAP32[$64 >> 2] | 0) + $next$0 >> 0] | 0; + $70 = HEAP8[544] | 0; + $71 = $70 & 255; + $76 = $71 >>> 1 ^ 1; + if ($76 & $69 << 24 >> 24 == $70 << 24 >> 24 | $69 & 2 & $71) if (HEAP8[(HEAP32[$65 >> 2] | 0) + $next$0 >> 0] | 0) break; + } + if (!(HEAP32[$12 >> 2] | 0)) { + $$sroa$0$0 = -2; + label = 17; + break; + } + $next$0 = __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE9removeMinEv($63) | 0; + } + if ((label | 0) == 17) { + STACKTOP = sp; + return $$sroa$0$0 | 0; + } + $92 = HEAP8[(HEAP32[$this + 364 >> 2] | 0) + $next$0 >> 0] | 0; + $93 = $92 & 255; + if (!($76 & $92 << 24 >> 24 == $70 << 24 >> 24 | $71 & 2 & $93)) { + $101 = HEAP8[528] | 0; + $102 = $101 & 255; + $$sroa$0$0 = (($102 >>> 1 ^ 1) & $92 << 24 >> 24 == $101 << 24 >> 24 | $93 & 2 & $102 | 0) != 0 | $next$0 << 1; + STACKTOP = sp; + return $$sroa$0$0 | 0; + } + if (!(HEAP8[$this + 92 >> 0] | 0)) { + $$sroa$0$0 = (HEAP8[(HEAP32[$this + 348 >> 2] | 0) + $next$0 >> 0] | 0) != 0 | $next$0 << 1; + STACKTOP = sp; + return $$sroa$0$0 | 0; + } else { + $119 = +HEAPF64[$0 >> 3] * 1389796.0; + $124 = $119 - +(~~($119 / 2147483647.0) | 0) * 2147483647.0; + HEAPF64[$0 >> 3] = $124; + $$sroa$0$0 = $124 / 2147483647.0 < .5 | $next$0 << 1; + STACKTOP = sp; + return $$sroa$0$0 | 0; + } + return 0; +} +function __ZN7Minisat10SimpSolver14updateElimHeapEi($this, $v) { + $this = $this | 0; + $v = $v | 0; + var $$in$in$i = 0, $$sink$in$lcssa$i = 0, $0 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $36 = 0, $37 = 0, $38 = 0, $40 = 0, $42 = 0, $44 = 0, $45 = 0, $46 = 0, $48 = 0, $49 = 0, $51 = 0, $53 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $64 = 0, $69 = 0, $72 = 0, $73 = 0, label = 0, sp = 0, $$in$in$i$looptemp = 0; + sp = STACKTOP; + $0 = $this + 824 | 0; + $3 = (HEAP32[$this + 840 >> 2] | 0) > ($v | 0); + if ($3) if ((HEAP32[(HEAP32[$this + 836 >> 2] | 0) + ($v << 2) >> 2] | 0) > -1) label = 7; else label = 3; else label = 3; + do if ((label | 0) == 3) { + if (HEAP8[(HEAP32[$this + 876 >> 2] | 0) + $v >> 0] | 0) { + STACKTOP = sp; + return; + } + if (HEAP8[(HEAP32[$this + 904 >> 2] | 0) + $v >> 0] | 0) { + STACKTOP = sp; + return; + } + $22 = HEAP8[(HEAP32[$this + 332 >> 2] | 0) + $v >> 0] | 0; + $23 = HEAP8[2624] | 0; + $24 = $23 & 255; + if (!(($24 >>> 1 ^ 1) & $22 << 24 >> 24 == $23 << 24 >> 24 | $22 & 2 & $24)) { + STACKTOP = sp; + return; + } else if ($3) { + label = 7; + break; + } else break; + } while (0); + if ((label | 0) == 7) { + $36 = HEAP32[$this + 836 >> 2] | 0; + $37 = $36 + ($v << 2) | 0; + $38 = HEAP32[$37 >> 2] | 0; + if (($38 | 0) > -1) { + $40 = HEAP32[$0 >> 2] | 0; + $42 = HEAP32[$40 + ($38 << 2) >> 2] | 0; + L17 : do if (!$38) $$sink$in$lcssa$i = 0; else { + $44 = $this + 852 | 0; + $45 = $42 << 1; + $46 = $45 | 1; + $$in$in$i = $38; + while (1) { + $$in$in$i$looptemp = $$in$in$i; + $$in$in$i = $$in$in$i + -1 >> 1; + $48 = $40 + ($$in$in$i << 2) | 0; + $49 = HEAP32[$48 >> 2] | 0; + $51 = HEAP32[HEAP32[$44 >> 2] >> 2] | 0; + $53 = HEAP32[$51 + ($45 << 2) >> 2] | 0; + $57 = HEAP32[$51 + ($46 << 2) >> 2] | 0; + $60 = ___muldi3($57 | 0, (($57 | 0) < 0) << 31 >> 31 | 0, $53 | 0, (($53 | 0) < 0) << 31 >> 31 | 0) | 0; + $61 = tempRet0; + $62 = $49 << 1; + $64 = HEAP32[$51 + ($62 << 2) >> 2] | 0; + $69 = HEAP32[$51 + (($62 | 1) << 2) >> 2] | 0; + $72 = ___muldi3($69 | 0, (($69 | 0) < 0) << 31 >> 31 | 0, $64 | 0, (($64 | 0) < 0) << 31 >> 31 | 0) | 0; + $73 = tempRet0; + if (!($61 >>> 0 < $73 >>> 0 | ($61 | 0) == ($73 | 0) & $60 >>> 0 < $72 >>> 0)) { + $$sink$in$lcssa$i = $$in$in$i$looptemp; + break L17; + } + HEAP32[$40 + ($$in$in$i$looptemp << 2) >> 2] = $49; + HEAP32[$36 + (HEAP32[$48 >> 2] << 2) >> 2] = $$in$in$i$looptemp; + if (!$$in$in$i) { + $$sink$in$lcssa$i = 0; + break; + } + } + } while (0); + HEAP32[$40 + ($$sink$in$lcssa$i << 2) >> 2] = $42; + HEAP32[$36 + ($42 << 2) >> 2] = $$sink$in$lcssa$i; + __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE13percolateDownEi($0, HEAP32[$37 >> 2] | 0); + STACKTOP = sp; + return; + } + } + __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE6insertEi($0, $v); + STACKTOP = sp; + return; +} +function __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE4initERKi($this, $idx) { + $this = $this | 0; + $idx = $idx | 0; + var $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $35 = 0, $37 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $47 = 0, $48 = 0, $5 = 0, $52 = 0, $55 = 0, $57 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $67 = 0, $68 = 0, $i$01$i$i = 0, $i$01$i$i2 = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$idx >> 2] | 0; + $1 = $0 + 1 | 0; + $2 = $this + 4 | 0; + if ((HEAP32[$2 >> 2] | 0) < ($1 | 0)) { + $5 = $this + 8 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($6 | 0) < ($1 | 0)) { + $10 = $0 + 2 - $6 & -2; + $13 = ($6 >> 1) + 2 & -2; + $15 = ($10 | 0) > ($13 | 0) ? $10 : $13; + if (($15 | 0) > (2147483647 - $6 | 0)) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + $18 = HEAP32[$this >> 2] | 0; + $19 = $15 + $6 | 0; + HEAP32[$5 >> 2] = $19; + $21 = _realloc($18, $19 * 12 | 0) | 0; + HEAP32[$this >> 2] = $21; + if (!$21) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + } + $27 = HEAP32[$2 >> 2] | 0; + if (($27 | 0) < ($1 | 0)) { + $i$01$i$i = $27; + do { + $29 = HEAP32[$this >> 2] | 0; + $30 = $29 + ($i$01$i$i * 12 | 0) | 0; + if ($30) { + HEAP32[$30 >> 2] = 0; + HEAP32[$29 + ($i$01$i$i * 12 | 0) + 4 >> 2] = 0; + HEAP32[$29 + ($i$01$i$i * 12 | 0) + 8 >> 2] = 0; + } + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($1 | 0)); + } + HEAP32[$2 >> 2] = $1; + $37 = HEAP32[$idx >> 2] | 0; + } else $37 = $0; + $35 = HEAP32[$this >> 2] | 0; + if (!(HEAP32[$35 + ($37 * 12 | 0) >> 2] | 0)) $43 = $37; else { + HEAP32[$35 + ($37 * 12 | 0) + 4 >> 2] = 0; + $43 = HEAP32[$idx >> 2] | 0; + } + $41 = $this + 16 | 0; + $42 = $43 + 1 | 0; + $44 = $this + 20 | 0; + if ((HEAP32[$44 >> 2] | 0) >= ($42 | 0)) { + STACKTOP = sp; + return; + } + $47 = $this + 24 | 0; + $48 = HEAP32[$47 >> 2] | 0; + if (($48 | 0) < ($42 | 0)) { + $52 = $43 + 2 - $48 & -2; + $55 = ($48 >> 1) + 2 & -2; + $57 = ($52 | 0) > ($55 | 0) ? $52 : $55; + if (($57 | 0) > (2147483647 - $48 | 0)) { + $67 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($67 | 0, 48, 0); + } + $60 = HEAP32[$41 >> 2] | 0; + $61 = $57 + $48 | 0; + HEAP32[$47 >> 2] = $61; + $62 = _realloc($60, $61) | 0; + HEAP32[$41 >> 2] = $62; + if (!$62) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $67 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($67 | 0, 48, 0); + } + } + $68 = HEAP32[$44 >> 2] | 0; + if (($68 | 0) < ($42 | 0)) { + $i$01$i$i2 = $68; + do { + HEAP8[(HEAP32[$41 >> 2] | 0) + $i$01$i$i2 >> 0] = 0; + $i$01$i$i2 = $i$01$i$i2 + 1 | 0; + } while (($i$01$i$i2 | 0) != ($42 | 0)); + } + HEAP32[$44 >> 2] = $42; + STACKTOP = sp; + return; +} +function __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE6insertEi($this, $k) { + $this = $this | 0; + $k = $k | 0; + var $$in$in$i = 0, $$sink$in$lcssa$i = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $27 = 0, $28 = 0, $3 = 0, $38 = 0, $40 = 0, $41 = 0, $43 = 0, $45 = 0, $47 = 0, $48 = 0, $50 = 0, $6 = 0, $60 = 0, $61 = 0, $7 = 0, label = 0, sp = 0, $$in$in$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp; + HEAP32[$0 >> 2] = $k; + $1 = $this + 12 | 0; + $2 = $k + 1 | 0; + $3 = $this + 16 | 0; + if ((HEAP32[$3 >> 2] | 0) < ($2 | 0)) { + $6 = $this + 20 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if (($7 | 0) < ($2 | 0)) { + $11 = $k + 2 - $7 & -2; + $14 = ($7 >> 1) + 2 & -2; + $16 = ($11 | 0) > ($14 | 0) ? $11 : $14; + if (($16 | 0) > (2147483647 - $7 | 0)) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + $19 = HEAP32[$1 >> 2] | 0; + $20 = $16 + $7 | 0; + HEAP32[$6 >> 2] = $20; + $22 = _realloc($19, $20 << 2) | 0; + HEAP32[$1 >> 2] = $22; + if (!$22) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + } + $28 = HEAP32[$3 >> 2] | 0; + if (($28 | 0) < ($2 | 0)) _memset((HEAP32[$1 >> 2] | 0) + ($28 << 2) | 0, -1, $2 - $28 << 2 | 0) | 0; + HEAP32[$3 >> 2] = $2; + } + HEAP32[(HEAP32[$1 >> 2] | 0) + ($k << 2) >> 2] = HEAP32[$this + 4 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($this, $0); + $38 = HEAP32[$1 >> 2] | 0; + $40 = HEAP32[$38 + (HEAP32[$0 >> 2] << 2) >> 2] | 0; + $41 = HEAP32[$this >> 2] | 0; + $43 = HEAP32[$41 + ($40 << 2) >> 2] | 0; + if (!$40) { + $$sink$in$lcssa$i = 0; + $60 = $41 + ($$sink$in$lcssa$i << 2) | 0; + HEAP32[$60 >> 2] = $43; + $61 = $38 + ($43 << 2) | 0; + HEAP32[$61 >> 2] = $$sink$in$lcssa$i; + STACKTOP = sp; + return; + } + $45 = $this + 28 | 0; + $$in$in$i = $40; + while (1) { + $$in$in$i$looptemp = $$in$in$i; + $$in$in$i = $$in$in$i + -1 >> 1; + $47 = $41 + ($$in$in$i << 2) | 0; + $48 = HEAP32[$47 >> 2] | 0; + $50 = HEAP32[HEAP32[$45 >> 2] >> 2] | 0; + if (!(+HEAPF64[$50 + ($43 << 3) >> 3] > +HEAPF64[$50 + ($48 << 3) >> 3])) { + $$sink$in$lcssa$i = $$in$in$i$looptemp; + label = 14; + break; + } + HEAP32[$41 + ($$in$in$i$looptemp << 2) >> 2] = $48; + HEAP32[$38 + (HEAP32[$47 >> 2] << 2) >> 2] = $$in$in$i$looptemp; + if (!$$in$in$i) { + $$sink$in$lcssa$i = 0; + label = 14; + break; + } + } + if ((label | 0) == 14) { + $60 = $41 + ($$sink$in$lcssa$i << 2) | 0; + HEAP32[$60 >> 2] = $43; + $61 = $38 + ($43 << 2) | 0; + HEAP32[$61 >> 2] = $$sink$in$lcssa$i; + STACKTOP = sp; + return; + } +} +function __ZN7Minisat6Solver8reduceDBEv($this) { + $this = $this | 0; + var $$byval_copy = 0, $$lcssa = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $22 = 0, $23 = 0, $29 = 0, $3 = 0, $31 = 0, $32 = 0, $4 = 0, $44 = 0, $48 = 0, $57 = 0, $58 = 0, $6 = 0.0, $60 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0$lcssa = 0, $i$04 = 0, $j$0$lcssa = 0, $j$03 = 0, $j$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 4 | 0; + $0 = sp; + $3 = $this + 272 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $6 = +HEAPF64[$this + 496 >> 3] / +($4 | 0); + $7 = $this + 544 | 0; + $8 = $this + 268 | 0; + $9 = HEAP32[$8 >> 2] | 0; + HEAP32[$0 >> 2] = $7; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat4sortIj11reduceDB_ltEEvPT_iT0_($9, $4, $$byval_copy); + $10 = HEAP32[$3 >> 2] | 0; + if (($10 | 0) > 0) { + $12 = $this + 332 | 0; + $13 = $this + 396 | 0; + $48 = $10; + $i$04 = 0; + $j$03 = 0; + while (1) { + $14 = HEAP32[$8 >> 2] | 0; + $16 = HEAP32[$14 + ($i$04 << 2) >> 2] | 0; + $17 = HEAP32[$7 >> 2] | 0; + $18 = $17 + ($16 << 2) | 0; + $19 = HEAP32[$18 >> 2] | 0; + do if ($19 >>> 0 > 95) { + $22 = HEAP32[$17 + ($16 + 1 << 2) >> 2] | 0; + $23 = $22 >> 1; + $29 = (HEAPU8[(HEAP32[$12 >> 2] | 0) + $23 >> 0] | 0) ^ $22 & 1; + $31 = HEAP8[528] | 0; + $32 = $31 & 255; + if (($29 & 255) << 24 >> 24 == $31 << 24 >> 24 & ($32 >>> 1 ^ 1) | $32 & 2 & $29) { + $44 = HEAP32[(HEAP32[$13 >> 2] | 0) + ($23 << 3) >> 2] | 0; + if (($44 | 0) != -1 & ($44 | 0) == ($16 | 0)) { + label = 9; + break; + } + } + if (($i$04 | 0) >= (($48 | 0) / 2 | 0 | 0)) if (!(+HEAPF32[$18 + ($19 >>> 5 << 2) + 4 >> 2] < $6)) { + label = 9; + break; + } + __ZN7Minisat6Solver12removeClauseEj($this, $16); + $j$1 = $j$03; + } else label = 9; while (0); + if ((label | 0) == 9) { + label = 0; + HEAP32[$14 + ($j$03 << 2) >> 2] = $16; + $j$1 = $j$03 + 1 | 0; + } + $57 = $i$04 + 1 | 0; + $58 = HEAP32[$3 >> 2] | 0; + if (($57 | 0) < ($58 | 0)) { + $48 = $58; + $i$04 = $57; + $j$03 = $j$1; + } else { + $$lcssa = $58; + $i$0$lcssa = $57; + $j$0$lcssa = $j$1; + break; + } + } + } else { + $$lcssa = $10; + $i$0$lcssa = 0; + $j$0$lcssa = 0; + } + $60 = $i$0$lcssa - $j$0$lcssa | 0; + if (($60 | 0) > 0) HEAP32[$3 >> 2] = $$lcssa - $60; + if (!(+((HEAP32[$this + 556 >> 2] | 0) >>> 0) > +HEAPF64[$this + 96 >> 3] * +((HEAP32[$this + 548 >> 2] | 0) >>> 0))) { + STACKTOP = sp; + return; + } + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 31]($this); + STACKTOP = sp; + 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 $14 = 0, $20 = 0, $23 = 0, $24 = 0, $26 = 0, $33 = 0, $44 = 0, $6 = 0, $is_dst_type_derived_from_static_type$0$off01 = 0, label = 0, sp = 0; + sp = STACKTOP; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + if ((HEAP32[$info + 4 >> 2] | 0) != ($current_ptr | 0)) { + STACKTOP = sp; + return; + } + $6 = $info + 28 | 0; + if ((HEAP32[$6 >> 2] | 0) == 1) { + STACKTOP = sp; + return; + } + HEAP32[$6 >> 2] = $path_below; + STACKTOP = sp; + return; + } + if (($this | 0) != (HEAP32[$info >> 2] | 0)) { + $44 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$44 >> 2] | 0) + 24 >> 2] & 3]($44, $info, $current_ptr, $path_below, $use_strcmp); + STACKTOP = sp; + return; + } + if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { + $14 = $info + 20 | 0; + if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { + HEAP32[$info + 32 >> 2] = $path_below; + $20 = $info + 44 | 0; + if ((HEAP32[$20 >> 2] | 0) == 4) { + STACKTOP = sp; + return; + } + $23 = $info + 52 | 0; + HEAP8[$23 >> 0] = 0; + $24 = $info + 53 | 0; + HEAP8[$24 >> 0] = 0; + $26 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$26 >> 2] | 0) + 20 >> 2] & 3]($26, $info, $current_ptr, $current_ptr, 1, $use_strcmp); + if (!(HEAP8[$24 >> 0] | 0)) { + $is_dst_type_derived_from_static_type$0$off01 = 0; + label = 13; + } else if (!(HEAP8[$23 >> 0] | 0)) { + $is_dst_type_derived_from_static_type$0$off01 = 1; + label = 13; + } + do if ((label | 0) == 13) { + HEAP32[$14 >> 2] = $current_ptr; + $33 = $info + 40 | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) { + HEAP8[$info + 54 >> 0] = 1; + if ($is_dst_type_derived_from_static_type$0$off01) break; + } else label = 16; else label = 16; + if ((label | 0) == 16) if ($is_dst_type_derived_from_static_type$0$off01) break; + HEAP32[$20 >> 2] = 4; + STACKTOP = sp; + return; + } while (0); + HEAP32[$20 >> 2] = 3; + STACKTOP = sp; + return; + } + } + if (($path_below | 0) != 1) { + STACKTOP = sp; + return; + } + HEAP32[$info + 32 >> 2] = 1; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver8asymmVarEi($this, $v) { + $this = $this | 0; + $v = $v | 0; + var $$0 = 0, $$lcssa1$i$i = 0, $$pre$i$i = 0, $$pre3$i = 0, $10 = 0, $13 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $27 = 0, $31 = 0, $32 = 0, $33 = 0, $44 = 0, $45 = 0, $48 = 0, $5 = 0, $57 = 0, $6 = 0, $7 = 0, $i$0$lcssa$i$i = 0, $i$02 = 0, $i$02$i$i = 0, $j$0$lcssa$i$i = 0, $j$03$i$i = 0, $j$1$i$i = 0, sp = 0; + sp = STACKTOP; + $2 = (HEAP32[$this + 776 >> 2] | 0) + $v | 0; + $$pre3$i = $this + 760 | 0; + if (HEAP8[$2 >> 0] | 0) { + $5 = HEAP32[$$pre3$i >> 2] | 0; + $6 = $5 + ($v * 12 | 0) + 4 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if (($7 | 0) > 0) { + $10 = $this + 804 | 0; + $$pre$i$i = HEAP32[$5 + ($v * 12 | 0) >> 2] | 0; + $57 = $7; + $i$02$i$i = 0; + $j$03$i$i = 0; + while (1) { + $13 = HEAP32[$$pre$i$i + ($i$02$i$i << 2) >> 2] | 0; + if ((HEAP32[(HEAP32[HEAP32[$10 >> 2] >> 2] | 0) + ($13 << 2) >> 2] & 3 | 0) == 1) { + $23 = $57; + $j$1$i$i = $j$03$i$i; + } else { + HEAP32[$$pre$i$i + ($j$03$i$i << 2) >> 2] = $13; + $23 = HEAP32[$6 >> 2] | 0; + $j$1$i$i = $j$03$i$i + 1 | 0; + } + $21 = $i$02$i$i + 1 | 0; + if (($21 | 0) < ($23 | 0)) { + $57 = $23; + $i$02$i$i = $21; + $j$03$i$i = $j$1$i$i; + } else { + $$lcssa1$i$i = $23; + $i$0$lcssa$i$i = $21; + $j$0$lcssa$i$i = $j$1$i$i; + break; + } + } + } else { + $$lcssa1$i$i = $7; + $i$0$lcssa$i$i = 0; + $j$0$lcssa$i$i = 0; + } + $24 = $i$0$lcssa$i$i - $j$0$lcssa$i$i | 0; + if (($24 | 0) > 0) HEAP32[$6 >> 2] = $$lcssa1$i$i - $24; + HEAP8[$2 >> 0] = 0; + } + $27 = HEAP32[$$pre3$i >> 2] | 0; + $31 = HEAP8[(HEAP32[$this + 332 >> 2] | 0) + $v >> 0] | 0; + $32 = HEAP8[2624] | 0; + $33 = $32 & 255; + if (!(($33 >>> 1 ^ 1) & $31 << 24 >> 24 == $32 << 24 >> 24 | $31 & 2 & $33)) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $44 = $27 + ($v * 12 | 0) + 4 | 0; + $45 = HEAP32[$44 >> 2] | 0; + if (!$45) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + L21 : do if (($45 | 0) > 0) { + $48 = $27 + ($v * 12 | 0) | 0; + $i$02 = 0; + while (1) { + if (!(__ZN7Minisat10SimpSolver5asymmEij($this, $v, HEAP32[(HEAP32[$48 >> 2] | 0) + ($i$02 << 2) >> 2] | 0) | 0)) { + $$0 = 0; + break; + } + $i$02 = $i$02 + 1 | 0; + if (($i$02 | 0) >= (HEAP32[$44 >> 2] | 0)) break L21; + } + STACKTOP = sp; + return $$0 | 0; + } while (0); + $$0 = __ZN7Minisat10SimpSolver24backwardSubsumptionCheckEb($this, 0) | 0; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat5QueueIjE6insertEj($this, $elem) { + $this = $this | 0; + $elem = $elem | 0; + var $$pre$phi2$iZ2D = 0, $0 = 0, $1 = 0, $12 = 0, $15 = 0, $18 = 0, $20 = 0, $22 = 0, $28 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $37 = 0, $40 = 0, $42 = 0, $5 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $9 = 0, $i$0$lcssa = 0, $i$01$i$i$i = 0, $i$04 = 0, $i$11 = 0, $j$03 = 0, $j1$02 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 16 | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $1 + 1; + HEAP32[(HEAP32[$this >> 2] | 0) + ($1 << 2) >> 2] = $elem; + $5 = HEAP32[$0 >> 2] | 0; + $6 = $this + 4 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if (($5 | 0) == ($7 | 0)) { + HEAP32[$0 >> 2] = 0; + $12 = 0; + } else $12 = $5; + $9 = $this + 12 | 0; + if ((HEAP32[$9 >> 2] | 0) != ($12 | 0)) { + STACKTOP = sp; + return; + } + $15 = ($7 * 3 | 0) + 1 >> 1; + if (($15 | 0) > 0) { + $18 = $15 + 1 & -2; + $20 = ($18 | 0) > 2 ? $18 : 2; + $22 = _realloc(0, $20 << 2) | 0; + if (!$22) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); else $i$01$i$i$i = 0; else $i$01$i$i$i = 0; + do { + $28 = $22 + ($i$01$i$i$i << 2) | 0; + if ($28) HEAP32[$28 >> 2] = 0; + $i$01$i$i$i = $i$01$i$i$i + 1 | 0; + } while (($i$01$i$i$i | 0) != ($15 | 0)); + $32 = HEAP32[$9 >> 2] | 0; + $33 = HEAP32[$6 >> 2] | 0; + $42 = $22; + $53 = $15; + $54 = $20; + } else { + $32 = $12; + $33 = $7; + $42 = 0; + $53 = 0; + $54 = 0; + } + if (($32 | 0) < ($33 | 0)) { + $34 = HEAP32[$this >> 2] | 0; + $i$04 = 0; + $j$03 = $32; + while (1) { + $40 = $i$04 + 1 | 0; + HEAP32[$42 + ($i$04 << 2) >> 2] = HEAP32[$34 + ($j$03 << 2) >> 2]; + $j$03 = $j$03 + 1 | 0; + if (($j$03 | 0) >= ($33 | 0)) { + $i$0$lcssa = $40; + break; + } else $i$04 = $40; + } + } else $i$0$lcssa = 0; + $35 = HEAP32[$0 >> 2] | 0; + $37 = HEAP32[$this >> 2] | 0; + if (($35 | 0) > 0) { + $i$11 = $i$0$lcssa; + $j1$02 = 0; + while (1) { + HEAP32[$42 + ($i$11 << 2) >> 2] = HEAP32[$37 + ($j1$02 << 2) >> 2]; + $j1$02 = $j1$02 + 1 | 0; + if (($j1$02 | 0) >= ($35 | 0)) break; else $i$11 = $i$11 + 1 | 0; + } + } + HEAP32[$9 >> 2] = 0; + HEAP32[$0 >> 2] = $33; + if (!$37) $$pre$phi2$iZ2D = $this + 8 | 0; else { + HEAP32[$6 >> 2] = 0; + _free($37); + HEAP32[$this >> 2] = 0; + $52 = $this + 8 | 0; + HEAP32[$52 >> 2] = 0; + $$pre$phi2$iZ2D = $52; + } + HEAP32[$this >> 2] = $42; + HEAP32[$6 >> 2] = $53; + HEAP32[$$pre$phi2$iZ2D >> 2] = $54; + STACKTOP = sp; + return; +} +function __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEE8cleanAllEv($this) { + $this = $this | 0; + var $$lcssa2$i = 0, $$lcssa3 = 0, $0 = 0, $1 = 0, $14 = 0, $15 = 0, $16 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $30 = 0, $35 = 0, $36 = 0, $4 = 0, $40 = 0, $42 = 0, $43 = 0, $5 = 0, $51 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0$lcssa$i = 0, $i$03$i = 0, $i$04 = 0, $j$0$lcssa$i = 0, $j$04$i = 0, $j$1$i = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 36 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $3 = $this + 32 | 0; + $4 = HEAP32[$3 >> 2] | 0; + if (($1 | 0) > 0) { + $5 = $this + 16 | 0; + $6 = $this + 44 | 0; + $53 = $1; + $8 = $4; + $i$04 = 0; + while (1) { + $7 = $8 + ($i$04 << 2) | 0; + $9 = HEAP32[$7 >> 2] | 0; + if (!(HEAP8[(HEAP32[$5 >> 2] | 0) + $9 >> 0] | 0)) { + $51 = $53; + $54 = $8; + } else { + $14 = HEAP32[$this >> 2] | 0; + $15 = $14 + ($9 * 12 | 0) + 4 | 0; + $16 = HEAP32[$15 >> 2] | 0; + if (($16 | 0) > 0) { + $18 = $14 + ($9 * 12 | 0) | 0; + $55 = $16; + $i$03$i = 0; + $j$04$i = 0; + while (1) { + $19 = HEAP32[$18 >> 2] | 0; + $20 = $19 + ($i$03$i << 3) | 0; + if ((HEAP32[(HEAP32[HEAP32[$6 >> 2] >> 2] | 0) + (HEAP32[$20 >> 2] << 2) >> 2] & 3 | 0) == 1) { + $42 = $55; + $j$1$i = $j$04$i; + } else { + $30 = $20; + $35 = HEAP32[$30 + 4 >> 2] | 0; + $36 = $19 + ($j$04$i << 3) | 0; + HEAP32[$36 >> 2] = HEAP32[$30 >> 2]; + HEAP32[$36 + 4 >> 2] = $35; + $42 = HEAP32[$15 >> 2] | 0; + $j$1$i = $j$04$i + 1 | 0; + } + $40 = $i$03$i + 1 | 0; + if (($40 | 0) < ($42 | 0)) { + $55 = $42; + $i$03$i = $40; + $j$04$i = $j$1$i; + } else { + $$lcssa2$i = $42; + $i$0$lcssa$i = $40; + $j$0$lcssa$i = $j$1$i; + break; + } + } + } else { + $$lcssa2$i = $16; + $i$0$lcssa$i = 0; + $j$0$lcssa$i = 0; + } + $43 = $i$0$lcssa$i - $j$0$lcssa$i | 0; + if (($43 | 0) > 0) HEAP32[$15 >> 2] = $$lcssa2$i - $43; + HEAP8[(HEAP32[$5 >> 2] | 0) + (HEAP32[$7 >> 2] | 0) >> 0] = 0; + $51 = HEAP32[$0 >> 2] | 0; + $54 = HEAP32[$3 >> 2] | 0; + } + $i$04 = $i$04 + 1 | 0; + if (($i$04 | 0) >= ($51 | 0)) { + $$lcssa3 = $54; + break; + } else { + $53 = $51; + $8 = $54; + } + } + } else $$lcssa3 = $4; + if (!$$lcssa3) { + STACKTOP = sp; + return; + } + HEAP32[$0 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat4sortINS_3LitENS_16LessThan_defaultIS1_EEEEvPT_iT0_($array, $size, $lt) { + $array = $array | 0; + $size = $size | 0; + $lt = $lt | 0; + var $$byval_copy1 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $15 = 0, $19 = 0, $21 = 0, $22 = 0, $25 = 0, $26 = 0, $29 = 0, $3 = 0, $best_i$0$lcssa$i = 0, $best_i$03$i = 0, $i$0 = 0, $i$0$ph = 0, $i$04$i = 0, $j$0$best_i$0$i = 0, $j$0$ph = 0, $j$02$i = 0, $j$1 = 0, sp = 0, $i$04$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy1 = sp + 2 | 0; + $0 = sp + 1 | 0; + $1 = sp; + if (($size | 0) < 16) { + $3 = $size + -1 | 0; + if (($3 | 0) > 0) $i$04$i = 0; else { + STACKTOP = sp; + return; + } + do { + $i$04$i$looptemp = $i$04$i; + $i$04$i = $i$04$i + 1 | 0; + if (($i$04$i | 0) < ($size | 0)) { + $best_i$03$i = $i$04$i$looptemp; + $j$02$i = $i$04$i; + while (1) { + $j$0$best_i$0$i = (HEAP32[$array + ($j$02$i << 2) >> 2] | 0) < (HEAP32[$array + ($best_i$03$i << 2) >> 2] | 0) ? $j$02$i : $best_i$03$i; + $j$02$i = $j$02$i + 1 | 0; + if (($j$02$i | 0) == ($size | 0)) { + $best_i$0$lcssa$i = $j$0$best_i$0$i; + break; + } else $best_i$03$i = $j$0$best_i$0$i; + } + } else $best_i$0$lcssa$i = $i$04$i$looptemp; + $13 = $array + ($i$04$i$looptemp << 2) | 0; + $14 = HEAP32[$13 >> 2] | 0; + $15 = $array + ($best_i$0$lcssa$i << 2) | 0; + HEAP32[$13 >> 2] = HEAP32[$15 >> 2]; + HEAP32[$15 >> 2] = $14; + } while (($i$04$i | 0) != ($3 | 0)); + STACKTOP = sp; + return; + } + $19 = HEAP32[$array + ((($size | 0) / 2 | 0) << 2) >> 2] | 0; + $i$0$ph = -1; + $j$0$ph = $size; + while (1) { + $i$0 = $i$0$ph; + do { + $i$0 = $i$0 + 1 | 0; + $21 = $array + ($i$0 << 2) | 0; + $22 = HEAP32[$21 >> 2] | 0; + } while (($22 | 0) < ($19 | 0)); + $j$1 = $j$0$ph; + do { + $j$1 = $j$1 + -1 | 0; + $25 = $array + ($j$1 << 2) | 0; + $26 = HEAP32[$25 >> 2] | 0; + } while (($19 | 0) < ($26 | 0)); + if (($i$0 | 0) >= ($j$1 | 0)) break; + HEAP32[$21 >> 2] = $26; + HEAP32[$25 >> 2] = $22; + $i$0$ph = $i$0; + $j$0$ph = $j$1; + } + HEAP8[$$byval_copy1 + 0 >> 0] = HEAP8[$0 + 0 >> 0] | 0; + __ZN7Minisat4sortINS_3LitENS_16LessThan_defaultIS1_EEEEvPT_iT0_($array, $i$0, $$byval_copy1); + $29 = $size - $i$0 | 0; + HEAP8[$$byval_copy1 + 0 >> 0] = HEAP8[$1 + 0 >> 0] | 0; + __ZN7Minisat4sortINS_3LitENS_16LessThan_defaultIS1_EEEEvPT_iT0_($21, $29, $$byval_copy1); + STACKTOP = sp; + return; +} +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 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $27 = 0, $4 = 0, $6 = 0, $dst_ptr$0 = 0, $info = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + $info = sp; + $0 = HEAP32[$static_ptr >> 2] | 0; + $4 = $static_ptr + (HEAP32[$0 + -8 >> 2] | 0) | 0; + $6 = HEAP32[$0 + -4 >> 2] | 0; + HEAP32[$info >> 2] = $dst_type; + HEAP32[$info + 4 >> 2] = $static_ptr; + HEAP32[$info + 8 >> 2] = $static_type; + HEAP32[$info + 12 >> 2] = $src2dst_offset; + $10 = $info + 16 | 0; + $11 = $info + 20 | 0; + $12 = $info + 24 | 0; + $13 = $info + 28 | 0; + $14 = $info + 32 | 0; + $15 = $info + 40 | 0; + $16 = ($6 | 0) == ($dst_type | 0); + dest = $10 + 0 | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP16[$10 + 36 >> 1] = 0; + HEAP8[$10 + 38 >> 0] = 0; + if ($16) { + HEAP32[$info + 48 >> 2] = 1; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$6 >> 2] | 0) + 20 >> 2] & 3]($6, $info, $4, $4, 1, 0); + $dst_ptr$0 = (HEAP32[$12 >> 2] | 0) == 1 ? $4 : 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$6 >> 2] | 0) + 24 >> 2] & 3]($6, $info, $4, 1, 0); + $27 = HEAP32[$info + 36 >> 2] | 0; + if (($27 | 0) == 1) { + if ((HEAP32[$12 >> 2] | 0) != 1) { + if (HEAP32[$15 >> 2] | 0) { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + if ((HEAP32[$13 >> 2] | 0) != 1) { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + if ((HEAP32[$14 >> 2] | 0) != 1) { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + } + $dst_ptr$0 = HEAP32[$10 >> 2] | 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } else if (!$27) { + if ((HEAP32[$15 >> 2] | 0) != 1) { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + if ((HEAP32[$13 >> 2] | 0) != 1) { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + $dst_ptr$0 = (HEAP32[$14 >> 2] | 0) == 1 ? HEAP32[$11 >> 2] | 0 : 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } else { + $dst_ptr$0 = 0; + STACKTOP = sp; + return $dst_ptr$0 | 0; + } + return 0; +} +function __ZN7Minisat10SimpSolver5asymmEij($this, $v, $cr) { + $this = $this | 0; + $v = $v | 0; + $cr = $cr | 0; + var $$0 = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $13 = 0, $15 = 0, $17 = 0, $18 = 0, $2 = 0, $25 = 0, $27 = 0, $28 = 0, $41 = 0, $44 = 0, $45 = 0, $49 = 0, $5 = 0, $i$08 = 0, $l$sroa$0$0$lcssa = 0, $l$sroa$0$07 = 0, $l$sroa$0$1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy1 = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + $2 = sp; + $5 = (HEAP32[$this + 544 >> 2] | 0) + ($cr << 2) | 0; + if (HEAP32[$5 >> 2] & 3) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + if (__ZNK7Minisat6Solver9satisfiedERKNS_6ClauseE($this, $5) | 0) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + HEAP32[$0 >> 2] = HEAP32[$this + 284 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($this + 292 | 0, $0); + $13 = HEAP32[$5 >> 2] | 0; + if ($13 >>> 0 > 31) { + $15 = $this + 332 | 0; + $49 = $13; + $i$08 = 0; + $l$sroa$0$07 = -2; + while (1) { + $17 = HEAP32[$5 + ($i$08 << 2) + 4 >> 2] | 0; + $18 = $17 >> 1; + if (($18 | 0) == ($v | 0)) { + $41 = $49; + $l$sroa$0$1 = $17; + } else { + $25 = (HEAPU8[(HEAP32[$15 >> 2] | 0) + $18 >> 0] | 0) ^ $17 & 1; + $27 = HEAP8[2616] | 0; + $28 = $27 & 255; + if (!(($25 & 255) << 24 >> 24 == $27 << 24 >> 24 & ($28 >>> 1 ^ 1) | $28 & 2 & $25)) { + HEAP32[$1 >> 2] = $17 ^ 1; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$1 + 0 >> 2]; + __ZN7Minisat6Solver16uncheckedEnqueueENS_3LitEj($this, $$byval_copy1, -1); + $41 = HEAP32[$5 >> 2] | 0; + $l$sroa$0$1 = $l$sroa$0$07; + } else { + $41 = $49; + $l$sroa$0$1 = $17; + } + } + $i$08 = $i$08 + 1 | 0; + if (($i$08 | 0) >= ($41 >>> 5 | 0)) { + $l$sroa$0$0$lcssa = $l$sroa$0$1; + break; + } else { + $49 = $41; + $l$sroa$0$07 = $l$sroa$0$1; + } + } + } else $l$sroa$0$0$lcssa = -2; + $44 = (__ZN7Minisat6Solver9propagateEv($this) | 0) == -1; + __ZN7Minisat6Solver11cancelUntilEi($this, 0); + if (!$44) { + $45 = $this + 712 | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; + HEAP32[$2 >> 2] = $l$sroa$0$0$lcssa; + HEAP32[$$byval_copy1 + 0 >> 2] = HEAP32[$2 + 0 >> 2]; + if (!(__ZN7Minisat10SimpSolver16strengthenClauseEjNS_3LitE($this, $cr, $$byval_copy1) | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + } + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEE4initERKS1_($this, $idx) { + $this = $this | 0; + $idx = $idx | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $27 = 0, $28 = 0, $3 = 0, $30 = 0, $31 = 0, $36 = 0, $38 = 0, $42 = 0, $43 = 0, $6 = 0, $7 = 0, $i$01$i$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = HEAP32[$idx >> 2] | 0; + $2 = $1 + 1 | 0; + $3 = $this + 4 | 0; + if ((HEAP32[$3 >> 2] | 0) < ($2 | 0)) { + $6 = $this + 8 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if (($7 | 0) < ($2 | 0)) { + $11 = $1 + 2 - $7 & -2; + $14 = ($7 >> 1) + 2 & -2; + $16 = ($11 | 0) > ($14 | 0) ? $11 : $14; + if (($16 | 0) > (2147483647 - $7 | 0)) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + $19 = HEAP32[$this >> 2] | 0; + $20 = $16 + $7 | 0; + HEAP32[$6 >> 2] = $20; + $22 = _realloc($19, $20 * 12 | 0) | 0; + HEAP32[$this >> 2] = $22; + if (!$22) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $27 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($27 | 0, 48, 0); + } + } + $28 = HEAP32[$3 >> 2] | 0; + if (($28 | 0) < ($2 | 0)) { + $i$01$i$i = $28; + do { + $30 = HEAP32[$this >> 2] | 0; + $31 = $30 + ($i$01$i$i * 12 | 0) | 0; + if ($31) { + HEAP32[$31 >> 2] = 0; + HEAP32[$30 + ($i$01$i$i * 12 | 0) + 4 >> 2] = 0; + HEAP32[$30 + ($i$01$i$i * 12 | 0) + 8 >> 2] = 0; + } + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($2 | 0)); + } + HEAP32[$3 >> 2] = $2; + $38 = HEAP32[$idx >> 2] | 0; + } else $38 = $1; + $36 = HEAP32[$this >> 2] | 0; + if (!(HEAP32[$36 + ($38 * 12 | 0) >> 2] | 0)) { + $43 = $38; + $42 = $this + 16 | 0; + HEAP32[$0 >> 2] = $43; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEcNS_10MkIndexLitEE7reserveES1_c($42, $$byval_copy, 0); + STACKTOP = sp; + return; + } + HEAP32[$36 + ($38 * 12 | 0) + 4 >> 2] = 0; + $43 = HEAP32[$idx >> 2] | 0; + $42 = $this + 16 | 0; + HEAP32[$0 >> 2] = $43; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$0 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEcNS_10MkIndexLitEE7reserveES1_c($42, $$byval_copy, 0); + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver5mergeERKNS_6ClauseES3_iRNS_3vecINS_3LitEiEE($this, $_ps, $_qs, $v, $out_clause) { + $this = $this | 0; + $_ps = $_ps | 0; + $_qs = $_qs | 0; + $v = $v | 0; + $out_clause = $out_clause | 0; + var $$0 = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $29 = 0, $36 = 0, $39 = 0, $44 = 0, $46 = 0, $47 = 0, $i$013 = 0, $i1$07 = 0, $j$010 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = $this + 708 | 0; + HEAP32[$2 >> 2] = (HEAP32[$2 >> 2] | 0) + 1; + if (HEAP32[$out_clause >> 2] | 0) HEAP32[$out_clause + 4 >> 2] = 0; + $12 = (HEAP32[$_ps >> 2] | 0) >>> 5 >>> 0 < (HEAP32[$_qs >> 2] | 0) >>> 5 >>> 0; + $13 = $12 ? $_qs : $_ps; + $14 = $12 ? $_ps : $_qs; + $15 = HEAP32[$14 >> 2] | 0; + L4 : do if ($15 >>> 0 > 31) { + $46 = $15; + $i$013 = 0; + L6 : while (1) { + $20 = HEAP32[$14 + ($i$013 << 2) + 4 >> 2] | 0; + $21 = $20 >> 1; + L8 : do if (($21 | 0) == ($v | 0)) $36 = $46; else { + $23 = HEAP32[$13 >> 2] | 0; + L10 : do if ($23 >>> 0 > 31) { + $j$010 = 0; + while (1) { + $29 = HEAP32[$13 + ($j$010 << 2) + 4 >> 2] | 0; + $j$010 = $j$010 + 1 | 0; + if (($29 >> 1 | 0) == ($21 | 0)) break; + if (($j$010 | 0) >= ($23 >>> 5 | 0)) break L10; + } + if (($29 | 0) == ($20 ^ 1 | 0)) { + $$0 = 0; + break L6; + } else { + $36 = $46; + break L8; + } + } while (0); + HEAP32[$0 >> 2] = $20; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($out_clause, $0); + $36 = HEAP32[$14 >> 2] | 0; + } while (0); + $i$013 = $i$013 + 1 | 0; + if (($i$013 | 0) >= ($36 >>> 5 | 0)) break L4; else $46 = $36; + } + STACKTOP = sp; + return $$0 | 0; + } while (0); + $17 = HEAP32[$13 >> 2] | 0; + if ($17 >>> 0 <= 31) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $47 = $17; + $i1$07 = 0; + while (1) { + $39 = HEAP32[$13 + ($i1$07 << 2) + 4 >> 2] | 0; + if (($39 >> 1 | 0) == ($v | 0)) $44 = $47; else { + HEAP32[$1 >> 2] = $39; + __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($out_clause, $1); + $44 = HEAP32[$13 >> 2] | 0; + } + $i1$07 = $i1$07 + 1 | 0; + if (($i1$07 | 0) >= ($44 >>> 5 | 0)) { + $$0 = 1; + break; + } else $47 = $44; + } + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat6Solver11cancelUntilEi($this, $level) { + $this = $this | 0; + $level = $level | 0; + var $$lcssa4 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $21 = 0, $25 = 0, $3 = 0, $4 = 0, $47 = 0, $49 = 0, $5 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $8 = 0, $c$06$in = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 296 | 0; + if ((HEAP32[$0 >> 2] | 0) <= ($level | 0)) { + STACKTOP = sp; + return; + } + $3 = $this + 284 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = $this + 292 | 0; + $6 = HEAP32[$5 >> 2] | 0; + $8 = HEAP32[$6 + ($level << 2) >> 2] | 0; + if (($4 | 0) > ($8 | 0)) { + $10 = $this + 280 | 0; + $11 = $this + 332 | 0; + $12 = $this + 88 | 0; + $13 = $this + 348 | 0; + $14 = $this + 460 | 0; + $15 = $this + 476 | 0; + $16 = $this + 472 | 0; + $17 = $this + 380 | 0; + $c$06$in = $4; + do { + $c$06$in = $c$06$in + -1 | 0; + $21 = HEAP32[(HEAP32[$10 >> 2] | 0) + ($c$06$in << 2) >> 2] >> 1; + HEAP8[(HEAP32[$11 >> 2] | 0) + $21 >> 0] = HEAP8[544] | 0; + $25 = HEAP32[$12 >> 2] | 0; + if (($25 | 0) > 1) label = 7; else if (($25 | 0) == 1) if (($c$06$in | 0) > (HEAP32[(HEAP32[$5 >> 2] | 0) + ((HEAP32[$0 >> 2] | 0) + -1 << 2) >> 2] | 0)) label = 7; + if ((label | 0) == 7) { + label = 0; + HEAP8[(HEAP32[$13 >> 2] | 0) + $21 >> 0] = HEAP32[(HEAP32[$10 >> 2] | 0) + ($c$06$in << 2) >> 2] & 1; + } + if ((HEAP32[$15 >> 2] | 0) > ($21 | 0)) { + if ((HEAP32[(HEAP32[$16 >> 2] | 0) + ($21 << 2) >> 2] | 0) <= -1) label = 11; + } else label = 11; + if ((label | 0) == 11) { + label = 0; + if (HEAP8[(HEAP32[$17 >> 2] | 0) + $21 >> 0] | 0) __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE6insertEi($14, $21); + } + $47 = HEAP32[$5 >> 2] | 0; + $49 = HEAP32[$47 + ($level << 2) >> 2] | 0; + } while (($c$06$in | 0) > ($49 | 0)); + $$lcssa4 = $49; + $57 = $47; + $60 = HEAP32[$3 >> 2] | 0; + } else { + $$lcssa4 = $8; + $57 = $6; + $60 = $4; + } + HEAP32[$this + 512 >> 2] = $$lcssa4; + $58 = HEAP32[$57 + ($level << 2) >> 2] | 0; + if (($60 - $58 | 0) > 0) HEAP32[$3 >> 2] = $58; + if (((HEAP32[$0 >> 2] | 0) - $level | 0) <= 0) { + STACKTOP = sp; + return; + } + HEAP32[$0 >> 2] = $level; + STACKTOP = sp; + return; +} +function __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE9removeMinEv($this) { + $this = $this | 0; + var $$0$lcssa$i$ph = 0, $$01$i = 0, $$pre$i = 0, $$pre$pre$i = 0, $$pre7$i = 0, $$pre7$pre$i = 0, $$pre9$i = 0.0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $17 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $28 = 0.0, $30 = 0.0, $33 = 0, $36 = 0.0, $38 = 0, $41 = 0, $6 = 0, $8 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$this >> 2] | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 4 | 0; + $6 = HEAP32[$0 + ((HEAP32[$2 >> 2] | 0) + -1 << 2) >> 2] | 0; + HEAP32[$0 >> 2] = $6; + $8 = HEAP32[$this + 12 >> 2] | 0; + HEAP32[$8 + ($6 << 2) >> 2] = 0; + HEAP32[$8 + ($1 << 2) >> 2] = -1; + $12 = (HEAP32[$2 >> 2] | 0) + -1 | 0; + HEAP32[$2 >> 2] = $12; + if (($12 | 0) <= 1) { + STACKTOP = sp; + return $1 | 0; + } + $14 = HEAP32[$0 >> 2] | 0; + $15 = $this + 28 | 0; + $$01$i = 0; + $19 = $12; + $20 = 1; + while (1) { + $17 = ($$01$i << 1) + 2 | 0; + if (($17 | 0) < ($19 | 0)) { + $22 = HEAP32[$0 + ($17 << 2) >> 2] | 0; + $24 = HEAP32[$0 + ($20 << 2) >> 2] | 0; + $26 = HEAP32[HEAP32[$15 >> 2] >> 2] | 0; + $28 = +HEAPF64[$26 + ($22 << 3) >> 3]; + $30 = +HEAPF64[$26 + ($24 << 3) >> 3]; + if ($28 > $30) { + $33 = $26; + $36 = $28; + $38 = $22; + $41 = $17; + } else { + $$pre$i = $24; + $$pre7$i = $26; + $$pre9$i = $30; + label = 6; + } + } else { + $$pre$pre$i = HEAP32[$0 + ($20 << 2) >> 2] | 0; + $$pre7$pre$i = HEAP32[HEAP32[$15 >> 2] >> 2] | 0; + $$pre$i = $$pre$pre$i; + $$pre7$i = $$pre7$pre$i; + $$pre9$i = +HEAPF64[$$pre7$pre$i + ($$pre$pre$i << 3) >> 3]; + label = 6; + } + if ((label | 0) == 6) { + label = 0; + $33 = $$pre7$i; + $36 = $$pre9$i; + $38 = $$pre$i; + $41 = $20; + } + if (!($36 > +HEAPF64[$33 + ($14 << 3) >> 3])) { + $$0$lcssa$i$ph = $$01$i; + break; + } + HEAP32[$0 + ($$01$i << 2) >> 2] = $38; + HEAP32[$8 + ($38 << 2) >> 2] = $$01$i; + $20 = $41 << 1 | 1; + $19 = HEAP32[$2 >> 2] | 0; + if (($20 | 0) >= ($19 | 0)) { + $$0$lcssa$i$ph = $41; + break; + } else $$01$i = $41; + } + HEAP32[$0 + ($$0$lcssa$i$ph << 2) >> 2] = $14; + HEAP32[$8 + ($14 << 2) >> 2] = $$0$lcssa$i$ph; + STACKTOP = sp; + return $1 | 0; +} +function __ZN7Minisat10SimpSolver10addClause_ERNS_3vecINS_3LitEiEE($this, $ps) { + $this = $this | 0; + $ps = $ps | 0; + var $$0 = 0, $0 = 0, $1 = 0, $11 = 0, $17 = 0, $2 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $38 = 0, $48 = 0, $53 = 0, $cr = 0, $i$05 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $cr = sp; + $0 = $this + 256 | 0; + $1 = $this + 260 | 0; + $2 = HEAP32[$1 >> 2] | 0; + if (HEAP8[$this + 705 >> 0] | 0) if (__ZN7Minisat10SimpSolver7impliedERKNS_3vecINS_3LitEiEE($this, $ps) | 0) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + if (!(__ZN7Minisat6Solver10addClause_ERNS_3vecINS_3LitEiEE($this, $ps) | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + if (!(HEAP8[$this + 724 >> 0] | 0)) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $11 = HEAP32[$1 >> 2] | 0; + if (($11 | 0) != ($2 + 1 | 0)) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $17 = HEAP32[(HEAP32[$0 >> 2] | 0) + ($11 + -1 << 2) >> 2] | 0; + HEAP32[$cr >> 2] = $17; + $20 = (HEAP32[$this + 544 >> 2] | 0) + ($17 << 2) | 0; + __ZN7Minisat5QueueIjE6insertEj($this + 856 | 0, $17); + if ((HEAP32[$20 >> 2] | 0) >>> 0 <= 31) { + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } + $24 = $this + 760 | 0; + $25 = $this + 808 | 0; + $26 = $this + 744 | 0; + $27 = $this + 924 | 0; + $28 = $this + 824 | 0; + $29 = $this + 840 | 0; + $30 = $this + 836 | 0; + $i$05 = 0; + do { + $31 = $20 + ($i$05 << 2) + 4 | 0; + __ZN7Minisat3vecIjiE4pushERKj((HEAP32[$24 >> 2] | 0) + ((HEAP32[$31 >> 2] >> 1) * 12 | 0) | 0, $cr); + $38 = (HEAP32[$25 >> 2] | 0) + (HEAP32[$31 >> 2] << 2) | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; + HEAP8[(HEAP32[$26 >> 2] | 0) + (HEAP32[$31 >> 2] >> 1) >> 0] = 1; + HEAP32[$27 >> 2] = (HEAP32[$27 >> 2] | 0) + 1; + $48 = HEAP32[$31 >> 2] >> 1; + if ((HEAP32[$29 >> 2] | 0) > ($48 | 0)) { + $53 = HEAP32[(HEAP32[$30 >> 2] | 0) + ($48 << 2) >> 2] | 0; + if (($53 | 0) > -1) __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE13percolateDownEi($28, $53); + } + $i$05 = $i$05 + 1 | 0; + } while (($i$05 | 0) < ((HEAP32[$20 >> 2] | 0) >>> 5 | 0)); + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat15ClauseAllocator5allocERKNS_3vecINS_3LitEiEEb($this, $ps, $learnt) { + $this = $this | 0; + $ps = $ps | 0; + $learnt = $learnt | 0; + var $$lcssa$i$i$i = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $19 = 0, $25 = 0, $29 = 0, $32 = 0, $4 = 0, $40 = 0, $44 = 0, $5 = 0, $52 = 0, $abstraction$0$lcssa$i$i$i = 0, $abstraction$01$i$i$i = 0, $i$01$i$i = 0, $i$02$i$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = $learnt & 1; + $4 = HEAPU8[$this + 16 >> 0] | 0 | $0; + $5 = $ps + 4 | 0; + $10 = (($4 + (HEAP32[$5 >> 2] | 0) << 2) + 4 | 0) >>> 2; + $11 = $this + 4 | 0; + __ZN7Minisat15RegionAllocatorIjE8capacityEj($this, $10 + (HEAP32[$11 >> 2] | 0) | 0); + $14 = HEAP32[$11 >> 2] | 0; + $15 = $10 + $14 | 0; + HEAP32[$11 >> 2] = $15; + if ($15 >>> 0 < $14 >>> 0) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + $19 = (HEAP32[$this >> 2] | 0) + ($14 << 2) | 0; + if (!$19) { + STACKTOP = sp; + return $14 | 0; + } + $25 = $4 << 3 | $0 << 2; + HEAP32[$19 >> 2] = HEAP32[$19 >> 2] & -32 | $25; + $29 = HEAP32[$5 >> 2] << 5 | $25; + HEAP32[$19 >> 2] = $29; + if ((HEAP32[$5 >> 2] | 0) > 0) { + $32 = HEAP32[$ps >> 2] | 0; + $i$01$i$i = 0; + do { + HEAP32[$19 + ($i$01$i$i << 2) + 4 >> 2] = HEAP32[$32 + ($i$01$i$i << 2) >> 2]; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) < (HEAP32[$5 >> 2] | 0)); + $40 = HEAP32[$19 >> 2] | 0; + } else $40 = $29; + if (!($40 & 8)) { + STACKTOP = sp; + return $14 | 0; + } + $44 = $40 >>> 5; + if ($40 & 4) { + HEAPF32[$19 + ($44 << 2) + 4 >> 2] = 0.0; + STACKTOP = sp; + return $14 | 0; + } + if (!$44) { + $$lcssa$i$i$i = 0; + $abstraction$0$lcssa$i$i$i = 0; + } else { + $abstraction$01$i$i$i = 0; + $i$02$i$i$i = 0; + while (1) { + $52 = 1 << ((HEAP32[$19 + ($i$02$i$i$i << 2) + 4 >> 2] | 0) >>> 1 & 31) | $abstraction$01$i$i$i; + $i$02$i$i$i = $i$02$i$i$i + 1 | 0; + if (($i$02$i$i$i | 0) >= ($44 | 0)) { + $$lcssa$i$i$i = $44; + $abstraction$0$lcssa$i$i$i = $52; + break; + } else $abstraction$01$i$i$i = $52; + } + } + HEAP32[$19 + ($$lcssa$i$i$i << 2) + 4 >> 2] = $abstraction$0$lcssa$i$i$i; + STACKTOP = sp; + return $14 | 0; +} +function __ZN7Minisat12DoubleOption5parseEPKc($this, $str) { + $this = $this | 0; + $str = $str | 0; + var $$0 = 0, $$lcssa$i13$ph = 0, $11 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0.0, $2 = 0, $23 = 0.0, $29 = 0, $3 = 0, $30 = 0, $32 = 0.0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $end = 0, $i$02$i7 = 0, $vararg_buffer2 = 0, sp = 0, $i$02$i7$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer2 = sp; + $end = sp + 8 | 0; + if ((HEAP8[$str >> 0] | 0) != 45) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $2 = $str + 1 | 0; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = HEAP8[$4 >> 0] | 0; + L4 : do if (!($5 << 24 >> 24)) $$lcssa$i13$ph = $2; else { + $13 = $2; + $15 = $5; + $i$02$i7 = 0; + while (1) { + $i$02$i7$looptemp = $i$02$i7; + $i$02$i7 = $i$02$i7 + 1 | 0; + if ((HEAP8[$13 >> 0] | 0) != $15 << 24 >> 24) { + $$0 = 0; + break; + } + $15 = HEAP8[$4 + $i$02$i7 >> 0] | 0; + $11 = $str + ($i$02$i7$looptemp + 2) | 0; + if (!($15 << 24 >> 24)) { + $$lcssa$i13$ph = $11; + break L4; + } else $13 = $11; + } + STACKTOP = sp; + return $$0 | 0; + } while (0); + if ((HEAP8[$$lcssa$i13$ph >> 0] | 0) != 61) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $18 = $$lcssa$i13$ph + 1 | 0; + $19 = +_strtod($18, $end); + if (!(HEAP32[$end >> 2] | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $23 = +HEAPF64[$this + 32 >> 3]; + if ($19 >= $23) if ((HEAP8[$this + 41 >> 0] | 0) == 0 | $19 != $23) { + $29 = HEAP32[_stderr >> 2] | 0; + $30 = HEAP32[$3 >> 2] | 0; + HEAP32[$vararg_buffer2 >> 2] = $18; + HEAP32[$vararg_buffer2 + 4 >> 2] = $30; + _fprintf($29 | 0, 2024, $vararg_buffer2 | 0) | 0; + _exit(1); + } + $32 = +HEAPF64[$this + 24 >> 3]; + if ($19 <= $32) if ((HEAP8[$this + 40 >> 0] | 0) == 0 | $19 != $32) { + $38 = HEAP32[_stderr >> 2] | 0; + $39 = HEAP32[$3 >> 2] | 0; + HEAP32[$vararg_buffer2 >> 2] = $18; + HEAP32[$vararg_buffer2 + 4 >> 2] = $39; + _fprintf($38 | 0, 2080, $vararg_buffer2 | 0) | 0; + _exit(1); + } + HEAPF64[$this + 48 >> 3] = $19; + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat10SimpSolverD2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $15 = 0, $16 = 0, $20 = 0, $21 = 0, $25 = 0, $26 = 0, $30 = 0, $31 = 0, $36 = 0, $37 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + HEAP32[$this >> 2] = 3424; + $0 = $this + 904 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1) { + HEAP32[$this + 908 >> 2] = 0; + _free($1); + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 912 >> 2] = 0; + } + $5 = $this + 892 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($6) { + HEAP32[$this + 896 >> 2] = 0; + _free($6); + HEAP32[$5 >> 2] = 0; + HEAP32[$this + 900 >> 2] = 0; + } + $10 = $this + 876 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + HEAP32[$this + 880 >> 2] = 0; + _free($11); + HEAP32[$10 >> 2] = 0; + HEAP32[$this + 884 >> 2] = 0; + } + $15 = $this + 856 | 0; + $16 = HEAP32[$15 >> 2] | 0; + if ($16) { + HEAP32[$this + 860 >> 2] = 0; + _free($16); + HEAP32[$15 >> 2] = 0; + HEAP32[$this + 864 >> 2] = 0; + } + $20 = $this + 836 | 0; + $21 = HEAP32[$20 >> 2] | 0; + if ($21) { + HEAP32[$this + 840 >> 2] = 0; + _free($21); + HEAP32[$20 >> 2] = 0; + HEAP32[$this + 844 >> 2] = 0; + } + $25 = $this + 824 | 0; + $26 = HEAP32[$25 >> 2] | 0; + if ($26) { + HEAP32[$this + 828 >> 2] = 0; + _free($26); + HEAP32[$25 >> 2] = 0; + HEAP32[$this + 832 >> 2] = 0; + } + $30 = $this + 808 | 0; + $31 = HEAP32[$30 >> 2] | 0; + if ($31) { + HEAP32[$this + 812 >> 2] = 0; + _free($31); + HEAP32[$30 >> 2] = 0; + HEAP32[$this + 816 >> 2] = 0; + } + __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEED1Ev($this + 760 | 0); + $36 = $this + 744 | 0; + $37 = HEAP32[$36 >> 2] | 0; + if ($37) { + HEAP32[$this + 748 >> 2] = 0; + _free($37); + HEAP32[$36 >> 2] = 0; + HEAP32[$this + 752 >> 2] = 0; + } + $41 = $this + 732 | 0; + $42 = HEAP32[$41 >> 2] | 0; + if (!$42) { + __ZN7Minisat6SolverD2Ev($this); + STACKTOP = sp; + return; + } + HEAP32[$this + 736 >> 2] = 0; + _free($42); + HEAP32[$41 >> 2] = 0; + HEAP32[$this + 740 >> 2] = 0; + __ZN7Minisat6SolverD2Ev($this); + STACKTOP = sp; + return; +} +function __ZN7Minisat9IntOption5parseEPKc($this, $str) { + $this = $this | 0; + $str = $str | 0; + var $$0 = 0, $$lcssa$i12$ph = 0, $11 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $25 = 0, $26 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $end = 0, $i$02$i6 = 0, $vararg_buffer2 = 0, sp = 0, $i$02$i6$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer2 = sp; + $end = sp + 8 | 0; + if ((HEAP8[$str >> 0] | 0) != 45) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $2 = $str + 1 | 0; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = HEAP8[$4 >> 0] | 0; + L4 : do if (!($5 << 24 >> 24)) $$lcssa$i12$ph = $2; else { + $13 = $2; + $15 = $5; + $i$02$i6 = 0; + while (1) { + $i$02$i6$looptemp = $i$02$i6; + $i$02$i6 = $i$02$i6 + 1 | 0; + if ((HEAP8[$13 >> 0] | 0) != $15 << 24 >> 24) { + $$0 = 0; + break; + } + $15 = HEAP8[$4 + $i$02$i6 >> 0] | 0; + $11 = $str + ($i$02$i6$looptemp + 2) | 0; + if (!($15 << 24 >> 24)) { + $$lcssa$i12$ph = $11; + break L4; + } else $13 = $11; + } + STACKTOP = sp; + return $$0 | 0; + } while (0); + if ((HEAP8[$$lcssa$i12$ph >> 0] | 0) != 61) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $18 = $$lcssa$i12$ph + 1 | 0; + $19 = _strtol($18, $end, 10) | 0; + if (!(HEAP32[$end >> 2] | 0)) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + if (($19 | 0) > (HEAP32[$this + 24 >> 2] | 0)) { + $25 = HEAP32[_stderr >> 2] | 0; + $26 = HEAP32[$3 >> 2] | 0; + HEAP32[$vararg_buffer2 >> 2] = $18; + HEAP32[$vararg_buffer2 + 4 >> 2] = $26; + _fprintf($25 | 0, 416, $vararg_buffer2 | 0) | 0; + _exit(1); + } + if (($19 | 0) < (HEAP32[$this + 20 >> 2] | 0)) { + $30 = HEAP32[_stderr >> 2] | 0; + $31 = HEAP32[$3 >> 2] | 0; + HEAP32[$vararg_buffer2 >> 2] = $18; + HEAP32[$vararg_buffer2 + 4 >> 2] = $31; + _fprintf($30 | 0, 472, $vararg_buffer2 | 0) | 0; + _exit(1); + } + HEAP32[$this + 28 >> 2] = $19; + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat6Solver12attachClauseEj($this, $cr) { + $this = $this | 0; + $cr = $cr | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $23 = 0, $24 = 0, $3 = 0, $30 = 0, $32 = 0, $38 = 0, $39 = 0, $4 = 0, $45 = 0, $47 = 0, $5 = 0, $51 = 0, $52 = 0, $58 = 0, $60 = 0, $66 = 0, $67 = 0, $73 = 0, $75 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp + 8 | 0; + $1 = sp; + $3 = HEAP32[$this + 544 >> 2] | 0; + $4 = $3 + ($cr << 2) | 0; + $5 = $3 + ($cr + 1 << 2) | 0; + $8 = $this + 412 | 0; + $10 = (HEAP32[$8 >> 2] | 0) + ((HEAP32[$5 >> 2] ^ 1) * 12 | 0) | 0; + $11 = $3 + ($cr + 2 << 2) | 0; + $12 = HEAP32[$11 >> 2] | 0; + HEAP32[$0 >> 2] = $cr; + HEAP32[$0 + 4 >> 2] = $12; + __ZN7Minisat3vecINS_6Solver7WatcherEiE4pushERKS2_($10, $0); + $17 = (HEAP32[$8 >> 2] | 0) + ((HEAP32[$11 >> 2] ^ 1) * 12 | 0) | 0; + $18 = HEAP32[$5 >> 2] | 0; + HEAP32[$1 >> 2] = $cr; + HEAP32[$1 + 4 >> 2] = $18; + __ZN7Minisat3vecINS_6Solver7WatcherEiE4pushERKS2_($17, $1); + if (!(HEAP32[$4 >> 2] & 4)) { + $51 = $this + 208 | 0; + $52 = $51; + $58 = _i64Add(HEAP32[$52 >> 2] | 0, HEAP32[$52 + 4 >> 2] | 0, 1, 0) | 0; + $60 = $51; + HEAP32[$60 >> 2] = $58; + HEAP32[$60 + 4 >> 2] = tempRet0; + $66 = $this + 224 | 0; + $67 = $66; + $73 = _i64Add((HEAP32[$4 >> 2] | 0) >>> 5 | 0, 0, HEAP32[$67 >> 2] | 0, HEAP32[$67 + 4 >> 2] | 0) | 0; + $75 = $66; + HEAP32[$75 >> 2] = $73; + HEAP32[$75 + 4 >> 2] = tempRet0; + STACKTOP = sp; + return; + } else { + $23 = $this + 216 | 0; + $24 = $23; + $30 = _i64Add(HEAP32[$24 >> 2] | 0, HEAP32[$24 + 4 >> 2] | 0, 1, 0) | 0; + $32 = $23; + HEAP32[$32 >> 2] = $30; + HEAP32[$32 + 4 >> 2] = tempRet0; + $38 = $this + 232 | 0; + $39 = $38; + $45 = _i64Add((HEAP32[$4 >> 2] | 0) >>> 5 | 0, 0, HEAP32[$39 >> 2] | 0, HEAP32[$39 + 4 >> 2] | 0) | 0; + $47 = $38; + HEAP32[$47 >> 2] = $45; + HEAP32[$47 + 4 >> 2] = tempRet0; + STACKTOP = sp; + return; + } +} +function __ZN7Minisat10SimpSolver7impliedERKNS_3vecINS_3LitEiEE($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $$0 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $31 = 0, $32 = 0, $45 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $8 = 0, $i$012 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$this + 284 >> 2]; + __ZN7Minisat3vecIiiE4pushERKi($this + 292 | 0, $0); + $5 = $c + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + L1 : do if (($6 | 0) > 0) { + $8 = $this + 332 | 0; + $48 = $6; + $i$012 = 0; + while (1) { + $11 = HEAP32[(HEAP32[$c >> 2] | 0) + ($i$012 << 2) >> 2] | 0; + $17 = HEAPU8[(HEAP32[$8 >> 2] | 0) + ($11 >> 1) >> 0] | 0; + $18 = $17 ^ $11 & 1; + $19 = $18 & 255; + $20 = HEAP8[2608] | 0; + $21 = $20 & 255; + if ($19 << 24 >> 24 == $20 << 24 >> 24 & ($21 >>> 1 ^ 1) | $21 & 2 & $18) break; + $31 = HEAP8[2616] | 0; + $32 = $31 & 255; + if (!(($32 >>> 1 ^ 1) & $19 << 24 >> 24 == $31 << 24 >> 24 | $17 & 2 & $32)) { + HEAP32[$1 >> 2] = $11 ^ 1; + HEAP32[$$byval_copy + 0 >> 2] = HEAP32[$1 + 0 >> 2]; + __ZN7Minisat6Solver16uncheckedEnqueueENS_3LitEj($this, $$byval_copy, -1); + $45 = HEAP32[$5 >> 2] | 0; + } else $45 = $48; + $i$012 = $i$012 + 1 | 0; + if (($i$012 | 0) >= ($45 | 0)) break L1; else $48 = $45; + } + __ZN7Minisat6Solver11cancelUntilEi($this, 0); + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; + } while (0); + $47 = (__ZN7Minisat6Solver9propagateEv($this) | 0) != -1; + __ZN7Minisat6Solver11cancelUntilEi($this, 0); + $$0 = $47; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat12DoubleOption4helpEb($this, $verbose) { + $this = $this | 0; + $verbose = $verbose | 0; + var $0 = 0, $10 = 0.0, $12 = 0.0, $16 = 0, $18 = 0.0, $4 = 0, $8 = 0, $vararg_buffer7 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + $vararg_buffer7 = sp; + $0 = HEAP32[_stderr >> 2] | 0; + $4 = HEAP32[$this + 16 >> 2] | 0; + $8 = (HEAP8[$this + 40 >> 0] | 0) != 0 ? 91 : 40; + $10 = +HEAPF64[$this + 24 >> 3]; + $12 = +HEAPF64[$this + 32 >> 3]; + $16 = (HEAP8[$this + 41 >> 0] | 0) != 0 ? 93 : 41; + $18 = +HEAPF64[$this + 48 >> 3]; + HEAP32[$vararg_buffer7 >> 2] = HEAP32[$this + 4 >> 2]; + HEAP32[$vararg_buffer7 + 4 >> 2] = $4; + HEAP32[$vararg_buffer7 + 8 >> 2] = $8; + $vararg_ptr3 = $vararg_buffer7 + 12 | 0; + HEAPF64[tempDoublePtr >> 3] = $10; + HEAP32[$vararg_ptr3 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_ptr3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + $vararg_ptr4 = $vararg_buffer7 + 20 | 0; + HEAPF64[tempDoublePtr >> 3] = $12; + HEAP32[$vararg_ptr4 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_ptr4 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + HEAP32[$vararg_buffer7 + 28 >> 2] = $16; + $vararg_ptr6 = $vararg_buffer7 + 32 | 0; + HEAPF64[tempDoublePtr >> 3] = $18; + HEAP32[$vararg_ptr6 >> 2] = HEAP32[tempDoublePtr >> 2]; + HEAP32[$vararg_ptr6 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; + _fprintf($0 | 0, 2232, $vararg_buffer7 | 0) | 0; + if (!$verbose) { + STACKTOP = sp; + return; + } + HEAP32[$vararg_buffer7 >> 2] = HEAP32[$this + 8 >> 2]; + _fprintf($0 | 0, 2e3, $vararg_buffer7 | 0) | 0; + _fputc(10, $0 | 0) | 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat5QueueIjE5clearEb($this, $dealloc) { + $this = $this | 0; + $dealloc = $dealloc | 0; + var $$pre = 0, $0 = 0, $12 = 0, $14 = 0, $17 = 0, $19 = 0, $20 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $32 = 0, $33 = 0, $5 = 0, $6 = 0, $9 = 0, $i$01$i = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$this >> 2] | 0; + $$pre = $this + 4 | 0; + if (!$0) $19 = 0; else { + HEAP32[$$pre >> 2] = 0; + if ($dealloc) { + _free($0); + HEAP32[$this >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + $19 = 0; + } else $19 = $0; + } + if ((HEAP32[$$pre >> 2] | 0) >= 1) { + $32 = $this + 16 | 0; + HEAP32[$32 >> 2] = 0; + $33 = $this + 12 | 0; + HEAP32[$33 >> 2] = 0; + STACKTOP = sp; + return; + } + $5 = $this + 8 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($6 | 0) < 1) { + $9 = 2 - $6 & -2; + $12 = ($6 >> 1) + 2 & -2; + $14 = ($9 | 0) > ($12 | 0) ? $9 : $12; + if (($14 | 0) > (2147483647 - $6 | 0)) { + $25 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($25 | 0, 48, 0); + } + $17 = $14 + $6 | 0; + HEAP32[$5 >> 2] = $17; + $20 = _realloc($19, $17 << 2) | 0; + HEAP32[$this >> 2] = $20; + if (!$20) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $25 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($25 | 0, 48, 0); + } else $29 = $20; else $29 = $20; + } else $29 = $19; + $26 = HEAP32[$$pre >> 2] | 0; + if (($26 | 0) < 1) { + $i$01$i = $26; + while (1) { + $28 = $29 + ($i$01$i << 2) | 0; + if ($28) HEAP32[$28 >> 2] = 0; + if (!$i$01$i) break; else $i$01$i = $i$01$i + 1 | 0; + } + } + HEAP32[$$pre >> 2] = 1; + $32 = $this + 16 | 0; + HEAP32[$32 >> 2] = 0; + $33 = $this + 12 | 0; + HEAP32[$33 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver6newVarENS_5lboolEb($this, $upol, $dvar) { + $this = $this | 0; + $upol = $upol | 0; + $dvar = $dvar | 0; + var $$byval_copy2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $15 = 0, $17 = 0, $2 = 0, $4 = 0, $v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + $$byval_copy2 = sp + 12 | 0; + $v = sp + 8 | 0; + $0 = sp + 16 | 0; + $1 = sp + 4 | 0; + $2 = sp; + HEAP8[$0 >> 0] = HEAP8[$upol >> 0] | 0; + HEAP8[$$byval_copy2 + 0 >> 0] = HEAP8[$0 + 0 >> 0] | 0; + $4 = __ZN7Minisat6Solver6newVarENS_5lboolEb($this, $$byval_copy2, $dvar) | 0; + HEAP32[$v >> 2] = $4; + __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this + 876 | 0, $4, 0); + __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this + 904 | 0, $4, 0); + if (!(HEAP8[$this + 724 >> 0] | 0)) { + $17 = $4; + STACKTOP = sp; + return $17 | 0; + } + $10 = $this + 808 | 0; + $11 = $4 << 1; + HEAP32[$1 >> 2] = $11; + HEAP32[$$byval_copy2 + 0 >> 2] = HEAP32[$1 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEiNS_10MkIndexLitEE6insertES1_i($10, $$byval_copy2, 0); + HEAP32[$2 >> 2] = $11 | 1; + HEAP32[$$byval_copy2 + 0 >> 2] = HEAP32[$2 + 0 >> 2]; + __ZN7Minisat6IntMapINS_3LitEiNS_10MkIndexLitEE6insertES1_i($10, $$byval_copy2, 0); + __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE4initERKi($this + 760 | 0, $v); + $15 = HEAP32[$v >> 2] | 0; + __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this + 744 | 0, $15, 0); + __ZN7Minisat4HeapIiNS_10SimpSolver6ElimLtENS_14MkIndexDefaultIiEEE6insertEi($this + 824 | 0, $15); + $17 = $15; + STACKTOP = sp; + return $17 | 0; +} +function __ZN7Minisat8OccListsINS_3LitENS_3vecINS_6Solver7WatcherEiEENS3_14WatcherDeletedENS_10MkIndexLitEED1Ev($this) { + $this = $this | 0; + var $$pre2$i$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $23 = 0, $24 = 0, $26 = 0, $5 = 0, $6 = 0, $i$01$i$i$i$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 32 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1) { + HEAP32[$this + 36 >> 2] = 0; + _free($1); + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 40 >> 2] = 0; + } + $5 = $this + 16 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($6) { + HEAP32[$this + 20 >> 2] = 0; + _free($6); + HEAP32[$5 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + } + $10 = HEAP32[$this >> 2] | 0; + if (!$10) { + STACKTOP = sp; + return; + } + $12 = $this + 4 | 0; + $13 = HEAP32[$12 >> 2] | 0; + if (($13 | 0) > 0) { + $16 = $10; + $26 = $13; + $i$01$i$i$i$i$i = 0; + while (1) { + $15 = $16 + ($i$01$i$i$i$i$i * 12 | 0) | 0; + $17 = HEAP32[$15 >> 2] | 0; + if (!$17) { + $$pre2$i$i$i$i$i = $16; + $23 = $26; + } else { + HEAP32[$16 + ($i$01$i$i$i$i$i * 12 | 0) + 4 >> 2] = 0; + _free($17); + HEAP32[$15 >> 2] = 0; + HEAP32[$16 + ($i$01$i$i$i$i$i * 12 | 0) + 8 >> 2] = 0; + $$pre2$i$i$i$i$i = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$12 >> 2] | 0; + } + $i$01$i$i$i$i$i = $i$01$i$i$i$i$i + 1 | 0; + if (($i$01$i$i$i$i$i | 0) >= ($23 | 0)) { + $24 = $$pre2$i$i$i$i$i; + break; + } else { + $16 = $$pre2$i$i$i$i$i; + $26 = $23; + } + } + } else $24 = $10; + HEAP32[$12 >> 2] = 0; + _free($24); + HEAP32[$this >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEED1Ev($this) { + $this = $this | 0; + var $$pre2$i$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $23 = 0, $24 = 0, $26 = 0, $5 = 0, $6 = 0, $i$01$i$i$i$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 32 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1) { + HEAP32[$this + 36 >> 2] = 0; + _free($1); + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 40 >> 2] = 0; + } + $5 = $this + 16 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($6) { + HEAP32[$this + 20 >> 2] = 0; + _free($6); + HEAP32[$5 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + } + $10 = HEAP32[$this >> 2] | 0; + if (!$10) { + STACKTOP = sp; + return; + } + $12 = $this + 4 | 0; + $13 = HEAP32[$12 >> 2] | 0; + if (($13 | 0) > 0) { + $16 = $10; + $26 = $13; + $i$01$i$i$i$i$i = 0; + while (1) { + $15 = $16 + ($i$01$i$i$i$i$i * 12 | 0) | 0; + $17 = HEAP32[$15 >> 2] | 0; + if (!$17) { + $$pre2$i$i$i$i$i = $16; + $23 = $26; + } else { + HEAP32[$16 + ($i$01$i$i$i$i$i * 12 | 0) + 4 >> 2] = 0; + _free($17); + HEAP32[$15 >> 2] = 0; + HEAP32[$16 + ($i$01$i$i$i$i$i * 12 | 0) + 8 >> 2] = 0; + $$pre2$i$i$i$i$i = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$12 >> 2] | 0; + } + $i$01$i$i$i$i$i = $i$01$i$i$i$i$i + 1 | 0; + if (($i$01$i$i$i$i$i | 0) >= ($23 | 0)) { + $24 = $$pre2$i$i$i$i$i; + break; + } else { + $16 = $$pre2$i$i$i$i$i; + $26 = $23; + } + } + } else $24 = $10; + HEAP32[$12 >> 2] = 0; + _free($24); + HEAP32[$this >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6IntMapINS_3LitEiNS_10MkIndexLitEE6insertES1_i($this, $key, $val) { + $this = $this | 0; + $key = $key | 0; + $val = $val | 0; + var $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $33 = 0, $34 = 0, $5 = 0, $6 = 0, $i$01$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$key >> 2] | 0; + $1 = $0 + 1 | 0; + $2 = $this + 4 | 0; + if ((HEAP32[$2 >> 2] | 0) >= ($1 | 0)) { + $33 = HEAP32[$this >> 2] | 0; + $34 = $33 + ($0 << 2) | 0; + HEAP32[$34 >> 2] = $val; + STACKTOP = sp; + return; + } + $5 = $this + 8 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($6 | 0) < ($1 | 0)) { + $10 = $0 + 2 - $6 & -2; + $13 = ($6 >> 1) + 2 & -2; + $15 = ($10 | 0) > ($13 | 0) ? $10 : $13; + if (($15 | 0) > (2147483647 - $6 | 0)) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + $18 = HEAP32[$this >> 2] | 0; + $19 = $15 + $6 | 0; + HEAP32[$5 >> 2] = $19; + $21 = _realloc($18, $19 << 2) | 0; + HEAP32[$this >> 2] = $21; + if (!$21) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + } + $27 = HEAP32[$2 >> 2] | 0; + if (($27 | 0) < ($1 | 0)) { + $29 = HEAP32[$this >> 2] | 0; + $i$01$i$i = $27; + do { + $30 = $29 + ($i$01$i$i << 2) | 0; + if ($30) HEAP32[$30 >> 2] = 0; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($1 | 0)); + } + HEAP32[$2 >> 2] = $1; + $33 = HEAP32[$this >> 2] | 0; + $34 = $33 + ($0 << 2) | 0; + HEAP32[$34 >> 2] = $val; + STACKTOP = sp; + return; +} +function __ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE5clearEb($this, $free) { + $this = $this | 0; + $free = $free | 0; + var $0 = 0, $11 = 0, $13 = 0, $16 = 0, $17 = 0, $2 = 0, $21 = 0, $22 = 0, $26 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $i$01$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + L3 : do if (($3 | 0) > 0) { + $26 = $3; + $6 = $0; + $i$01$i$i = 0; + while (1) { + $5 = $6 + ($i$01$i$i * 12 | 0) | 0; + $7 = HEAP32[$5 >> 2] | 0; + if (!$7) $13 = $26; else { + HEAP32[$6 + ($i$01$i$i * 12 | 0) + 4 >> 2] = 0; + _free($7); + HEAP32[$5 >> 2] = 0; + HEAP32[$6 + ($i$01$i$i * 12 | 0) + 8 >> 2] = 0; + $13 = HEAP32[$2 >> 2] | 0; + } + $11 = $i$01$i$i + 1 | 0; + if (($11 | 0) >= ($13 | 0)) break L3; + $26 = $13; + $6 = HEAP32[$this >> 2] | 0; + $i$01$i$i = $11; + } + } while (0); + HEAP32[$2 >> 2] = 0; + if ($free) { + _free(HEAP32[$this >> 2] | 0); + HEAP32[$this >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + } + } + $16 = $this + 16 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if ($17) { + HEAP32[$this + 20 >> 2] = 0; + if ($free) { + _free($17); + HEAP32[$16 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + } + } + $21 = $this + 32 | 0; + $22 = HEAP32[$21 >> 2] | 0; + if (!$22) { + STACKTOP = sp; + return; + } + HEAP32[$this + 36 >> 2] = 0; + if (!$free) { + STACKTOP = sp; + return; + } + _free($22); + HEAP32[$21 >> 2] = 0; + HEAP32[$this + 40 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver16rebuildOrderHeapEv($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $27 = 0, $29 = 0, $3 = 0, $31 = 0, $33 = 0, $5 = 0, $6 = 0, $storemerge4 = 0, $v = 0, $vs = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vs = sp + 4 | 0; + $v = sp; + HEAP32[$vs >> 2] = 0; + $0 = $vs + 4 | 0; + HEAP32[$0 >> 2] = 0; + $1 = $vs + 8 | 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$v >> 2] = 0; + $2 = $this + 540 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) > 0) { + $5 = $this + 380 | 0; + $6 = $this + 332 | 0; + $33 = $3; + $storemerge4 = 0; + while (1) { + if (!(HEAP8[(HEAP32[$5 >> 2] | 0) + $storemerge4 >> 0] | 0)) { + $27 = $storemerge4; + $29 = $33; + } else { + $13 = HEAP8[(HEAP32[$6 >> 2] | 0) + $storemerge4 >> 0] | 0; + $14 = HEAP8[544] | 0; + $15 = $14 & 255; + if (!(($15 >>> 1 ^ 1) & $13 << 24 >> 24 == $14 << 24 >> 24 | $13 & 2 & $15)) { + $27 = $storemerge4; + $29 = $33; + } else { + __ZN7Minisat3vecIiiE4pushERKi($vs, $v); + $27 = HEAP32[$v >> 2] | 0; + $29 = HEAP32[$2 >> 2] | 0; + } + } + $storemerge4 = $27 + 1 | 0; + HEAP32[$v >> 2] = $storemerge4; + if (($storemerge4 | 0) >= ($29 | 0)) break; else $33 = $29; + } + } + __ZN7Minisat4HeapIiNS_6Solver10VarOrderLtENS_14MkIndexDefaultIiEEE5buildERKNS_3vecIiiEE($this + 460 | 0, $vs); + $31 = HEAP32[$vs >> 2] | 0; + if (!$31) { + STACKTOP = sp; + return; + } + HEAP32[$0 >> 2] = 0; + _free($31); + HEAP32[$vs >> 2] = 0; + HEAP32[$1 >> 2] = 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6IntMapIicNS_14MkIndexDefaultIiEEE6insertEic($this, $key, $val) { + $this = $this | 0; + $key = $key | 0; + $val = $val | 0; + var $0 = 0, $1 = 0, $12 = 0, $14 = 0, $17 = 0, $18 = 0, $19 = 0, $24 = 0, $25 = 0, $28 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $9 = 0, $i$01$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = $key + 1 | 0; + $1 = $this + 4 | 0; + if ((HEAP32[$1 >> 2] | 0) >= ($0 | 0)) { + $31 = HEAP32[$this >> 2] | 0; + $32 = $31 + $key | 0; + HEAP8[$32 >> 0] = $val; + STACKTOP = sp; + return; + } + $4 = $this + 8 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if (($5 | 0) < ($0 | 0)) { + $9 = $key + 2 - $5 & -2; + $12 = ($5 >> 1) + 2 & -2; + $14 = ($9 | 0) > ($12 | 0) ? $9 : $12; + if (($14 | 0) > (2147483647 - $5 | 0)) { + $24 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($24 | 0, 48, 0); + } + $17 = HEAP32[$this >> 2] | 0; + $18 = $14 + $5 | 0; + HEAP32[$4 >> 2] = $18; + $19 = _realloc($17, $18) | 0; + HEAP32[$this >> 2] = $19; + if (!$19) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $24 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($24 | 0, 48, 0); + } + } + $25 = HEAP32[$1 >> 2] | 0; + if (($25 | 0) < ($0 | 0)) { + $i$01$i$i = $25; + do { + $28 = (HEAP32[$this >> 2] | 0) + $i$01$i$i | 0; + if ($28) HEAP8[$28 >> 0] = 0; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) != ($0 | 0)); + } + HEAP32[$1 >> 2] = $0; + $31 = HEAP32[$this >> 2] | 0; + $32 = $31 + $key | 0; + HEAP8[$32 >> 0] = $val; + STACKTOP = sp; + return; +} +function __ZL25default_terminate_handlerv() { + var $0 = 0, $11 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $6 = 0, $8 = 0, $thrown_object = 0, $vararg_buffer10 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer10 = sp; + $thrown_object = sp + 12 | 0; + $0 = ___cxa_get_globals_fast() | 0; + if (!$0) _abort_message(4040, $vararg_buffer10); + $2 = HEAP32[$0 >> 2] | 0; + if (!$2) _abort_message(4040, $vararg_buffer10); + $6 = $2 + 48 | 0; + $8 = HEAP32[$6 >> 2] | 0; + $11 = HEAP32[$6 + 4 >> 2] | 0; + if (!(($8 & -256 | 0) == 1126902528 & ($11 | 0) == 1129074247)) { + HEAP32[$vararg_buffer10 >> 2] = HEAP32[970]; + _abort_message(4e3, $vararg_buffer10); + } + if (($8 | 0) == 1126902529 & ($11 | 0) == 1129074247) $21 = HEAP32[$2 + 44 >> 2] | 0; else $21 = $2 + 80 | 0; + HEAP32[$thrown_object >> 2] = $21; + $22 = HEAP32[$2 >> 2] | 0; + $24 = HEAP32[$22 + 4 >> 2] | 0; + if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[4432 >> 2] | 0) + 16 >> 2] & 1](4432, $22, $thrown_object) | 0) { + $29 = HEAP32[$thrown_object >> 2] | 0; + $30 = HEAP32[970] | 0; + $34 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$29 >> 2] | 0) + 8 >> 2] & 1]($29) | 0; + HEAP32[$vararg_buffer10 >> 2] = $30; + HEAP32[$vararg_buffer10 + 4 >> 2] = $24; + HEAP32[$vararg_buffer10 + 8 >> 2] = $34; + _abort_message(3904, $vararg_buffer10); + } else { + HEAP32[$vararg_buffer10 >> 2] = HEAP32[970]; + HEAP32[$vararg_buffer10 + 4 >> 2] = $24; + _abort_message(3952, $vararg_buffer10); + } +} +function __ZN7Minisat15ClauseAllocator5allocERKNS_6ClauseE($this, $from) { + $this = $this | 0; + $from = $from | 0; + var $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $19 = 0, $24 = 0, $35 = 0, $39 = 0, $40 = 0, $5 = 0, $i$01$i$i = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$from >> 2] | 0; + $5 = $0 >>> 2 & 1 | (HEAPU8[$this + 16 >> 0] | 0); + $10 = (($5 + ($0 >>> 5) << 2) + 4 | 0) >>> 2; + $11 = $this + 4 | 0; + __ZN7Minisat15RegionAllocatorIjE8capacityEj($this, $10 + (HEAP32[$11 >> 2] | 0) | 0); + $14 = HEAP32[$11 >> 2] | 0; + $15 = $10 + $14 | 0; + HEAP32[$11 >> 2] = $15; + if ($15 >>> 0 < $14 >>> 0) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + $19 = (HEAP32[$this >> 2] | 0) + ($14 << 2) | 0; + if (!$19) { + STACKTOP = sp; + return $14 | 0; + } + $24 = HEAP32[$from >> 2] & -9 | $5 << 3; + HEAP32[$19 >> 2] = $24; + if ((HEAP32[$from >> 2] | 0) >>> 0 > 31) { + $i$01$i$i = 0; + do { + HEAP32[$19 + ($i$01$i$i << 2) + 4 >> 2] = HEAP32[$from + ($i$01$i$i << 2) + 4 >> 2]; + $i$01$i$i = $i$01$i$i + 1 | 0; + } while (($i$01$i$i | 0) < ((HEAP32[$from >> 2] | 0) >>> 5 | 0)); + $35 = HEAP32[$19 >> 2] | 0; + } else $35 = $24; + if (!($35 & 8)) { + STACKTOP = sp; + return $14 | 0; + } + $39 = $35 >>> 5; + $40 = $from + ($39 << 2) + 4 | 0; + if (!($35 & 4)) { + HEAP32[$19 + ($39 << 2) + 4 >> 2] = HEAP32[$40 >> 2]; + STACKTOP = sp; + return $14 | 0; + } else { + HEAPF32[$19 + ($39 << 2) + 4 >> 2] = +HEAPF32[$40 >> 2]; + STACKTOP = sp; + return $14 | 0; + } + return 0; +} +function __GLOBAL__I_a123() { + var $$sroa$4$i = 0, $0 = 0, $4 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $$sroa$4$i = sp; + HEAP8[2608] = 0; + HEAP8[2616] = 1; + HEAP8[2624] = 2; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(2632, 2656, 2664, 3744, 3752); + HEAP32[658] = 160; + HEAP8[2652] = 0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(2704, 2728, 2736, 3744, 3752); + HEAP32[676] = 160; + HEAP8[2724] = 0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(2784, 2808, 2816, 3744, 3752); + HEAP32[696] = 160; + HEAP8[2804] = 1; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(2848, 2880, 2888, 3744, 3736); + HEAP32[712] = 280; + $0 = 2868 | 0; + HEAP32[$0 >> 2] = -2147483648; + HEAP32[$0 + 4 >> 2] = 2147483647; + HEAP32[719] = 0; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(2960, 2992, 3e3, 3744, 3736); + HEAP32[740] = 280; + $4 = 2980 | 0; + HEAP32[$4 >> 2] = -1; + HEAP32[$4 + 4 >> 2] = 2147483647; + HEAP32[747] = 20; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(3112, 3144, 3152, 3744, 3736); + HEAP32[778] = 280; + $8 = 3132 | 0; + HEAP32[$8 >> 2] = -1; + HEAP32[$8 + 4 >> 2] = 2147483647; + HEAP32[785] = 1e3; + __ZN7Minisat6OptionC2EPKcS2_S2_S2_(3240, 3296, 3312, 3744, 3720); + HEAP32[810] = 2168; + HEAPF64[408] = 0.0; + HEAPF64[409] = inf; + HEAP8[3280] = 0; + HEAP8[3281] = 0; + HEAP16[1641] = HEAP16[$$sroa$4$i + 0 >> 1] | 0; + HEAP16[1642] = HEAP16[$$sroa$4$i + 2 >> 1] | 0; + HEAP16[1643] = HEAP16[$$sroa$4$i + 4 >> 1] | 0; + HEAPF64[411] = .5; + STACKTOP = sp; + return; +} +function __ZN7Minisat6OptionC2EPKcS2_S2_S2_($this, $name_, $desc_, $cate_, $type_) { + $this = $this | 0; + $name_ = $name_ | 0; + $desc_ = $desc_ | 0; + $cate_ = $cate_ | 0; + $type_ = $type_ | 0; + var $13 = 0, $15 = 0, $18 = 0, $19 = 0, $21 = 0, $26 = 0, $28 = 0, $30 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + HEAP32[$this >> 2] = 112; + HEAP32[$this + 4 >> 2] = $name_; + HEAP32[$this + 8 >> 2] = $desc_; + HEAP32[$this + 12 >> 2] = $cate_; + HEAP32[$this + 16 >> 2] = $type_; + if (!(HEAP8[144] | 0)) if (___cxa_guard_acquire(144) | 0) { + HEAP32[32] = 0; + HEAP32[33] = 0; + HEAP32[34] = 0; + ___cxa_atexit(22, 128, ___dso_handle | 0) | 0; + ___cxa_guard_release(144); + } + $8 = HEAP32[33] | 0; + if (($8 | 0) == (HEAP32[34] | 0)) { + $13 = ($8 >> 1) + 2 & -2; + $15 = ($13 | 0) < 2 ? 2 : $13; + if (($15 | 0) > (2147483647 - $8 | 0)) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + $18 = HEAP32[32] | 0; + $19 = $15 + $8 | 0; + HEAP32[34] = $19; + $21 = _realloc($18, $19 << 2) | 0; + HEAP32[32] = $21; + if (!$21) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $26 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($26 | 0, 48, 0); + } + $28 = HEAP32[33] | 0; + } else $28 = $8; + HEAP32[33] = $28 + 1; + $30 = (HEAP32[32] | 0) + ($28 << 2) | 0; + if (!$30) { + STACKTOP = sp; + return; + } + HEAP32[$30 >> 2] = $this; + STACKTOP = sp; + 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 $16 = 0, $17 = 0, $23 = 0, $25 = 0, $5 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + HEAP8[$info + 53 >> 0] = 1; + if ((HEAP32[$info + 4 >> 2] | 0) != ($current_ptr | 0)) { + STACKTOP = sp; + return; + } + HEAP8[$info + 52 >> 0] = 1; + $5 = $info + 16 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (!$6) { + HEAP32[$5 >> 2] = $dst_ptr; + HEAP32[$info + 24 >> 2] = $path_below; + HEAP32[$info + 36 >> 2] = 1; + if (!(($path_below | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0)) { + STACKTOP = sp; + return; + } + HEAP8[$info + 54 >> 0] = 1; + STACKTOP = sp; + return; + } + if (($6 | 0) != ($dst_ptr | 0)) { + $25 = $info + 36 | 0; + HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 1; + HEAP8[$info + 54 >> 0] = 1; + STACKTOP = sp; + return; + } + $16 = $info + 24 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (($17 | 0) == 2) { + HEAP32[$16 >> 2] = $path_below; + $23 = $path_below; + } else $23 = $17; + if (!(($23 | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0)) { + STACKTOP = sp; + return; + } + HEAP8[$info + 54 >> 0] = 1; + STACKTOP = sp; + 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 $14 = 0, $20 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + if ((HEAP32[$info + 8 >> 2] | 0) == ($this | 0)) { + if ((HEAP32[$info + 4 >> 2] | 0) != ($current_ptr | 0)) { + STACKTOP = sp; + return; + } + $6 = $info + 28 | 0; + if ((HEAP32[$6 >> 2] | 0) == 1) { + STACKTOP = sp; + return; + } + HEAP32[$6 >> 2] = $path_below; + STACKTOP = sp; + return; + } + if ((HEAP32[$info >> 2] | 0) != ($this | 0)) { + STACKTOP = sp; + return; + } + if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { + $14 = $info + 20 | 0; + if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { + HEAP32[$info + 32 >> 2] = $path_below; + HEAP32[$14 >> 2] = $current_ptr; + $20 = $info + 40 | 0; + HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 1; + if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) HEAP8[$info + 54 >> 0] = 1; + HEAP32[$info + 44 >> 2] = 4; + STACKTOP = sp; + return; + } + } + if (($path_below | 0) != 1) { + STACKTOP = sp; + return; + } + HEAP32[$info + 32 >> 2] = 1; + STACKTOP = sp; + return; +} +function __ZN7Minisat6IntMapINS_3LitEcNS_10MkIndexLitEE7reserveES1_c($this, $key, $pad) { + $this = $this | 0; + $key = $key | 0; + $pad = $pad | 0; + var $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $25 = 0, $26 = 0, $5 = 0, $6 = 0, $i$01$i = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$key >> 2] | 0; + $1 = $0 + 1 | 0; + $2 = $this + 4 | 0; + if ((HEAP32[$2 >> 2] | 0) >= ($1 | 0)) { + STACKTOP = sp; + return; + } + $5 = $this + 8 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($6 | 0) < ($1 | 0)) { + $10 = $0 + 2 - $6 & -2; + $13 = ($6 >> 1) + 2 & -2; + $15 = ($10 | 0) > ($13 | 0) ? $10 : $13; + if (($15 | 0) > (2147483647 - $6 | 0)) { + $25 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($25 | 0, 48, 0); + } + $18 = HEAP32[$this >> 2] | 0; + $19 = $15 + $6 | 0; + HEAP32[$5 >> 2] = $19; + $20 = _realloc($18, $19) | 0; + HEAP32[$this >> 2] = $20; + if (!$20) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $25 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($25 | 0, 48, 0); + } + } + $26 = HEAP32[$2 >> 2] | 0; + if (($26 | 0) < ($1 | 0)) { + $i$01$i = $26; + do { + HEAP8[(HEAP32[$this >> 2] | 0) + $i$01$i >> 0] = $pad; + $i$01$i = $i$01$i + 1 | 0; + } while (($i$01$i | 0) != ($1 | 0)); + } + HEAP32[$2 >> 2] = $1; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver14garbageCollectEv($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $16 = 0, $18 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $to = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + $vararg_buffer = sp; + $to = sp + 8 | 0; + $0 = $this + 544 | 0; + $1 = $this + 548 | 0; + $3 = $this + 556 | 0; + $5 = (HEAP32[$1 >> 2] | 0) - (HEAP32[$3 >> 2] | 0) | 0; + HEAP32[$to + 0 >> 2] = 0; + HEAP32[$to + 4 >> 2] = 0; + HEAP32[$to + 8 >> 2] = 0; + HEAP32[$to + 12 >> 2] = 0; + __ZN7Minisat15RegionAllocatorIjE8capacityEj($to, $5); + $6 = $to + 16 | 0; + $7 = $this + 560 | 0; + HEAP8[$6 >> 0] = HEAP8[$7 >> 0] | 0; + __ZN7Minisat10SimpSolver8relocAllERNS_15ClauseAllocatorE($this, $to); + __ZN7Minisat6Solver8relocAllERNS_15ClauseAllocatorE($this, $to); + if ((HEAP32[$this + 44 >> 2] | 0) > 1) { + $16 = HEAP32[$to + 4 >> 2] << 2; + HEAP32[$vararg_buffer >> 2] = HEAP32[$1 >> 2] << 2; + HEAP32[$vararg_buffer + 4 >> 2] = $16; + _printf(3608, $vararg_buffer | 0) | 0; + } + HEAP8[$7 >> 0] = HEAP8[$6 >> 0] | 0; + $18 = HEAP32[$0 >> 2] | 0; + if ($18) _free($18); + HEAP32[$0 >> 2] = HEAP32[$to >> 2]; + HEAP32[$1 >> 2] = HEAP32[$to + 4 >> 2]; + HEAP32[$this + 552 >> 2] = HEAP32[$to + 8 >> 2]; + HEAP32[$3 >> 2] = HEAP32[$to + 12 >> 2]; + STACKTOP = sp; + return; +} +function __ZN7Minisat3vecINS_6Solver7WatcherEiE4pushERKS2_($this, $elem) { + $this = $this | 0; + $elem = $elem | 0; + var $0 = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $28 = 0, $3 = 0, $33 = 0, $34 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($1 | 0) == ($3 | 0) & ($3 | 0) < ($1 + 1 | 0)) { + $9 = ($1 >> 1) + 2 & -2; + $11 = ($9 | 0) < 2 ? 2 : $9; + if (($11 | 0) > (2147483647 - $1 | 0)) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } + $14 = HEAP32[$this >> 2] | 0; + $15 = $11 + $1 | 0; + HEAP32[$2 >> 2] = $15; + $17 = _realloc($14, $15 << 3) | 0; + HEAP32[$this >> 2] = $17; + if (!$17) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } else $26 = $17; else $26 = $17; + } else $26 = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $23 + 1; + $25 = $26 + ($23 << 3) | 0; + if (!$25) { + STACKTOP = sp; + return; + } + $28 = $elem; + $33 = HEAP32[$28 + 4 >> 2] | 0; + $34 = $25; + HEAP32[$34 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$34 + 4 >> 2] = $33; + STACKTOP = sp; + return; +} +function __ZN7Minisat10SimpSolver12removeClauseEj($this, $cr) { + $this = $this | 0; + $cr = $cr | 0; + var $0 = 0, $10 = 0, $11 = 0, $12 = 0, $15 = 0, $21 = 0, $23 = 0, $3 = 0, $9 = 0, $i$03 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp; + $3 = (HEAP32[$this + 544 >> 2] | 0) + ($cr << 2) | 0; + if (!(HEAP8[$this + 724 >> 0] | 0)) { + __ZN7Minisat6Solver12removeClauseEj($this, $cr); + STACKTOP = sp; + return; + } + if ((HEAP32[$3 >> 2] | 0) >>> 0 <= 31) { + __ZN7Minisat6Solver12removeClauseEj($this, $cr); + STACKTOP = sp; + return; + } + $9 = $this + 808 | 0; + $10 = $this + 776 | 0; + $11 = $this + 792 | 0; + $i$03 = 0; + do { + $12 = $3 + ($i$03 << 2) + 4 | 0; + $15 = (HEAP32[$9 >> 2] | 0) + (HEAP32[$12 >> 2] << 2) | 0; + HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + -1; + __ZN7Minisat10SimpSolver14updateElimHeapEi($this, HEAP32[$12 >> 2] >> 1); + $21 = HEAP32[$12 >> 2] >> 1; + HEAP32[$0 >> 2] = $21; + $23 = (HEAP32[$10 >> 2] | 0) + $21 | 0; + if (!(HEAP8[$23 >> 0] | 0)) { + HEAP8[$23 >> 0] = 1; + __ZN7Minisat3vecIiiE4pushERKi($11, $0); + } + $i$03 = $i$03 + 1 | 0; + } while (($i$03 | 0) < ((HEAP32[$3 >> 2] | 0) >>> 5 | 0)); + __ZN7Minisat6Solver12removeClauseEj($this, $cr); + STACKTOP = sp; + return; +} +function __ZN7Minisat3vecINS_5lboolEiE6growToEi($this, $size) { + $this = $this | 0; + $size = $size | 0; + var $0 = 0, $11 = 0, $13 = 0, $16 = 0, $17 = 0, $18 = 0, $23 = 0, $24 = 0, $27 = 0, $3 = 0, $4 = 0, $8 = 0, $i$01 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + if ((HEAP32[$0 >> 2] | 0) >= ($size | 0)) { + STACKTOP = sp; + return; + } + $3 = $this + 8 | 0; + $4 = HEAP32[$3 >> 2] | 0; + if (($4 | 0) < ($size | 0)) { + $8 = $size + 1 - $4 & -2; + $11 = ($4 >> 1) + 2 & -2; + $13 = ($8 | 0) > ($11 | 0) ? $8 : $11; + if (($13 | 0) > (2147483647 - $4 | 0)) { + $23 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($23 | 0, 48, 0); + } + $16 = HEAP32[$this >> 2] | 0; + $17 = $13 + $4 | 0; + HEAP32[$3 >> 2] = $17; + $18 = _realloc($16, $17) | 0; + HEAP32[$this >> 2] = $18; + if (!$18) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $23 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($23 | 0, 48, 0); + } + } + $24 = HEAP32[$0 >> 2] | 0; + if (($24 | 0) < ($size | 0)) { + $i$01 = $24; + do { + $27 = (HEAP32[$this >> 2] | 0) + $i$01 | 0; + if ($27) HEAP8[$27 >> 0] = 0; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) != ($size | 0)); + } + HEAP32[$0 >> 2] = $size; + STACKTOP = sp; + return; +} +function __ZN7Minisat9IntOption4helpEb($this, $verbose) { + $this = $this | 0; + $verbose = $verbose | 0; + var $0 = 0, $4 = 0, $6 = 0, $9 = 0, $vararg_buffer11 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer11 = sp; + $0 = HEAP32[_stderr >> 2] | 0; + $4 = HEAP32[$this + 16 >> 2] | 0; + HEAP32[$vararg_buffer11 >> 2] = HEAP32[$this + 4 >> 2]; + HEAP32[$vararg_buffer11 + 4 >> 2] = $4; + _fprintf($0 | 0, 336, $vararg_buffer11 | 0) | 0; + $6 = HEAP32[$this + 20 >> 2] | 0; + if (($6 | 0) == -2147483648) _fwrite(360, 4, 1, $0 | 0) | 0; else { + HEAP32[$vararg_buffer11 >> 2] = $6; + _fprintf($0 | 0, 368, $vararg_buffer11 | 0) | 0; + } + _fwrite(376, 4, 1, $0 | 0) | 0; + $9 = HEAP32[$this + 24 >> 2] | 0; + if (($9 | 0) == 2147483647) _fwrite(384, 4, 1, $0 | 0) | 0; else { + HEAP32[$vararg_buffer11 >> 2] = $9; + _fprintf($0 | 0, 368, $vararg_buffer11 | 0) | 0; + } + HEAP32[$vararg_buffer11 >> 2] = HEAP32[$this + 28 >> 2]; + _fprintf($0 | 0, 392, $vararg_buffer11 | 0) | 0; + if (!$verbose) { + STACKTOP = sp; + return; + } + HEAP32[$vararg_buffer11 >> 2] = HEAP32[$this + 8 >> 2]; + _fprintf($0 | 0, 88, $vararg_buffer11 | 0) | 0; + _fputc(10, $0 | 0) | 0; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver14garbageCollectEv($this) { + $this = $this | 0; + var $0 = 0, $13 = 0, $16 = 0, $17 = 0, $2 = 0, $4 = 0, $5 = 0, $to = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + $vararg_buffer = sp; + $to = sp + 8 | 0; + $0 = $this + 548 | 0; + $2 = $this + 556 | 0; + $4 = (HEAP32[$0 >> 2] | 0) - (HEAP32[$2 >> 2] | 0) | 0; + HEAP32[$to + 0 >> 2] = 0; + HEAP32[$to + 4 >> 2] = 0; + HEAP32[$to + 8 >> 2] = 0; + HEAP32[$to + 12 >> 2] = 0; + __ZN7Minisat15RegionAllocatorIjE8capacityEj($to, $4); + $5 = $to + 16 | 0; + HEAP8[$5 >> 0] = 0; + __ZN7Minisat6Solver8relocAllERNS_15ClauseAllocatorE($this, $to); + if ((HEAP32[$this + 44 >> 2] | 0) > 1) { + $13 = HEAP32[$to + 4 >> 2] << 2; + HEAP32[$vararg_buffer >> 2] = HEAP32[$0 >> 2] << 2; + HEAP32[$vararg_buffer + 4 >> 2] = $13; + _printf(1888, $vararg_buffer | 0) | 0; + } + HEAP8[$this + 560 >> 0] = HEAP8[$5 >> 0] | 0; + $16 = $this + 544 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if ($17) _free($17); + HEAP32[$16 >> 2] = HEAP32[$to >> 2]; + HEAP32[$0 >> 2] = HEAP32[$to + 4 >> 2]; + HEAP32[$this + 552 >> 2] = HEAP32[$to + 8 >> 2]; + HEAP32[$2 >> 2] = HEAP32[$to + 12 >> 2]; + STACKTOP = sp; + 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 $$1 = 0, $2 = 0, $info = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + $info = sp; + if (($this | 0) == ($thrown_type | 0)) { + $$1 = 1; + STACKTOP = sp; + return $$1 | 0; + } + if (!$thrown_type) { + $$1 = 0; + STACKTOP = sp; + return $$1 | 0; + } + $2 = ___dynamic_cast($thrown_type, 4504, 4560, 0) | 0; + if (!$2) { + $$1 = 0; + STACKTOP = sp; + return $$1 | 0; + } + dest = $info + 0 | 0; + stop = dest + 56 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$info >> 2] = $2; + HEAP32[$info + 8 >> 2] = $this; + HEAP32[$info + 12 >> 2] = -1; + HEAP32[$info + 48 >> 2] = 1; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$2 >> 2] | 0) + 28 >> 2] & 3]($2, $info, HEAP32[$adjustedPtr >> 2] | 0, 1); + if ((HEAP32[$info + 24 >> 2] | 0) != 1) { + $$1 = 0; + STACKTOP = sp; + return $$1 | 0; + } + HEAP32[$adjustedPtr >> 2] = HEAP32[$info + 16 >> 2]; + $$1 = 1; + STACKTOP = sp; + return $$1 | 0; +} +function ___shgetc($f) { + $f = $f | 0; + var $$0 = 0, $$pre = 0, $$pre3 = 0, $0 = 0, $1 = 0, $12 = 0, $19 = 0, $27 = 0, $32 = 0, $6 = 0, $9 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $f + 104 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) label = 3; else if ((HEAP32[$f + 108 >> 2] | 0) < ($1 | 0)) label = 3; + if ((label | 0) == 3) { + $6 = ___uflow($f) | 0; + if (($6 | 0) >= 0) { + $9 = HEAP32[$0 >> 2] | 0; + $$pre = HEAP32[$f + 8 >> 2] | 0; + if (!$9) label = 8; else { + $12 = HEAP32[$f + 4 >> 2] | 0; + $19 = $9 - (HEAP32[$f + 108 >> 2] | 0) + -1 | 0; + if (($$pre - $12 | 0) > ($19 | 0)) HEAP32[$f + 100 >> 2] = $12 + $19; else label = 8; + } + if ((label | 0) == 8) HEAP32[$f + 100 >> 2] = $$pre; + $$pre3 = HEAP32[$f + 4 >> 2] | 0; + if ($$pre) { + $27 = $f + 108 | 0; + HEAP32[$27 >> 2] = $$pre + 1 - $$pre3 + (HEAP32[$27 >> 2] | 0); + } + $32 = $$pre3 + -1 | 0; + if ((HEAPU8[$32 >> 0] | 0 | 0) == ($6 | 0)) { + $$0 = $6; + STACKTOP = sp; + return $$0 | 0; + } + HEAP8[$32 >> 0] = $6; + $$0 = $6; + STACKTOP = sp; + return $$0 | 0; + } + } + HEAP32[$f + 100 >> 2] = 0; + $$0 = -1; + STACKTOP = sp; + return $$0 | 0; +} +function __ZN7Minisat3vecINS_3LitEiE4pushERKS1_($this, $elem) { + $this = $this | 0; + $elem = $elem | 0; + var $0 = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $3 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($1 | 0) == ($3 | 0) & ($3 | 0) < ($1 + 1 | 0)) { + $9 = ($1 >> 1) + 2 & -2; + $11 = ($9 | 0) < 2 ? 2 : $9; + if (($11 | 0) > (2147483647 - $1 | 0)) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } + $14 = HEAP32[$this >> 2] | 0; + $15 = $11 + $1 | 0; + HEAP32[$2 >> 2] = $15; + $17 = _realloc($14, $15 << 2) | 0; + HEAP32[$this >> 2] = $17; + if (!$17) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } else $26 = $17; else $26 = $17; + } else $26 = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $23 + 1; + $25 = $26 + ($23 << 2) | 0; + if (!$25) { + STACKTOP = sp; + return; + } + HEAP32[$25 >> 2] = HEAP32[$elem >> 2]; + STACKTOP = sp; + return; +} +function __ZN7Minisat3vecIjiE4pushERKj($this, $elem) { + $this = $this | 0; + $elem = $elem | 0; + var $0 = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $3 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($1 | 0) == ($3 | 0) & ($3 | 0) < ($1 + 1 | 0)) { + $9 = ($1 >> 1) + 2 & -2; + $11 = ($9 | 0) < 2 ? 2 : $9; + if (($11 | 0) > (2147483647 - $1 | 0)) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } + $14 = HEAP32[$this >> 2] | 0; + $15 = $11 + $1 | 0; + HEAP32[$2 >> 2] = $15; + $17 = _realloc($14, $15 << 2) | 0; + HEAP32[$this >> 2] = $17; + if (!$17) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } else $26 = $17; else $26 = $17; + } else $26 = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $23 + 1; + $25 = $26 + ($23 << 2) | 0; + if (!$25) { + STACKTOP = sp; + return; + } + HEAP32[$25 >> 2] = HEAP32[$elem >> 2]; + STACKTOP = sp; + return; +} +function __ZN7Minisat3vecIiiE4pushERKi($this, $elem) { + $this = $this | 0; + $elem = $elem | 0; + var $0 = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $3 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($1 | 0) == ($3 | 0) & ($3 | 0) < ($1 + 1 | 0)) { + $9 = ($1 >> 1) + 2 & -2; + $11 = ($9 | 0) < 2 ? 2 : $9; + if (($11 | 0) > (2147483647 - $1 | 0)) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } + $14 = HEAP32[$this >> 2] | 0; + $15 = $11 + $1 | 0; + HEAP32[$2 >> 2] = $15; + $17 = _realloc($14, $15 << 2) | 0; + HEAP32[$this >> 2] = $17; + if (!$17) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) { + $22 = ___cxa_allocate_exception(1) | 0; + ___cxa_throw($22 | 0, 48, 0); + } else $26 = $17; else $26 = $17; + } else $26 = HEAP32[$this >> 2] | 0; + $23 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $23 + 1; + $25 = $26 + ($23 << 2) | 0; + if (!$25) { + STACKTOP = sp; + return; + } + HEAP32[$25 >> 2] = HEAP32[$elem >> 2]; + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver12removeClauseEj($this, $cr) { + $this = $this | 0; + $cr = $cr | 0; + var $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $2 = 0, $27 = 0, $28 = 0, $38 = 0, $4 = 0, $45 = 0, $5 = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 544 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 + ($cr << 2) | 0; + __ZN7Minisat6Solver12detachClauseEjb($this, $cr, 0); + $4 = HEAP32[$1 + ($cr + 1 << 2) >> 2] | 0; + $5 = $4 >> 1; + $12 = (HEAPU8[(HEAP32[$this + 332 >> 2] | 0) + $5 >> 0] | 0) ^ $4 & 1; + $14 = HEAP8[528] | 0; + $15 = $14 & 255; + if (($12 & 255) << 24 >> 24 == $14 << 24 >> 24 & ($15 >>> 1 ^ 1) | $15 & 2 & $12) { + $27 = (HEAP32[$this + 396 >> 2] | 0) + ($5 << 3) | 0; + $28 = HEAP32[$27 >> 2] | 0; + if (($28 | 0) != -1) if (((HEAP32[$0 >> 2] | 0) + ($28 << 2) | 0) == ($2 | 0)) HEAP32[$27 >> 2] = -1; + } + HEAP32[$2 >> 2] = HEAP32[$2 >> 2] & -4 | 1; + $38 = HEAP32[(HEAP32[$0 >> 2] | 0) + ($cr << 2) >> 2] | 0; + $45 = $this + 556 | 0; + HEAP32[$45 >> 2] = (((($38 >>> 3 & 1) + ($38 >>> 5) << 2) + 4 | 0) >>> 2) + (HEAP32[$45 >> 2] | 0); + STACKTOP = sp; + return; +} +function __ZN7Minisat10BoolOption4helpEb($this, $verbose) { + $this = $this | 0; + $verbose = $verbose | 0; + var $0 = 0, $1 = 0, $2 = 0, $7 = 0, $i$0 = 0, $vararg_buffer5 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $vararg_buffer5 = sp; + $0 = HEAP32[_stderr >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$vararg_buffer5 >> 2] = $2; + HEAP32[$vararg_buffer5 + 4 >> 2] = $2; + _fprintf($0 | 0, 216, $vararg_buffer5 | 0) | 0; + $i$0 = 0; + while (1) { + $7 = $i$0 >>> 0 < (32 - ((_strlen(HEAP32[$1 >> 2] | 0) | 0) << 1) | 0) >>> 0; + _fputc(32, $0 | 0) | 0; + if ($7) $i$0 = $i$0 + 1 | 0; else break; + } + HEAP32[$vararg_buffer5 >> 2] = (HEAP8[$this + 20 >> 0] | 0) != 0 ? 248 : 256; + _fprintf($0 | 0, 232, $vararg_buffer5 | 0) | 0; + if (!$verbose) { + STACKTOP = sp; + return; + } + HEAP32[$vararg_buffer5 >> 2] = HEAP32[$this + 8 >> 2]; + _fprintf($0 | 0, 88, $vararg_buffer5 | 0) | 0; + _fputc(10, $0 | 0) | 0; + STACKTOP = sp; + return; +} +function _scalbn($x, $n) { + $x = +$x; + $n = $n | 0; + var $$0 = 0, $1 = 0.0, $12 = 0, $15 = 0, $16 = 0, $18 = 0.0, $2 = 0, $5 = 0, $8 = 0.0, $9 = 0, $y$0 = 0.0, sp = 0; + sp = STACKTOP; + if (($n | 0) > 1023) { + $1 = $x * 8.98846567431158e+307; + $2 = $n + -1023 | 0; + if (($2 | 0) > 1023) { + $5 = $n + -2046 | 0; + $$0 = ($5 | 0) > 1023 ? 1023 : $5; + $y$0 = $1 * 8.98846567431158e+307; + } else { + $$0 = $2; + $y$0 = $1; + } + } else if (($n | 0) < -1022) { + $8 = $x * 2.2250738585072014e-308; + $9 = $n + 1022 | 0; + if (($9 | 0) < -1022) { + $12 = $n + 2044 | 0; + $$0 = ($12 | 0) < -1022 ? -1022 : $12; + $y$0 = $8 * 2.2250738585072014e-308; + } else { + $$0 = $9; + $y$0 = $8; + } + } else { + $$0 = $n; + $y$0 = $x; + } + $15 = _bitshift64Shl($$0 + 1023 | 0, 0, 52) | 0; + $16 = tempRet0; + HEAP32[tempDoublePtr >> 2] = $15; + HEAP32[tempDoublePtr + 4 >> 2] = $16; + $18 = $y$0 * +HEAPF64[tempDoublePtr >> 3]; + STACKTOP = sp; + return +$18; +} +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, $10$0 = 0, $10$1 = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 8 | 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, $1$1 ^ $a$1, $1$0, $1$1) | 0; + $4$1 = tempRet0; + ___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, $rem) | 0; + $10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0, HEAP32[$rem + 4 >> 2] ^ $1$1, $1$0, $1$1) | 0; + $10$1 = tempRet0; + STACKTOP = __stackBase__; + return (tempRet0 = $10$1, $10$0) | 0; +} +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, $6 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + $0 = $info + 16 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) { + HEAP32[$0 >> 2] = $adjustedPtr; + HEAP32[$info + 24 >> 2] = $path_below; + HEAP32[$info + 36 >> 2] = 1; + STACKTOP = sp; + return; + } + if (($1 | 0) != ($adjustedPtr | 0)) { + $9 = $info + 36 | 0; + HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 1; + HEAP32[$info + 24 >> 2] = 2; + HEAP8[$info + 54 >> 0] = 1; + STACKTOP = sp; + return; + } + $6 = $info + 24 | 0; + if ((HEAP32[$6 >> 2] | 0) != 2) { + STACKTOP = sp; + return; + } + HEAP32[$6 >> 2] = $path_below; + STACKTOP = sp; + return; +} +function __ZNK7Minisat6Solver9satisfiedERKNS_6ClauseE($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $$0 = 0, $0 = 0, $13 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $8 = 0, $i$05 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$c >> 2] | 0; + if ($0 >>> 0 <= 31) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $3 = HEAP32[$this + 332 >> 2] | 0; + $4 = HEAP8[528] | 0; + $5 = $4 & 255; + $6 = $5 & 2; + $8 = $5 >>> 1 ^ 1; + $i$05 = 0; + while (1) { + $13 = HEAP32[$c + ($i$05 << 2) + 4 >> 2] | 0; + $19 = (HEAPU8[$3 + ($13 >> 1) >> 0] | 0) ^ $13 & 1; + $i$05 = $i$05 + 1 | 0; + if (($19 & 255) << 24 >> 24 == $4 << 24 >> 24 & $8 | $6 & $19) { + $$0 = 1; + label = 5; + break; + } + if (($i$05 | 0) >= ($0 >>> 5 | 0)) { + $$0 = 0; + label = 5; + break; + } + } + if ((label | 0) == 5) { + STACKTOP = sp; + return $$0 | 0; + } + return 0; +} +function __ZN7Minisat15RegionAllocatorIjE8capacityEj($this, $min_cap) { + $this = $this | 0; + $min_cap = $min_cap | 0; + var $0 = 0, $1 = 0, $10 = 0, $15 = 0, $4 = 0, label = 0, sp = 0; + sp = STACKTOP; + $0 = $this + 8 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1 >>> 0 < $min_cap >>> 0) $4 = $1; else { + STACKTOP = sp; + return; + } + while (1) { + if ($4 >>> 0 >= $min_cap >>> 0) break; + $10 = (($4 >>> 3) + 2 + ($4 >>> 1) & -2) + $4 | 0; + HEAP32[$0 >> 2] = $10; + if ($10 >>> 0 > $1 >>> 0) $4 = $10; else { + label = 4; + break; + } + } + if ((label | 0) == 4) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + $15 = _realloc(HEAP32[$this >> 2] | 0, $4 << 2) | 0; + if (!$15) if ((HEAP32[(___errno_location() | 0) >> 2] | 0) == 12) ___cxa_throw(___cxa_allocate_exception(1) | 0, 48, 0); + HEAP32[$this >> 2] = $15; + STACKTOP = sp; + return; +} +function __ZN7Minisat10BoolOption5parseEPKc($this, $str) { + $this = $this | 0; + $str = $str | 0; + var $$0 = 0, $$0$i4 = 0, $11 = 0, $14 = 0, $2 = 0, $4 = 0, $7 = 0, $9 = 0, $i$02$i1 = 0, sp = 0; + sp = STACKTOP; + if ((HEAP8[$str >> 0] | 0) != 45) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + $2 = $str + 1 | 0; + $11 = 110; + $9 = $2; + $i$02$i1 = 0; + while (1) { + $4 = $i$02$i1 + 1 | 0; + if ((HEAP8[$9 >> 0] | 0) != $11 << 24 >> 24) { + $$0$i4 = 1; + $14 = $2; + break; + } + $7 = $str + ($i$02$i1 + 2) | 0; + if (($4 | 0) == 3) { + $$0$i4 = 0; + $14 = $7; + break; + } else { + $11 = HEAP8[264 + $4 >> 0] | 0; + $9 = $7; + $i$02$i1 = $4; + } + } + if (_strcmp($14, HEAP32[$this + 4 >> 2] | 0) | 0) { + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + HEAP8[$this + 20 >> 0] = $$0$i4; + $$0 = 1; + STACKTOP = sp; + return $$0 | 0; +} +function _realloc($oldmem, $bytes) { + $oldmem = $oldmem | 0; + $bytes = $bytes | 0; + var $12 = 0, $15 = 0, $20 = 0, $8 = 0, $9 = 0, $mem$0 = 0, sp = 0; + sp = STACKTOP; + do if (!$oldmem) $mem$0 = _malloc($bytes) | 0; else { + if ($bytes >>> 0 > 4294967231) { + HEAP32[(___errno_location() | 0) >> 2] = 12; + $mem$0 = 0; + break; + } + if ($bytes >>> 0 < 11) $8 = 16; else $8 = $bytes + 11 & -8; + $9 = _try_realloc_chunk($oldmem + -8 | 0, $8) | 0; + if ($9) { + $mem$0 = $9 + 8 | 0; + break; + } + $12 = _malloc($bytes) | 0; + if (!$12) $mem$0 = 0; else { + $15 = HEAP32[$oldmem + -4 >> 2] | 0; + $20 = ($15 & -8) - (($15 & 3 | 0) == 0 ? 8 : 4) | 0; + _memcpy($12 | 0, $oldmem | 0, ($20 >>> 0 < $bytes >>> 0 ? $20 : $bytes) | 0) | 0; + _free($oldmem); + $mem$0 = $12; + } + } while (0); + STACKTOP = sp; + return $mem$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 $4 = 0, sp = 0; + sp = STACKTOP; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); + STACKTOP = sp; + return; + } else { + $4 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 20 >> 2] & 3]($4, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); + STACKTOP = sp; + return; + } +} +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, $7$0 = 0, $7$1 = 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, $1$1 ^ $a$1, $1$0, $1$1) | 0; + $4$1 = tempRet0; + $7$0 = $2$0 ^ $1$0; + $7$1 = $2$1 ^ $1$1; + $10$0 = _i64Subtract((___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, 0) | 0) ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0; + return $10$0 | 0; +} +function _strtod($s, $p) { + $s = $s | 0; + $p = $p | 0; + var $0 = 0, $1 = 0, $12 = 0, $16 = 0, $4 = 0.0, $f$i = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + $f$i = sp; + dest = $f$i + 0 | 0; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $0 = $f$i + 4 | 0; + HEAP32[$0 >> 2] = $s; + $1 = $f$i + 8 | 0; + HEAP32[$1 >> 2] = -1; + HEAP32[$f$i + 44 >> 2] = $s; + HEAP32[$f$i + 76 >> 2] = -1; + ___shlim($f$i, 0); + $4 = +___floatscan($f$i, 1, 1); + $12 = (HEAP32[$0 >> 2] | 0) - (HEAP32[$1 >> 2] | 0) + (HEAP32[$f$i + 108 >> 2] | 0) | 0; + if (!$p) { + STACKTOP = sp; + return +$4; + } + if (!$12) $16 = $s; else $16 = $s + $12 | 0; + HEAP32[$p >> 2] = $16; + STACKTOP = sp; + return +$4; +} +function ___toread($f) { + $f = $f | 0; + var $$0 = 0, $0 = 0, $15 = 0, $2 = 0, $21 = 0, $6 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + $0 = $f + 74 | 0; + $2 = HEAP8[$0 >> 0] | 0; + HEAP8[$0 >> 0] = $2 + 255 | $2; + $6 = $f + 20 | 0; + $8 = $f + 44 | 0; + if ((HEAP32[$6 >> 2] | 0) >>> 0 > (HEAP32[$8 >> 2] | 0) >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 1]($f, 0, 0) | 0; + HEAP32[$f + 16 >> 2] = 0; + HEAP32[$f + 28 >> 2] = 0; + HEAP32[$6 >> 2] = 0; + $15 = HEAP32[$f >> 2] | 0; + if (!($15 & 20)) { + $21 = HEAP32[$8 >> 2] | 0; + HEAP32[$f + 8 >> 2] = $21; + HEAP32[$f + 4 >> 2] = $21; + $$0 = 0; + STACKTOP = sp; + return $$0 | 0; + } + if (!($15 & 4)) { + $$0 = -1; + STACKTOP = sp; + return $$0 | 0; + } + HEAP32[$f >> 2] = $15 | 32; + $$0 = -1; + STACKTOP = sp; + return $$0 | 0; +} +function __Znwj($size) { + $size = $size | 0; + var $$lcssa = 0, $$size = 0, $1 = 0, $3 = 0, $5 = 0, $7 = 0, label = 0, sp = 0; + sp = STACKTOP; + $$size = ($size | 0) == 0 ? 1 : $size; + $1 = _malloc($$size) | 0; + if ($1) { + $$lcssa = $1; + STACKTOP = sp; + return $$lcssa | 0; + } + while (1) { + $3 = __ZSt15get_new_handlerv() | 0; + if (!$3) { + label = 4; + break; + } + FUNCTION_TABLE_v[$3 & 3](); + $5 = _malloc($$size) | 0; + if ($5) { + $$lcssa = $5; + label = 5; + break; + } + } + if ((label | 0) == 4) { + $7 = ___cxa_allocate_exception(4) | 0; + HEAP32[$7 >> 2] = 4248; + ___cxa_throw($7 | 0, 4296, 15); + } else if ((label | 0) == 5) { + STACKTOP = sp; + return $$lcssa | 0; + } + return 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) 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]; + 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 __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 $4 = 0, sp = 0; + sp = STACKTOP; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); + STACKTOP = sp; + return; + } else { + $4 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 3]($4, $info, $adjustedPtr, $path_below); + STACKTOP = sp; + return; + } +} +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) { + value = value & 255; + 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)) { + 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 _strtol($s, $p, $base) { + $s = $s | 0; + $p = $p | 0; + $base = $base | 0; + var $0 = 0, $7 = 0, $f$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + $f$i = sp; + HEAP32[$f$i >> 2] = 0; + $0 = $f$i + 4 | 0; + HEAP32[$0 >> 2] = $s; + HEAP32[$f$i + 44 >> 2] = $s; + if (($s | 0) < 0) HEAP32[$f$i + 8 >> 2] = -1; else HEAP32[$f$i + 8 >> 2] = $s + 2147483647; + HEAP32[$f$i + 76 >> 2] = -1; + ___shlim($f$i, 0); + $7 = ___intscan($f$i, $base, 1, -2147483648, 0) | 0; + if (!$p) { + STACKTOP = sp; + return $7 | 0; + } + HEAP32[$p >> 2] = $s + ((HEAP32[$0 >> 2] | 0) + (HEAP32[$f$i + 108 >> 2] | 0) - (HEAP32[$f$i + 8 >> 2] | 0)); + STACKTOP = sp; + return $7 | 0; +} +function _strcmp($l, $r) { + $l = $l | 0; + $r = $r | 0; + var $$014 = 0, $$05 = 0, $$lcssa = 0, $$lcssa2 = 0, $0 = 0, $1 = 0, $6 = 0, $7 = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP8[$l >> 0] | 0; + $1 = HEAP8[$r >> 0] | 0; + if ($0 << 24 >> 24 == 0 ? 1 : $0 << 24 >> 24 != $1 << 24 >> 24) { + $$lcssa = $0; + $$lcssa2 = $1; + } else { + $$014 = $l; + $$05 = $r; + do { + $$014 = $$014 + 1 | 0; + $$05 = $$05 + 1 | 0; + $6 = HEAP8[$$014 >> 0] | 0; + $7 = HEAP8[$$05 >> 0] | 0; + } while (!($6 << 24 >> 24 == 0 ? 1 : $6 << 24 >> 24 != $7 << 24 >> 24)); + $$lcssa = $6; + $$lcssa2 = $7; + } + STACKTOP = sp; + return ($$lcssa & 255) - ($$lcssa2 & 255) | 0; +} +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 sp = 0; + sp = STACKTOP; + if ((HEAP32[$info + 8 >> 2] | 0) != ($this | 0)) { + STACKTOP = sp; + return; + } + __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); + STACKTOP = sp; + return; +} +function __ZN7Minisat6Solver16uncheckedEnqueueENS_3LitEj($this, $p, $from) { + $this = $this | 0; + $p = $p | 0; + $from = $from | 0; + var $0 = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $19 = 0; + $0 = HEAP32[$p >> 2] | 0; + $1 = $0 >> 1; + HEAP8[(HEAP32[$this + 332 >> 2] | 0) + $1 >> 0] = ($0 & 1 ^ 1) & 255 ^ 1; + $13 = HEAP32[$this + 296 >> 2] | 0; + $14 = (HEAP32[$this + 396 >> 2] | 0) + ($1 << 3) | 0; + HEAP32[$14 >> 2] = $from; + HEAP32[$14 + 4 >> 2] = $13; + $18 = $this + 284 | 0; + $19 = HEAP32[$18 >> 2] | 0; + HEAP32[$18 >> 2] = $19 + 1; + HEAP32[(HEAP32[$this + 280 >> 2] | 0) + ($19 << 2) >> 2] = $0; + return; +} +function ___cxa_can_catch($catchType, $excpType, $thrown) { + $catchType = $catchType | 0; + $excpType = $excpType | 0; + $thrown = $thrown | 0; + var $4 = 0, $5 = 0, $temp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $temp = sp; + HEAP32[$temp >> 2] = HEAP32[$thrown >> 2]; + $4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$catchType >> 2] | 0) + 16 >> 2] & 1]($catchType, $excpType, $temp) | 0; + $5 = $4 & 1; + if (!$4) { + STACKTOP = sp; + return $5 | 0; + } + HEAP32[$thrown >> 2] = HEAP32[$temp >> 2]; + STACKTOP = sp; + return $5 | 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; + $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; + return (tempRet0 = (Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0) + (Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $1$1 | $1$1 & 0, $1$0 | 0 | 0) | 0; +} +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 sp = 0; + sp = STACKTOP; + if ((HEAP32[$info + 8 >> 2] | 0) != ($this | 0)) { + STACKTOP = sp; + return; + } + __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); + STACKTOP = sp; + return; +} +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 ___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) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, $8 + $12 << 16 | $3 & 65535 | 0) | 0; +} +function ___shlim($f, $lim) { + $f = $f | 0; + $lim = $lim | 0; + var $2 = 0, $4 = 0, $7 = 0, sp = 0; + sp = STACKTOP; + HEAP32[$f + 104 >> 2] = $lim; + $2 = HEAP32[$f + 8 >> 2] | 0; + $4 = HEAP32[$f + 4 >> 2] | 0; + $7 = $2 - $4 | 0; + HEAP32[$f + 108 >> 2] = $7; + if (($lim | 0) != 0 & ($7 | 0) > ($lim | 0)) { + HEAP32[$f + 100 >> 2] = $4 + $lim; + STACKTOP = sp; + return; + } else { + HEAP32[$f + 100 >> 2] = $2; + STACKTOP = sp; + return; + } +} +function _solve() { + var $0 = 0, $1 = 0, $2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $0 = sp; + $1 = HEAP32[962] | 0; + $2 = $1 + 664 | 0; + HEAP32[$2 + 0 >> 2] = -1; + HEAP32[$2 + 4 >> 2] = -1; + HEAP32[$2 + 8 >> 2] = -1; + HEAP32[$2 + 12 >> 2] = -1; + if (HEAP32[$1 + 304 >> 2] | 0) HEAP32[$1 + 308 >> 2] = 0; + __ZN7Minisat10SimpSolver6solve_Ebb($0, $1, 1, 0); + STACKTOP = sp; + return (HEAP8[$0 >> 0] | 0) == 0 | 0; +} +function __ZSt9terminatev() { + var $0 = 0, $17 = 0, $2 = 0, $5 = 0; + $0 = ___cxa_get_globals_fast() | 0; + if ($0) { + $2 = HEAP32[$0 >> 2] | 0; + if ($2) { + $5 = $2 + 48 | 0; + if ((HEAP32[$5 >> 2] & -256 | 0) == 1126902528 ? (HEAP32[$5 + 4 >> 2] | 0) == 1129074247 : 0) __ZSt11__terminatePFvvE(HEAP32[$2 + 12 >> 2] | 0); + } + } + $17 = HEAP32[968] | 0; + HEAP32[968] = $17 + 0; + __ZSt11__terminatePFvvE($17); +} +function ___uflow($f) { + $f = $f | 0; + var $$0 = 0, $c = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $c = sp; + if (!(HEAP32[$f + 8 >> 2] | 0)) if (!(___toread($f) | 0)) label = 3; else $$0 = -1; else label = 3; + if ((label | 0) == 3) if ((FUNCTION_TABLE_iiii[HEAP32[$f + 32 >> 2] & 1]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1; + STACKTOP = sp; + return $$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 + 8 | 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 _llvm_cttz_i32(x) { + x = x | 0; + var ret = 0; + ret = HEAP8[cttz_i8 + (x & 255) >> 0] | 0; + if ((ret | 0) < 8) return ret | 0; + ret = HEAP8[cttz_i8 + (x >> 8 & 255) >> 0] | 0; + if ((ret | 0) < 8) return ret + 8 | 0; + ret = HEAP8[cttz_i8 + (x >> 16 & 255) >> 0] | 0; + if ((ret | 0) < 8) return ret + 16 | 0; + return (HEAP8[cttz_i8 + (x >>> 24) >> 0] | 0) + 24 | 0; +} +function _llvm_ctlz_i32(x) { + x = x | 0; + var ret = 0; + ret = HEAP8[ctlz_i8 + (x >>> 24) >> 0] | 0; + if ((ret | 0) < 8) return ret | 0; + ret = HEAP8[ctlz_i8 + (x >> 16 & 255) >> 0] | 0; + if ((ret | 0) < 8) return ret + 8 | 0; + ret = HEAP8[ctlz_i8 + (x >> 8 & 255) >> 0] | 0; + if ((ret | 0) < 8) return ret + 16 | 0; + return (HEAP8[ctlz_i8 + (x & 255) >> 0] | 0) + 24 | 0; +} +function _abort_message($format, $varargs) { + $format = $format | 0; + $varargs = $varargs | 0; + var $0 = 0, $list = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $list = sp; + HEAP32[$list >> 2] = $varargs; + $0 = HEAP32[_stderr >> 2] | 0; + _vfprintf($0 | 0, $format | 0, $list | 0) | 0; + _fputc(10, $0 | 0) | 0; + _abort(); +} +function __ZN7Minisat3vecIPNS_6OptionEiED1Ev($this) { + $this = $this | 0; + var $0 = 0, sp = 0; + sp = STACKTOP; + $0 = HEAP32[$this >> 2] | 0; + if (!$0) { + STACKTOP = sp; + return; + } + HEAP32[$this + 4 >> 2] = 0; + _free($0); + HEAP32[$this >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + STACKTOP = sp; + return; +} +function _bitshift64Ashr(low, high, bits) { + low = low | 0; + high = high | 0; + bits = bits | 0; + if ((bits | 0) < 32) { + tempRet0 = high >> bits; + return low >>> bits | (high & (1 << bits) - 1) << 32 - bits; + } + tempRet0 = (high | 0) < 0 ? -1 : 0; + return high >> bits - 32 | 0; +} +function ___cxa_get_globals_fast() { + var $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if (!(_pthread_once(4064, 3) | 0)) { + $3 = _pthread_getspecific(HEAP32[1014] | 0) | 0; + STACKTOP = sp; + return $3 | 0; + } else _abort_message(4072, sp); + return 0; +} +function _bitshift64Shl(low, high, bits) { + low = low | 0; + high = high | 0; + bits = bits | 0; + if ((bits | 0) < 32) { + tempRet0 = high << bits | (low & (1 << bits) - 1 << 32 - bits) >>> 32 - bits; + return low << bits; + } + tempRet0 = low << bits - 32; + return 0; +} +function __ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv($p) { + $p = $p | 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + _free($p); + if (!(_pthread_setspecific(HEAP32[1014] | 0, 0) | 0)) { + STACKTOP = sp; + return; + } else _abort_message(4184, sp); +} +function _bitshift64Lshr(low, high, bits) { + low = low | 0; + high = high | 0; + bits = bits | 0; + if ((bits | 0) < 32) { + tempRet0 = high >>> bits; + return low >>> bits | (high & (1 << bits) - 1) << 32 - bits; + } + tempRet0 = 0; + return high >>> bits - 32 | 0; +} +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 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 & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0); +} +function runPostSets() {} +function _i64Subtract(a, b, c, d) { + a = a | 0; + b = b | 0; + c = c | 0; + d = d | 0; + var h = 0; + h = b - d >>> 0; + h = b - d - (c >>> 0 > a >>> 0 | 0) >>> 0; + return (tempRet0 = h, a - c >>> 0 | 0) | 0; +} +function __ZN10__cxxabiv112_GLOBAL__N_110construct_Ev() { + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if (!(_pthread_key_create(4056, 23) | 0)) { + STACKTOP = sp; + return; + } else _abort_message(4128, sp); +} +function _createTheSolver() { + var $0 = 0, sp = 0; + sp = STACKTOP; + $0 = __Znwj(936) | 0; + __ZN7Minisat10SimpSolverC2Ev($0); + HEAP32[962] = $0; + __ZN7Minisat10SimpSolver9eliminateEb($0, 1) | 0; + STACKTOP = sp; + return; +} +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 & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0); +} +function ___cxa_is_pointer_type($type) { + $type = $type | 0; + var $3 = 0, sp = 0; + sp = STACKTOP; + if (!$type) $3 = 0; else $3 = (___dynamic_cast($type, 4504, 4672, 0) | 0) != 0; + STACKTOP = sp; + return $3 & 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 _unyo($s) { + $s = $s | 0; + var sp = 0; + sp = STACKTOP; + if (!$s) { + STACKTOP = sp; + return; + } + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$s >> 2] | 0) + 4 >> 2] & 31]($s); + STACKTOP = sp; + return; +} +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 & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0); +} +function __ZSt11__terminatePFvvE($func) { + $func = $func | 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + FUNCTION_TABLE_v[$func & 3](); + _abort_message(4312, sp); +} +function _i64Add(a, b, c, d) { + a = a | 0; + b = b | 0; + c = c | 0; + d = d | 0; + var l = 0; + l = a + c >>> 0; + return (tempRet0 = b + d + (l >>> 0 < a >>> 0 | 0) >>> 0, l | 0) | 0; +} +function __ZN7Minisat10SimpSolverD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZN7Minisat10SimpSolverD2Ev($this); + __ZdlPv($this); + STACKTOP = sp; + return; +} +function dynCall_iiii(index, a1, a2, a3) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + return FUNCTION_TABLE_iiii[index & 1](a1 | 0, a2 | 0, a3 | 0) | 0; +} +function __ZN7Minisat6SolverD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZN7Minisat6SolverD2Ev($this); + __ZdlPv($this); + STACKTOP = sp; + return; +} +function _yo() { + var $0 = 0, sp = 0; + sp = STACKTOP; + _puts(3864) | 0; + $0 = __Znwj(936) | 0; + __ZN7Minisat10SimpSolverC2Ev($0); + STACKTOP = sp; + return $0 | 0; +} +function stackAlloc(size) { + size = size | 0; + var ret = 0; + ret = STACKTOP; + STACKTOP = STACKTOP + size | 0; + STACKTOP = STACKTOP + 15 & -16; + return ret | 0; +} +function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function __ZN10__cxxabiv117__class_type_infoD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function dynCall_iii(index, a1, a2) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + return FUNCTION_TABLE_iii[index & 3](a1 | 0, a2 | 0) | 0; +} +function _scalbnl($x, $n) { + $x = +$x; + $n = $n | 0; + var $0 = 0.0, sp = 0; + sp = STACKTOP; + $0 = +_scalbn($x, $n); + STACKTOP = sp; + return +$0; +} +function _strlen(ptr) { + ptr = ptr | 0; + var curr = 0; + curr = ptr; + while (HEAP8[curr >> 0] | 0) curr = curr + 1 | 0; + return curr - ptr | 0; +} +function __ZN7Minisat12DoubleOptionD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function setThrew(threw, value) { + threw = threw | 0; + value = value | 0; + if (!__THREW__) { + __THREW__ = threw; + threwValue = value; + } +} +function __ZN7Minisat10BoolOptionD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function __ZN7Minisat9IntOptionD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function _isspace($c) { + $c = $c | 0; + var $4 = 0; + if (($c | 0) == 32) $4 = 1; else $4 = ($c + -9 | 0) >>> 0 < 5; + return $4 & 1 | 0; +} +function dynCall_vii(index, a1, a2) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + FUNCTION_TABLE_vii[index & 3](a1 | 0, a2 | 0); +} +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; + abort(6); +} +function __ZN7Minisat6OptionD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function __ZNSt9bad_allocD0Ev($this) { + $this = $this | 0; + var sp = 0; + sp = STACKTOP; + __ZdlPv($this); + STACKTOP = sp; + return; +} +function dynCall_ii(index, a1) { + index = index | 0; + a1 = a1 | 0; + return FUNCTION_TABLE_ii[index & 1](a1 | 0) | 0; +} +function b1(p0, p1, p2, p3, p4) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + abort(1); +} +function __ZSt15get_new_handlerv() { + var $0 = 0; + $0 = HEAP32[1102] | 0; + HEAP32[1102] = $0 + 0; + return $0 | 0; +} +function __ZdlPv($ptr) { + $ptr = $ptr | 0; + var sp = 0; + sp = STACKTOP; + _free($ptr); + STACKTOP = sp; + return; +} +function dynCall_vi(index, a1) { + index = index | 0; + a1 = a1 | 0; + FUNCTION_TABLE_vi[index & 31](a1 | 0); +} +function ___clang_call_terminate($0) { + $0 = $0 | 0; + ___cxa_begin_catch($0 | 0) | 0; + __ZSt9terminatev(); +} +function b8(p0, p1, p2, p3) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + abort(8); +} +function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($this) { + $this = $this | 0; + return; +} +function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($this) { + $this = $this | 0; + return; +} +function b0(p0, p1, p2) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + abort(0); + return 0; +} +function __ZN10__cxxabiv116__shim_type_infoD2Ev($this) { + $this = $this | 0; + return; +} +function dynCall_v(index) { + index = index | 0; + FUNCTION_TABLE_v[index & 3](); +} +function __ZN7Minisat12DoubleOptionD1Ev($this) { + $this = $this | 0; + return; +} +function __ZNKSt9bad_alloc4whatEv($this) { + $this = $this | 0; + return 4264; +} +function __ZN7Minisat10BoolOptionD1Ev($this) { + $this = $this | 0; + return; +} +function __ZN7Minisat9IntOptionD1Ev($this) { + $this = $this | 0; + return; +} +function b7(p0, p1) { + p0 = p0 | 0; + p1 = p1 | 0; + abort(7); + return 0; +} +function __ZN7Minisat6OptionD1Ev($this) { + $this = $this | 0; + return; +} +function setTempRet0(value) { + value = value | 0; + tempRet0 = value; +} +function __ZNSt9type_infoD2Ev($this) { + $this = $this | 0; + return; +} +function __ZNSt9exceptionD2Ev($this) { + $this = $this | 0; + return; +} +function __ZNSt9bad_allocD2Ev($this) { + $this = $this | 0; + return; +} +function ___cxa_pure_virtual__wrapper() { + ___cxa_pure_virtual(); +} +function stackRestore(top) { + top = top | 0; + STACKTOP = top; +} +function b3(p0, p1) { + p0 = p0 | 0; + p1 = p1 | 0; + abort(3); +} +function b4(p0) { + p0 = p0 | 0; + abort(4); + return 0; +} +function getTempRet0() { + return tempRet0 | 0; +} +function stackSave() { + return STACKTOP | 0; +} +function b2(p0) { + p0 = p0 | 0; + abort(2); +} +function b5() { + abort(5); +} + +// EMSCRIPTEN_END_FUNCS +// (start of meteor/midamble.js) +// This "midamble" is hacked into the output JS in a place +// where it has access to the inner function generated +// by Emscripten, the one that starts with "use asm". +// NOTE: This doesn't work with minification on! +setInnerMalloc = function (hookedMalloc) { + _malloc = hookedMalloc; +}; +setInnerFree = function (hookedFree) { + _free = hookedFree; +}; +// (end of meteor/midamble.js) + var FUNCTION_TABLE_iiii = [b0,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv]; + var FUNCTION_TABLE_viiiii = [b1,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b1]; + var FUNCTION_TABLE_vi = [b2,__ZN7Minisat6OptionD1Ev,__ZN7Minisat6OptionD0Ev,__ZN7Minisat10BoolOptionD1Ev,__ZN7Minisat10BoolOptionD0Ev,__ZN7Minisat9IntOptionD1Ev,__ZN7Minisat9IntOptionD0Ev,__ZN7Minisat6SolverD2Ev,__ZN7Minisat6SolverD0Ev,__ZN7Minisat6Solver14garbageCollectEv,__ZN7Minisat12DoubleOptionD1Ev,__ZN7Minisat12DoubleOptionD0Ev,__ZN7Minisat10SimpSolverD2Ev,__ZN7Minisat10SimpSolverD0Ev,__ZN7Minisat10SimpSolver14garbageCollectEv,__ZNSt9bad_allocD2Ev,__ZNSt9bad_allocD0Ev,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,__ZN10__cxxabiv120__si_class_type_infoD0Ev,__ZN7Minisat3vecIPNS_6OptionEiED1Ev,__ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv,b2,b2,b2,b2,b2 + ,b2,b2,b2]; + var FUNCTION_TABLE_vii = [b3,__ZN7Minisat10BoolOption4helpEb,__ZN7Minisat9IntOption4helpEb,__ZN7Minisat12DoubleOption4helpEb]; + var FUNCTION_TABLE_ii = [b4,__ZNKSt9bad_alloc4whatEv]; + var FUNCTION_TABLE_v = [b5,___cxa_pure_virtual__wrapper,__ZL25default_terminate_handlerv,__ZN10__cxxabiv112_GLOBAL__N_110construct_Ev]; + var FUNCTION_TABLE_viiiiii = [b6,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b6]; + var FUNCTION_TABLE_iii = [b7,__ZN7Minisat10BoolOption5parseEPKc,__ZN7Minisat9IntOption5parseEPKc,__ZN7Minisat12DoubleOption5parseEPKc]; + var FUNCTION_TABLE_viiii = [b8,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8]; + + return { _yo: _yo, _addClause: _addClause, ___cxa_can_catch: ___cxa_can_catch, _free: _free, _createTheSolver: _createTheSolver, ___cxa_is_pointer_type: ___cxa_is_pointer_type, _i64Add: _i64Add, _realloc: _realloc, _i64Subtract: _i64Subtract, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _bitshift64Lshr: _bitshift64Lshr, _unyo: _unyo, _solve: _solve, _bitshift64Shl: _bitshift64Shl, __GLOBAL__I_a: __GLOBAL__I_a, __GLOBAL__I_a123: __GLOBAL__I_a123, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, 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_v: dynCall_v, dynCall_viiiiii: dynCall_viiiiii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii }; + }) + // EMSCRIPTEN_END_ASM + (Module.asmGlobalArg, Module.asmLibraryArg, buffer); + var _yo = Module["_yo"] = asm["_yo"]; +var _addClause = Module["_addClause"] = asm["_addClause"]; +var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; +var _free = Module["_free"] = asm["_free"]; +var _createTheSolver = Module["_createTheSolver"] = asm["_createTheSolver"]; +var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; +var _i64Add = Module["_i64Add"] = asm["_i64Add"]; +var _realloc = Module["_realloc"] = asm["_realloc"]; +var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; +var _memset = Module["_memset"] = asm["_memset"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _strlen = Module["_strlen"] = asm["_strlen"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _unyo = Module["_unyo"] = asm["_unyo"]; +var _solve = Module["_solve"] = asm["_solve"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var __GLOBAL__I_a = Module["__GLOBAL__I_a"] = asm["__GLOBAL__I_a"]; +var __GLOBAL__I_a123 = Module["__GLOBAL__I_a123"] = asm["__GLOBAL__I_a123"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +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_v = Module["dynCall_v"] = asm["dynCall_v"]; +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.setTempRet0 = asm['setTempRet0']; + Runtime.getTempRet0 = asm['getTempRet0']; + + +// TODO: strip out parts of this we do not need + +//======= begin closure i64 code ======= + +// Copyright 2009 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "long". This + * implementation is derived from LongLib in GWT. + * + */ + +var i64Math = (function() { // Emscripten wrapper + var goog = { math: {} }; + + + /** + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @param {number} low The low (signed) 32 bits of the long. + * @param {number} high The high (signed) 32 bits of the long. + * @constructor + */ + goog.math.Long = function(low, high) { + /** + * @type {number} + * @private + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @private + */ + this.high_ = high | 0; // force into 32 signed bits. + }; + + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + + /** + * A cache of the Long representations of small integer values. + * @type {!Object} + * @private + */ + goog.math.Long.IntCache_ = {}; + + + /** + * Returns a Long representing the given (32-bit) integer value. + * @param {number} value The 32-bit integer in question. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = goog.math.Long.IntCache_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + goog.math.Long.IntCache_[value] = obj; + } + return obj; + }; + + + /** + * Returns a Long representing the given value, provided that it is a finite + * number. Otherwise, zero is returned. + * @param {number} value The number in question. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return goog.math.Long.ZERO; + } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) { + return goog.math.Long.MIN_VALUE; + } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) { + return goog.math.Long.MAX_VALUE; + } else if (value < 0) { + return goog.math.Long.fromNumber(-value).negate(); + } else { + return new goog.math.Long( + (value % goog.math.Long.TWO_PWR_32_DBL_) | 0, + (value / goog.math.Long.TWO_PWR_32_DBL_) | 0); + } + }; + + + /** + * Returns a Long representing the 64-bit integer that comes by concatenating + * the given high and low bits. Each is assumed to use 32 bits. + * @param {number} lowBits The low 32-bits. + * @param {number} highBits The high 32-bits. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromBits = function(lowBits, highBits) { + return new goog.math.Long(lowBits, highBits); + }; + + + /** + * Returns a Long representation of the given string, written using the given + * radix. + * @param {string} str The textual representation of the Long. + * @param {number=} opt_radix The radix in which the text is written. + * @return {!goog.math.Long} The corresponding Long value. + */ + goog.math.Long.fromString = function(str, opt_radix) { + if (str.length == 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) == '-') { + return goog.math.Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8)); + + var result = goog.math.Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = goog.math.Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(goog.math.Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(goog.math.Long.fromNumber(value)); + } + } + return result; + }; + + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_32_DBL_ = + goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_31_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ / 2; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_48_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_64_DBL_ = + goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_; + + + /** + * @type {number} + * @private + */ + goog.math.Long.TWO_PWR_63_DBL_ = + goog.math.Long.TWO_PWR_64_DBL_ / 2; + + + /** @type {!goog.math.Long} */ + goog.math.Long.ZERO = goog.math.Long.fromInt(0); + + + /** @type {!goog.math.Long} */ + goog.math.Long.ONE = goog.math.Long.fromInt(1); + + + /** @type {!goog.math.Long} */ + goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1); + + + /** @type {!goog.math.Long} */ + goog.math.Long.MAX_VALUE = + goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0); + + + /** @type {!goog.math.Long} */ + goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0); + + + /** + * @type {!goog.math.Long} + * @private + */ + goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24); + + + /** @return {number} The value, assuming it is a 32-bit integer. */ + goog.math.Long.prototype.toInt = function() { + return this.low_; + }; + + + /** @return {number} The closest floating-point representation to this value. */ + goog.math.Long.prototype.toNumber = function() { + return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ + + this.getLowBitsUnsigned(); + }; + + + /** + * @param {number=} opt_radix The radix in which the text should be written. + * @return {string} The textual representation of this value. + */ + goog.math.Long.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(goog.math.Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = goog.math.Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6)); + + var rem = this; + var result = ''; + while (true) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + + /** @return {number} The high 32-bits as a signed value. */ + goog.math.Long.prototype.getHighBits = function() { + return this.high_; + }; + + + /** @return {number} The low 32-bits as a signed value. */ + goog.math.Long.prototype.getLowBits = function() { + return this.low_; + }; + + + /** @return {number} The low 32-bits as an unsigned value. */ + goog.math.Long.prototype.getLowBitsUnsigned = function() { + return (this.low_ >= 0) ? + this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_; + }; + + + /** + * @return {number} Returns the number of bits needed to represent the absolute + * value of this Long. + */ + goog.math.Long.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(goog.math.Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ != 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) != 0) { + break; + } + } + return this.high_ != 0 ? bit + 33 : bit + 1; + } + }; + + + /** @return {boolean} Whether this value is zero. */ + goog.math.Long.prototype.isZero = function() { + return this.high_ == 0 && this.low_ == 0; + }; + + + /** @return {boolean} Whether this value is negative. */ + goog.math.Long.prototype.isNegative = function() { + return this.high_ < 0; + }; + + + /** @return {boolean} Whether this value is odd. */ + goog.math.Long.prototype.isOdd = function() { + return (this.low_ & 1) == 1; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long equals the other. + */ + goog.math.Long.prototype.equals = function(other) { + return (this.high_ == other.high_) && (this.low_ == other.low_); + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long does not equal the other. + */ + goog.math.Long.prototype.notEquals = function(other) { + return (this.high_ != other.high_) || (this.low_ != other.low_); + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is less than the other. + */ + goog.math.Long.prototype.lessThan = function(other) { + return this.compare(other) < 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is less than or equal to the other. + */ + goog.math.Long.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is greater than the other. + */ + goog.math.Long.prototype.greaterThan = function(other) { + return this.compare(other) > 0; + }; + + + /** + * @param {goog.math.Long} other Long to compare against. + * @return {boolean} Whether this Long is greater than or equal to the other. + */ + goog.math.Long.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; + }; + + + /** + * Compares this Long with the given one. + * @param {goog.math.Long} other Long to compare against. + * @return {number} 0 if they are the same, 1 if the this is greater, and -1 + * if the given one is greater. + */ + goog.math.Long.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + + /** @return {!goog.math.Long} The negation of this value. */ + goog.math.Long.prototype.negate = function() { + if (this.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.MIN_VALUE; + } else { + return this.not().add(goog.math.Long.ONE); + } + }; + + + /** + * Returns the sum of this and the given Long. + * @param {goog.math.Long} other Long to add to this one. + * @return {!goog.math.Long} The sum of this and the given Long. + */ + goog.math.Long.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xFFFF; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xFFFF; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xFFFF; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xFFFF; + + var c48 = 0, c32 = 0, c16 = 0, c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xFFFF; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c48 += a48 + b48; + c48 &= 0xFFFF; + return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); + }; + + + /** + * Returns the difference of this and the given Long. + * @param {goog.math.Long} other Long to subtract from this. + * @return {!goog.math.Long} The difference of this and the given Long. + */ + goog.math.Long.prototype.subtract = function(other) { + return this.add(other.negate()); + }; + + + /** + * Returns the product of this and the given long. + * @param {goog.math.Long} other Long to multiply with this. + * @return {!goog.math.Long} The product of this and the other. + */ + goog.math.Long.prototype.multiply = function(other) { + if (this.isZero()) { + return goog.math.Long.ZERO; + } else if (other.isZero()) { + return goog.math.Long.ZERO; + } + + if (this.equals(goog.math.Long.MIN_VALUE)) { + return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both longs are small, use float multiplication + if (this.lessThan(goog.math.Long.TWO_PWR_24_) && + other.lessThan(goog.math.Long.TWO_PWR_24_)) { + return goog.math.Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xFFFF; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xFFFF; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xFFFF; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xFFFF; + + var c48 = 0, c32 = 0, c16 = 0, c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xFFFF; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xFFFF; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xFFFF; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xFFFF; + return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); + }; + + + /** + * Returns this Long divided by the given one. + * @param {goog.math.Long} other Long by which to divide. + * @return {!goog.math.Long} This Long divided by the given one. + */ + goog.math.Long.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return goog.math.Long.ZERO; + } + + if (this.equals(goog.math.Long.MIN_VALUE)) { + if (other.equals(goog.math.Long.ONE) || + other.equals(goog.math.Long.NEG_ONE)) { + return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(goog.math.Long.ZERO)) { + return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(goog.math.Long.MIN_VALUE)) { + return goog.math.Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = goog.math.Long.ZERO; + var rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = goog.math.Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = goog.math.Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = goog.math.Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + + /** + * Returns this Long modulo the given one. + * @param {goog.math.Long} other Long by which to mod. + * @return {!goog.math.Long} This Long modulo the given one. + */ + goog.math.Long.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); + }; + + + /** @return {!goog.math.Long} The bitwise-NOT of this value. */ + goog.math.Long.prototype.not = function() { + return goog.math.Long.fromBits(~this.low_, ~this.high_); + }; + + + /** + * Returns the bitwise-AND of this Long and the given one. + * @param {goog.math.Long} other The Long with which to AND. + * @return {!goog.math.Long} The bitwise-AND of this and the other. + */ + goog.math.Long.prototype.and = function(other) { + return goog.math.Long.fromBits(this.low_ & other.low_, + this.high_ & other.high_); + }; + + + /** + * Returns the bitwise-OR of this Long and the given one. + * @param {goog.math.Long} other The Long with which to OR. + * @return {!goog.math.Long} The bitwise-OR of this and the other. + */ + goog.math.Long.prototype.or = function(other) { + return goog.math.Long.fromBits(this.low_ | other.low_, + this.high_ | other.high_); + }; + + + /** + * Returns the bitwise-XOR of this Long and the given one. + * @param {goog.math.Long} other The Long with which to XOR. + * @return {!goog.math.Long} The bitwise-XOR of this and the other. + */ + goog.math.Long.prototype.xor = function(other) { + return goog.math.Long.fromBits(this.low_ ^ other.low_, + this.high_ ^ other.high_); + }; + + + /** + * Returns this Long with bits shifted to the left by the given amount. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the left by the given amount. + */ + goog.math.Long.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return goog.math.Long.fromBits( + low << numBits, + (high << numBits) | (low >>> (32 - numBits))); + } else { + return goog.math.Long.fromBits(0, low << (numBits - 32)); + } + } + }; + + + /** + * Returns this Long with bits shifted to the right by the given amount. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the right by the given amount. + */ + goog.math.Long.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return goog.math.Long.fromBits( + (low >>> numBits) | (high << (32 - numBits)), + high >> numBits); + } else { + return goog.math.Long.fromBits( + high >> (numBits - 32), + high >= 0 ? 0 : -1); + } + } + }; + + + /** + * Returns this Long with bits shifted to the right by the given amount, with + * the new top bits matching the current sign bit. + * @param {number} numBits The number of bits by which to shift. + * @return {!goog.math.Long} This shifted to the right by the given amount, with + * zeros placed into the new leading bits. + */ + goog.math.Long.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits == 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return goog.math.Long.fromBits( + (low >>> numBits) | (high << (32 - numBits)), + high >>> numBits); + } else if (numBits == 32) { + return goog.math.Long.fromBits(high, 0); + } else { + return goog.math.Long.fromBits(high >>> (numBits - 32), 0); + } + } + }; + + //======= begin jsbn ======= + + var navigator = { appName: 'Modern Browser' }; // polyfill a little + + // Copyright (c) 2005 Tom Wu + // All Rights Reserved. + // http://www-cs-students.stanford.edu/~tjw/jsbn/ + + /* + * Copyright (c) 2003-2005 Tom Wu + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF + * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * In addition, the following condition applies: + * + * All redistributions must retain an intact copy of this copyright notice + * and disclaimer. + */ + + // Basic JavaScript BN library - subset useful for RSA encryption. + + // Bits per digit + var dbits; + + // JavaScript engine analysis + var canary = 0xdeadbeefcafe; + var j_lm = ((canary&0xffffff)==0xefcafe); + + // (public) Constructor + function BigInteger(a,b,c) { + if(a != null) + if("number" == typeof a) this.fromNumber(a,b,c); + else if(b == null && "string" != typeof a) this.fromString(a,256); + else this.fromString(a,b); + } + + // return new, unset BigInteger + function nbi() { return new BigInteger(null); } + + // am: Compute w_j += (x*this_i), propagate carries, + // c is initial carry, returns final carry. + // c < 3*dvalue, x < 2*dvalue, this_i < dvalue + // We need to select the fastest one that works in this environment. + + // am1: use a single mult and divide to get the high bits, + // max digit bits should be 26 because + // max internal value = 2*dvalue^2-2*dvalue (< 2^53) + function am1(i,x,w,j,c,n) { + while(--n >= 0) { + var v = x*this[i++]+w[j]+c; + c = Math.floor(v/0x4000000); + w[j++] = v&0x3ffffff; + } + return c; + } + // am2 avoids a big mult-and-extract completely. + // Max digit bits should be <= 30 because we do bitwise ops + // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) + function am2(i,x,w,j,c,n) { + var xl = x&0x7fff, xh = x>>15; + while(--n >= 0) { + var l = this[i]&0x7fff; + var h = this[i++]>>15; + var m = xh*l+h*xl; + l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); + c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); + w[j++] = l&0x3fffffff; + } + return c; + } + // Alternately, set max digit bits to 28 since some + // browsers slow down when dealing with 32-bit numbers. + function am3(i,x,w,j,c,n) { + var xl = x&0x3fff, xh = x>>14; + while(--n >= 0) { + var l = this[i]&0x3fff; + var h = this[i++]>>14; + var m = xh*l+h*xl; + l = xl*l+((m&0x3fff)<<14)+w[j]+c; + c = (l>>28)+(m>>14)+xh*h; + w[j++] = l&0xfffffff; + } + return c; + } + if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) { + BigInteger.prototype.am = am2; + dbits = 30; + } + else if(j_lm && (navigator.appName != "Netscape")) { + BigInteger.prototype.am = am1; + dbits = 26; + } + else { // Mozilla/Netscape seems to prefer am3 + BigInteger.prototype.am = am3; + dbits = 28; + } + + BigInteger.prototype.DB = dbits; + BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i]; + r.t = this.t; + r.s = this.s; + } + + // (protected) set from integer value x, -DV <= x < DV + function bnpFromInt(x) { + this.t = 1; + this.s = (x<0)?-1:0; + if(x > 0) this[0] = x; + else if(x < -1) this[0] = x+DV; + else this.t = 0; + } + + // return bigint initialized to value + function nbv(i) { var r = nbi(); r.fromInt(i); return r; } + + // (protected) set from string and radix + function bnpFromString(s,b) { + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 256) k = 8; // byte array + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else { this.fromRadix(s,b); return; } + this.t = 0; + this.s = 0; + var i = s.length, mi = false, sh = 0; + while(--i >= 0) { + var x = (k==8)?s[i]&0xff:intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-") mi = true; + continue; + } + mi = false; + if(sh == 0) + this[this.t++] = x; + else if(sh+k > this.DB) { + this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh)); + } + else + this[this.t-1] |= x<= this.DB) sh -= this.DB; + } + if(k == 8 && (s[0]&0x80) != 0) { + this.s = -1; + if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t; + } + + // (public) return string representation in given radix + function bnToString(b) { + if(this.s < 0) return "-"+this.negate().toString(b); + var k; + if(b == 16) k = 4; + else if(b == 8) k = 3; + else if(b == 2) k = 1; + else if(b == 32) k = 5; + else if(b == 4) k = 2; + else return this.toRadix(b); + var km = (1< 0) { + if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } + while(i >= 0) { + if(p < k) { + d = (this[i]&((1<>(p+=this.DB-k); + } + else { + d = (this[i]>>(p-=k))&km; + if(p <= 0) { p += this.DB; --i; } + } + if(d > 0) m = true; + if(m) r += int2char(d); + } + } + return m?r:"0"; + } + + // (public) -this + function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } + + // (public) |this| + function bnAbs() { return (this.s<0)?this.negate():this; } + + // (public) return + if this > a, - if this < a, 0 if equal + function bnCompareTo(a) { + var r = this.s-a.s; + if(r != 0) return r; + var i = this.t; + r = i-a.t; + if(r != 0) return (this.s<0)?-r:r; + while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; + return 0; + } + + // returns bit length of the integer x + function nbits(x) { + var r = 1, t; + if((t=x>>>16) != 0) { x = t; r += 16; } + if((t=x>>8) != 0) { x = t; r += 8; } + if((t=x>>4) != 0) { x = t; r += 4; } + if((t=x>>2) != 0) { x = t; r += 2; } + if((t=x>>1) != 0) { x = t; r += 1; } + return r; + } + + // (public) return the number of bits in "this" + function bnBitLength() { + if(this.t <= 0) return 0; + return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); + } + + // (protected) r = this << n*DB + function bnpDLShiftTo(n,r) { + var i; + for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; + for(i = n-1; i >= 0; --i) r[i] = 0; + r.t = this.t+n; + r.s = this.s; + } + + // (protected) r = this >> n*DB + function bnpDRShiftTo(n,r) { + for(var i = n; i < this.t; ++i) r[i-n] = this[i]; + r.t = Math.max(this.t-n,0); + r.s = this.s; + } + + // (protected) r = this << n + function bnpLShiftTo(n,r) { + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<= 0; --i) { + r[i+ds+1] = (this[i]>>cbs)|c; + c = (this[i]&bm)<= 0; --i) r[i] = 0; + r[ds] = c; + r.t = this.t+ds+1; + r.s = this.s; + r.clamp(); + } + + // (protected) r = this >> n + function bnpRShiftTo(n,r) { + r.s = this.s; + var ds = Math.floor(n/this.DB); + if(ds >= this.t) { r.t = 0; return; } + var bs = n%this.DB; + var cbs = this.DB-bs; + var bm = (1<>bs; + for(var i = ds+1; i < this.t; ++i) { + r[i-ds-1] |= (this[i]&bm)<>bs; + } + if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB; + } + if(a.t < this.t) { + c -= a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c -= a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c -= a.s; + } + r.s = (c<0)?-1:0; + if(c < -1) r[i++] = this.DV+c; + else if(c > 0) r[i++] = c; + r.t = i; + r.clamp(); + } + + // (protected) r = this * a, r != this,a (HAC 14.12) + // "this" should be the larger one if appropriate. + function bnpMultiplyTo(a,r) { + var x = this.abs(), y = a.abs(); + var i = x.t; + r.t = i+y.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); + r.s = 0; + r.clamp(); + if(this.s != a.s) BigInteger.ZERO.subTo(r,r); + } + + // (protected) r = this^2, r != this (HAC 14.16) + function bnpSquareTo(r) { + var x = this.abs(); + var i = r.t = 2*x.t; + while(--i >= 0) r[i] = 0; + for(i = 0; i < x.t-1; ++i) { + var c = x.am(i,x[i],r,2*i,0,1); + if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { + r[i+x.t] -= x.DV; + r[i+x.t+1] = 1; + } + } + if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); + r.s = 0; + r.clamp(); + } + + // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) + // r != q, this != m. q or r may be null. + function bnpDivRemTo(m,q,r) { + var pm = m.abs(); + if(pm.t <= 0) return; + var pt = this.abs(); + if(pt.t < pm.t) { + if(q != null) q.fromInt(0); + if(r != null) this.copyTo(r); + return; + } + if(r == null) r = nbi(); + var y = nbi(), ts = this.s, ms = m.s; + var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus + if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } + else { pm.copyTo(y); pt.copyTo(r); } + var ys = y.t; + var y0 = y[ys-1]; + if(y0 == 0) return; + var yt = y0*(1<1)?y[ys-2]>>this.F2:0); + var d1 = this.FV/yt, d2 = (1<= 0) { + r[r.t++] = 1; + r.subTo(t,r); + } + BigInteger.ONE.dlShiftTo(ys,t); + t.subTo(y,y); // "negative" y so we can replace sub with am later + while(y.t < ys) y[y.t++] = 0; + while(--j >= 0) { + // Estimate quotient digit + var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); + if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out + y.dlShiftTo(j,t); + r.subTo(t,r); + while(r[i] < --qd) r.subTo(t,r); + } + } + if(q != null) { + r.drShiftTo(ys,q); + if(ts != ms) BigInteger.ZERO.subTo(q,q); + } + r.t = ys; + r.clamp(); + if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder + if(ts < 0) BigInteger.ZERO.subTo(r,r); + } + + // (public) this mod a + function bnMod(a) { + var r = nbi(); + this.abs().divRemTo(a,null,r); + if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); + return r; + } + + // Modular reduction using "classic" algorithm + function Classic(m) { this.m = m; } + function cConvert(x) { + if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); + else return x; + } + function cRevert(x) { return x; } + function cReduce(x) { x.divRemTo(this.m,null,x); } + function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + + Classic.prototype.convert = cConvert; + Classic.prototype.revert = cRevert; + Classic.prototype.reduce = cReduce; + Classic.prototype.mulTo = cMulTo; + Classic.prototype.sqrTo = cSqrTo; + + // (protected) return "-1/this % 2^DB"; useful for Mont. reduction + // justification: + // xy == 1 (mod m) + // xy = 1+km + // xy(2-xy) = (1+km)(1-km) + // x[y(2-xy)] = 1-k^2m^2 + // x[y(2-xy)] == 1 (mod m^2) + // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 + // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. + // JS multiply "overflows" differently from C/C++, so care is needed here. + function bnpInvDigit() { + if(this.t < 1) return 0; + var x = this[0]; + if((x&1) == 0) return 0; + var y = x&3; // y == 1/x mod 2^2 + y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 + y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 + y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 + // last step - calculate inverse mod DV directly; + // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints + y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits + // we really want the negative inverse, and -DV < y < DV + return (y>0)?this.DV-y:-y; + } + + // Montgomery reduction + function Montgomery(m) { + this.m = m; + this.mp = m.invDigit(); + this.mpl = this.mp&0x7fff; + this.mph = this.mp>>15; + this.um = (1<<(m.DB-15))-1; + this.mt2 = 2*m.t; + } + + // xR mod m + function montConvert(x) { + var r = nbi(); + x.abs().dlShiftTo(this.m.t,r); + r.divRemTo(this.m,null,r); + if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); + return r; + } + + // x/R mod m + function montRevert(x) { + var r = nbi(); + x.copyTo(r); + this.reduce(r); + return r; + } + + // x = x/R mod m (HAC 14.32) + function montReduce(x) { + while(x.t <= this.mt2) // pad x so am has enough room later + x[x.t++] = 0; + for(var i = 0; i < this.m.t; ++i) { + // faster way of calculating u0 = x[i]*mp mod DV + var j = x[i]&0x7fff; + var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; + // use am to combine the multiply-shift-add into one call + j = i+this.m.t; + x[j] += this.m.am(0,u0,x,i,0,this.m.t); + // propagate carry + while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } + } + x.clamp(); + x.drShiftTo(this.m.t,x); + if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); + } + + // r = "x^2/R mod m"; x != r + function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } + + // r = "xy/R mod m"; x,y != r + function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } + + Montgomery.prototype.convert = montConvert; + Montgomery.prototype.revert = montRevert; + Montgomery.prototype.reduce = montReduce; + Montgomery.prototype.mulTo = montMulTo; + Montgomery.prototype.sqrTo = montSqrTo; + + // (protected) true iff this is even + function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } + + // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) + function bnpExp(e,z) { + if(e > 0xffffffff || e < 1) return BigInteger.ONE; + var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; + g.copyTo(r); + while(--i >= 0) { + z.sqrTo(r,r2); + if((e&(1< 0) z.mulTo(r2,g,r); + else { var t = r; r = r2; r2 = t; } + } + return z.revert(r); + } + + // (public) this^e % m, 0 <= e < 2^32 + function bnModPowInt(e,m) { + var z; + if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); + return this.exp(e,z); + } + + // protected + BigInteger.prototype.copyTo = bnpCopyTo; + BigInteger.prototype.fromInt = bnpFromInt; + BigInteger.prototype.fromString = bnpFromString; + BigInteger.prototype.clamp = bnpClamp; + BigInteger.prototype.dlShiftTo = bnpDLShiftTo; + BigInteger.prototype.drShiftTo = bnpDRShiftTo; + BigInteger.prototype.lShiftTo = bnpLShiftTo; + BigInteger.prototype.rShiftTo = bnpRShiftTo; + BigInteger.prototype.subTo = bnpSubTo; + BigInteger.prototype.multiplyTo = bnpMultiplyTo; + BigInteger.prototype.squareTo = bnpSquareTo; + BigInteger.prototype.divRemTo = bnpDivRemTo; + BigInteger.prototype.invDigit = bnpInvDigit; + BigInteger.prototype.isEven = bnpIsEven; + BigInteger.prototype.exp = bnpExp; + + // public + BigInteger.prototype.toString = bnToString; + BigInteger.prototype.negate = bnNegate; + BigInteger.prototype.abs = bnAbs; + BigInteger.prototype.compareTo = bnCompareTo; + BigInteger.prototype.bitLength = bnBitLength; + BigInteger.prototype.mod = bnMod; + BigInteger.prototype.modPowInt = bnModPowInt; + + // "constants" + BigInteger.ZERO = nbv(0); + BigInteger.ONE = nbv(1); + + // jsbn2 stuff + + // (protected) convert from radix string + function bnpFromRadix(s,b) { + this.fromInt(0); + if(b == null) b = 10; + var cs = this.chunkSize(b); + var d = Math.pow(b,cs), mi = false, j = 0, w = 0; + for(var i = 0; i < s.length; ++i) { + var x = intAt(s,i); + if(x < 0) { + if(s.charAt(i) == "-" && this.signum() == 0) mi = true; + continue; + } + w = b*w+x; + if(++j >= cs) { + this.dMultiply(d); + this.dAddOffset(w,0); + j = 0; + w = 0; + } + } + if(j > 0) { + this.dMultiply(Math.pow(b,j)); + this.dAddOffset(w,0); + } + if(mi) BigInteger.ZERO.subTo(this,this); + } + + // (protected) return x s.t. r^x < DV + function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } + + // (public) 0 if this == 0, 1 if this > 0 + function bnSigNum() { + if(this.s < 0) return -1; + else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; + else return 1; + } + + // (protected) this *= n, this >= 0, 1 < n < DV + function bnpDMultiply(n) { + this[this.t] = this.am(0,n-1,this,0,0,this.t); + ++this.t; + this.clamp(); + } + + // (protected) this += n << w words, this >= 0 + function bnpDAddOffset(n,w) { + if(n == 0) return; + while(this.t <= w) this[this.t++] = 0; + this[w] += n; + while(this[w] >= this.DV) { + this[w] -= this.DV; + if(++w >= this.t) this[this.t++] = 0; + ++this[w]; + } + } + + // (protected) convert to radix string + function bnpToRadix(b) { + if(b == null) b = 10; + if(this.signum() == 0 || b < 2 || b > 36) return "0"; + var cs = this.chunkSize(b); + var a = Math.pow(b,cs); + var d = nbv(a), y = nbi(), z = nbi(), r = ""; + this.divRemTo(d,y,z); + while(y.signum() > 0) { + r = (a+z.intValue()).toString(b).substr(1) + r; + y.divRemTo(d,y,z); + } + return z.intValue().toString(b) + r; + } + + // (public) return value as integer + function bnIntValue() { + if(this.s < 0) { + if(this.t == 1) return this[0]-this.DV; + else if(this.t == 0) return -1; + } + else if(this.t == 1) return this[0]; + else if(this.t == 0) return 0; + // assumes 16 < DB < 32 + return ((this[1]&((1<<(32-this.DB))-1))<>= this.DB; + } + if(a.t < this.t) { + c += a.s; + while(i < this.t) { + c += this[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += this.s; + } + else { + c += this.s; + while(i < a.t) { + c += a[i]; + r[i++] = c&this.DM; + c >>= this.DB; + } + c += a.s; + } + r.s = (c<0)?-1:0; + if(c > 0) r[i++] = c; + else if(c < -1) r[i++] = this.DV+c; + r.t = i; + r.clamp(); + } + + BigInteger.prototype.fromRadix = bnpFromRadix; + BigInteger.prototype.chunkSize = bnpChunkSize; + BigInteger.prototype.signum = bnSigNum; + BigInteger.prototype.dMultiply = bnpDMultiply; + BigInteger.prototype.dAddOffset = bnpDAddOffset; + BigInteger.prototype.toRadix = bnpToRadix; + BigInteger.prototype.intValue = bnIntValue; + BigInteger.prototype.addTo = bnpAddTo; + + //======= end jsbn ======= + + // Emscripten wrapper + var Wrapper = { + abs: function(l, h) { + var x = new goog.math.Long(l, h); + var ret; + if (x.isNegative()) { + ret = x.negate(); + } else { + ret = x; + } + HEAP32[tempDoublePtr>>2] = ret.low_; + HEAP32[tempDoublePtr+4>>2] = ret.high_; + }, + ensureTemps: function() { + if (Wrapper.ensuredTemps) return; + Wrapper.ensuredTemps = true; + Wrapper.two32 = new BigInteger(); + Wrapper.two32.fromString('4294967296', 10); + Wrapper.two64 = new BigInteger(); + Wrapper.two64.fromString('18446744073709551616', 10); + Wrapper.temp1 = new BigInteger(); + Wrapper.temp2 = new BigInteger(); + }, + lh2bignum: function(l, h) { + var a = new BigInteger(); + a.fromString(h.toString(), 10); + var b = new BigInteger(); + a.multiplyTo(Wrapper.two32, b); + var c = new BigInteger(); + c.fromString(l.toString(), 10); + var d = new BigInteger(); + c.addTo(b, d); + return d; + }, + stringify: function(l, h, unsigned) { + var ret = new goog.math.Long(l, h).toString(); + if (unsigned && ret[0] == '-') { + // unsign slowly using jsbn bignums + Wrapper.ensureTemps(); + var bignum = new BigInteger(); + bignum.fromString(ret, 10); + ret = new BigInteger(); + Wrapper.two64.addTo(bignum, ret); + ret = ret.toString(10); + } + return ret; + }, + fromString: function(str, base, min, max, unsigned) { + Wrapper.ensureTemps(); + var bignum = new BigInteger(); + bignum.fromString(str, base); + var bigmin = new BigInteger(); + bigmin.fromString(min, 10); + var bigmax = new BigInteger(); + bigmax.fromString(max, 10); + if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) { + var temp = new BigInteger(); + bignum.addTo(Wrapper.two64, temp); + bignum = temp; + } + var error = false; + if (bignum.compareTo(bigmin) < 0) { + bignum = bigmin; + error = true; + } else if (bignum.compareTo(bigmax) > 0) { + bignum = bigmax; + error = true; + } + var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well + HEAP32[tempDoublePtr>>2] = ret.low_; + HEAP32[tempDoublePtr+4>>2] = ret.high_; + if (error) throw 'range error'; + } + }; + return Wrapper; +})(); + +//======= end closure i64 code ======= + + + +// === Auto-generated postamble setup entry stuff === + +if (memoryInitializer) { + if (typeof Module['locateFile'] === 'function') { + memoryInitializer = Module['locateFile'](memoryInitializer); + } else if (Module['memoryInitializerPrefixURL']) { + memoryInitializer = Module['memoryInitializerPrefixURL'] + memoryInitializer; + } + if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { + var data = Module['readBinary'](memoryInitializer); + HEAPU8.set(data, STATIC_BASE); + } else { + addRunDependency('memory initializer'); + Browser.asyncLoad(memoryInitializer, function(data) { + HEAPU8.set(data, STATIC_BASE); + removeRunDependency('memory initializer'); + }, function(data) { + throw 'could not load memory initializer ' + memoryInitializer; + }); + } +} + +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'] && shouldRunNow) 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); + + initialStackTop = STACKTOP; + + try { + + var ret = Module['_main'](argc, argv, 0); + + + // if we're not running an evented main loop, it's time to exit + exit(ret); + } + 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) { + return; + } + + 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['_main'] && shouldRunNow) { + Module['callMain'](args); + } + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function() { + setTimeout(function() { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } +} +Module['run'] = Module.run = run; + +function exit(status) { + if (Module['noExitRuntime']) { + return; + } + + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + + // exit the runtime + exitRuntime(); + + if (ENVIRONMENT_IS_NODE) { + // Work around a node.js bug where stdout buffer is not flushed at process exit: + // Instead of process.exit() directly, wait for stdout flush event. + // See https://github.com/joyent/node/issues/1669 and https://github.com/kripken/emscripten/issues/2582 + // Workaround is based on https://github.com/RReverser/acorn/commit/50ab143cecc9ed71a2d66f78b4aec3bb2e9844f6 + process['stdout']['once']('drain', function () { + process['exit'](status); + }); + console.log(' '); // Make sure to print something to force the drain event to occur, in case the stdout buffer was empty. + // Work around another node bug where sometimes 'drain' is never fired - make another effort + // to emit the exit status, after a significant delay (if node hasn't fired drain by then, give up) + setTimeout(function() { + process['exit'](status); + }, 500); + } 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; + +function abort(text) { + if (text) { + Module.print(text); + Module.printErr(text); + } + + ABORT = true; + EXITSTATUS = 1; + + var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.'; + + throw 'abort() at ' + stackTrace() + extra; +} +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; +} + + +run(); + +// {{POST_RUN_ADDITIONS}} + + + + + + +// {{MODULE_ADDITIONS}} + + + + + +// (start of meteor/postamble.js) +// Hook into `malloc` and `free` so that we can measure how much +// memory has been allocated. If we're going to be creating instances +// of C++ objects in a "heap" that lives in a statically-allocated +// JavaScript array, we'd better understand how much of it we are +// using and make sure we aren't leaking it. +var origMalloc = Module._malloc; +var origFree = Module._free; + +var MEMSTATS = { + totalMemory: Module.HEAPU8.length, + heapUsed: 0 // doesn't include stack +}; +var MEMSTATS_DATA = { + // Keep a mapping of pointers to their allocated sizes, so we know + // how much memory is freed when the pointer is freed. + pointerToSizeMap: {}, // ptr -> size of memory allocated at ptr + getSizeOfPointer: function (ptr) { + return MEMSTATS_DATA.pointerToSizeMap[ptr]; + } +}; +Module.MEMSTATS = MEMSTATS; +Module.MEMSTATS_DATA = MEMSTATS_DATA; + +var hookedMalloc = function (size) { + var ptr = origMalloc(size); + if (! ptr) { + return 0; + } + + MEMSTATS.heapUsed += size; + MEMSTATS_DATA.pointerToSizeMap[ptr] = size; + + return ptr; +}; + +var hookedFree = function (ptr) { + if (ptr) { + MEMSTATS.heapUsed -= (MEMSTATS_DATA.getSizeOfPointer(ptr) || 0); + delete MEMSTATS_DATA.pointerToSizeMap[ptr]; + } + return origFree(ptr); +}; + +// Overwrite malloc and free in three scopes +Module._malloc = hookedMalloc; +Module._free = hookedFree; +_malloc = hookedMalloc; +_free = hookedFree; +var setInnerMalloc, setInnerFree; // assigned from the "midamble" +setInnerMalloc(hookedMalloc); +setInnerFree(hookedFree); + + return module.exports; +}; +// Just so we can also run as a node module via +// `cMinisat = require('minisat.js')()`: +if (typeof module !== 'undefined') { + module.exports = cMinisat; +} +// (end of meteor/postamble.js) + + diff --git a/packages/logic-solver/minisat_wrapper.js b/packages/logic-solver/minisat_wrapper.js new file mode 100644 index 0000000000..0392df58c1 --- /dev/null +++ b/packages/logic-solver/minisat_wrapper.js @@ -0,0 +1,41 @@ +MiniSat = function () { + var C = this._C = cMinisat(); + this._native = { + getStackPointer: function () { + return C.Runtime.stackSave(); + }, + setStackPointer: function (ptr) { + C.Runtime.stackRestore(ptr); + }, + allocateBytes: function (len) { + return C.allocate(len, 'i8', C.ALLOC_STACK); + }, + pushString: function (str) { + return this.allocateBytes(C.intArrayFromString(str)); + }, + savingStack: function (func) { + var SP = this.getStackPointer(); + var ret = func(this, C); + this.setStackPointer(SP); + return ret; + } + }; + + C._createTheSolver(); +}; + +MiniSat.prototype.addClause = function (terms) { + check(terms, [Logic.NumTerm]); + return this._native.savingStack(function (native, C) { + var termsPtr = C.allocate((terms.length+1)*4, 'i32', C.ALLOC_STACK); + _.each(terms, function (t, i) { + C.setValue(termsPtr + i*4, t, 'i32'); + }); + C.setValue(termsPtr + terms.length*4, 0, 'i32'); // 0-terminate + return C._addClause(termsPtr) ? true : false; + }); +}; + +MiniSat.prototype.solve = function () { + return this._C.solve() ? true : false; +}; diff --git a/packages/logic-solver/package.js b/packages/logic-solver/package.js index 82fd421702..7ca2ec26d0 100644 --- a/packages/logic-solver/package.js +++ b/packages/logic-solver/package.js @@ -7,7 +7,9 @@ Package.on_use(function (api) { api.export('Logic'); api.use('check'); api.use('underscore'); - api.add_files(['logic.js']); + api.add_files(['minisat.js', + 'minisat_wrapper.js', + 'logic.js']); }); Package.on_test(function (api) {