Repository: gokulkrishh/qrcodescan.in Branch: master Commit: 7418a18ef48e Files: 24 Total size: 3.4 MB Directory structure: gitextract_rj_io85i/ ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ └── deploy.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── package.json ├── public/ │ ├── CNAME │ ├── ads.txt │ ├── decoder.js │ ├── index.html │ ├── manifest.json │ ├── robots.txt │ └── sitemap.xml ├── rollup.config.js └── src/ ├── css/ │ └── styles.css └── js/ ├── index.js ├── snackbar.js ├── utils.js └── vendor/ └── qrscan.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = tab indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.json] indent_style = space indent_size = 2 ================================================ FILE: .github/FUNDING.yml ================================================ github: [gokulkrishh] ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .github/workflows/deploy.yml ================================================ name: github pages on: push: branches: - main jobs: deploy: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup Node uses: actions/setup-node@v2.1.2 with: node-version: "12.x" - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - run: npm ci - run: npm run build - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public ================================================ FILE: .gitignore ================================================ logs *.log npm-debug.log* node_modules .DS_Store dist .env public/bundle.js public/bundle.css public/service-worker.js public/service-worker.js.map public/workbox-*.js ================================================ FILE: .prettierignore ================================================ *.json /dist app/decoder.js ================================================ FILE: .prettierrc ================================================ { "printWidth": 140, "singleQuote": true, "parser": "babel" } ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2016 code-kotis 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", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ ###

# [QR Code Scanner](https://qrcodescan.in) *QR Code Scanner - a simple, fast and useful progressive web application* ### [Live](https://qrcodescan.in) ## Features - App Shell - Offline - Secure via https - Responsive - Add to home screen & Splash screen - Supported Browser (Mobile & Desktop) - Google Chrome, Firefox, Safari, Opera, Microsoft Edge and now supports iOS as well. ## Installation 1. Clone this repo ```bash git clone https://github.com/code-kotis/qr-code-scanner ``` 2. Installation ```bash npm install ``` 3. Run ```bash npm run start ``` 4. Build ```bash npm run build ``` ### Contributions If you find a bug, please file an issue. PR's are most welcome ;) #### MIT Licensed ================================================ FILE: package.json ================================================ { "name": "qr-code-scanner", "description": "QR Code Scanner is the fastest and most user-friendly progressive web application.", "version": "1.0.2", "scripts": { "build": "NODE_ENV=production rollup -c", "watch": "rollup -c -w", "start": "npm-run-all --parallel serve watch", "serve": "rollup -c && serve public", "precommit": "lint-staged", "pretty": "prettier --write 'src'" }, "lint-staged": { "*.{js,css,html}": [ "npm run pretty", "git add" ] }, "engines": { "node": ">=14.0.0" }, "devDependencies": { "cross-env": "^7.0.3", "gh-pages": "^3.2.1", "husky": "^6.0.0", "lint-staged": "^11.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.3.1", "rollup": "^2.52.1", "rollup-plugin-css-only": "^3.1.0", "rollup-plugin-delete": "^2.0.0", "rollup-plugin-sizes": "^1.0.4", "rollup-plugin-terser": "^7.0.2", "rollup-plugin-workbox": "^6.1.1", "serve": "^12.0.0" } } ================================================ FILE: public/CNAME ================================================ qrcodescan.in ================================================ FILE: public/ads.txt ================================================ google.com, pub-8317178183177647, DIRECT, f08c47fec0942fa0 ================================================ FILE: public/decoder.js ================================================ // The main barcode scanning processing function. // Compiled from zbar.sf.net using emscripten. // // Copyright (C) 2013 Yury Delendik // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA self.onmessage = function(imgData) { postMessage(zbarProcessImageData(imgData.data)); }; function zbarProcessImageData(imgData) { var result = []; var Module = {}; Module['imageWidth'] = imgData.width; Module['imageHeight'] = imgData.height; Module['getImageData'] = function(grayData) { var d = imgData.data; for (var i = 0, j = 0; i < d.length; i += 4, j++) { grayData[j] = (d[i] * 66 + d[i + 1] * 129 + d[i + 2] * 25 + 4096) >> 8; } }; Module['outputResult'] = function(symbol, addon, data) { result.push([symbol, addon, data]); }; /* EMSCRIPTEN_CODE */ // 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.0 : +(low >>> 0) + +(high | 0) * 4294967296.0; 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.0 ? tempDouble > 0.0 ? (Math_min(+Math_floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 : 0) ]), (HEAP32[ptr >> 2] = tempI64[0]), (HEAP32[(ptr + 4) >> 2] = tempI64[1]); break; case 'float': HEAPF32[ptr >> 2] = value; break; case 'double': HEAPF64[ptr >> 3] = value; break; default: abort('invalid type for setValue: ' + type); } } Module['setValue'] = setValue; function getValue(ptr, type, noSafe) { type = type || 'i8'; if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit switch (type) { case 'i1': return HEAP8[ptr >> 0]; case 'i8': return HEAP8[ptr >> 0]; case 'i16': return HEAP16[ptr >> 1]; case 'i32': return HEAP32[ptr >> 2]; case 'i64': return HEAP32[ptr >> 2]; case 'float': return HEAPF32[ptr >> 2]; case 'double': return HEAPF64[ptr >> 3]; default: abort('invalid type for setValue: ' + type); } return null; } Module['getValue'] = getValue; var ALLOC_NORMAL = 0; // Tries to use _malloc() var ALLOC_STACK = 1; // Lives for the duration of the current function call var ALLOC_STATIC = 2; // Cannot be freed var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk var ALLOC_NONE = 4; // Do not allocate Module['ALLOC_NORMAL'] = ALLOC_NORMAL; Module['ALLOC_STACK'] = ALLOC_STACK; Module['ALLOC_STATIC'] = ALLOC_STATIC; Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC; Module['ALLOC_NONE'] = ALLOC_NONE; // allocate(): This is for internal use. You can use it yourself as well, but the interface // is a little tricky (see docs right below). The reason is that it is optimized // for multiple syntaxes to save space in generated code. So you should // normally not use allocate(), and instead allocate memory using _malloc(), // initialize it with setValue(), and so forth. // @slab: An array of data, or a number. If a number, then the size of the block to allocate, // in *bytes* (note that this is sometimes confusing: the next parameter does not // affect this!) // @types: Either an array of types, one for each byte (or 0 if no type at that position), // or a single type which is used for the entire block. This only matters if there // is initial data - if @slab is a number, then this does not matter at all and is // ignored. // @allocator: How to allocate memory, see ALLOC_* function allocate(slab, types, allocator, ptr) { var zeroinit, size; if (typeof slab === 'number') { zeroinit = true; size = slab; } else { zeroinit = false; size = slab.length; } var singleType = typeof types === 'string' ? types : null; var ret; if (allocator == ALLOC_NONE) { ret = ptr; } else { ret = [_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'] || 16777216; 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 + 134416; /* global initializers */ __ATINIT__.push(); /* memory initializer */ allocate( [ 0, 0, 0, 0, 0, 0, 0, 0, 112, 114, 111, 99, 101, 115, 115, 111, 114, 0, 0, 0, 0, 0, 0, 0, 46, 46, 47, 116, 101, 109, 112, 108, 97, 116, 101, 115, 47, 122, 98, 97, 114, 45, 109, 97, 105, 110, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 109, 97, 105, 110, 0, 0, 0, 0, 122, 105, 109, 97, 103, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 99, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 101, 114, 114, 111, 114, 95, 115, 112, 101, 119, 0, 0, 0, 0, 0, 0, 0, 0, 37, 115, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 122, 98, 97, 114, 32, 37, 115, 32, 105, 110, 32, 37, 115, 40, 41, 58, 10, 32, 32, 32, 32, 37, 115, 58, 32, 0, 0, 0, 95, 122, 98, 97, 114, 95, 101, 114, 114, 111, 114, 95, 115, 116, 114, 105, 110, 103, 0, 0, 0, 0, 0, 0, 184, 2, 0, 0, 200, 2, 0, 0, 208, 2, 0, 0, 216, 2, 0, 0, 224, 2, 0, 0, 0, 0, 0, 0, 136, 2, 0, 0, 152, 2, 0, 0, 160, 2, 0, 0, 168, 2, 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 60, 117, 110, 107, 110, 111, 119, 110, 62, 0, 0, 0, 0, 0, 0, 0, 128, 1, 0, 0, 144, 1, 0, 0, 160, 1, 0, 0, 184, 1, 0, 0, 208, 1, 0, 0, 224, 1, 0, 0, 240, 1, 0, 0, 0, 2, 0, 0, 24, 2, 0, 0, 48, 2, 0, 0, 72, 2, 0, 0, 96, 2, 0, 0, 120, 2, 0, 0, 0, 0, 0, 0, 60, 63, 62, 0, 0, 0, 0, 0, 37, 100, 0, 0, 0, 0, 0, 0, 37, 120, 0, 0, 0, 0, 0, 0, 58, 32, 37, 115, 32, 40, 37, 100, 41, 10, 0, 0, 0, 0, 0, 0, 110, 111, 32, 101, 114, 114, 111, 114, 0, 0, 0, 0, 0, 0, 0, 0, 111, 117, 116, 32, 111, 102, 32, 109, 101, 109, 111, 114, 121, 0, 0, 0, 105, 110, 116, 101, 114, 110, 97, 108, 32, 108, 105, 98, 114, 97, 114, 121, 32, 101, 114, 114, 111, 114, 0, 0, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 114, 101, 113, 117, 101, 115, 116, 0, 0, 0, 0, 0, 105, 110, 118, 97, 108, 105, 100, 32, 114, 101, 113, 117, 101, 115, 116, 0, 115, 121, 115, 116, 101, 109, 32, 101, 114, 114, 111, 114, 0, 0, 0, 0, 108, 111, 99, 107, 105, 110, 103, 32, 101, 114, 114, 111, 114, 0, 0, 0, 97, 108, 108, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 32, 98, 117, 115, 121, 0, 0, 0, 0, 0, 0, 88, 49, 49, 32, 100, 105, 115, 112, 108, 97, 121, 32, 101, 114, 114, 111, 114, 0, 0, 0, 0, 0, 0, 0, 88, 49, 49, 32, 112, 114, 111, 116, 111, 99, 111, 108, 32, 101, 114, 114, 111, 114, 0, 0, 0, 0, 0, 0, 111, 117, 116, 112, 117, 116, 32, 119, 105, 110, 100, 111, 119, 32, 105, 115, 32, 99, 108, 111, 115, 101, 100, 0, 119, 105, 110, 100, 111, 119, 115, 32, 115, 121, 115, 116, 101, 109, 32, 101, 114, 114, 111, 114, 0, 0, 0, 0, 117, 110, 107, 110, 111, 119, 110, 32, 101, 114, 114, 111, 114, 0, 0, 0, 112, 114, 111, 99, 101, 115, 115, 111, 114, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 111, 0, 0, 0, 119, 105, 110, 100, 111, 119, 0, 0, 105, 109, 97, 103, 101, 32, 115, 99, 97, 110, 110, 101, 114, 0, 0, 0, 70, 65, 84, 65, 76, 32, 69, 82, 82, 79, 82, 0, 0, 0, 0, 0, 69, 82, 82, 79, 82, 0, 0, 0, 79, 75, 0, 0, 0, 0, 0, 0, 87, 65, 82, 78, 73, 78, 71, 0, 78, 79, 84, 69, 0, 0, 0, 0, 105, 109, 103, 45, 62, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 0, 122, 98, 97, 114, 47, 105, 109, 97, 103, 101, 46, 99, 0, 0, 0, 0, 122, 98, 97, 114, 95, 105, 109, 97, 103, 101, 95, 102, 114, 101, 101, 95, 100, 97, 116, 97, 0, 0, 0, 0, 37, 115, 46, 37, 46, 52, 115, 46, 122, 105, 109, 103, 0, 0, 0, 0, 37, 115, 46, 37, 48, 56, 120, 46, 122, 105, 109, 103, 0, 0, 0, 0, 110, 32, 60, 32, 108, 101, 110, 32, 45, 32, 49, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 105, 109, 97, 103, 101, 95, 119, 114, 105, 116, 101, 0, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 100, 117, 109, 112, 105, 110, 103, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 105, 109, 97, 103, 101, 32, 116, 111, 32, 37, 115, 10, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 69, 82, 82, 79, 82, 32, 111, 112, 101, 110, 105, 110, 103, 32, 37, 115, 58, 32, 37, 115, 10, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 69, 82, 82, 79, 82, 32, 119, 114, 105, 116, 105, 110, 103, 32, 37, 115, 58, 32, 37, 115, 10, 0, 0, 0, 0, 0, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 122, 98, 97, 114, 0, 0, 0, 0, 37, 115, 58, 32, 112, 114, 111, 99, 101, 115, 115, 105, 110, 103, 58, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 37, 100, 120, 37, 100, 32, 64, 37, 112, 10, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 95, 105, 109, 97, 103, 101, 0, 0, 0, 0, 0, 37, 115, 58, 32, 37, 115, 58, 32, 37, 115, 32, 40, 37, 100, 32, 112, 116, 115, 41, 32, 40, 100, 105, 114, 61, 37, 100, 41, 32, 40, 113, 61, 37, 100, 41, 32, 40, 37, 115, 41, 10, 0, 0, 0, 0, 0, 0, 0, 117, 110, 99, 101, 114, 116, 97, 105, 110, 0, 0, 0, 0, 0, 0, 0, 100, 117, 112, 108, 105, 99, 97, 116, 101, 0, 0, 0, 0, 0, 0, 0, 110, 101, 119, 0, 0, 0, 0, 0, 117, 110, 107, 110, 111, 119, 110, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 109, 97, 116, 0, 0, 0, 0, 33, 112, 114, 111, 99, 45, 62, 119, 97, 105, 116, 95, 104, 101, 97, 100, 0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 47, 112, 114, 111, 99, 101, 115, 115, 111, 114, 46, 99, 0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 100, 101, 115, 116, 114, 111, 121, 0, 0, 33, 112, 114, 111, 99, 45, 62, 119, 97, 105, 116, 95, 116, 97, 105, 108, 0, 0, 0, 0, 0, 0, 0, 0, 33, 112, 114, 111, 99, 45, 62, 119, 97, 105, 116, 95, 110, 101, 120, 116, 0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 105, 110, 105, 116, 0, 0, 0, 0, 0, 97, 108, 108, 111, 99, 97, 116, 105, 110, 103, 32, 119, 105, 110, 100, 111, 119, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 0, 0, 0, 0, 97, 108, 108, 111, 99, 97, 116, 105, 110, 103, 32, 118, 105, 100, 101, 111, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 0, 0, 0, 0, 0, 115, 112, 97, 119, 110, 105, 110, 103, 32, 118, 105, 100, 101, 111, 32, 116, 104, 114, 101, 97, 100, 0, 0, 0, 115, 112, 97, 119, 110, 105, 110, 103, 32, 105, 110, 112, 117, 116, 32, 116, 104, 114, 101, 97, 100, 0, 0, 0, 87, 65, 82, 78, 73, 78, 71, 58, 32, 110, 111, 32, 99, 111, 109, 112, 97, 116, 105, 98, 108, 101, 32, 105, 110, 112, 117, 116, 32, 116, 111, 32, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 10, 46, 46, 46, 116, 114, 121, 105, 110, 103, 32, 97, 103, 97, 105, 110, 32, 119, 105, 116, 104, 32, 111, 117, 116, 112, 117, 116, 32, 100, 105, 115, 97, 98, 108, 101, 100, 10, 0, 0, 0, 0, 0, 37, 115, 58, 32, 69, 82, 82, 79, 82, 58, 32, 110, 111, 32, 99, 111, 109, 112, 97, 116, 105, 98, 108, 101, 32, 37, 115, 32, 102, 111, 114, 109, 97, 116, 10, 0, 0, 0, 0, 0, 118, 105, 100, 101, 111, 32, 105, 110, 112, 117, 116, 0, 0, 0, 0, 0, 119, 105, 110, 100, 111, 119, 32, 111, 117, 116, 112, 117, 116, 0, 0, 0, 110, 111, 32, 99, 111, 109, 112, 97, 116, 105, 98, 108, 101, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 109, 97, 116, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 117, 115, 101, 114, 95, 119, 97, 105, 116, 0, 0, 0, 0, 0, 0, 0, 0, 100, 105, 115, 112, 108, 97, 121, 32, 119, 105, 110, 100, 111, 119, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 102, 111, 114, 32, 105, 110, 112, 117, 116, 0, 0, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 115, 101, 116, 95, 97, 99, 116, 105, 118, 101, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 111, 32, 105, 110, 112, 117, 116, 32, 110, 111, 116, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 0, 0, 0, 0, 0, 122, 98, 97, 114, 32, 98, 97, 114, 99, 111, 100, 101, 32, 114, 101, 97, 100, 101, 114, 0, 0, 0, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 108, 101, 97, 110, 117, 112, 0, 0, 0, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 100, 115, 116, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 101, 114, 114, 95, 99, 111, 112, 121, 0, 0, 0, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 69, 65, 78, 45, 50, 0, 0, 0, 69, 65, 78, 45, 53, 0, 0, 0, 69, 65, 78, 45, 56, 0, 0, 0, 85, 80, 67, 45, 69, 0, 0, 0, 73, 83, 66, 78, 45, 49, 48, 0, 85, 80, 67, 45, 65, 0, 0, 0, 69, 65, 78, 45, 49, 51, 0, 0, 73, 83, 66, 78, 45, 49, 51, 0, 67, 79, 77, 80, 79, 83, 73, 84, 69, 0, 0, 0, 0, 0, 0, 0, 73, 50, 47, 53, 0, 0, 0, 0, 68, 97, 116, 97, 66, 97, 114, 0, 68, 97, 116, 97, 66, 97, 114, 45, 69, 120, 112, 0, 0, 0, 0, 0, 67, 111, 100, 97, 98, 97, 114, 0, 67, 79, 68, 69, 45, 51, 57, 0, 67, 79, 68, 69, 45, 57, 51, 0, 67, 79, 68, 69, 45, 49, 50, 56, 0, 0, 0, 0, 0, 0, 0, 0, 80, 68, 70, 52, 49, 55, 0, 0, 81, 82, 45, 67, 111, 100, 101, 0, 85, 78, 75, 78, 79, 87, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 17, 255, 17, 22, 12, 5, 6, 8, 255, 4, 3, 7, 18, 255, 255, 255, 255, 255, 255, 255, 2, 255, 0, 18, 12, 11, 29, 10, 0, 103, 48, 32, 62, 61, 32, 48, 32, 38, 38, 32, 103, 49, 32, 62, 61, 32, 48, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 47, 115, 121, 109, 98, 111, 108, 46, 99, 0, 0, 0, 95, 122, 98, 97, 114, 95, 103, 101, 116, 95, 115, 121, 109, 98, 111, 108, 95, 104, 97, 115, 104, 0, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 37, 115, 58, 32, 99, 108, 111, 115, 101, 100, 32, 99, 97, 109, 101, 114, 97, 32, 40, 102, 100, 61, 37, 100, 41, 10, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 111, 112, 101, 110, 0, 47, 100, 101, 118, 47, 118, 105, 100, 101, 111, 48, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 103, 101, 116, 95, 102, 100, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 111, 32, 100, 101, 118, 105, 99, 101, 32, 110, 111, 116, 32, 111, 112, 101, 110, 101, 100, 0, 118, 105, 100, 101, 111, 32, 100, 114, 105, 118, 101, 114, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 32, 112, 111, 108, 108, 105, 110, 103, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 114, 101, 113, 117, 101, 115, 116, 95, 115, 105, 122, 101, 0, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 44, 32, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 114, 101, 115, 105, 122, 101, 0, 0, 0, 37, 115, 58, 32, 114, 101, 113, 117, 101, 115, 116, 32, 115, 105, 122, 101, 58, 32, 37, 100, 32, 120, 32, 37, 100, 10, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 114, 101, 113, 117, 101, 115, 116, 95, 105, 110, 116, 101, 114, 102, 97, 99, 101, 0, 0, 0, 0, 100, 101, 118, 105, 99, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 111, 112, 101, 110, 101, 100, 44, 32, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 99, 104, 97, 110, 103, 101, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 114, 101, 113, 117, 101, 115, 116, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 37, 100, 10, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 114, 101, 113, 117, 101, 115, 116, 95, 105, 111, 109, 111, 100, 101, 0, 0, 0, 0, 0, 0, 0, 100, 101, 118, 105, 99, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 111, 112, 101, 110, 101, 100, 44, 32, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 99, 104, 97, 110, 103, 101, 32, 105, 111, 109, 111, 100, 101, 0, 0, 105, 110, 118, 97, 108, 105, 100, 32, 105, 111, 109, 111, 100, 101, 32, 114, 101, 113, 117, 101, 115, 116, 101, 100, 0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 105, 110, 105, 116, 0, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 105, 116, 105, 97, 108, 105, 122, 101, 100, 44, 32, 114, 101, 45, 105, 110, 105, 116, 32, 117, 110, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 101, 110, 97, 98, 108, 101, 0, 0, 0, 0, 0, 0, 0, 105, 109, 103, 0, 0, 0, 0, 0, 122, 98, 97, 114, 47, 118, 105, 100, 101, 111, 46, 99, 0, 0, 0, 0, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 110, 101, 120, 116, 95, 105, 109, 97, 103, 101, 0, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 118, 100, 111, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 114, 101, 99, 121, 99, 108, 101, 95, 115, 104, 97, 100, 111, 119, 0, 0, 0, 0, 0, 0, 105, 109, 103, 45, 62, 115, 114, 99, 105, 100, 120, 32, 61, 61, 32, 45, 49, 0, 0, 0, 0, 0, 0, 0, 118, 100, 111, 45, 62, 100, 97, 116, 97, 108, 101, 110, 0, 0, 0, 0, 118, 105, 100, 101, 111, 95, 105, 110, 105, 116, 95, 105, 109, 97, 103, 101, 115, 0, 0, 0, 0, 0, 0, 0, 33, 118, 100, 111, 45, 62, 98, 117, 102, 0, 0, 0, 0, 0, 0, 0, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 97, 108, 108, 111, 99, 97, 116, 101, 32, 105, 109, 97, 103, 101, 32, 98, 117, 102, 102, 101, 114, 115, 0, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 112, 114, 101, 45, 97, 108, 108, 111, 99, 97, 116, 101, 100, 32, 37, 100, 32, 37, 115, 32, 98, 117, 102, 102, 101, 114, 115, 32, 115, 105, 122, 101, 61, 48, 120, 37, 108, 120, 10, 0, 0, 0, 0, 0, 82, 69, 65, 68, 0, 0, 0, 0, 85, 83, 69, 82, 80, 84, 82, 0, 37, 115, 58, 32, 32, 32, 32, 32, 91, 37, 48, 50, 100, 93, 32, 64, 37, 48, 56, 108, 120, 10, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 101, 114, 114, 95, 99, 108, 101, 97, 110, 117, 112, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 114, 101, 99, 121, 99, 108, 101, 95, 105, 109, 97, 103, 101, 0, 0, 0, 0, 0, 0, 0, 105, 109, 103, 45, 62, 115, 114, 99, 105, 100, 120, 32, 62, 61, 32, 48, 0, 0, 0, 0, 0, 0, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 108, 101, 97, 110, 117, 112, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 111, 112, 101, 110, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 99, 108, 111, 115, 101, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 115, 101, 116, 95, 115, 105, 122, 101, 0, 0, 0, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 105, 110, 118, 97, 108, 105, 100, 97, 116, 101, 0, 0, 0, 0, 0, 0, 110, 111, 116, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 111, 117, 116, 112, 117, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 117, 112, 112, 111, 114, 116, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 119, 105, 110, 100, 111, 119, 95, 97, 116, 116, 97, 99, 104, 0, 0, 0, 0, 0, 110, 111, 116, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 111, 117, 116, 112, 117, 116, 32, 119, 105, 110, 100, 111, 119, 32, 115, 117, 112, 112, 111, 114, 116, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 112, 114, 111, 99, 45, 62, 108, 111, 99, 107, 95, 108, 101, 118, 101, 108, 32, 62, 32, 48, 0, 0, 0, 0, 122, 98, 97, 114, 47, 112, 114, 111, 99, 101, 115, 115, 111, 114, 47, 108, 111, 99, 107, 46, 99, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 117, 110, 108, 111, 99, 107, 0, 0, 119, 32, 61, 61, 32, 119, 97, 105, 116, 101, 114, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 119, 97, 105, 116, 0, 0, 0, 0, 112, 114, 111, 99, 45, 62, 108, 111, 99, 107, 95, 108, 101, 118, 101, 108, 32, 61, 61, 32, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 112, 114, 111, 99, 101, 115, 115, 111, 114, 95, 105, 110, 105, 116, 0, 0, 0, 0, 102, 97, 105, 108, 101, 100, 32, 116, 111, 32, 111, 112, 101, 110, 32, 112, 105, 112, 101, 0, 0, 0, 0, 0, 37, 115, 58, 32, 91, 37, 100, 93, 32, 102, 100, 61, 37, 100, 32, 110, 61, 37, 100, 10, 0, 0, 0, 0, 114, 101, 109, 111, 118, 101, 95, 112, 111, 108, 108, 0, 0, 0, 0, 0, 37, 115, 58, 32, 107, 105, 99, 107, 105, 110, 103, 32, 37, 100, 32, 102, 100, 115, 10, 0, 0, 0, 0, 0, 112, 114, 111, 99, 95, 107, 105, 99, 107, 95, 104, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 0, 0, 0, 112, 114, 111, 99, 45, 62, 116, 104, 114, 101, 97, 100, 101, 100, 0, 0, 122, 98, 97, 114, 47, 112, 114, 111, 99, 101, 115, 115, 111, 114, 47, 112, 111, 115, 105, 120, 46, 99, 0, 0, 37, 115, 58, 32, 91, 37, 100, 93, 32, 102, 100, 61, 37, 100, 32, 104, 97, 110, 100, 108, 101, 114, 61, 37, 112, 10, 0, 0, 0, 0, 0, 0, 97, 100, 100, 95, 112, 111, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 97, 116, 101, 45, 62, 107, 105, 99, 107, 95, 102, 100, 115, 91, 49, 93, 32, 62, 61, 32, 48, 0, 122, 98, 97, 114, 47, 112, 114, 111, 99, 101, 115, 115, 111, 114, 47, 112, 111, 115, 105, 120, 46, 104, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 112, 45, 62, 110, 117, 109, 0, 0, 112, 114, 111, 99, 95, 112, 111, 108, 108, 95, 105, 110, 112, 117, 116, 115, 0, 0, 0, 0, 0, 0, 0, 0, 33, 114, 99, 0, 0, 0, 0, 0, 116, 105, 109, 101, 111, 117, 116, 32, 62, 32, 48, 0, 0, 0, 0, 0, 112, 114, 111, 99, 95, 115, 108, 101, 101, 112, 0, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 118, 105, 100, 101, 111, 95, 111, 112, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, 116, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 118, 105, 100, 101, 111, 32, 105, 110, 112, 117, 116, 32, 115, 117, 112, 112, 111, 114, 116, 0, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 52, 50, 50, 80, 73, 52, 50, 48, 89, 85, 49, 50, 89, 86, 49, 50, 52, 49, 49, 80, 78, 86, 49, 50, 78, 86, 50, 49, 89, 85, 89, 86, 85, 89, 86, 89, 89, 85, 89, 50, 89, 85, 86, 52, 82, 71, 66, 51, 3, 0, 0, 0, 66, 71, 82, 51, 82, 71, 66, 52, 66, 71, 82, 52, 82, 71, 66, 80, 82, 71, 66, 79, 82, 71, 66, 82, 82, 71, 66, 81, 89, 85, 86, 57, 89, 86, 85, 57, 71, 82, 69, 89, 89, 56, 48, 48, 89, 56, 32, 32, 89, 56, 0, 0, 82, 71, 66, 49, 82, 52, 52, 52, 66, 65, 56, 49, 89, 52, 49, 80, 89, 52, 52, 52, 89, 85, 86, 79, 72, 77, 49, 50, 72, 73, 50, 52, 74, 80, 69, 71, 77, 74, 80, 71, 77, 80, 69, 71, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 24, 0, 0, 0, 3, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 48, 0, 0, 0, 5, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0, 128, 0, 0, 0, 4, 0, 0, 0, 40, 0, 0, 0, 2, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 24, 0, 0, 0, 6, 0, 0, 0, 52, 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0, 7, 0, 0, 0, 144, 0, 0, 0, 8, 0, 0, 0, 18, 0, 0, 0, 6, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 112, 0, 0, 0, 9, 0, 0, 0, 160, 0, 0, 0, 9, 0, 0, 0, 144, 0, 0, 0, 10, 0, 0, 0, 120, 0, 0, 0, 11, 0, 0, 0, 152, 0, 0, 0, 9, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 24, 0, 0, 0, 3, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 37, 115, 58, 32, 115, 104, 97, 114, 101, 100, 32, 102, 111, 114, 109, 97, 116, 58, 32, 37, 52, 46, 52, 115, 10, 0, 0, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 98, 101, 115, 116, 95, 102, 111, 114, 109, 97, 116, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 102, 114, 111, 109, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 116, 111, 0, 0, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 61, 37, 100, 0, 0, 89, 56, 48, 48, 0, 0, 0, 0, 122, 98, 97, 114, 95, 110, 101, 103, 111, 116, 105, 97, 116, 101, 95, 102, 111, 114, 109, 97, 116, 0, 0, 0, 105, 109, 97, 103, 101, 32, 102, 111, 114, 109, 97, 116, 32, 108, 105, 115, 116, 32, 105, 115, 32, 110, 111, 116, 32, 115, 111, 114, 116, 101, 100, 33, 63, 0, 0, 0, 0, 0, 0, 0, 110, 111, 32, 105, 110, 112, 117, 116, 32, 111, 114, 32, 111, 117, 116, 112, 117, 116, 32, 102, 111, 114, 109, 97, 116, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 0, 0, 0, 37, 115, 58, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 45, 62, 32, 63, 32, 40, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 41, 10, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 45, 62, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 40, 37, 100, 41, 10, 0, 0, 0, 0, 0, 0, 110, 111, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 109, 97, 116, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 0, 0, 0, 37, 115, 58, 32, 115, 101, 116, 116, 105, 110, 103, 32, 98, 101, 115, 116, 32, 102, 111, 114, 109, 97, 116, 32, 37, 46, 52, 115, 40, 37, 48, 56, 120, 41, 32, 40, 37, 100, 41, 10, 0, 0, 0, 0, 0, 0, 0, 0, 101, 114, 114, 45, 62, 109, 97, 103, 105, 99, 32, 61, 61, 32, 69, 82, 82, 73, 78, 70, 79, 95, 77, 65, 71, 73, 67, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 101, 114, 114, 111, 114, 46, 104, 0, 0, 101, 114, 114, 95, 99, 97, 112, 116, 117, 114, 101, 0, 0, 0, 0, 0, 69, 82, 82, 79, 82, 58, 32, 105, 109, 97, 103, 101, 32, 102, 111, 114, 109, 97, 116, 32, 108, 105, 115, 116, 32, 105, 115, 32, 110, 111, 116, 32, 115, 111, 114, 116, 101, 100, 33, 63, 10, 0, 0, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 100, 97, 116, 97, 108, 101, 110, 32, 62, 61, 32, 40, 115, 114, 99, 45, 62, 119, 105, 100, 116, 104, 32, 42, 32, 115, 114, 99, 45, 62, 104, 101, 105, 103, 104, 116, 32, 42, 32, 115, 114, 99, 102, 109, 116, 45, 62, 112, 46, 114, 103, 98, 46, 98, 112, 112, 41, 0, 0, 122, 98, 97, 114, 47, 99, 111, 110, 118, 101, 114, 116, 46, 99, 0, 0, 99, 111, 110, 118, 101, 114, 116, 95, 114, 103, 98, 95, 114, 101, 115, 97, 109, 112, 108, 101, 0, 0, 0, 0, 99, 111, 110, 118, 101, 114, 116, 95, 114, 103, 98, 95, 116, 111, 95, 121, 117, 118, 0, 0, 0, 0, 0, 0, 99, 111, 110, 118, 101, 114, 116, 95, 114, 103, 98, 95, 116, 111, 95, 121, 117, 118, 112, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 100, 97, 116, 97, 108, 101, 110, 32, 62, 61, 32, 40, 115, 114, 99, 45, 62, 119, 105, 100, 116, 104, 32, 42, 32, 115, 114, 99, 45, 62, 104, 101, 105, 103, 104, 116, 32, 43, 32, 117, 118, 112, 95, 115, 105, 122, 101, 40, 115, 114, 99, 44, 32, 115, 114, 99, 102, 109, 116, 41, 32, 42, 32, 50, 41, 0, 0, 99, 111, 110, 118, 101, 114, 116, 95, 121, 117, 118, 95, 116, 111, 95, 114, 103, 98, 0, 0, 0, 0, 0, 0, 115, 114, 99, 102, 109, 116, 45, 62, 112, 46, 121, 117, 118, 46, 120, 115, 117, 98, 50, 32, 61, 61, 32, 49, 0, 0, 0, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 100, 97, 116, 97, 108, 101, 110, 32, 62, 61, 32, 115, 114, 99, 110, 32, 43, 32, 50, 32, 42, 32, 115, 114, 99, 109, 0, 99, 111, 110, 118, 101, 114, 116, 95, 121, 117, 118, 112, 95, 116, 111, 95, 114, 103, 98, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 100, 97, 116, 97, 108, 101, 110, 32, 62, 61, 32, 115, 114, 99, 110, 32, 43, 32, 50, 32, 42, 32, 115, 114, 99, 110, 0, 99, 111, 110, 118, 101, 114, 116, 95, 121, 117, 118, 95, 112, 97, 99, 107, 0, 0, 0, 0, 0, 0, 0, 0, 115, 114, 99, 45, 62, 100, 97, 116, 97, 108, 101, 110, 32, 62, 61, 32, 115, 114, 99, 45, 62, 119, 105, 100, 116, 104, 32, 42, 32, 115, 114, 99, 45, 62, 104, 101, 105, 103, 104, 116, 0, 0, 0, 0, 0, 0, 0, 0, 99, 111, 110, 118, 101, 114, 116, 95, 117, 118, 112, 95, 97, 112, 112, 101, 110, 100, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 100, 115, 116, 61, 37, 100, 120, 37, 100, 32, 40, 37, 108, 120, 41, 32, 37, 108, 120, 32, 115, 114, 99, 61, 37, 100, 120, 37, 100, 32, 37, 108, 120, 10, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 82, 71, 66, 52, 3, 0, 0, 0, 4, 8, 16, 24, 66, 71, 82, 49, 3, 0, 0, 0, 1, 160, 163, 198, 52, 50, 50, 80, 1, 0, 0, 0, 1, 0, 0, 0, 89, 56, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 89, 85, 89, 50, 2, 0, 0, 0, 1, 0, 0, 0, 74, 80, 69, 71, 5, 0, 0, 0, 0, 0, 0, 0, 89, 86, 89, 85, 2, 0, 0, 0, 1, 0, 1, 0, 89, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 86, 50, 49, 4, 0, 0, 0, 1, 1, 1, 0, 78, 86, 49, 50, 4, 0, 0, 0, 1, 1, 0, 0, 66, 71, 82, 51, 3, 0, 0, 0, 3, 16, 8, 0, 89, 86, 85, 57, 1, 0, 0, 0, 2, 2, 1, 0, 82, 71, 66, 79, 3, 0, 0, 0, 2, 106, 101, 96, 82, 71, 66, 81, 3, 0, 0, 0, 2, 98, 109, 104, 71, 82, 69, 89, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 16, 8, 0, 89, 56, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 73, 52, 50, 48, 1, 0, 0, 0, 1, 1, 0, 0, 82, 71, 66, 49, 3, 0, 0, 0, 1, 165, 162, 192, 89, 85, 49, 50, 1, 0, 0, 0, 1, 1, 0, 0, 89, 86, 49, 50, 1, 0, 0, 0, 1, 1, 1, 0, 82, 71, 66, 51, 3, 0, 0, 0, 3, 0, 8, 16, 82, 52, 52, 52, 3, 0, 0, 0, 2, 136, 132, 128, 66, 71, 82, 52, 3, 0, 0, 0, 4, 16, 8, 0, 89, 85, 86, 57, 1, 0, 0, 0, 2, 2, 0, 0, 77, 74, 80, 71, 5, 0, 0, 0, 0, 0, 0, 0, 52, 49, 49, 80, 1, 0, 0, 0, 2, 0, 0, 0, 82, 71, 66, 80, 3, 0, 0, 0, 2, 107, 69, 96, 82, 71, 66, 82, 3, 0, 0, 0, 2, 99, 77, 104, 89, 85, 89, 86, 2, 0, 0, 0, 1, 0, 0, 0, 85, 89, 86, 89, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 115, 121, 109, 45, 62, 100, 97, 116, 97, 95, 97, 108, 108, 111, 99, 0, 122, 98, 97, 114, 47, 105, 109, 103, 95, 115, 99, 97, 110, 110, 101, 114, 46, 99, 0, 0, 0, 0, 0, 0, 95, 122, 98, 97, 114, 95, 105, 109, 97, 103, 101, 95, 115, 99, 97, 110, 110, 101, 114, 95, 114, 101, 99, 121, 99, 108, 101, 95, 115, 121, 109, 115, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 115, 121, 109, 45, 62, 100, 97, 116, 97, 0, 0, 0, 0, 0, 0, 0, 105, 115, 99, 110, 45, 62, 114, 101, 99, 121, 99, 108, 101, 91, 105, 93, 46, 110, 115, 121, 109, 115, 0, 0, 95, 122, 98, 97, 114, 95, 105, 109, 97, 103, 101, 95, 115, 99, 97, 110, 110, 101, 114, 95, 97, 108, 108, 111, 99, 95, 115, 121, 109, 0, 0, 0, 33, 115, 121, 109, 45, 62, 115, 121, 109, 115, 0, 0, 0, 0, 0, 0, 99, 120, 49, 32, 60, 61, 32, 119, 0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 97, 114, 95, 115, 99, 97, 110, 95, 105, 109, 97, 103, 101, 0, 99, 121, 49, 32, 60, 61, 32, 104, 0, 0, 0, 0, 0, 0, 0, 0, 98, 111, 114, 100, 101, 114, 32, 60, 61, 32, 104, 0, 0, 0, 0, 0, 37, 115, 58, 32, 105, 109, 103, 95, 120, 43, 58, 32, 37, 48, 52, 100, 44, 37, 48, 52, 100, 32, 64, 37, 112, 10, 0, 0, 0, 0, 0, 0, 112, 32, 61, 61, 32, 100, 97, 116, 97, 32, 43, 32, 120, 32, 43, 32, 121, 32, 42, 32, 40, 105, 110, 116, 112, 116, 114, 95, 116, 41, 119, 0, 37, 115, 58, 32, 105, 109, 103, 95, 120, 45, 58, 32, 37, 48, 52, 100, 44, 37, 48, 52, 100, 32, 64, 37, 112, 10, 0, 0, 0, 0, 0, 0, 98, 111, 114, 100, 101, 114, 32, 60, 61, 32, 119, 0, 0, 0, 0, 0, 37, 115, 58, 32, 105, 109, 103, 95, 121, 43, 58, 32, 37, 48, 52, 100, 44, 37, 48, 52, 100, 32, 64, 37, 112, 10, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 105, 109, 103, 95, 121, 45, 58, 32, 37, 48, 52, 100, 44, 37, 48, 52, 100, 32, 64, 37, 112, 10, 0, 0, 0, 0, 0, 0, 101, 97, 110, 0, 0, 0, 0, 0, 97, 100, 100, 111, 110, 0, 0, 0, 37, 115, 58, 32, 115, 121, 109, 98, 111, 108, 32, 115, 101, 116, 115, 32, 97, 108, 108, 111, 99, 97, 116, 101, 100, 32, 32, 32, 61, 32, 37, 45, 52, 100, 10, 0, 0, 0, 0, 0, 100, 117, 109, 112, 95, 115, 116, 97, 116, 115, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 32, 32, 32, 32, 115, 99, 97, 110, 110, 101, 114, 32, 115, 121, 109, 115, 32, 105, 110, 32, 117, 115, 101, 32, 61, 32, 37, 45, 52, 100, 9, 114, 101, 99, 121, 99, 108, 101, 100, 32, 32, 61, 32, 37, 45, 52, 100, 10, 0, 0, 0, 0, 37, 115, 58, 32, 32, 32, 32, 32, 105, 109, 97, 103, 101, 32, 115, 121, 109, 115, 32, 105, 110, 32, 117, 115, 101, 32, 32, 32, 61, 32, 37, 45, 52, 100, 9, 114, 101, 99, 121, 99, 108, 101, 100, 32, 32, 61, 32, 37, 45, 52, 100, 10, 0, 0, 0, 0, 37, 115, 58, 32, 115, 121, 109, 98, 111, 108, 115, 32, 97, 108, 108, 111, 99, 97, 116, 101, 100, 32, 32, 32, 32, 32, 32, 32, 61, 32, 37, 45, 52, 100, 10, 0, 0, 0, 0, 0, 37, 115, 58, 32, 32, 32, 32, 32, 32, 114, 101, 99, 121, 99, 108, 101, 100, 91, 37, 100, 93, 32, 32, 32, 32, 32, 32, 32, 32, 61, 32, 37, 45, 52, 100, 10, 0, 0, 0, 0, 37, 115, 58, 32, 112, 97, 114, 116, 105, 97, 108, 32, 115, 121, 109, 98, 111, 108, 32, 64, 40, 37, 100, 44, 37, 100, 41, 10, 0, 0, 0, 0, 115, 121, 109, 98, 111, 108, 95, 104, 97, 110, 100, 108, 101, 114, 0, 0, 37, 115, 58, 32, 100, 117, 112, 32, 115, 121, 109, 98, 111, 108, 32, 64, 40, 37, 100, 44, 37, 100, 41, 58, 32, 100, 117, 112, 32, 37, 115, 58, 32, 37, 46, 50, 48, 115, 10, 0, 37, 115, 58, 32, 110, 101, 119, 32, 115, 121, 109, 98, 111, 108, 32, 64, 40, 37, 100, 44, 37, 100, 41, 58, 32, 37, 115, 58, 32, 37, 46, 50, 48, 115, 10, 0, 0, 0, 0, 0, 108, 105, 110, 101, 0, 0, 0, 0, 113, 114, 95, 104, 97, 110, 100, 108, 101, 114, 0, 0, 0, 0, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 37, 115, 58, 32, 109, 97, 120, 32, 102, 105, 110, 100, 101, 114, 32, 108, 105, 110, 101, 115, 32, 61, 32, 37, 100, 120, 37, 100, 10, 0, 0, 0, 95, 122, 98, 97, 114, 95, 113, 114, 95, 100, 101, 115, 116, 114, 111, 121, 0, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 37, 100, 120, 37, 100, 32, 102, 105, 110, 100, 101, 114, 115, 44, 32, 37, 100, 32, 99, 101, 110, 116, 101, 114, 115, 58, 10, 0, 95, 122, 98, 97, 114, 95, 113, 114, 95, 100, 101, 99, 111, 100, 101, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 4, 1, 2, 4, 4, 2, 4, 4, 4, 2, 4, 6, 5, 2, 4, 6, 6, 2, 5, 8, 8, 4, 5, 8, 8, 4, 5, 8, 11, 4, 8, 10, 11, 4, 9, 12, 16, 4, 9, 16, 16, 6, 10, 12, 18, 6, 10, 17, 16, 6, 11, 16, 19, 6, 13, 18, 21, 7, 14, 21, 25, 8, 16, 20, 25, 8, 17, 23, 25, 9, 17, 23, 34, 9, 18, 25, 30, 10, 20, 27, 32, 12, 21, 29, 35, 12, 23, 34, 37, 12, 25, 34, 40, 13, 26, 35, 42, 14, 28, 38, 45, 15, 29, 40, 48, 16, 31, 43, 51, 17, 33, 45, 54, 18, 35, 48, 57, 19, 37, 51, 60, 19, 38, 53, 63, 20, 40, 56, 66, 21, 43, 59, 70, 22, 45, 62, 74, 24, 47, 65, 77, 25, 49, 68, 81, 7, 10, 13, 17, 10, 16, 22, 28, 26, 26, 26, 22, 24, 22, 22, 26, 24, 18, 22, 15, 26, 18, 22, 24, 30, 24, 20, 24, 18, 16, 24, 28, 28, 28, 28, 30, 24, 20, 18, 18, 26, 24, 28, 24, 30, 26, 28, 28, 26, 28, 30, 30, 22, 20, 24, 20, 18, 26, 16, 20, 30, 28, 24, 22, 26, 28, 26, 30, 28, 30, 30, 0, 0, 4, 19, 55, 15, 28, 37, 12, 51, 39, 59, 62, 10, 24, 22, 41, 31, 44, 7, 65, 47, 33, 67, 67, 48, 32, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 10, 9, 8, 8, 12, 11, 16, 10, 14, 13, 16, 12, 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 32, 36, 37, 42, 43, 45, 46, 47, 58, 0, 0, 0, 16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24, 26, 28, 28, 22, 24, 24, 26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28, 0, 0, 0, 0, 0, 0, 65, 0, 4, 1, 1, 0, 0, 1, 64, 16, 4, 0, 0, 16, 0, 0, 16, 1, 17, 0, 16, 0, 16, 0, 0, 17, 1, 0, 0, 16, 0, 0, 132, 0, 66, 0, 4, 0, 64, 0, 128, 16, 2, 0, 0, 16, 0, 0, 0, 108, 0, 0, 0, 68, 0, 0, 0, 56, 0, 0, 0, 16, 0, 0, 0, 0, 1, 1, 4, 0, 3, 1, 2, 0, 2, 1, 0, 2, 1, 2, 148, 124, 0, 0, 188, 133, 0, 0, 153, 154, 0, 0, 211, 164, 0, 0, 246, 187, 0, 0, 98, 199, 0, 0, 71, 216, 0, 0, 13, 230, 0, 0, 40, 249, 0, 0, 120, 11, 1, 0, 93, 20, 1, 0, 23, 42, 1, 0, 50, 53, 1, 0, 166, 73, 1, 0, 131, 86, 1, 0, 201, 104, 1, 0, 236, 119, 1, 0, 196, 142, 1, 0, 225, 145, 1, 0, 171, 175, 1, 0, 142, 176, 1, 0, 26, 204, 1, 0, 63, 211, 1, 0, 117, 237, 1, 0, 80, 242, 1, 0, 213, 9, 2, 0, 240, 22, 2, 0, 186, 40, 2, 0, 159, 55, 2, 0, 11, 75, 2, 0, 46, 84, 2, 0, 100, 106, 2, 0, 65, 117, 2, 0, 105, 140, 2, 0, 85, 84, 70, 45, 56, 0, 0, 0, 73, 83, 79, 56, 56, 53, 57, 45, 49, 0, 0, 0, 0, 0, 0, 0, 83, 74, 73, 83, 0, 0, 0, 0, 73, 83, 79, 56, 56, 53, 57, 45, 37, 105, 0, 0, 0, 0, 0, 0, 67, 80, 52, 51, 55, 0, 0, 0, 110, 101, 120, 116, 32, 62, 32, 115, 121, 109, 115, 45, 62, 100, 97, 116, 97, 108, 101, 110, 0, 0, 0, 0, 122, 98, 97, 114, 47, 113, 114, 99, 111, 100, 101, 47, 113, 114, 100, 101, 99, 116, 120, 116, 46, 99, 0, 0, 113, 114, 95, 99, 111, 100, 101, 95, 100, 97, 116, 97, 95, 108, 105, 115, 116, 95, 101, 120, 116, 114, 97, 99, 116, 95, 116, 101, 120, 116, 0, 0, 114, 99, 32, 62, 61, 32, 48, 0, 46, 47, 122, 98, 97, 114, 47, 114, 101, 102, 99, 110, 116, 46, 104, 0, 95, 122, 98, 97, 114, 95, 114, 101, 102, 99, 110, 116, 0, 0, 0, 0, 87, 65, 82, 78, 73, 78, 71, 58, 32, 37, 115, 58, 37, 100, 58, 32, 37, 115, 58, 32, 65, 115, 115, 101, 114, 116, 105, 111, 110, 32, 34, 37, 115, 34, 32, 102, 97, 105, 108, 101, 100, 46, 10, 9, 108, 111, 99, 107, 61, 37, 100, 32, 114, 101, 113, 61, 37, 100, 10, 0, 0, 0, 0, 0, 46, 47, 122, 98, 97, 114, 47, 100, 101, 99, 111, 100, 101, 114, 46, 104, 0, 0, 0, 0, 0, 0, 0, 0, 114, 101, 108, 101, 97, 115, 101, 95, 108, 111, 99, 107, 0, 0, 0, 0, 100, 99, 111, 100, 101, 45, 62, 108, 111, 99, 107, 32, 61, 61, 32, 114, 101, 113, 0, 0, 0, 0, 0, 0, 255, 0, 1, 4, 2, 8, 5, 10, 3, 14, 9, 7, 6, 13, 11, 12, 1, 2, 4, 8, 3, 6, 12, 11, 5, 10, 7, 14, 15, 13, 9, 1, 2, 4, 8, 3, 6, 12, 11, 5, 10, 7, 14, 15, 13, 9, 1, 0, 11, 2, 8, 16, 10, 4, 8, 9, 117, 116, 102, 56, 0, 0, 200, 119, 99, 104, 97, 114, 116, 0, 0, 198, 117, 99, 115, 50, 0, 117, 99, 115, 50, 98, 101, 0, 0, 196, 117, 99, 115, 50, 108, 101, 0, 0, 197, 117, 116, 102, 49, 54, 0, 117, 116, 102, 49, 54, 98, 101, 0, 0, 194, 117, 116, 102, 49, 54, 108, 101, 0, 0, 193, 117, 99, 115, 52, 0, 117, 99, 115, 52, 98, 101, 0, 117, 116, 102, 51, 50, 0, 117, 116, 102, 51, 50, 98, 101, 0, 0, 192, 117, 99, 115, 52, 108, 101, 0, 117, 116, 102, 51, 50, 108, 101, 0, 0, 195, 97, 115, 99, 105, 105, 0, 117, 115, 97, 115, 99, 105, 105, 0, 105, 115, 111, 54, 52, 54, 0, 105, 115, 111, 54, 52, 54, 117, 115, 0, 0, 199, 101, 117, 99, 106, 112, 0, 0, 208, 115, 104, 105, 102, 116, 106, 105, 115, 0, 115, 106, 105, 115, 0, 0, 209, 103, 98, 49, 56, 48, 51, 48, 0, 0, 216, 103, 98, 107, 0, 0, 217, 103, 98, 50, 51, 49, 50, 0, 0, 218, 98, 105, 103, 53, 0, 98, 105, 103, 102, 105, 118, 101, 0, 99, 112, 57, 53, 48, 0, 98, 105, 103, 53, 104, 107, 115, 99, 115, 0, 0, 224, 101, 117, 99, 107, 114, 0, 107, 115, 99, 53, 54, 48, 49, 0, 107, 115, 120, 49, 48, 48, 49, 0, 99, 112, 57, 52, 57, 0, 0, 232, 105, 115, 111, 56, 56, 53, 57, 49, 0, 108, 97, 116, 105, 110, 49, 0, 0, 128, 105, 115, 111, 56, 56, 53, 57, 50, 0, 0, 32, 0, 84, 0, 137, 18, 0, 32, 1, 6, 0, 0, 152, 65, 134, 26, 127, 0, 48, 72, 32, 0, 88, 32, 201, 18, 0, 36, 17, 198, 35, 0, 156, 81, 198, 26, 128, 80, 66, 136, 32, 90, 0, 0, 192, 4, 0, 16, 113, 1, 0, 29, 0, 112, 2, 0, 41, 0, 0, 192, 7, 33, 48, 1, 5, 0, 0, 88, 1, 0, 0, 94, 208, 1, 128, 29, 0, 0, 128, 6, 0, 91, 0, 0, 0, 5, 0, 20, 129, 1, 0, 30, 0, 128, 2, 0, 42, 0, 0, 0, 8, 34, 52, 17, 5, 0, 0, 92, 1, 0, 0, 95, 212, 1, 192, 29, 0, 0, 144, 70, 36, 105, 115, 111, 56, 56, 53, 57, 51, 0, 0, 32, 0, 212, 0, 9, 0, 0, 4, 48, 3, 0, 0, 244, 64, 70, 11, 63, 0, 16, 64, 32, 0, 216, 0, 0, 0, 0, 0, 64, 3, 0, 0, 248, 80, 134, 11, 64, 0, 16, 128, 32, 0, 0, 0, 64, 0, 0, 108, 144, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 188, 0, 0, 0, 43, 0, 0, 0, 0, 0, 200, 33, 6, 0, 0, 0, 0, 64, 0, 0, 112, 160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 192, 0, 0, 0, 44, 0, 0, 0, 0, 0, 204, 49, 70, 36, 105, 115, 111, 56, 56, 53, 57, 52, 0, 0, 32, 0, 84, 48, 4, 23, 0, 220, 96, 4, 0, 0, 152, 49, 66, 12, 108, 0, 48, 8, 0, 0, 88, 32, 73, 23, 0, 224, 112, 196, 35, 0, 156, 65, 130, 12, 109, 72, 65, 200, 20, 17, 0, 0, 0, 0, 0, 0, 0, 192, 14, 29, 0, 112, 2, 0, 37, 0, 0, 64, 14, 33, 56, 65, 69, 16, 0, 0, 0, 0, 0, 0, 224, 1, 0, 0, 0, 184, 1, 7, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 15, 30, 0, 128, 2, 0, 38, 0, 0, 128, 14, 34, 60, 81, 133, 16, 0, 0, 0, 0, 0, 0, 228, 1, 0, 0, 0, 188, 17, 71, 36, 105, 115, 111, 56, 56, 53, 57, 53, 0, 0, 32, 0, 136, 51, 14, 57, 229, 152, 115, 14, 58, 233, 168, 179, 14, 59, 237, 0, 224, 206, 59, 240, 196, 35, 207, 60, 244, 212, 99, 207, 61, 248, 228, 163, 207, 62, 252, 244, 227, 207, 63, 0, 5, 36, 208, 64, 4, 21, 100, 208, 65, 8, 37, 164, 208, 66, 12, 53, 228, 208, 67, 16, 69, 36, 209, 68, 20, 85, 100, 209, 69, 24, 101, 164, 209, 70, 28, 117, 228, 209, 71, 32, 133, 36, 210, 72, 36, 149, 100, 210, 73, 40, 165, 164, 210, 74, 44, 181, 228, 210, 75, 53, 194, 20, 147, 76, 51, 209, 84, 147, 77, 55, 225, 148, 147, 78, 59, 13, 192, 83, 79, 105, 115, 111, 56, 56, 53, 57, 54, 0, 0, 32, 0, 4, 16, 64, 0, 0, 4, 16, 64, 0, 1, 4, 16, 64, 0, 115, 1, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 0, 93, 1, 4, 16, 64, 93, 1, 216, 117, 23, 94, 121, 233, 181, 23, 95, 125, 249, 245, 23, 96, 129, 9, 54, 24, 97, 133, 25, 118, 24, 98, 137, 41, 182, 24, 99, 141, 57, 246, 88, 0, 1, 4, 16, 64, 0, 144, 69, 38, 217, 100, 148, 85, 102, 217, 101, 152, 101, 166, 217, 102, 156, 117, 230, 217, 103, 160, 133, 38, 90, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 105, 115, 111, 56, 56, 53, 57, 55, 0, 0, 32, 0, 144, 88, 34, 0, 51, 210, 8, 0, 0, 0, 0, 160, 9, 0, 0, 0, 16, 128, 136, 0, 0, 0, 0, 0, 155, 112, 210, 9, 0, 158, 124, 2, 10, 0, 161, 0, 32, 202, 40, 164, 148, 98, 202, 41, 168, 164, 162, 202, 42, 172, 180, 226, 202, 43, 176, 196, 34, 203, 44, 180, 212, 18, 128, 45, 183, 224, 146, 139, 46, 187, 240, 210, 139, 47, 191, 0, 19, 140, 48, 195, 16, 83, 140, 49, 199, 32, 147, 140, 50, 203, 48, 211, 140, 51, 207, 64, 19, 141, 52, 211, 80, 83, 141, 53, 215, 96, 147, 141, 54, 219, 112, 211, 141, 55, 223, 128, 19, 78, 0, 105, 115, 111, 56, 56, 53, 57, 56, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 64, 0, 1, 4, 16, 192, 136, 83, 81, 85, 149, 85, 87, 97, 149, 149, 86, 91, 113, 213, 149, 87, 95, 129, 21, 150, 88, 99, 145, 85, 150, 89, 103, 161, 149, 150, 90, 107, 177, 213, 86, 0, 1, 120, 248, 97, 0, 105, 115, 111, 56, 56, 53, 57, 57, 0, 0, 80, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 64, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 80, 6, 0, 105, 115, 111, 56, 56, 53, 57, 49, 48, 0, 0, 32, 0, 84, 48, 66, 12, 57, 220, 16, 4, 0, 70, 132, 96, 6, 27, 131, 0, 0, 135, 20, 0, 88, 64, 130, 12, 58, 224, 32, 4, 0, 71, 136, 112, 70, 27, 132, 136, 24, 199, 20, 17, 0, 0, 0, 0, 0, 0, 0, 192, 14, 29, 0, 112, 2, 0, 37, 0, 0, 0, 0, 0, 56, 65, 5, 0, 0, 0, 0, 128, 27, 0, 224, 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 15, 30, 0, 128, 2, 0, 38, 0, 0, 0, 0, 0, 60, 81, 5, 0, 0, 0, 0, 192, 27, 0, 228, 1, 0, 0, 0, 0, 0, 192, 16, 105, 115, 111, 56, 56, 53, 57, 49, 49, 0, 116, 105, 115, 54, 50, 48, 0, 0, 32, 0, 188, 6, 91, 108, 178, 205, 70, 91, 109, 182, 221, 134, 91, 110, 186, 237, 198, 91, 111, 190, 253, 6, 92, 112, 194, 13, 71, 92, 113, 198, 29, 135, 92, 114, 202, 45, 199, 92, 115, 206, 61, 7, 93, 116, 210, 77, 71, 93, 117, 214, 93, 135, 93, 118, 218, 109, 199, 93, 119, 222, 125, 7, 94, 120, 226, 141, 71, 94, 121, 230, 157, 135, 94, 0, 1, 4, 16, 64, 122, 234, 173, 199, 94, 123, 238, 189, 7, 95, 124, 242, 205, 71, 95, 125, 246, 221, 135, 95, 126, 250, 237, 199, 95, 127, 254, 253, 7, 96, 128, 2, 14, 72, 96, 129, 1, 4, 16, 64, 0, 105, 115, 111, 56, 56, 53, 57, 49, 51, 0, 0, 32, 0, 160, 8, 0, 0, 0, 164, 8, 0, 0, 13, 0, 192, 5, 0, 0, 0, 0, 192, 2, 0, 0, 0, 0, 0, 39, 2, 0, 0, 0, 16, 0, 208, 5, 0, 0, 0, 0, 128, 3, 21, 236, 16, 193, 5, 0, 0, 112, 194, 8, 29, 0, 240, 71, 9, 49, 4, 145, 131, 17, 102, 48, 225, 4, 0, 84, 0, 0, 0, 0, 120, 40, 1, 6, 28, 0, 4, 50, 8, 0, 22, 240, 32, 1, 6, 0, 0, 128, 2, 9, 30, 0, 0, 136, 9, 50, 8, 161, 195, 17, 103, 52, 241, 4, 0, 85, 0, 0, 0, 0, 121, 44, 17, 70, 28, 0, 8, 66, 72, 137, 105, 115, 111, 56, 56, 53, 57, 49, 52, 0, 0, 32, 0, 24, 120, 32, 0, 27, 112, 128, 32, 0, 20, 2, 96, 97, 130, 26, 2, 0, 128, 31, 10, 46, 248, 2, 12, 12, 54, 8, 128, 131, 21, 62, 120, 33, 132, 27, 98, 152, 97, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 128, 132, 0, 0, 0, 0, 0, 0, 0, 192, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 192, 132, 0, 0, 0, 0, 0, 0, 0, 208, 7, 0, 105, 115, 111, 56, 56, 53, 57, 49, 53, 0, 108, 97, 116, 105, 110, 57, 0, 0, 36, 51, 2, 96, 6, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, 132, 0, 0, 0, 0, 88, 100, 225, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 115, 111, 56, 56, 53, 57, 49, 54, 0, 0, 32, 0, 84, 96, 129, 18, 51, 166, 104, 6, 0, 103, 0, 160, 8, 0, 127, 0, 0, 72, 32, 0, 0, 208, 193, 18, 131, 160, 8, 0, 0, 132, 120, 176, 8, 0, 88, 100, 225, 135, 32, 0, 0, 0, 192, 4, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE ); /* memory initializer */ allocate( [ 48, 1, 0, 0, 0, 88, 1, 0, 24, 118, 0, 0, 0, 0, 0, 156, 192, 8, 0, 0, 0, 0, 0, 5, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 52, 1, 0, 0, 0, 92, 1, 64, 24, 119, 0, 0, 0, 0, 0, 160, 208, 8, 0, 99, 112, 49, 50, 53, 48, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 48, 0, 0, 0, 51, 6, 96, 98, 0, 41, 182, 168, 226, 138, 1, 184, 104, 198, 139, 96, 168, 49, 200, 31, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 1, 216, 120, 6, 140, 97, 172, 65, 8, 32, 0, 60, 2, 137, 18, 0, 84, 0, 0, 0, 0, 0, 64, 6, 0, 0, 0, 0, 64, 32, 0, 0, 32, 201, 18, 0, 0, 0, 0, 0, 0, 88, 80, 6, 0, 72, 80, 146, 132, 32, 90, 0, 0, 192, 4, 0, 16, 113, 1, 0, 29, 0, 112, 2, 0, 41, 0, 0, 192, 7, 33, 48, 1, 5, 0, 0, 88, 1, 0, 0, 94, 208, 1, 128, 29, 0, 0, 128, 6, 0, 91, 0, 0, 0, 5, 0, 20, 129, 1, 0, 30, 0, 128, 2, 0, 42, 0, 0, 0, 8, 34, 52, 17, 5, 0, 0, 92, 1, 0, 0, 95, 212, 1, 192, 29, 0, 0, 144, 70, 36, 99, 112, 49, 50, 53, 49, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 49, 0, 0, 0, 227, 144, 99, 162, 76, 41, 182, 168, 226, 138, 51, 186, 168, 206, 139, 235, 180, 195, 206, 59, 49, 145, 88, 226, 137, 40, 178, 8, 98, 136, 1, 216, 136, 19, 140, 57, 237, 164, 83, 79, 0, 184, 195, 83, 58, 0, 248, 4, 0, 0, 226, 0, 80, 14, 0, 0, 0, 0, 0, 58, 0, 0, 112, 78, 77, 63, 1, 0, 0, 0, 48, 213, 56, 19, 0, 55, 153, 67, 147, 77, 240, 196, 35, 207, 60, 244, 212, 99, 207, 61, 248, 228, 163, 207, 62, 252, 244, 227, 207, 63, 0, 5, 36, 208, 64, 4, 21, 100, 208, 65, 8, 37, 164, 208, 66, 12, 53, 228, 208, 67, 16, 69, 36, 209, 68, 20, 85, 100, 209, 69, 24, 101, 164, 209, 70, 28, 117, 228, 209, 71, 32, 133, 36, 210, 72, 36, 149, 100, 210, 73, 40, 165, 164, 210, 74, 44, 181, 228, 210, 75, 99, 112, 49, 50, 53, 50, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 50, 0, 0, 0, 51, 6, 96, 98, 33, 41, 182, 168, 226, 138, 142, 184, 104, 198, 139, 88, 4, 48, 72, 0, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 147, 216, 120, 6, 140, 89, 4, 64, 136, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 112, 49, 50, 53, 51, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 51, 0, 0, 0, 51, 6, 96, 98, 33, 41, 182, 168, 226, 138, 1, 184, 24, 192, 139, 1, 4, 16, 64, 0, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 1, 216, 24, 0, 140, 1, 4, 16, 64, 0, 0, 112, 210, 9, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 128, 136, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 158, 124, 2, 10, 0, 161, 0, 32, 202, 40, 164, 148, 98, 202, 41, 168, 164, 162, 202, 42, 172, 180, 226, 202, 43, 176, 196, 34, 203, 44, 180, 212, 18, 128, 45, 183, 224, 146, 139, 46, 187, 240, 210, 139, 47, 191, 0, 19, 140, 48, 195, 16, 83, 140, 49, 199, 32, 147, 140, 50, 203, 48, 211, 140, 51, 207, 64, 19, 141, 52, 211, 80, 83, 141, 53, 215, 96, 147, 141, 54, 219, 112, 211, 141, 55, 223, 128, 19, 78, 0, 99, 112, 49, 50, 53, 52, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 52, 0, 0, 0, 51, 6, 96, 98, 33, 41, 182, 168, 226, 138, 142, 184, 104, 198, 139, 88, 4, 16, 64, 0, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 147, 216, 120, 6, 140, 89, 4, 16, 128, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 64, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 80, 6, 0, 99, 112, 49, 50, 53, 53, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 53, 0, 0, 0, 51, 6, 96, 98, 33, 41, 182, 168, 226, 138, 142, 184, 24, 192, 139, 1, 4, 16, 64, 0, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 147, 216, 24, 0, 140, 1, 4, 16, 64, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 64, 5, 37, 212, 80, 68, 21, 101, 212, 81, 72, 37, 21, 128, 82, 75, 49, 213, 148, 83, 79, 65, 21, 149, 84, 110, 189, 5, 87, 92, 114, 5, 16, 64, 0, 1, 4, 16, 64, 0, 83, 81, 85, 149, 85, 87, 97, 149, 149, 86, 91, 113, 213, 149, 87, 95, 129, 21, 150, 88, 99, 145, 85, 150, 89, 103, 161, 149, 150, 90, 107, 177, 213, 86, 0, 1, 120, 248, 97, 0, 99, 112, 49, 50, 53, 54, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 54, 0, 0, 0, 51, 146, 102, 98, 33, 41, 182, 168, 226, 138, 142, 184, 56, 218, 139, 88, 148, 134, 154, 105, 170, 145, 88, 226, 137, 40, 178, 8, 98, 136, 169, 217, 120, 26, 140, 89, 112, 216, 225, 106, 0, 204, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 23, 0, 0, 0, 0, 64, 93, 173, 217, 117, 23, 94, 121, 233, 181, 23, 95, 125, 249, 245, 23, 96, 129, 9, 54, 24, 97, 133, 25, 118, 24, 98, 137, 41, 182, 24, 0, 140, 53, 230, 216, 99, 144, 69, 38, 217, 100, 0, 80, 6, 64, 101, 150, 93, 134, 25, 0, 0, 0, 0, 0, 0, 153, 105, 6, 0, 0, 155, 113, 214, 153, 103, 0, 124, 6, 26, 0, 161, 1, 32, 26, 0, 0, 120, 248, 161, 107, 99, 112, 49, 50, 53, 55, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 55, 0, 0, 0, 51, 6, 96, 98, 0, 41, 182, 168, 226, 138, 1, 184, 24, 192, 139, 1, 16, 240, 136, 2, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 1, 216, 24, 0, 140, 1, 24, 32, 73, 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 192, 5, 0, 0, 0, 0, 192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 208, 5, 0, 0, 0, 0, 128, 3, 21, 236, 16, 193, 5, 0, 0, 112, 194, 8, 29, 0, 240, 71, 9, 49, 4, 145, 131, 17, 102, 48, 225, 4, 0, 84, 0, 0, 0, 0, 120, 40, 1, 6, 28, 0, 4, 50, 8, 0, 22, 240, 32, 1, 6, 0, 0, 128, 2, 9, 30, 0, 0, 136, 9, 50, 8, 161, 195, 17, 103, 52, 241, 4, 0, 85, 0, 0, 0, 0, 121, 44, 17, 70, 28, 0, 8, 66, 72, 36, 99, 112, 49, 50, 53, 56, 0, 119, 105, 110, 100, 111, 119, 115, 49, 50, 53, 56, 0, 0, 0, 51, 6, 96, 98, 33, 41, 182, 168, 226, 138, 142, 184, 24, 192, 139, 88, 4, 16, 64, 0, 1, 144, 88, 226, 137, 40, 178, 8, 98, 136, 147, 216, 24, 0, 140, 89, 4, 16, 128, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, 33, 0, 128, 9, 0, 0, 24, 2, 0, 0, 0, 0, 0, 0, 0, 0, 32, 114, 9, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 34, 0, 144, 9, 0, 0, 28, 2, 0, 0, 0, 0, 0, 0, 0, 0, 36, 34, 35, 0, 107, 111, 105, 56, 114, 0, 0, 0, 62, 254, 8, 100, 144, 66, 14, 73, 100, 145, 70, 30, 137, 164, 153, 103, 162, 153, 166, 154, 107, 178, 217, 38, 143, 110, 222, 136, 99, 142, 58, 238, 40, 64, 143, 7, 32, 144, 192, 3, 73, 42, 185, 36, 76, 76, 54, 233, 228, 147, 80, 70, 41, 229, 148, 84, 86, 105, 229, 149, 88, 102, 169, 165, 56, 91, 114, 217, 165, 151, 95, 130, 25, 166, 152, 99, 146, 89, 102, 1, 46, 65, 20, 145, 73, 20, 85, 68, 210, 68, 37, 97, 148, 145, 70, 27, 113, 212, 145, 71, 31, 189, 4, 82, 72, 34, 141, 100, 145, 68, 44, 173, 116, 17, 74, 45, 165, 116, 146, 74, 14, 193, 19, 143, 65, 244, 212, 67, 208, 60, 5, 225, 147, 143, 62, 251, 240, 211, 143, 63, 255, 60, 4, 80, 64, 2, 13, 100, 143, 60, 12, 45, 116, 15, 66, 13, 37, 116, 144, 66, 107, 111, 105, 56, 117, 0, 0, 0, 62, 254, 8, 100, 144, 66, 14, 73, 100, 145, 70, 30, 137, 164, 153, 103, 162, 153, 166, 154, 107, 178, 217, 38, 143, 110, 222, 136, 99, 142, 58, 238, 40, 64, 143, 7, 32, 144, 192, 3, 73, 42, 185, 36, 76, 51, 53, 89, 147, 77, 80, 70, 41, 229, 148, 84, 254, 100, 229, 149, 88, 102, 169, 165, 56, 229, 112, 121, 14, 58, 95, 130, 25, 166, 152, 99, 250, 84, 102, 1, 46, 65, 20, 145, 73, 20, 85, 68, 210, 68, 37, 97, 148, 145, 70, 27, 113, 212, 145, 71, 31, 189, 4, 82, 72, 34, 141, 100, 145, 68, 44, 173, 116, 17, 74, 45, 165, 116, 146, 74, 14, 193, 19, 143, 65, 244, 212, 67, 208, 60, 5, 225, 147, 143, 62, 251, 240, 211, 143, 63, 255, 60, 4, 80, 64, 2, 13, 100, 143, 60, 12, 45, 116, 15, 66, 13, 37, 116, 144, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 1, 48, 2, 48, 12, 255, 14, 255, 251, 48, 26, 255, 27, 255, 31, 255, 1, 255, 155, 48, 156, 48, 180, 0, 64, 255, 168, 0, 62, 255, 227, 255, 63, 255, 253, 48, 254, 48, 157, 48, 158, 48, 3, 48, 221, 78, 5, 48, 6, 48, 7, 48, 252, 48, 21, 32, 16, 32, 15, 255, 92, 0, 28, 48, 22, 32, 92, 255, 38, 32, 37, 32, 24, 32, 25, 32, 28, 32, 29, 32, 8, 255, 9, 255, 20, 48, 21, 48, 59, 255, 61, 255, 91, 255, 93, 255, 8, 48, 9, 48, 10, 48, 11, 48, 12, 48, 13, 48, 14, 48, 15, 48, 16, 48, 17, 48, 11, 255, 18, 34, 177, 0, 215, 0, 247, 0, 29, 255, 96, 34, 28, 255, 30, 255, 102, 34, 103, 34, 30, 34, 52, 34, 66, 38, 64, 38, 176, 0, 50, 32, 51, 32, 3, 33, 229, 255, 4, 255, 162, 0, 163, 0, 5, 255, 3, 255, 6, 255, 10, 255, 32, 255, 167, 0, 6, 38, 5, 38, 203, 37, 207, 37, 206, 37, 199, 37, 198, 37, 161, 37, 160, 37, 179, 37, 178, 37, 189, 37, 188, 37, 59, 32, 18, 48, 146, 33, 144, 33, 145, 33, 147, 33, 19, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 34, 11, 34, 134, 34, 135, 34, 130, 34, 131, 34, 42, 34, 41, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 34, 40, 34, 172, 0, 210, 33, 212, 33, 0, 34, 3, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 34, 165, 34, 18, 35, 2, 34, 7, 34, 97, 34, 82, 34, 106, 34, 107, 34, 26, 34, 61, 34, 29, 34, 53, 34, 43, 34, 44, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 33, 48, 32, 111, 38, 109, 38, 106, 38, 32, 32, 33, 32, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 255, 17, 255, 18, 255, 19, 255, 20, 255, 21, 255, 22, 255, 23, 255, 24, 255, 25, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 255, 34, 255, 35, 255, 36, 255, 37, 255, 38, 255, 39, 255, 40, 255, 41, 255, 42, 255, 43, 255, 44, 255, 45, 255, 46, 255, 47, 255, 48, 255, 49, 255, 50, 255, 51, 255, 52, 255, 53, 255, 54, 255, 55, 255, 56, 255, 57, 255, 58, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 255, 66, 255, 67, 255, 68, 255, 69, 255, 70, 255, 71, 255, 72, 255, 73, 255, 74, 255, 75, 255, 76, 255, 77, 255, 78, 255, 79, 255, 80, 255, 81, 255, 82, 255, 83, 255, 84, 255, 85, 255, 86, 255, 87, 255, 88, 255, 89, 255, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 65, 48, 66, 48, 67, 48, 68, 48, 69, 48, 70, 48, 71, 48, 72, 48, 73, 48, 74, 48, 75, 48, 76, 48, 77, 48, 78, 48, 79, 48, 80, 48, 81, 48, 82, 48, 83, 48, 84, 48, 85, 48, 86, 48, 87, 48, 88, 48, 89, 48, 90, 48, 91, 48, 92, 48, 93, 48, 94, 48, 95, 48, 96, 48, 97, 48, 98, 48, 99, 48, 100, 48, 101, 48, 102, 48, 103, 48, 104, 48, 105, 48, 106, 48, 107, 48, 108, 48, 109, 48, 110, 48, 111, 48, 112, 48, 113, 48, 114, 48, 115, 48, 116, 48, 117, 48, 118, 48, 119, 48, 120, 48, 121, 48, 122, 48, 123, 48, 124, 48, 125, 48, 126, 48, 127, 48, 128, 48, 129, 48, 130, 48, 131, 48, 132, 48, 133, 48, 134, 48, 135, 48, 136, 48, 137, 48, 138, 48, 139, 48, 140, 48, 141, 48, 142, 48, 143, 48, 144, 48, 145, 48, 146, 48, 147, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 48, 162, 48, 163, 48, 164, 48, 165, 48, 166, 48, 167, 48, 168, 48, 169, 48, 170, 48, 171, 48, 172, 48, 173, 48, 174, 48, 175, 48, 176, 48, 177, 48, 178, 48, 179, 48, 180, 48, 181, 48, 182, 48, 183, 48, 184, 48, 185, 48, 186, 48, 187, 48, 188, 48, 189, 48, 190, 48, 191, 48, 192, 48, 193, 48, 194, 48, 195, 48, 196, 48, 197, 48, 198, 48, 199, 48, 200, 48, 201, 48, 202, 48, 203, 48, 204, 48, 205, 48, 206, 48, 207, 48, 208, 48, 209, 48, 210, 48, 211, 48, 212, 48, 213, 48, 214, 48, 215, 48, 216, 48, 217, 48, 218, 48, 219, 48, 220, 48, 221, 48, 222, 48, 223, 48, 224, 48, 225, 48, 226, 48, 227, 48, 228, 48, 229, 48, 230, 48, 231, 48, 232, 48, 233, 48, 234, 48, 235, 48, 236, 48, 237, 48, 238, 48, 239, 48, 240, 48, 241, 48, 242, 48, 243, 48, 244, 48, 245, 48, 246, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 1, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 81, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 2, 37, 12, 37, 16, 37, 24, 37, 20, 37, 28, 37, 44, 37, 36, 37, 52, 37, 60, 37, 1, 37, 3, 37, 15, 37, 19, 37, 27, 37, 23, 37, 35, 37, 51, 37, 43, 37, 59, 37, 75, 37, 32, 37, 47, 37, 40, 37, 55, 37, 63, 37, 29, 37, 48, 37, 37, 37, 56, 37, 66, 37 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 10240 ); /* memory initializer */ allocate( [ 156, 78, 22, 85, 3, 90, 63, 150, 192, 84, 27, 97, 40, 99, 246, 89, 34, 144, 117, 132, 28, 131, 80, 122, 170, 96, 225, 99, 37, 110, 237, 101, 102, 132, 166, 130, 245, 155, 147, 104, 39, 87, 161, 101, 113, 98, 155, 91, 208, 89, 123, 134, 244, 152, 98, 125, 190, 125, 142, 155, 22, 98, 159, 124, 183, 136, 137, 91, 181, 94, 9, 99, 151, 102, 72, 104, 199, 149, 141, 151, 79, 103, 229, 78, 10, 79, 77, 79, 157, 79, 73, 80, 242, 86, 55, 89, 212, 89, 1, 90, 9, 92, 223, 96, 15, 97, 112, 97, 19, 102, 5, 105, 186, 112, 79, 117, 112, 117, 251, 121, 173, 125, 239, 125, 195, 128, 14, 132, 99, 136, 2, 139, 85, 144, 122, 144, 59, 83, 149, 78, 165, 78, 223, 87, 178, 128, 193, 144, 239, 120, 0, 78, 241, 88, 162, 110, 56, 144, 50, 122, 40, 131, 139, 130, 47, 156, 65, 81, 112, 83, 189, 84, 225, 84, 224, 86, 251, 89, 21, 95, 242, 152, 235, 109, 228, 128, 45, 133, 98, 150, 112, 150, 160, 150, 251, 151, 11, 84, 243, 83, 135, 91, 207, 112, 189, 127, 194, 143, 232, 150, 111, 83, 92, 157, 186, 122, 17, 78, 147, 120, 252, 129, 38, 110, 24, 86, 4, 85, 29, 107, 26, 133, 59, 156, 229, 89, 169, 83, 102, 109, 220, 116, 143, 149, 66, 86, 145, 78, 75, 144, 242, 150, 79, 131, 12, 153, 225, 83, 182, 85, 48, 91, 113, 95, 32, 102, 243, 102, 4, 104, 56, 108, 243, 108, 41, 109, 91, 116, 200, 118, 78, 122, 52, 152, 241, 130, 91, 136, 96, 138, 237, 146, 178, 109, 171, 117, 202, 118, 197, 153, 166, 96, 1, 139, 138, 141, 178, 149, 142, 105, 173, 83, 134, 81, 18, 87, 48, 88, 68, 89, 180, 91, 246, 94, 40, 96, 169, 99, 244, 99, 191, 108, 20, 111, 142, 112, 20, 113, 89, 113, 213, 113, 63, 115, 1, 126, 118, 130, 209, 130, 151, 133, 96, 144, 91, 146, 27, 157, 105, 88, 188, 101, 90, 108, 37, 117, 249, 81, 46, 89, 101, 89, 128, 95, 220, 95, 188, 98, 250, 101, 42, 106, 39, 107, 180, 107, 139, 115, 193, 127, 86, 137, 44, 157, 14, 157, 196, 158, 161, 92, 150, 108, 123, 131, 4, 81, 75, 92, 182, 97, 198, 129, 118, 104, 97, 114, 89, 78, 250, 79, 120, 83, 105, 96, 41, 110, 79, 122, 243, 151, 11, 78, 22, 83, 238, 78, 85, 79, 61, 79, 161, 79, 115, 79, 160, 82, 239, 83, 9, 86, 15, 89, 193, 90, 182, 91, 225, 91, 209, 121, 135, 102, 156, 103, 182, 103, 76, 107, 179, 108, 107, 112, 194, 115, 141, 121, 190, 121, 60, 122, 135, 123, 177, 130, 219, 130, 4, 131, 119, 131, 239, 131, 211, 131, 102, 135, 178, 138, 41, 86, 168, 140, 230, 143, 78, 144, 30, 151, 138, 134, 196, 79, 232, 92, 17, 98, 89, 114, 59, 117, 229, 129, 189, 130, 254, 134, 192, 140, 197, 150, 19, 153, 213, 153, 203, 78, 26, 79, 227, 137, 222, 86, 74, 88, 202, 88, 251, 94, 235, 95, 42, 96, 148, 96, 98, 96, 208, 97, 18, 98, 208, 98, 57, 101, 65, 155, 102, 102, 176, 104, 119, 109, 112, 112, 76, 117, 134, 118, 117, 125, 165, 130, 249, 135, 139, 149, 142, 150, 157, 140, 241, 81, 190, 82, 22, 89, 179, 84, 179, 91, 22, 93, 104, 97, 130, 105, 175, 109, 141, 120, 203, 132, 87, 136, 114, 138, 167, 147, 184, 154, 108, 109, 168, 153, 217, 134, 163, 87, 255, 103, 206, 134, 14, 146, 131, 82, 135, 86, 4, 84, 211, 94, 225, 98, 185, 100, 60, 104, 56, 104, 187, 107, 114, 115, 186, 120, 107, 122, 154, 137, 210, 137, 107, 141, 3, 143, 237, 144, 163, 149, 148, 150, 105, 151, 102, 91, 179, 92, 125, 105, 77, 152, 78, 152, 155, 99, 32, 123, 43, 106, 127, 106, 182, 104, 13, 156, 95, 111, 114, 82, 157, 85, 112, 96, 236, 98, 59, 109, 7, 110, 209, 110, 91, 132, 16, 137, 68, 143, 20, 78, 57, 156, 246, 83, 27, 105, 58, 106, 132, 151, 42, 104, 92, 81, 195, 122, 178, 132, 220, 145, 140, 147, 91, 86, 40, 157, 34, 104, 5, 131, 49, 132, 165, 124, 8, 82, 197, 130, 230, 116, 126, 78, 131, 79, 160, 81, 210, 91, 10, 82, 216, 82, 231, 82, 251, 93, 154, 85, 42, 88, 230, 89, 140, 91, 152, 91, 219, 91, 114, 94, 121, 94, 163, 96, 31, 97, 99, 97, 190, 97, 219, 99, 98, 101, 209, 103, 83, 104, 250, 104, 62, 107, 83, 107, 87, 108, 34, 111, 151, 111, 69, 111, 176, 116, 24, 117, 227, 118, 11, 119, 255, 122, 161, 123, 33, 124, 233, 125, 54, 127, 240, 127, 157, 128, 102, 130, 158, 131, 179, 137, 204, 138, 171, 140, 132, 144, 81, 148, 147, 149, 145, 149, 162, 149, 101, 150, 211, 151, 40, 153, 24, 130, 56, 78, 43, 84, 184, 92, 204, 93, 169, 115, 76, 118, 60, 119, 169, 92, 235, 127, 11, 141, 193, 150, 17, 152, 84, 152, 88, 152, 1, 79, 14, 79, 113, 83, 156, 85, 104, 86, 250, 87, 71, 89, 9, 91, 196, 91, 144, 92, 12, 94, 126, 94, 204, 95, 238, 99, 58, 103, 215, 101, 226, 101, 31, 103, 203, 104, 196, 104, 95, 106, 48, 94, 197, 107, 23, 108, 125, 108, 127, 117, 72, 121, 99, 91, 0, 122, 0, 125, 189, 95, 143, 137, 24, 138, 180, 140, 119, 141, 204, 142, 29, 143, 226, 152, 14, 154, 60, 155, 128, 78, 125, 80, 0, 81, 147, 89, 156, 91, 47, 98, 128, 98, 236, 100, 58, 107, 160, 114, 145, 117, 71, 121, 169, 127, 251, 135, 188, 138, 112, 139, 172, 99, 202, 131, 160, 151, 9, 84, 3, 84, 171, 85, 84, 104, 88, 106, 112, 138, 39, 120, 117, 103, 205, 158, 116, 83, 162, 91, 26, 129, 80, 134, 6, 144, 24, 78, 69, 78, 199, 78, 17, 79, 202, 83, 56, 84, 174, 91, 19, 95, 37, 96, 81, 101, 61, 103, 66, 108, 114, 108, 227, 108, 120, 112, 3, 116, 118, 122, 174, 122, 8, 123, 26, 125, 254, 124, 102, 125, 231, 101, 91, 114, 187, 83, 69, 92, 232, 93, 210, 98, 224, 98, 25, 99, 32, 110, 90, 134, 49, 138, 221, 141, 248, 146, 1, 111, 166, 121, 90, 155, 168, 78, 171, 78, 172, 78, 155, 79, 160, 79, 209, 80, 71, 81, 246, 122, 113, 81, 246, 81, 84, 83, 33, 83, 127, 83, 235, 83, 172, 85, 131, 88, 225, 92, 55, 95, 74, 95, 47, 96, 80, 96, 109, 96, 31, 99, 89, 101, 75, 106, 193, 108, 194, 114, 237, 114, 239, 119, 248, 128, 5, 129, 8, 130, 78, 133, 247, 144, 225, 147, 255, 151, 87, 153, 90, 154, 240, 78, 221, 81, 45, 92, 129, 102, 109, 105, 64, 92, 242, 102, 117, 105, 137, 115, 80, 104, 129, 124, 197, 80, 228, 82, 71, 87, 254, 93, 38, 147, 164, 101, 35, 107, 61, 107, 52, 116, 129, 121, 189, 121, 75, 123, 202, 125, 185, 130, 204, 131, 127, 136, 95, 137, 57, 139, 209, 143, 209, 145, 31, 84, 128, 146, 93, 78, 54, 80, 229, 83, 58, 83, 215, 114, 150, 115, 233, 119, 230, 130, 175, 142, 198, 153, 200, 153, 210, 153, 119, 81, 26, 97, 94, 134, 176, 85, 122, 122, 118, 80, 211, 91, 71, 144, 133, 150, 50, 78, 219, 106, 231, 145, 81, 92, 72, 92, 152, 99, 159, 122, 147, 108, 116, 151, 97, 143, 170, 122, 138, 113, 136, 150, 130, 124, 23, 104, 112, 126, 81, 104, 108, 147, 242, 82, 27, 84, 171, 133, 19, 138, 164, 127, 205, 142, 225, 144, 102, 83, 136, 136, 65, 121, 194, 79, 190, 80, 17, 82, 68, 81, 83, 85, 45, 87, 234, 115, 139, 87, 81, 89, 98, 95, 132, 95, 117, 96, 118, 97, 103, 97, 169, 97, 178, 99, 58, 100, 108, 101, 111, 102, 66, 104, 19, 110, 102, 117, 61, 122, 251, 124, 76, 125, 153, 125, 75, 126, 107, 127, 14, 131, 74, 131, 205, 134, 8, 138, 99, 138, 102, 139, 253, 142, 26, 152, 143, 157, 184, 130, 206, 143, 232, 155, 135, 82, 31, 98, 131, 100, 192, 111, 153, 150, 65, 104, 145, 80, 32, 107, 122, 108, 84, 111, 116, 122, 80, 125, 64, 136, 35, 138, 8, 103, 246, 78, 57, 80, 38, 80, 101, 80, 124, 81, 56, 82, 99, 82, 167, 85, 15, 87, 5, 88, 204, 90, 250, 94, 178, 97, 248, 97, 243, 98, 114, 99, 28, 105, 41, 106, 125, 114, 172, 114, 46, 115, 20, 120, 111, 120, 121, 125, 12, 119, 169, 128, 139, 137, 25, 139, 226, 140, 210, 142, 99, 144, 117, 147, 122, 150, 85, 152, 19, 154, 120, 158, 67, 81, 159, 83, 179, 83, 123, 94, 38, 95, 27, 110, 144, 110, 132, 115, 254, 115, 67, 125, 55, 130, 0, 138, 250, 138, 80, 150, 78, 78, 11, 80, 228, 83, 124, 84, 250, 86, 209, 89, 100, 91, 241, 93, 171, 94, 39, 95, 56, 98, 69, 101, 175, 103, 86, 110, 208, 114, 202, 124, 180, 136, 161, 128, 225, 128, 240, 131, 78, 134, 135, 138, 232, 141, 55, 146, 199, 150, 103, 152, 19, 159, 148, 78, 146, 78, 13, 79, 72, 83, 73, 84, 62, 84, 47, 90, 140, 95, 161, 95, 159, 96, 167, 104, 142, 106, 90, 116, 129, 120, 158, 138, 164, 138, 119, 139, 144, 145, 94, 78, 201, 155, 164, 78, 124, 79, 175, 79, 25, 80, 22, 80, 73, 81, 108, 81, 159, 82, 185, 82, 254, 82, 154, 83, 227, 83, 17, 84, 14, 84, 137, 85, 81, 87, 162, 87, 125, 89, 84, 91, 93, 91, 143, 91, 229, 93, 231, 93, 247, 93, 120, 94, 131, 94, 154, 94, 183, 94, 24, 95, 82, 96, 76, 97, 151, 98, 216, 98, 167, 99, 59, 101, 2, 102, 67, 102, 244, 102, 109, 103, 33, 104, 151, 104, 203, 105, 95, 108, 42, 109, 105, 109, 47, 110, 157, 110, 50, 117, 135, 118, 108, 120, 63, 122, 224, 124, 5, 125, 24, 125, 94, 125, 177, 125, 21, 128, 3, 128, 175, 128, 177, 128, 84, 129, 143, 129, 42, 130, 82, 131, 76, 136, 97, 136, 27, 139, 162, 140, 252, 140, 202, 144, 117, 145, 113, 146, 63, 120, 252, 146, 164, 149, 77, 150, 5, 152, 153, 153, 216, 154, 59, 157, 91, 82, 171, 82, 247, 83, 8, 84, 213, 88, 247, 98, 224, 111, 106, 140, 95, 143, 185, 158, 75, 81, 59, 82, 74, 84, 253, 86, 64, 122, 119, 145, 96, 157, 210, 158, 68, 115, 9, 111, 112, 129, 17, 117, 253, 95, 218, 96, 168, 154, 219, 114, 188, 143, 100, 107, 3, 152, 202, 78, 240, 86, 100, 87, 190, 88, 90, 90, 104, 96, 199, 97, 15, 102, 6, 102, 57, 104, 177, 104, 247, 109, 213, 117, 58, 125, 110, 130, 66, 155, 155, 78, 80, 79, 201, 83, 6, 85, 111, 93, 230, 93, 238, 93, 251, 103, 153, 108, 115, 116, 2, 120, 80, 138, 150, 147, 223, 136, 80, 87, 167, 94, 43, 99, 181, 80, 172, 80, 141, 81, 0, 103, 201, 84, 94, 88, 187, 89, 176, 91, 105, 95, 77, 98, 161, 99, 61, 104, 115, 107, 8, 110, 125, 112, 199, 145, 128, 114, 21, 120, 38, 120, 109, 121, 142, 101, 48, 125, 220, 131, 193, 136, 9, 143, 155, 150, 100, 82, 40, 87, 80, 103, 106, 127, 161, 140, 180, 81, 66, 87, 42, 150, 58, 88, 138, 105, 180, 128, 178, 84, 14, 93, 252, 87, 149, 120, 250, 157, 92, 79, 74, 82, 139, 84, 62, 100, 40, 102, 20, 103, 245, 103, 132, 122, 86, 123, 34, 125, 47, 147, 92, 104, 173, 155, 57, 123, 25, 83, 138, 81, 55, 82, 223, 91, 246, 98, 174, 100, 230, 100, 45, 103, 186, 107, 169, 133, 209, 150, 144, 118, 214, 155, 76, 99, 6, 147, 171, 155, 191, 118, 82, 102, 9, 78, 152, 80, 194, 83, 113, 92, 232, 96, 146, 100, 99, 101, 95, 104, 230, 113, 202, 115, 35, 117, 151, 123, 130, 126, 149, 134, 131, 139, 219, 140, 120, 145, 16, 153, 172, 101, 171, 102, 139, 107, 213, 78, 212, 78, 58, 79, 127, 79, 58, 82, 248, 83, 242, 83, 227, 85, 219, 86, 235, 88, 203, 89, 201, 89, 255, 89, 80, 91, 77, 92, 2, 94, 43, 94, 215, 95, 29, 96, 7, 99, 47, 101, 92, 91, 175, 101, 189, 101, 232, 101, 157, 103, 98, 107, 123, 107, 15, 108, 69, 115, 73, 121, 193, 121, 248, 124, 25, 125, 43, 125, 162, 128, 2, 129, 243, 129, 150, 137, 94, 138, 105, 138, 102, 138, 140, 138, 238, 138, 199, 140, 220, 140, 204, 150, 252, 152, 111, 107, 139, 78, 60, 79, 141, 79, 80, 81, 87, 91, 250, 91, 72, 97, 1, 99, 66, 102, 33, 107, 203, 110, 187, 108, 62, 114, 189, 116, 212, 117, 193, 120, 58, 121, 12, 128, 51, 128, 234, 129, 148, 132, 158, 143, 80, 108, 127, 158, 15, 95, 88, 139, 43, 157, 250, 122, 248, 142, 141, 91, 235, 150, 3, 78, 241, 83, 247, 87, 49, 89, 201, 90, 164, 91, 137, 96, 127, 110, 6, 111, 190, 117, 234, 140, 159, 91, 0, 133, 224, 123, 114, 80, 244, 103, 157, 130, 97, 92, 74, 133, 30, 126, 14, 130, 153, 81, 4, 92, 104, 99, 102, 141, 156, 101, 110, 113, 62, 121, 23, 125, 5, 128, 29, 139, 202, 142, 110, 144, 199, 134, 170, 144, 31, 80, 250, 82, 58, 92, 83, 103, 124, 112, 53, 114, 76, 145, 200, 145, 43, 147, 229, 130, 194, 91, 49, 95, 249, 96, 59, 78, 214, 83, 136, 91, 75, 98, 49, 103, 138, 107, 233, 114, 224, 115, 46, 122, 107, 129, 163, 141, 82, 145, 150, 153, 18, 81, 215, 83, 106, 84, 255, 91, 136, 99, 57, 106, 172, 125, 0, 151, 218, 86, 206, 83, 104, 84, 151, 91, 49, 92, 222, 93, 238, 79, 1, 97, 254, 98, 50, 109, 192, 121, 203, 121, 66, 125, 77, 126, 210, 127, 237, 129, 31, 130, 144, 132, 70, 136, 114, 137, 144, 139, 116, 142, 47, 143, 49, 144, 75, 145, 108, 145, 198, 150, 156, 145, 192, 78, 79, 79, 69, 81, 65, 83, 147, 95, 14, 98, 212, 103, 65, 108, 11, 110, 99, 115, 38, 126, 205, 145, 131, 146, 212, 83, 25, 89, 191, 91, 209, 109, 93, 121, 46, 126, 155, 124, 126, 88, 159, 113, 250, 81, 83, 136, 240, 143, 202, 79, 251, 92, 37, 102, 172, 119, 227, 122, 28, 130, 255, 153, 198, 81, 170, 95, 236, 101, 111, 105, 137, 107, 243, 109, 150, 110, 100, 111, 254, 118, 20, 125, 225, 93, 117, 144, 135, 145, 6, 152, 230, 81, 29, 82, 64, 98, 145, 102, 217, 102, 26, 110, 182, 94, 210, 125, 114, 127, 248, 102, 175, 133, 247, 133, 248, 138, 169, 82, 217, 83, 115, 89, 143, 94, 144, 95, 85, 96, 228, 146, 100, 150, 183, 80, 31, 81, 221, 82, 32, 83, 71, 83, 236, 83, 232, 84, 70, 85, 49, 85, 23, 86, 104, 89, 190, 89, 60, 90, 181, 91, 6, 92, 15, 92, 17, 92, 26, 92, 132, 94, 138, 94, 224, 94, 112, 95, 127, 98, 132, 98, 219, 98, 140, 99, 119, 99, 7, 102, 12, 102, 45, 102, 118, 102, 126, 103, 162, 104, 31, 106, 53, 106, 188, 108, 136, 109, 9, 110, 88, 110, 60, 113, 38, 113, 103, 113, 199, 117, 1, 119, 93, 120, 1, 121, 101, 121, 240, 121, 224, 122, 17, 123, 167, 124, 57, 125, 150, 128, 214, 131, 139, 132, 73, 133, 93, 136, 243, 136, 31, 138, 60, 138, 84, 138, 115, 138, 97, 140, 222, 140, 164, 145, 102, 146, 126, 147, 24, 148, 156, 150, 152, 151, 10, 78, 8, 78, 30, 78, 87, 78, 151, 81, 112, 82, 206, 87, 52, 88, 204, 88, 34, 91, 56, 94, 197, 96, 254, 100, 97, 103, 86, 103, 68, 109, 182, 114, 115, 117, 99, 122, 184, 132, 114, 139, 184, 145, 32, 147, 49, 86, 244, 87, 254, 152, 237, 98, 13, 105, 150, 107, 237, 113, 84, 126, 119, 128, 114, 130, 230, 137, 223, 152, 85, 135, 177, 143, 59, 92, 56, 79, 225, 79, 181, 79, 7, 85, 32, 90, 221, 91, 233, 91, 195, 95, 78, 97, 47, 99, 176, 101, 75, 102, 238, 104, 155, 105, 120, 109, 241, 109, 51, 117, 185, 117, 31, 119, 94, 121, 230, 121, 51, 125, 227, 129, 175, 130, 170, 133, 170, 137, 58, 138, 171, 142, 155, 143, 50, 144, 221, 145, 7, 151, 186, 78, 193, 78, 3, 82, 117, 88, 236, 88, 11, 92, 26, 117, 61, 92, 78, 129, 10, 138, 197, 143, 99, 150, 109, 151, 37, 123, 207, 138, 8, 152, 98, 145, 243, 86, 168, 83, 23, 144, 57, 84, 130, 87, 37, 94, 168, 99, 52, 108, 138, 112, 97, 119, 139, 124, 224, 127, 112, 136, 66, 144, 84, 145, 16, 147, 24, 147, 143, 150, 94, 116, 196, 154, 7, 93, 105, 93, 112, 101, 162, 103, 168, 141, 219, 150, 110, 99, 73, 103, 25, 105, 197, 131, 23, 152, 192, 150, 254, 136, 132, 111, 122, 100, 248, 91, 22, 78, 44, 112, 93, 117, 47, 102, 196, 81, 54, 82, 226, 82, 211, 89, 129, 95, 39, 96, 16, 98, 63, 101, 116, 101, 31, 102, 116, 102, 242, 104, 22, 104, 99, 107, 5, 110, 114, 114, 31, 117, 219, 118, 190, 124, 86, 128, 240, 88, 253, 136, 127, 137, 160, 138, 147, 138, 203, 138, 29, 144, 146, 145, 82, 151, 89, 151, 137, 101, 14, 122, 6, 129, 187, 150, 45, 94, 220, 96, 26, 98, 165, 101, 20, 102, 144, 103, 243, 119, 77, 122, 77, 124, 62, 126, 10, 129, 172, 140, 100, 141, 225, 141, 95, 142, 169, 120, 7, 82, 217, 98, 165, 99, 66, 100, 152, 98, 45, 138, 131, 122, 192, 123, 172, 138, 234, 150, 118, 125, 12, 130, 73, 135, 217, 78, 72, 81, 67, 83, 96, 83, 163, 91, 2, 92, 22, 92, 221, 93, 38, 98, 71, 98, 176, 100, 19, 104, 52, 104, 201, 108, 69, 109, 23, 109, 211, 103, 92, 111, 78, 113, 125, 113, 203, 101, 127, 122, 173, 123, 218, 125, 74, 126, 168, 127, 122, 129, 27, 130, 57, 130, 166, 133, 110, 138, 206, 140, 245, 141, 120, 144, 119, 144, 173, 146, 145, 146, 131, 149, 174, 155, 77, 82, 132, 85, 56, 111, 54, 113, 104, 81, 133, 121, 85, 126, 179, 129, 206, 124, 76, 86, 81, 88, 168, 92, 170, 99, 254, 102, 253, 102, 90, 105, 217, 114, 143, 117, 142, 117, 14, 121, 86, 121, 223, 121, 151, 124, 32, 125, 68, 125, 7, 134, 52, 138, 59, 150, 97, 144, 32, 159, 231, 80, 117, 82, 204, 83, 226, 83, 9, 80, 170, 85, 238, 88, 79, 89, 61, 114, 139, 91, 100, 92, 29, 83, 227, 96, 243, 96, 92, 99, 131, 99, 63, 99, 187, 99, 205, 100, 233, 101, 249, 102, 227, 93, 205, 105, 253, 105, 21, 111, 229, 113, 137, 78, 233, 117, 248, 118, 147, 122, 223, 124, 207, 125, 156, 125, 97, 128, 73, 131, 88, 131, 108, 132, 188, 132, 251, 133, 197, 136, 112, 141, 1, 144, 109, 144, 151, 147, 28, 151, 18, 154, 207, 80, 151, 88, 142, 97, 211, 129, 53, 133, 8, 141, 32, 144, 195, 79, 116, 80, 71, 82, 115, 83, 111, 96, 73, 99, 95, 103, 44, 110, 179, 141, 31, 144, 215, 79, 94, 92, 202, 140, 207, 101, 154, 125, 82, 83, 150, 136, 118, 81, 195, 99, 88, 91, 107, 91, 10, 92, 13, 100, 81, 103, 92, 144, 214, 78, 26, 89, 42, 89, 112, 108, 81, 138, 62, 85, 21, 88, 165, 89, 240, 96, 83, 98, 193, 103, 53, 130, 85, 105, 64, 150, 196, 153, 40, 154, 83, 79, 6, 88, 254, 91, 16, 128, 177, 92, 47, 94, 133, 95, 32, 96, 75, 97, 52, 98, 255, 102, 240, 108, 222, 110, 206, 128, 127, 129, 212, 130, 139, 136, 184, 140, 0, 144, 46, 144, 138, 150, 219, 158, 219, 155, 227, 78, 240, 83, 39, 89, 44, 123, 141, 145, 76, 152, 249, 157, 221, 110, 39, 112, 83, 83, 68, 85, 133, 91, 88, 98, 158, 98, 211, 98, 162, 108, 239, 111, 34, 116, 23, 138, 56, 148, 193, 111, 254, 138, 56, 131, 231, 81, 248, 134, 234, 83, 233, 83, 70, 79, 84, 144, 176, 143, 106, 89, 49, 129, 253, 93, 234, 122, 191, 143, 218, 104, 55, 140, 248, 114, 72, 156, 61, 106, 176, 138, 57, 78, 88, 83, 6, 86, 102, 87, 197, 98, 162, 99, 230, 101, 78, 107, 225, 109, 91, 110, 173, 112, 237, 119, 239, 122, 170, 123, 187, 125, 61, 128, 198, 128, 203, 134, 149, 138, 91, 147, 227, 86, 199, 88, 62, 95, 173, 101, 150, 102, 128, 106, 181, 107, 55, 117, 199, 138, 36, 80, 229, 119, 48, 87, 27, 95, 101, 96, 122, 102, 96, 108, 244, 117, 26, 122, 110, 127, 244, 129, 24, 135, 69, 144, 179, 153, 201, 123, 92, 117, 249, 122, 81, 123, 196, 132, 16, 144, 233, 121, 146, 122, 54, 131, 225, 90, 64, 119, 45, 78, 242, 78, 153, 91, 224, 95, 189, 98, 60, 102, 241, 103, 232, 108, 107, 134, 119, 136, 59, 138, 78, 145, 243, 146, 208, 153, 23, 106, 38, 112, 42, 115, 231, 130, 87, 132, 175, 140, 1, 78, 70, 81, 203, 81, 139, 85, 245, 91, 22, 94, 51, 94, 129, 94, 20, 95, 53, 95, 107, 95, 180, 95, 242, 97, 17, 99, 162, 102, 29, 103, 110, 111, 82, 114, 58, 117, 58, 119, 116, 128, 57, 129, 120, 129, 118, 135, 191, 138, 220, 138, 133, 141, 243, 141, 154, 146, 119, 149, 2, 152, 229, 156, 197, 82, 87, 99, 244, 118, 21, 103, 136, 108, 205, 115, 195, 140, 174, 147, 115, 150, 37, 109, 156, 88, 14, 105, 204, 105, 253, 143, 154, 147, 219, 117, 26, 144, 90, 88, 2, 104, 180, 99, 251, 105, 67, 79, 44, 111, 216, 103, 187, 143, 38, 133, 180, 125, 84, 147, 63, 105, 112, 111, 106, 87, 247, 88, 44, 91, 44, 125, 42, 114, 10, 84, 227, 145, 180, 157, 173, 78, 78, 79, 92, 80, 117, 80, 67, 82, 158, 140, 72, 84, 36, 88, 154, 91, 29, 94, 149, 94, 173, 94, 247, 94, 31, 95, 140, 96, 181, 98, 58, 99, 208, 99, 175, 104, 64, 108, 135, 120, 142, 121, 11, 122, 224, 125, 71, 130, 2, 138, 230, 138, 68, 142, 19, 144, 184, 144, 45, 145, 216, 145, 14, 159, 229, 108, 88, 100, 226, 100, 117, 101, 244, 110, 132, 118, 27, 123, 105, 144, 209, 147, 186, 110, 242, 84, 185, 95, 164, 100, 77, 143, 237, 143, 68, 146, 120, 81, 107, 88, 41, 89, 85, 92, 151, 94, 251, 109, 143, 126, 28, 117, 188, 140, 226, 142, 91, 152, 185, 112, 29, 79, 191, 107, 177, 111, 48, 117, 251, 150, 78, 81, 16, 84, 53, 88, 87, 88, 172, 89, 96, 92, 146, 95, 151, 101, 92, 103, 33, 110, 123, 118, 223, 131, 237, 140, 20, 144, 253, 144, 77, 147, 37, 120, 58, 120, 170, 82, 166, 94, 31, 87, 116, 89, 18, 96, 18, 80, 90, 81, 172, 81, 205, 81, 0, 82, 16, 85, 84, 88, 88, 88, 87, 89, 149, 91, 246, 92, 139, 93, 188, 96, 149, 98, 45, 100, 113, 103, 67, 104, 188, 104, 223, 104, 215, 118, 216, 109, 111, 110, 155, 109, 111, 112, 200, 113, 83, 95, 216, 117, 119, 121, 73, 123, 84, 123, 82, 123, 214, 124, 113, 125, 48, 82, 99, 132, 105, 133, 228, 133, 14, 138, 4, 139, 70, 140, 15, 142, 3, 144, 15, 144, 25, 148, 118, 150, 45, 152, 48, 154, 216, 149, 205, 80, 213, 82, 12, 84, 2, 88, 14, 92, 167, 97, 158, 100, 30, 109, 179, 119, 229, 122, 244, 128, 4, 132, 83, 144, 133, 146, 224, 92, 7, 157, 63, 83, 151, 95, 179, 95, 156, 109, 121, 114, 99, 119, 191, 121, 228, 123, 210, 107, 236, 114, 173, 138, 3, 104, 97, 106, 248, 81, 129, 122, 52, 105, 74, 92, 246, 156, 235, 130, 197, 91, 73, 145, 30, 112, 120, 86, 111, 92, 199, 96, 102, 101, 140, 108, 90, 140, 65, 144, 19, 152, 81, 84, 199, 102, 13, 146, 72, 89, 163, 144, 133, 81, 77, 78, 234, 81, 153, 133, 14, 139, 88, 112, 122, 99, 75, 147, 98, 105, 180, 153, 4, 126, 119, 117, 87, 83, 96, 105, 223, 142, 227, 150, 93, 108, 140, 78, 60, 92, 16, 95, 233, 143, 2, 83, 209, 140, 137, 128, 121, 134, 255, 94, 229, 101, 115, 78, 101, 81, 130, 89, 63, 92, 238, 151, 251, 78, 138, 89, 205, 95, 141, 138, 225, 111, 176, 121, 98, 121, 231, 91, 113, 132, 43, 115, 177, 113, 116, 94, 245, 95, 123, 99, 154, 100, 195, 113, 152, 124, 67, 78, 252, 94, 75, 78, 220, 87, 162, 86, 169, 96, 195, 111, 13, 125, 253, 128, 51, 129, 191, 129, 178, 143, 151, 137, 164, 134, 244, 93, 138, 98, 173, 100, 135, 137, 119, 103, 226, 108, 62, 109, 54, 116, 52, 120, 70, 90, 117, 127, 173, 130, 172, 153, 243, 79, 195, 94, 221, 98, 146, 99, 87, 101, 111, 103, 195, 118, 76, 114, 204, 128, 186, 128, 41, 143, 77, 145, 13, 80, 249, 87, 146, 90, 133, 104, 115, 105, 100, 113, 253, 114, 183, 140, 242, 88, 224, 140, 106, 150, 25, 144, 127, 135, 228, 121, 231, 119, 41, 132, 47, 79, 101, 82, 90, 83, 205, 98, 207, 103, 202, 108, 125, 118, 148, 123, 149, 124, 54, 130, 132, 133, 235, 143, 221, 102, 32, 111, 6, 114, 27, 126, 171, 131, 193, 153, 166, 158, 253, 81, 177, 123, 114, 120, 184, 123, 135, 128, 72, 123, 232, 106, 97, 94, 140, 128, 81, 117, 96, 117, 107, 81, 98, 146, 140, 110, 122, 118, 151, 145, 234, 154, 16, 79, 112, 127, 156, 98, 79, 123, 165, 149, 233, 156, 122, 86, 89, 88, 228, 134, 188, 150, 52, 79, 36, 82, 74, 83, 205, 83, 219, 83, 6, 94, 44, 100, 145, 101, 127, 103, 62, 108, 78, 108, 72, 114, 175, 114, 237, 115, 84, 117, 65, 126, 44, 130, 233, 133, 169, 140, 196, 123, 198, 145, 105, 113, 18, 152, 239, 152, 61, 99, 105, 102, 106, 117, 228, 118, 208, 120, 67, 133, 238, 134, 42, 83, 81, 83, 38, 84, 131, 89, 135, 94, 124, 95, 178, 96, 73, 98, 121, 98, 171, 98, 144, 101, 212, 107, 204, 108, 178, 117, 174, 118, 145, 120, 216, 121, 203, 125, 119, 127, 165, 128, 171, 136, 185, 138, 187, 140, 127, 144, 94, 151, 219, 152, 11, 106, 56, 124, 153, 80, 62, 92, 174, 95, 135, 103, 216, 107, 53, 116, 9, 119, 142, 127, 59, 159, 202, 103, 23, 122, 57, 83, 139, 117, 237, 154, 102, 95, 157, 129, 241, 131, 152, 128, 60, 95, 197, 95, 98, 117, 70, 123, 60, 144, 103, 104, 235, 89, 155, 90, 16, 125, 126, 118, 44, 139, 245, 79, 106, 95, 25, 106, 55, 108, 2, 111, 226, 116, 104, 121, 104, 136, 85, 138, 121, 140, 223, 94, 207, 99, 197, 117, 210, 121, 215, 130, 40, 147, 242, 146, 156, 132, 237, 134, 45, 156, 193, 84, 108, 95, 140, 101, 92, 109, 21, 112, 167, 140, 211, 140, 59, 152, 79, 101, 246, 116, 13, 78, 216, 78, 224, 87, 43, 89, 102, 90, 204, 91, 168, 81, 3, 94, 156, 94, 22, 96, 118, 98, 119, 101, 167, 101, 110, 102, 110, 109, 54, 114, 38, 123, 80, 129, 154, 129, 153, 130, 92, 139, 160, 140, 230, 140, 116, 141, 28, 150, 68, 150, 174, 79, 171, 100, 102, 107, 30, 130, 97, 132, 106, 133, 232, 144, 1, 92, 83, 105, 168, 152, 122, 132, 87, 133, 15, 79, 111, 82, 169, 95, 69, 94, 13, 103, 143, 121, 121, 129, 7, 137, 134, 137, 245, 109, 23, 95, 85, 98, 184, 108, 207, 78, 105, 114, 146, 155, 6, 82, 59, 84, 116, 86, 179, 88, 164, 97, 110, 98, 26, 113, 110, 89, 137, 124, 222, 124, 27, 125, 240, 150, 135, 101, 94, 128, 25, 78, 117, 79, 117, 81, 64, 88, 99, 94, 115, 94, 10, 95, 196, 103, 38, 78, 61, 133, 137, 149, 91, 150, 115, 124, 1, 152, 251, 80, 193, 88, 86, 118, 167, 120, 37, 82, 165, 119, 17, 133, 134, 123, 79, 80, 9, 89, 71, 114, 199, 123, 232, 125, 186, 143, 212, 143, 77, 144, 191, 79, 201, 82, 41, 90, 1, 95, 173, 151, 221, 79, 23, 130, 234, 146, 3, 87, 85, 99, 105, 107, 43, 117, 220, 136, 20, 143, 66, 122, 223, 82, 147, 88, 85, 97, 10, 98, 174, 102, 205, 107, 63, 124, 233, 131, 35, 80, 248, 79, 5, 83, 70, 84, 49, 88, 73, 89, 157, 91, 240, 92, 239, 92, 41, 93, 150, 94, 177, 98, 103, 99, 62, 101, 185, 101, 11, 103, 213, 108, 225, 108, 249, 112, 50, 120, 43, 126, 222, 128, 179, 130, 12, 132, 236, 132, 2, 135, 18, 137, 42, 138, 74, 140, 166, 144, 210, 146, 253, 152, 243, 156, 108, 157, 79, 78, 161, 78, 141, 80, 86, 82, 74, 87, 168, 89, 61, 94, 216, 95, 217, 95, 63, 98, 180, 102, 27, 103, 208, 103, 210, 104, 146, 81, 33, 125, 170, 128, 168, 129, 0, 139, 140, 140, 191, 140, 126, 146, 50, 150, 32, 84, 44, 152, 23, 83, 213, 80, 92, 83, 168, 88, 178, 100, 52, 103, 103, 114, 102, 119, 70, 122, 230, 145, 195, 82, 161, 108, 134, 107, 0, 88, 76, 94, 84, 89, 44, 103, 251, 127, 225, 81, 198, 118, 105, 100, 232, 120, 84, 155, 187, 158, 203, 87, 185, 89, 39, 102, 154, 103, 206, 107, 233, 84, 217, 105, 85, 94, 156, 129, 149, 103, 170, 155, 254, 103, 82, 156, 93, 104, 166, 78, 227, 79, 200, 83, 185, 98, 43, 103, 171, 108, 196, 143, 173, 79, 109, 126, 191, 158, 7, 78, 98, 97, 128, 110, 43, 111, 19, 133, 115, 84, 42, 103, 69, 155, 243, 93, 149, 123, 172, 92, 198, 91, 28, 135, 74, 110, 209, 132, 20, 122, 8, 129, 153, 89, 141, 124, 17, 108, 32, 119, 217, 82, 34, 89, 33, 113, 95, 114, 219, 119, 39, 151, 97, 157, 11, 105, 127, 90, 24, 90, 165, 81, 13, 84, 125, 84, 14, 102, 223, 118, 247, 143, 152, 146, 244, 156, 234, 89, 93, 114, 197, 110, 77, 81, 201, 104, 191, 125, 236, 125, 98, 151, 186, 158, 120, 100, 33, 106, 2, 131, 132, 89, 95, 91, 219, 107, 27, 115, 242, 118, 178, 125, 23, 128, 153, 132, 50, 81, 40, 103, 217, 158, 238, 118, 98, 103, 255, 82, 5, 153, 36, 92, 59, 98, 126, 124, 176, 140, 79, 85, 182, 96, 11, 125, 128, 149, 1, 83, 95, 78, 182, 81, 28, 89, 58, 114, 54, 128, 206, 145, 37, 95, 226, 119, 132, 83, 121, 95, 4, 125, 172, 133, 51, 138, 141, 142, 86, 151, 243, 103, 174, 133, 83, 148, 9, 97, 8, 97, 185, 108, 82, 118, 237, 138, 56, 143, 47, 85, 81, 79, 42, 81, 199, 82, 203, 83, 165, 91, 125, 94, 160, 96, 130, 97, 214, 99, 9, 103, 218, 103, 103, 110, 140, 109, 54, 115, 55, 115, 49, 117, 80, 121, 213, 136, 152, 138, 74, 144, 145, 144, 245, 144, 196, 150, 141, 135, 21, 89, 136, 78, 89, 79, 14, 78, 137, 138, 63, 143, 16, 152, 173, 80, 124, 94, 150, 89, 185, 91, 184, 94, 218, 99, 250, 99, 193, 100, 220, 102, 74, 105, 216, 105, 11, 109, 182, 110, 148, 113, 40, 117, 175, 122, 138, 127, 0, 128, 73, 132, 201, 132, 129, 137, 33, 139, 10, 142, 101, 144, 125, 150, 10, 153, 126, 97, 145, 98, 50, 107, 131, 108, 116, 109, 204, 127, 252, 127, 192, 109, 133, 127, 186, 135, 248, 136, 101, 103, 177, 131, 60, 152, 247, 150, 27, 109, 97, 125, 61, 132, 106, 145, 113, 78, 117, 83, 80, 93, 4, 107, 235, 111, 205, 133, 45, 134, 167, 137, 41, 82, 15, 84, 101, 92, 78, 103, 168, 104, 6, 116, 131, 116, 226, 117, 207, 136, 225, 136, 204, 145, 226, 150, 120, 150, 139, 95, 135, 115, 203, 122, 78, 132, 160, 99, 101, 117, 137, 82, 65, 109, 156, 110, 9, 116, 89, 117, 107, 120, 146, 124, 134, 150, 220, 122, 141, 159, 182, 79, 110, 97, 197, 101, 92, 134, 134, 78, 174, 78, 218, 80, 33, 78, 204, 81, 238, 91, 153, 101, 129, 104, 188, 109, 31, 115, 66, 118, 173, 119, 28, 122, 231, 124, 111, 130, 210, 138, 124, 144, 207, 145, 117, 150, 24, 152, 155, 82, 209, 125, 43, 80, 152, 83, 151, 103, 203, 109, 208, 113, 51, 116, 232, 129, 42, 143, 163, 150, 87, 156, 159, 158, 96, 116, 65, 88, 153, 109, 47, 125, 94, 152, 228, 78, 54, 79, 139, 79, 183, 81, 177, 82, 186, 93, 28, 96, 178, 115, 60, 121, 211, 130, 52, 146, 183, 150, 246, 150, 10, 151, 151, 158, 98, 159, 166, 102, 116, 107, 23, 82, 163, 82, 200, 112, 194, 136, 201, 94, 75, 96, 144, 97, 35, 111, 73, 113, 62, 124, 244, 125, 111, 128, 238, 132, 35, 144, 44, 147, 66, 84, 111, 155, 211, 106, 137, 112, 194, 140, 239, 141, 50, 151, 180, 82, 65, 90, 202, 94, 4, 95, 23, 103, 124, 105, 148, 105, 106, 109, 15, 111, 98, 114, 252, 114, 237, 123, 1, 128, 126, 128, 75, 135, 206, 144, 109, 81, 147, 158, 132, 121, 139, 128, 50, 147, 214, 138, 45, 80, 140, 84, 113, 138, 106, 107, 196, 140, 7, 129, 209, 96, 160, 103, 242, 157, 153, 78, 152, 78, 16, 156, 107, 138, 193, 133, 104, 133, 0, 105, 126, 110, 151, 120, 85, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 95, 16, 78, 21, 78, 42, 78, 49, 78, 54, 78, 60, 78, 63, 78, 66, 78, 86, 78, 88, 78, 130, 78, 133, 78, 107, 140, 138, 78, 18, 130, 13, 95, 142, 78, 158, 78, 159, 78, 160, 78, 162, 78, 176, 78, 179, 78, 182, 78, 206, 78, 205, 78, 196, 78, 198, 78, 194, 78, 215, 78, 222, 78, 237, 78, 223, 78, 247, 78, 9, 79, 90, 79, 48, 79, 91, 79, 93, 79, 87, 79, 71, 79, 118, 79, 136, 79, 143, 79, 152, 79, 123, 79, 105, 79, 112, 79, 145, 79, 111, 79, 134, 79, 150, 79, 24, 81, 212, 79, 223, 79, 206, 79, 216, 79, 219, 79, 209, 79, 218, 79, 208, 79, 228, 79, 229, 79, 26, 80, 40, 80, 20, 80, 42, 80, 37, 80, 5, 80, 28, 79, 246, 79, 33, 80, 41, 80, 44, 80, 254, 79, 239, 79, 17, 80, 6, 80, 67, 80, 71, 80, 3, 103, 85, 80, 80, 80, 72, 80, 90, 80, 86, 80, 108, 80, 120, 80, 128, 80, 154, 80, 133, 80, 180, 80, 178, 80, 201, 80, 202, 80, 179, 80, 194, 80, 214, 80, 222, 80, 229, 80, 237, 80, 227, 80, 238, 80, 249, 80, 245, 80, 9, 81, 1, 81, 2, 81, 22, 81, 21, 81, 20, 81, 26, 81, 33, 81, 58, 81, 55, 81, 60, 81, 59, 81, 63, 81, 64, 81, 82, 81, 76, 81, 84, 81, 98, 81, 248, 122, 105, 81, 106, 81, 110, 81, 128, 81, 130, 81, 216, 86, 140, 81, 137, 81, 143, 81, 145, 81, 147, 81, 149, 81, 150, 81, 164, 81, 166, 81, 162, 81, 169, 81, 170, 81, 171, 81, 179, 81, 177, 81, 178, 81, 176, 81, 181, 81, 189, 81, 197, 81, 201, 81, 219, 81, 224, 81, 85, 134, 233, 81, 237, 81, 240, 81, 245, 81, 254, 81, 4, 82, 11, 82, 20, 82, 14, 82, 39, 82, 42, 82, 46, 82, 51, 82, 57, 82, 79, 82, 68, 82, 75, 82, 76, 82, 94, 82, 84, 82, 106, 82, 116, 82, 105, 82, 115, 82, 127, 82, 125, 82, 141, 82, 148, 82, 146, 82, 113, 82, 136, 82, 145, 82, 168, 143, 167, 143, 172, 82, 173, 82, 188, 82, 181, 82, 193, 82, 205, 82, 215, 82, 222, 82, 227, 82, 230, 82, 237, 152, 224, 82, 243, 82, 245, 82, 248, 82, 249, 82, 6, 83, 8, 83, 56, 117, 13, 83, 16, 83, 15, 83, 21, 83, 26, 83, 35, 83, 47, 83, 49, 83, 51, 83, 56, 83, 64, 83, 70, 83, 69, 83, 23, 78, 73, 83, 77, 83, 214, 81, 94, 83, 105, 83, 110, 83, 24, 89, 123, 83, 119, 83, 130, 83, 150, 83, 160, 83, 166, 83, 165, 83, 174, 83, 176, 83, 182, 83, 195, 83, 18, 124, 217, 150, 223, 83, 252, 102, 238, 113, 238, 83, 232, 83, 237, 83, 250, 83, 1, 84, 61, 84, 64, 84, 44, 84, 45, 84, 60, 84, 46, 84, 54, 84, 41, 84, 29, 84, 78, 84, 143, 84, 117, 84, 142, 84, 95, 84, 113, 84, 119, 84, 112, 84, 146, 84, 123, 84, 128, 84, 118, 84, 132, 84, 144, 84, 134, 84, 199, 84, 162, 84, 184, 84, 165, 84, 172, 84, 196, 84, 200, 84, 168, 84, 171, 84, 194, 84, 164, 84, 190, 84, 188, 84, 216, 84, 229, 84, 230, 84, 15, 85, 20, 85, 253, 84, 238, 84, 237, 84, 250, 84, 226, 84, 57, 85, 64, 85, 99, 85, 76, 85, 46, 85, 92, 85, 69, 85, 86, 85, 87, 85, 56, 85, 51, 85, 93, 85, 153, 85, 128, 85, 175, 84, 138, 85, 159, 85, 123, 85, 126, 85, 152, 85, 158, 85, 174, 85, 124, 85, 131, 85, 169, 85, 135, 85, 168, 85, 218, 85, 197, 85, 223, 85, 196, 85, 220, 85, 228, 85, 212, 85, 20, 86, 247, 85, 22, 86, 254, 85, 253, 85, 27, 86, 249, 85, 78, 86, 80, 86, 223, 113, 52, 86, 54, 86, 50, 86, 56, 86, 107, 86, 100, 86, 47, 86, 108, 86, 106, 86, 134, 86, 128, 86, 138, 86, 160, 86, 148, 86, 143, 86, 165, 86, 174, 86, 182, 86, 180, 86, 194, 86, 188, 86, 193, 86, 195, 86, 192, 86, 200, 86, 206, 86, 209, 86, 211, 86, 215, 86, 238, 86, 249, 86, 0, 87, 255, 86, 4, 87, 9, 87, 8, 87, 11, 87, 13, 87, 19, 87, 24, 87, 22, 87, 199, 85, 28, 87, 38, 87, 55, 87, 56, 87, 78, 87, 59, 87, 64, 87, 79, 87, 105, 87, 192, 87, 136, 87, 97, 87, 127, 87, 137, 87, 147, 87, 160, 87, 179, 87, 164, 87, 170, 87, 176, 87, 195, 87, 198, 87, 212, 87, 210, 87, 211, 87, 10, 88, 214, 87, 227, 87, 11, 88, 25, 88, 29, 88, 114, 88, 33, 88, 98, 88, 75, 88, 112, 88, 192, 107, 82, 88, 61, 88, 121, 88, 133, 88, 185, 88, 159, 88, 171, 88, 186, 88, 222, 88, 187, 88, 184, 88, 174, 88, 197, 88, 211, 88, 209, 88, 215, 88, 217, 88, 216, 88, 229, 88, 220, 88, 228, 88, 223, 88, 239, 88, 250, 88, 249, 88, 251, 88, 252, 88, 253, 88, 2, 89, 10, 89, 16, 89, 27, 89, 166, 104, 37, 89, 44, 89, 45, 89, 50, 89, 56, 89, 62, 89, 210, 122, 85, 89, 80, 89, 78, 89, 90, 89, 88, 89, 98, 89, 96, 89, 103, 89, 108, 89, 105, 89, 120, 89, 129, 89, 157, 89, 94, 79, 171, 79, 163, 89, 178, 89, 198, 89, 232, 89, 220, 89, 141, 89, 217, 89, 218, 89, 37, 90, 31, 90, 17, 90, 28, 90, 9, 90, 26, 90, 64, 90, 108, 90, 73, 90, 53, 90, 54, 90, 98, 90, 106, 90, 154, 90, 188, 90, 190, 90, 203, 90, 194, 90, 189, 90, 227, 90, 215, 90, 230, 90, 233, 90, 214, 90, 250, 90, 251, 90, 12, 91, 11, 91, 22, 91, 50, 91, 208, 90, 42, 91, 54, 91, 62, 91, 67, 91, 69, 91, 64, 91, 81, 91, 85, 91, 90, 91, 91, 91, 101, 91, 105, 91, 112, 91, 115, 91, 117, 91, 120, 91, 136, 101, 122, 91, 128, 91, 131, 91, 166, 91, 184, 91, 195, 91, 199, 91, 201, 91, 212, 91, 208, 91, 228, 91, 230, 91, 226, 91, 222, 91, 229, 91, 235, 91, 240, 91, 246, 91, 243, 91, 5, 92, 7, 92, 8, 92, 13, 92, 19, 92, 32, 92, 34, 92, 40, 92, 56, 92, 57, 92, 65, 92, 70, 92, 78, 92, 83, 92, 80, 92, 79, 92, 113, 91, 108, 92, 110, 92, 98, 78, 118, 92, 121, 92, 140, 92, 145, 92, 148, 92, 155, 89, 171, 92, 187, 92, 182, 92, 188, 92, 183, 92, 197, 92, 190, 92, 199, 92, 217, 92, 233, 92, 253, 92, 250, 92, 237, 92, 140, 93, 234, 92, 11, 93, 21, 93, 23, 93, 92, 93, 31, 93, 27, 93, 17, 93, 20, 93, 34, 93, 26, 93, 25, 93, 24, 93, 76, 93, 82, 93, 78, 93, 75, 93, 108, 93, 115, 93, 118, 93, 135, 93, 132, 93, 130, 93, 162, 93, 157, 93, 172, 93, 174, 93, 189, 93, 144, 93, 183, 93, 188, 93, 201, 93, 205, 93, 211, 93, 210, 93, 214, 93, 219, 93, 235, 93, 242, 93, 245, 93, 11, 94, 26, 94, 25, 94, 17, 94, 27, 94, 54, 94, 55, 94, 68, 94, 67, 94, 64, 94, 78, 94, 87, 94, 84, 94, 95, 94, 98, 94, 100, 94, 71, 94, 117, 94, 118, 94, 122, 94, 188, 158, 127, 94, 160, 94, 193, 94, 194, 94, 200, 94, 208, 94, 207, 94, 214, 94, 227, 94, 221, 94, 218, 94, 219, 94, 226, 94, 225, 94, 232, 94, 233, 94, 236, 94, 241, 94, 243, 94, 240, 94, 244, 94, 248, 94, 254, 94, 3, 95, 9, 95, 93, 95, 92, 95, 11, 95, 17, 95, 22, 95, 41, 95, 45, 95, 56, 95, 65, 95, 72, 95, 76, 95, 78, 95, 47, 95, 81, 95, 86, 95, 87, 95, 89, 95, 97, 95, 109, 95, 115, 95, 119, 95, 131, 95, 130, 95, 127, 95, 138, 95, 136, 95, 145, 95, 135, 95, 158, 95, 153, 95, 152, 95, 160, 95, 168, 95, 173, 95, 188, 95, 214, 95, 251, 95, 228, 95, 248, 95, 241, 95, 221, 95, 179, 96, 255, 95, 33, 96, 96, 96, 25, 96, 16, 96, 41, 96, 14, 96, 49, 96, 27, 96, 21, 96, 43, 96, 38, 96, 15, 96, 58, 96, 90, 96, 65, 96, 106, 96, 119, 96, 95, 96, 74, 96, 70, 96, 77, 96, 99, 96, 67, 96, 100, 96, 66, 96, 108, 96, 107, 96, 89, 96, 129, 96, 141, 96, 231, 96, 131, 96, 154, 96, 132, 96, 155, 96, 150, 96, 151, 96, 146, 96, 167, 96, 139, 96, 225, 96, 184, 96, 224, 96, 211, 96, 180, 96, 240, 95, 189, 96, 198, 96, 181, 96, 216, 96, 77, 97, 21, 97, 6, 97, 246, 96, 247, 96, 0, 97, 244, 96, 250, 96, 3, 97, 33, 97, 251, 96, 241, 96, 13, 97, 14, 97, 71, 97, 62, 97, 40, 97, 39, 97, 74, 97, 63, 97, 60, 97, 44, 97, 52, 97, 61, 97, 66, 97, 68, 97, 115, 97, 119, 97, 88, 97, 89, 97, 90, 97, 107, 97, 116, 97, 111, 97, 101, 97, 113, 97, 95, 97, 93, 97, 83, 97, 117, 97, 153, 97, 150, 97, 135, 97, 172, 97, 148, 97, 154, 97, 138, 97, 145, 97, 171, 97, 174, 97, 204, 97, 202, 97, 201, 97, 247, 97, 200, 97, 195, 97, 198, 97, 186, 97, 203, 97, 121, 127, 205, 97, 230, 97, 227, 97, 246, 97, 250, 97, 244, 97, 255, 97, 253, 97, 252, 97, 254, 97, 0, 98, 8, 98, 9, 98, 13, 98, 12, 98, 20, 98, 27, 98, 30, 98, 33, 98, 42, 98, 46, 98, 48, 98, 50, 98, 51, 98, 65, 98, 78, 98, 94, 98, 99, 98, 91, 98, 96, 98, 104, 98, 124, 98, 130, 98, 137, 98, 126, 98, 146, 98, 147, 98, 150, 98, 212, 98, 131, 98, 148, 98, 215, 98, 209, 98, 187, 98, 207, 98, 255, 98, 198, 98, 212, 100, 200, 98, 220, 98, 204, 98, 202, 98, 194, 98, 199, 98, 155, 98, 201, 98, 12, 99, 238, 98, 241, 98, 39, 99, 2, 99, 8, 99, 239, 98, 245, 98, 80, 99, 62, 99, 77, 99, 28, 100, 79, 99, 150, 99, 142, 99, 128, 99, 171, 99, 118, 99, 163, 99, 143, 99, 137, 99, 159, 99, 181, 99, 107, 99, 105, 99, 190, 99, 233, 99, 192, 99, 198, 99, 227, 99, 201, 99, 210, 99, 246, 99, 196, 99, 22, 100, 52, 100, 6, 100, 19, 100, 38, 100, 54, 100, 29, 101, 23, 100, 40, 100, 15, 100, 103, 100, 111, 100, 118, 100, 78, 100, 42, 101, 149, 100, 147, 100, 165, 100, 169, 100, 136, 100, 188, 100, 218, 100, 210, 100, 197, 100, 199, 100, 187, 100, 216, 100, 194, 100, 241, 100, 231, 100, 9, 130, 224, 100, 225, 100, 172, 98, 227, 100, 239, 100, 44, 101, 246, 100, 244, 100, 242, 100, 250, 100, 0, 101, 253, 100, 24, 101, 28, 101, 5, 101, 36, 101, 35, 101, 43, 101, 52, 101, 53, 101, 55, 101, 54, 101, 56, 101, 75, 117, 72, 101, 86, 101, 85, 101, 77, 101, 88, 101, 94, 101, 93, 101, 114, 101, 120, 101, 130, 101, 131, 101, 138, 139, 155, 101, 159, 101, 171, 101, 183, 101, 195, 101, 198, 101, 193, 101, 196, 101, 204, 101, 210, 101, 219, 101, 217, 101, 224, 101, 225, 101, 241, 101, 114, 103, 10, 102, 3, 102, 251, 101, 115, 103, 53, 102, 54, 102, 52, 102, 28, 102, 79, 102, 68, 102, 73, 102, 65, 102, 94, 102, 93, 102, 100, 102, 103, 102, 104, 102, 95, 102, 98, 102, 112, 102, 131, 102, 136, 102, 142, 102, 137, 102, 132, 102, 152, 102, 157, 102, 193, 102, 185, 102, 201, 102, 190, 102, 188, 102, 196, 102, 184, 102, 214, 102, 218, 102, 224, 102, 63, 102, 230, 102, 233, 102, 240, 102, 245, 102, 247, 102, 15, 103, 22, 103, 30, 103, 38, 103, 39, 103, 56, 151, 46, 103, 63, 103, 54, 103, 65, 103, 56, 103, 55, 103, 70, 103, 94, 103, 96, 103, 89, 103, 99, 103, 100, 103, 137, 103, 112, 103, 169, 103, 124, 103, 106, 103, 140, 103, 139, 103, 166, 103, 161, 103, 133, 103, 183, 103, 239, 103, 180, 103, 236, 103, 179, 103, 233, 103, 184, 103, 228, 103, 222, 103, 221, 103, 226, 103, 238, 103, 185, 103, 206, 103, 198, 103, 231, 103, 156, 106, 30, 104, 70, 104, 41, 104, 64, 104, 77, 104, 50, 104, 78, 104, 179, 104, 43, 104, 89, 104, 99, 104, 119, 104, 127, 104, 159, 104, 143, 104, 173, 104, 148, 104, 157, 104, 155, 104, 131, 104, 174, 106, 185, 104, 116, 104, 181, 104, 160, 104, 186, 104, 15, 105, 141, 104, 126, 104, 1, 105, 202, 104, 8, 105, 216, 104, 34, 105, 38, 105, 225, 104, 12, 105, 205, 104, 212, 104, 231, 104, 213, 104, 54, 105, 18, 105, 4, 105, 215, 104, 227, 104, 37, 105, 249, 104, 224, 104, 239, 104, 40, 105, 42, 105, 26, 105, 35, 105, 33, 105, 198, 104, 121, 105, 119, 105, 92, 105, 120, 105, 107, 105, 84, 105, 126, 105, 110, 105, 57, 105, 116, 105, 61, 105, 89, 105, 48, 105, 97, 105, 94, 105, 93, 105, 129, 105, 106, 105, 178, 105, 174, 105, 208, 105, 191, 105, 193, 105, 211, 105, 190, 105, 206, 105, 232, 91, 202, 105, 221, 105, 187, 105, 195, 105, 167, 105, 46, 106, 145, 105, 160, 105, 156, 105, 149, 105, 180, 105, 222, 105, 232, 105, 2, 106, 27, 106, 255, 105, 10, 107, 249, 105, 242, 105, 231, 105, 5, 106, 177, 105, 30, 106, 237, 105, 20, 106, 235, 105, 10, 106, 18, 106, 193, 106, 35, 106, 19, 106, 68, 106, 12, 106, 114, 106, 54, 106, 120, 106, 71, 106, 98, 106, 89, 106, 102, 106, 72, 106, 56, 106, 34, 106, 144, 106, 141, 106, 160, 106, 132, 106, 162, 106, 163, 106, 151, 106, 23, 134, 187, 106, 195, 106, 194, 106, 184, 106, 179, 106, 172, 106, 222, 106, 209, 106, 223, 106, 170, 106, 218, 106, 234, 106, 251, 106, 5, 107, 22, 134, 250, 106, 18, 107, 22, 107, 49, 155, 31, 107, 56, 107, 55, 107, 220, 118, 57, 107, 238, 152, 71, 107, 67, 107, 73, 107, 80, 107, 89, 107, 84, 107, 91, 107, 95, 107, 97, 107, 120, 107, 121, 107, 127, 107, 128, 107, 132, 107, 131, 107, 141, 107, 152, 107, 149, 107, 158, 107, 164, 107, 170, 107, 171, 107, 175, 107, 178, 107, 177, 107, 179, 107, 183, 107, 188, 107, 198, 107, 203, 107, 211, 107, 223, 107, 236, 107, 235, 107, 243, 107, 239, 107, 190, 158, 8, 108, 19, 108, 20, 108, 27, 108, 36, 108, 35, 108, 94, 108, 85, 108, 98, 108, 106, 108, 130, 108, 141, 108, 154, 108, 129, 108, 155, 108, 126, 108, 104, 108, 115, 108, 146, 108, 144, 108, 196, 108, 241, 108, 211, 108, 189, 108, 215, 108, 197, 108, 221, 108, 174, 108, 177, 108, 190, 108, 186, 108, 219, 108, 239, 108, 217, 108, 234, 108, 31, 109, 77, 136, 54, 109, 43, 109, 61, 109, 56, 109, 25, 109, 53, 109, 51, 109, 18, 109, 12, 109, 99, 109, 147, 109, 100, 109, 90, 109, 121, 109, 89, 109, 142, 109, 149, 109, 228, 111, 133, 109, 249, 109, 21, 110, 10, 110, 181, 109, 199, 109, 230, 109, 184, 109, 198, 109, 236, 109, 222, 109, 204, 109, 232, 109, 210, 109, 197, 109, 250, 109, 217, 109, 228, 109, 213, 109, 234, 109, 238, 109, 45, 110, 110, 110, 46, 110, 25, 110, 114, 110, 95, 110, 62, 110, 35, 110, 107, 110, 43, 110, 118, 110, 77, 110, 31, 110, 67, 110, 58, 110, 78, 110, 36, 110, 255, 110, 29, 110, 56, 110, 130, 110, 170, 110, 152, 110, 201, 110, 183, 110, 211, 110, 189, 110, 175, 110, 196, 110, 178, 110, 212, 110, 213, 110, 143, 110, 165, 110, 194, 110, 159, 110, 65, 111, 17, 111, 76, 112, 236, 110, 248, 110, 254, 110, 63, 111, 242, 110, 49, 111, 239, 110, 50, 111, 204, 110, 62, 111, 19, 111, 247, 110, 134, 111, 122, 111, 120, 111, 129, 111, 128, 111, 111, 111, 91, 111, 243, 111, 109, 111, 130, 111, 124, 111, 88, 111, 142, 111, 145, 111, 194, 111, 102, 111, 179, 111, 163, 111, 161, 111, 164, 111, 185, 111, 198, 111, 170, 111, 223, 111, 213, 111, 236, 111, 212, 111, 216, 111, 241, 111, 238, 111, 219, 111, 9, 112, 11, 112, 250, 111, 17, 112, 1, 112, 15, 112, 254, 111, 27, 112, 26, 112, 116, 111, 29, 112, 24, 112, 31, 112, 48, 112, 62, 112, 50, 112, 81, 112, 99, 112, 153, 112, 146, 112, 175, 112, 241, 112, 172, 112, 184, 112, 179, 112, 174, 112, 223, 112, 203, 112, 221, 112, 217, 112, 9, 113, 253, 112, 28, 113, 25, 113, 101, 113, 85, 113, 136, 113, 102, 113, 98, 113, 76, 113, 86, 113, 108, 113, 143, 113, 251, 113, 132, 113, 149, 113, 168, 113, 172, 113, 215, 113, 185, 113, 190, 113, 210, 113, 201, 113, 212, 113, 206, 113, 224, 113, 236, 113, 231, 113, 245, 113, 252, 113, 249, 113, 255, 113, 13, 114, 16, 114, 27, 114, 40, 114, 45, 114, 44, 114, 48, 114, 50, 114, 59, 114, 60, 114, 63, 114, 64, 114, 70, 114, 75, 114, 88, 114, 116, 114, 126, 114, 130, 114, 129, 114, 135, 114, 146, 114, 150, 114, 162, 114, 167, 114, 185, 114, 178, 114, 195, 114, 198, 114, 196, 114, 206, 114, 210, 114, 226, 114, 224, 114, 225, 114, 249, 114, 247, 114, 15, 80, 23, 115, 10, 115, 28, 115, 22, 115, 29, 115, 52, 115, 47, 115, 41, 115, 37, 115, 62, 115, 78, 115, 79, 115, 216, 158, 87, 115, 106, 115, 104, 115, 112, 115, 120, 115, 117, 115, 123, 115, 122, 115, 200, 115, 179, 115, 206, 115, 187, 115, 192, 115, 229, 115, 238, 115, 222, 115, 162, 116, 5, 116, 111, 116, 37, 116, 248, 115, 50, 116, 58, 116, 85, 116, 63, 116, 95, 116, 89, 116, 65, 116, 92, 116, 105, 116, 112, 116, 99, 116, 106, 116, 118, 116, 126, 116, 139, 116, 158, 116, 167, 116, 202, 116, 207, 116, 212, 116, 241, 115, 224, 116, 227, 116, 231, 116, 233, 116, 238, 116, 242, 116, 240, 116, 241, 116, 248, 116, 247, 116, 4, 117, 3, 117, 5, 117, 12, 117, 14, 117, 13, 117, 21, 117, 19, 117, 30, 117, 38, 117, 44, 117, 60, 117, 68, 117, 77, 117, 74, 117, 73, 117, 91, 117, 70, 117, 90, 117, 105, 117, 100, 117, 103, 117, 107, 117, 109, 117, 120, 117, 118, 117, 134, 117, 135, 117, 116, 117, 138, 117, 137, 117, 130, 117, 148, 117, 154, 117, 157, 117, 165, 117, 163, 117, 194, 117, 179, 117, 195, 117, 181, 117, 189, 117, 184, 117, 188, 117, 177, 117, 205, 117, 202, 117, 210, 117, 217, 117, 227, 117, 222, 117, 254, 117, 255, 117, 252, 117, 1, 118, 240, 117, 250, 117, 242, 117, 243, 117, 11, 118, 13, 118, 9, 118, 31, 118, 39, 118, 32, 118, 33, 118, 34, 118, 36, 118, 52, 118, 48, 118, 59, 118, 71, 118, 72, 118, 70, 118, 92, 118, 88, 118, 97, 118, 98, 118, 104, 118, 105, 118, 106, 118, 103, 118, 108, 118, 112, 118, 114, 118, 118, 118, 120, 118, 124, 118, 128, 118, 131, 118, 136, 118, 139, 118, 142, 118, 150, 118, 147, 118, 153, 118, 154, 118, 176, 118, 180, 118, 184, 118, 185, 118, 186, 118, 194, 118, 205, 118, 214, 118, 210, 118, 222, 118, 225, 118, 229, 118, 231, 118, 234, 118, 47, 134, 251, 118, 8, 119, 7, 119, 4, 119, 41, 119, 36, 119, 30, 119, 37, 119, 38, 119, 27, 119, 55, 119, 56, 119, 71, 119, 90, 119, 104, 119, 107, 119, 91, 119, 101, 119, 127, 119, 126, 119, 121, 119, 142, 119, 139, 119, 145, 119, 160, 119, 158, 119, 176, 119, 182, 119, 185, 119, 191, 119, 188, 119, 189, 119, 187, 119, 199, 119, 205, 119, 215, 119, 218, 119, 220, 119, 227, 119, 238, 119, 252, 119, 12, 120, 18, 120, 38, 121, 32, 120, 42, 121, 69, 120, 142, 120, 116, 120, 134, 120, 124, 120, 154, 120, 140, 120, 163, 120, 181, 120, 170, 120, 175, 120, 209, 120, 198, 120, 203, 120, 212, 120, 190, 120, 188, 120, 197, 120, 202, 120, 236, 120, 231, 120, 218, 120, 253, 120, 244, 120, 7, 121, 18, 121, 17, 121, 25, 121, 44, 121, 43, 121, 64, 121, 96, 121, 87, 121, 95, 121, 90, 121, 85, 121, 83, 121, 122, 121, 127, 121, 138, 121, 157, 121, 167, 121, 75, 159, 170, 121, 174, 121, 179, 121, 185, 121, 186, 121, 201, 121, 213, 121, 231, 121, 236, 121, 225, 121, 227, 121, 8, 122, 13, 122, 24, 122, 25, 122, 32, 122, 31, 122, 128, 121, 49, 122, 59, 122, 62, 122, 55, 122, 67, 122, 87, 122, 73, 122, 97, 122, 98, 122, 105, 122, 157, 159, 112, 122, 121, 122, 125, 122, 136, 122, 151, 122, 149, 122, 152, 122, 150, 122, 169, 122, 200, 122, 176, 122, 182, 122, 197, 122, 196, 122, 191, 122, 131, 144, 199, 122, 202, 122, 205, 122, 207, 122, 213, 122, 211, 122, 217, 122, 218, 122, 221, 122, 225, 122, 226, 122, 230, 122, 237, 122, 240, 122, 2, 123, 15, 123, 10, 123, 6, 123, 51, 123, 24, 123, 25, 123, 30, 123, 53, 123, 40, 123, 54, 123, 80, 123, 122, 123, 4, 123, 77, 123, 11, 123, 76, 123, 69, 123, 117, 123, 101, 123, 116, 123, 103, 123, 112, 123, 113, 123, 108, 123, 110, 123, 157, 123, 152, 123, 159, 123, 141, 123, 156, 123, 154, 123, 139, 123, 146, 123, 143, 123, 93, 123, 153, 123, 203, 123, 193, 123, 204, 123, 207, 123, 180, 123, 198, 123, 221, 123, 233, 123, 17, 124, 20, 124, 230, 123, 229, 123, 96, 124, 0, 124, 7, 124, 19, 124, 243, 123, 247, 123, 23, 124, 13, 124, 246, 123, 35, 124, 39, 124, 42, 124, 31, 124, 55, 124, 43, 124, 61, 124, 76, 124, 67, 124, 84, 124, 79, 124, 64, 124, 80, 124, 88, 124, 95, 124, 100, 124, 86, 124, 101, 124, 108, 124, 117, 124, 131, 124, 144, 124, 164, 124, 173, 124, 162, 124, 171, 124, 161, 124, 168, 124, 179, 124, 178, 124, 177, 124, 174, 124, 185, 124, 189, 124, 192, 124, 197, 124, 194, 124, 216, 124, 210, 124, 220, 124, 226, 124, 59, 155, 239, 124, 242, 124, 244, 124, 246, 124, 250, 124, 6, 125, 2, 125, 28, 125, 21, 125, 10, 125, 69, 125, 75, 125, 46, 125, 50, 125, 63, 125, 53, 125, 70, 125, 115, 125, 86, 125, 78, 125, 114, 125, 104, 125, 110, 125, 79, 125, 99, 125, 147, 125, 137, 125, 91, 125, 143, 125, 125, 125, 155, 125, 186, 125, 174, 125, 163, 125, 181, 125, 199, 125, 189, 125, 171, 125, 61, 126, 162, 125, 175, 125, 220, 125, 184, 125, 159, 125, 176, 125, 216, 125, 221, 125, 228, 125, 222, 125, 251, 125, 242, 125, 225, 125, 5, 126, 10, 126, 35, 126, 33, 126, 18, 126, 49, 126, 31, 126, 9, 126, 11, 126, 34, 126, 70, 126, 102, 126, 59, 126, 53, 126, 57, 126, 67, 126, 55, 126, 50, 126, 58, 126, 103, 126, 93, 126, 86, 126, 94, 126, 89, 126, 90, 126, 121, 126, 106, 126, 105, 126, 124, 126, 123, 126, 131, 126, 213, 125, 125, 126, 174, 143, 127, 126, 136, 126, 137, 126, 140, 126, 146, 126, 144, 126, 147, 126, 148, 126, 150, 126, 142, 126, 155, 126, 156, 126, 56, 127, 58, 127, 69, 127, 76, 127, 77, 127, 78, 127, 80, 127, 81, 127, 85, 127, 84, 127, 88, 127, 95, 127, 96, 127, 104, 127, 105, 127, 103, 127, 120, 127, 130, 127, 134, 127, 131, 127, 136, 127, 135, 127, 140, 127, 148, 127, 158, 127, 157, 127, 154, 127, 163, 127, 175, 127, 178, 127, 185, 127, 174, 127, 182, 127, 184, 127, 113, 139, 197, 127, 198, 127, 202, 127, 213, 127, 212, 127, 225, 127, 230, 127, 233, 127, 243, 127, 249, 127, 220, 152 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 15092 ); /* memory initializer */ allocate( [ 6, 128, 4, 128, 11, 128, 18, 128, 24, 128, 25, 128, 28, 128, 33, 128, 40, 128, 63, 128, 59, 128, 74, 128, 70, 128, 82, 128, 88, 128, 90, 128, 95, 128, 98, 128, 104, 128, 115, 128, 114, 128, 112, 128, 118, 128, 121, 128, 125, 128, 127, 128, 132, 128, 134, 128, 133, 128, 155, 128, 147, 128, 154, 128, 173, 128, 144, 81, 172, 128, 219, 128, 229, 128, 217, 128, 221, 128, 196, 128, 218, 128, 214, 128, 9, 129, 239, 128, 241, 128, 27, 129, 41, 129, 35, 129, 47, 129, 75, 129, 139, 150, 70, 129, 62, 129, 83, 129, 81, 129, 252, 128, 113, 129, 110, 129, 101, 129, 102, 129, 116, 129, 131, 129, 136, 129, 138, 129, 128, 129, 130, 129, 160, 129, 149, 129, 164, 129, 163, 129, 95, 129, 147, 129, 169, 129, 176, 129, 181, 129, 190, 129, 184, 129, 189, 129, 192, 129, 194, 129, 186, 129, 201, 129, 205, 129, 209, 129, 217, 129, 216, 129, 200, 129, 218, 129, 223, 129, 224, 129, 231, 129, 250, 129, 251, 129, 254, 129, 1, 130, 2, 130, 5, 130, 7, 130, 10, 130, 13, 130, 16, 130, 22, 130, 41, 130, 43, 130, 56, 130, 51, 130, 64, 130, 89, 130, 88, 130, 93, 130, 90, 130, 95, 130, 100, 130, 98, 130, 104, 130, 106, 130, 107, 130, 46, 130, 113, 130, 119, 130, 120, 130, 126, 130, 141, 130, 146, 130, 171, 130, 159, 130, 187, 130, 172, 130, 225, 130, 227, 130, 223, 130, 210, 130, 244, 130, 243, 130, 250, 130, 147, 131, 3, 131, 251, 130, 249, 130, 222, 130, 6, 131, 220, 130, 9, 131, 217, 130, 53, 131, 52, 131, 22, 131, 50, 131, 49, 131, 64, 131, 57, 131, 80, 131, 69, 131, 47, 131, 43, 131, 23, 131, 24, 131, 133, 131, 154, 131, 170, 131, 159, 131, 162, 131, 150, 131, 35, 131, 142, 131, 135, 131, 138, 131, 124, 131, 181, 131, 115, 131, 117, 131, 160, 131, 137, 131, 168, 131, 244, 131, 19, 132, 235, 131, 206, 131, 253, 131, 3, 132, 216, 131, 11, 132, 193, 131, 247, 131, 7, 132, 224, 131, 242, 131, 13, 132, 34, 132, 32, 132, 189, 131, 56, 132, 6, 133, 251, 131, 109, 132, 42, 132, 60, 132, 90, 133, 132, 132, 119, 132, 107, 132, 173, 132, 110, 132, 130, 132, 105, 132, 70, 132, 44, 132, 111, 132, 121, 132, 53, 132, 202, 132, 98, 132, 185, 132, 191, 132, 159, 132, 217, 132, 205, 132, 187, 132, 218, 132, 208, 132, 193, 132, 198, 132, 214, 132, 161, 132, 33, 133, 255, 132, 244, 132, 23, 133, 24, 133, 44, 133, 31, 133, 21, 133, 20, 133, 252, 132, 64, 133, 99, 133, 88, 133, 72, 133, 65, 133, 2, 134, 75, 133, 85, 133, 128, 133, 164, 133, 136, 133, 145, 133, 138, 133, 168, 133, 109, 133, 148, 133, 155, 133, 234, 133, 135, 133, 156, 133, 119, 133, 126, 133, 144, 133, 201, 133, 186, 133, 207, 133, 185, 133, 208, 133, 213, 133, 221, 133, 229, 133, 220, 133, 249, 133, 10, 134, 19, 134, 11, 134, 254, 133, 250, 133, 6, 134, 34, 134, 26, 134, 48, 134, 63, 134, 77, 134, 85, 78, 84, 134, 95, 134, 103, 134, 113, 134, 147, 134, 163, 134, 169, 134, 170, 134, 139, 134, 140, 134, 182, 134, 175, 134, 196, 134, 198, 134, 176, 134, 201, 134, 35, 136, 171, 134, 212, 134, 222, 134, 233, 134, 236, 134, 223, 134, 219, 134, 239, 134, 18, 135, 6, 135, 8, 135, 0, 135, 3, 135, 251, 134, 17, 135, 9, 135, 13, 135, 249, 134, 10, 135, 52, 135, 63, 135, 55, 135, 59, 135, 37, 135, 41, 135, 26, 135, 96, 135, 95, 135, 120, 135, 76, 135, 78, 135, 116, 135, 87, 135, 104, 135, 110, 135, 89, 135, 83, 135, 99, 135, 106, 135, 5, 136, 162, 135, 159, 135, 130, 135, 175, 135, 203, 135, 189, 135, 192, 135, 208, 135, 214, 150, 171, 135, 196, 135, 179, 135, 199, 135, 198, 135, 187, 135, 239, 135, 242, 135, 224, 135, 15, 136, 13, 136, 254, 135, 246, 135, 247, 135, 14, 136, 210, 135, 17, 136, 22, 136, 21, 136, 34, 136, 33, 136, 49, 136, 54, 136, 57, 136, 39, 136, 59, 136, 68, 136, 66, 136, 82, 136, 89, 136, 94, 136, 98, 136, 107, 136, 129, 136, 126, 136, 158, 136, 117, 136, 125, 136, 181, 136, 114, 136, 130, 136, 151, 136, 146, 136, 174, 136, 153, 136, 162, 136, 141, 136, 164, 136, 176, 136, 191, 136, 177, 136, 195, 136, 196, 136, 212, 136, 216, 136, 217, 136, 221, 136, 249, 136, 2, 137, 252, 136, 244, 136, 232, 136, 242, 136, 4, 137, 12, 137, 10, 137, 19, 137, 67, 137, 30, 137, 37, 137, 42, 137, 43, 137, 65, 137, 68, 137, 59, 137, 54, 137, 56, 137, 76, 137, 29, 137, 96, 137, 94, 137, 102, 137, 100, 137, 109, 137, 106, 137, 111, 137, 116, 137, 119, 137, 126, 137, 131, 137, 136, 137, 138, 137, 147, 137, 152, 137, 161, 137, 169, 137, 166, 137, 172, 137, 175, 137, 178, 137, 186, 137, 189, 137, 191, 137, 192, 137, 218, 137, 220, 137, 221, 137, 231, 137, 244, 137, 248, 137, 3, 138, 22, 138, 16, 138, 12, 138, 27, 138, 29, 138, 37, 138, 54, 138, 65, 138, 91, 138, 82, 138, 70, 138, 72, 138, 124, 138, 109, 138, 108, 138, 98, 138, 133, 138, 130, 138, 132, 138, 168, 138, 161, 138, 145, 138, 165, 138, 166, 138, 154, 138, 163, 138, 196, 138, 205, 138, 194, 138, 218, 138, 235, 138, 243, 138, 231, 138, 228, 138, 241, 138, 20, 139, 224, 138, 226, 138, 247, 138, 222, 138, 219, 138, 12, 139, 7, 139, 26, 139, 225, 138, 22, 139, 16, 139, 23, 139, 32, 139, 51, 139, 171, 151, 38, 139, 43, 139, 62, 139, 40, 139, 65, 139, 76, 139, 79, 139, 78, 139, 73, 139, 86, 139, 91, 139, 90, 139, 107, 139, 95, 139, 108, 139, 111, 139, 116, 139, 125, 139, 128, 139, 140, 139, 142, 139, 146, 139, 147, 139, 150, 139, 153, 139, 154, 139, 58, 140, 65, 140, 63, 140, 72, 140, 76, 140, 78, 140, 80, 140, 85, 140, 98, 140, 108, 140, 120, 140, 122, 140, 130, 140, 137, 140, 133, 140, 138, 140, 141, 140, 142, 140, 148, 140, 124, 140, 152, 140, 29, 98, 173, 140, 170, 140, 189, 140, 178, 140, 179, 140, 174, 140, 182, 140, 200, 140, 193, 140, 228, 140, 227, 140, 218, 140, 253, 140, 250, 140, 251, 140, 4, 141, 5, 141, 10, 141, 7, 141, 15, 141, 13, 141, 16, 141, 78, 159, 19, 141, 205, 140, 20, 141, 22, 141, 103, 141, 109, 141, 113, 141, 115, 141, 129, 141, 153, 141, 194, 141, 190, 141, 186, 141, 207, 141, 218, 141, 214, 141, 204, 141, 219, 141, 203, 141, 234, 141, 235, 141, 223, 141, 227, 141, 252, 141, 8, 142, 9, 142, 255, 141, 29, 142, 30, 142, 16, 142, 31, 142, 66, 142, 53, 142, 48, 142, 52, 142, 74, 142, 71, 142, 73, 142, 76, 142, 80, 142, 72, 142, 89, 142, 100, 142, 96, 142, 42, 142, 99, 142, 85, 142, 118, 142, 114, 142, 124, 142, 129, 142, 135, 142, 133, 142, 132, 142, 139, 142, 138, 142, 147, 142, 145, 142, 148, 142, 153, 142, 170, 142, 161, 142, 172, 142, 176, 142, 198, 142, 177, 142, 190, 142, 197, 142, 200, 142, 203, 142, 219, 142, 227, 142, 252, 142, 251, 142, 235, 142, 254, 142, 10, 143, 5, 143, 21, 143, 18, 143, 25, 143, 19, 143, 28, 143, 31, 143, 27, 143, 12, 143, 38, 143, 51, 143, 59, 143, 57, 143, 69, 143, 66, 143, 62, 143, 76, 143, 73, 143, 70, 143, 78, 143, 87, 143, 92, 143, 98, 143, 99, 143, 100, 143, 156, 143, 159, 143, 163, 143, 173, 143, 175, 143, 183, 143, 218, 143, 229, 143, 226, 143, 234, 143, 239, 143, 135, 144, 244, 143, 5, 144, 249, 143, 250, 143, 17, 144, 21, 144, 33, 144, 13, 144, 30, 144, 22, 144, 11, 144, 39, 144, 54, 144, 53, 144, 57, 144, 248, 143, 79, 144, 80, 144, 81, 144, 82, 144, 14, 144, 73, 144, 62, 144, 86, 144, 88, 144, 94, 144, 104, 144, 111, 144, 118, 144, 168, 150, 114, 144, 130, 144, 125, 144, 129, 144, 128, 144, 138, 144, 137, 144, 143, 144, 168, 144, 175, 144, 177, 144, 181, 144, 226, 144, 228, 144, 72, 98, 219, 144, 2, 145, 18, 145, 25, 145, 50, 145, 48, 145, 74, 145, 86, 145, 88, 145, 99, 145, 101, 145, 105, 145, 115, 145, 114, 145, 139, 145, 137, 145, 130, 145, 162, 145, 171, 145, 175, 145, 170, 145, 181, 145, 180, 145, 186, 145, 192, 145, 193, 145, 201, 145, 203, 145, 208, 145, 214, 145, 223, 145, 225, 145, 219, 145, 252, 145, 245, 145, 246, 145, 30, 146, 255, 145, 20, 146, 44, 146, 21, 146, 17, 146, 94, 146, 87, 146, 69, 146, 73, 146, 100, 146, 72, 146, 149, 146, 63, 146, 75, 146, 80, 146, 156, 146, 150, 146, 147, 146, 155, 146, 90, 146, 207, 146, 185, 146, 183, 146, 233, 146, 15, 147, 250, 146, 68, 147, 46, 147, 25, 147, 34, 147, 26, 147, 35, 147, 58, 147, 53, 147, 59, 147, 92, 147, 96, 147, 124, 147, 110, 147, 86, 147, 176, 147, 172, 147, 173, 147, 148, 147, 185, 147, 214, 147, 215, 147, 232, 147, 229, 147, 216, 147, 195, 147, 221, 147, 208, 147, 200, 147, 228, 147, 26, 148, 20, 148, 19, 148, 3, 148, 7, 148, 16, 148, 54, 148, 43, 148, 53, 148, 33, 148, 58, 148, 65, 148, 82, 148, 68, 148, 91, 148, 96, 148, 98, 148, 94, 148, 106, 148, 41, 146, 112, 148, 117, 148, 119, 148, 125, 148, 90, 148, 124, 148, 126, 148, 129, 148, 127, 148, 130, 149, 135, 149, 138, 149, 148, 149, 150, 149, 152, 149, 153, 149, 160, 149, 168, 149, 167, 149, 173, 149, 188, 149, 187, 149, 185, 149, 190, 149, 202, 149, 246, 111, 195, 149, 205, 149, 204, 149, 213, 149, 212, 149, 214, 149, 220, 149, 225, 149, 229, 149, 226, 149, 33, 150, 40, 150, 46, 150, 47, 150, 66, 150, 76, 150, 79, 150, 75, 150, 119, 150, 92, 150, 94, 150, 93, 150, 95, 150, 102, 150, 114, 150, 108, 150, 141, 150, 152, 150, 149, 150, 151, 150, 170, 150, 167, 150, 177, 150, 178, 150, 176, 150, 180, 150, 182, 150, 184, 150, 185, 150, 206, 150, 203, 150, 201, 150, 205, 150, 77, 137, 220, 150, 13, 151, 213, 150, 249, 150, 4, 151, 6, 151, 8, 151, 19, 151, 14, 151, 17, 151, 15, 151, 22, 151, 25, 151, 36, 151, 42, 151, 48, 151, 57, 151, 61, 151, 62, 151, 68, 151, 70, 151, 72, 151, 66, 151, 73, 151, 92, 151, 96, 151, 100, 151, 102, 151, 104, 151, 210, 82, 107, 151, 113, 151, 121, 151, 133, 151, 124, 151, 129, 151, 122, 151, 134, 151, 139, 151, 143, 151, 144, 151, 156, 151, 168, 151, 166, 151, 163, 151, 179, 151, 180, 151, 195, 151, 198, 151, 200, 151, 203, 151, 220, 151, 237, 151, 79, 159, 242, 151, 223, 122, 246, 151, 245, 151, 15, 152, 12, 152, 56, 152, 36, 152, 33, 152, 55, 152, 61, 152, 70, 152, 79, 152, 75, 152, 107, 152, 111, 152, 112, 152, 113, 152, 116, 152, 115, 152, 170, 152, 175, 152, 177, 152, 182, 152, 196, 152, 195, 152, 198, 152, 233, 152, 235, 152, 3, 153, 9, 153, 18, 153, 20, 153, 24, 153, 33, 153, 29, 153, 30, 153, 36, 153, 32, 153, 44, 153, 46, 153, 61, 153, 62, 153, 66, 153, 73, 153, 69, 153, 80, 153, 75, 153, 81, 153, 82, 153, 76, 153, 85, 153, 151, 153, 152, 153, 165, 153, 173, 153, 174, 153, 188, 153, 223, 153, 219, 153, 221, 153, 216, 153, 209, 153, 237, 153, 238, 153, 241, 153, 242, 153, 251, 153, 248, 153, 1, 154, 15, 154, 5, 154, 226, 153, 25, 154, 43, 154, 55, 154, 69, 154, 66, 154, 64, 154, 67, 154, 62, 154, 85, 154, 77, 154, 91, 154, 87, 154, 95, 154, 98, 154, 101, 154, 100, 154, 105, 154, 107, 154, 106, 154, 173, 154, 176, 154, 188, 154, 192, 154, 207, 154, 209, 154, 211, 154, 212, 154, 222, 154, 223, 154, 226, 154, 227, 154, 230, 154, 239, 154, 235, 154, 238, 154, 244, 154, 241, 154, 247, 154, 251, 154, 6, 155, 24, 155, 26, 155, 31, 155, 34, 155, 35, 155, 37, 155, 39, 155, 40, 155, 41, 155, 42, 155, 46, 155, 47, 155, 50, 155, 68, 155, 67, 155, 79, 155, 77, 155, 78, 155, 81, 155, 88, 155, 116, 155, 147, 155, 131, 155, 145, 155, 150, 155, 151, 155, 159, 155, 160, 155, 168, 155, 180, 155, 192, 155, 202, 155, 185, 155, 198, 155, 207, 155, 209, 155, 210, 155, 227, 155, 226, 155, 228, 155, 212, 155, 225, 155, 58, 156, 242, 155, 241, 155, 240, 155, 21, 156, 20, 156, 9, 156, 19, 156, 12, 156, 6, 156, 8, 156, 18, 156, 10, 156, 4, 156, 46, 156, 27, 156, 37, 156, 36, 156, 33, 156, 48, 156, 71, 156, 50, 156, 70, 156, 62, 156, 90, 156, 96, 156, 103, 156, 118, 156, 120, 156, 231, 156, 236, 156, 240, 156, 9, 157, 8, 157, 235, 156, 3, 157, 6, 157, 42, 157, 38, 157, 175, 157, 35, 157, 31, 157, 68, 157, 21, 157, 18, 157, 65, 157, 63, 157, 62, 157, 70, 157, 72, 157, 93, 157, 94, 157, 100, 157, 81, 157, 80, 157, 89, 157, 114, 157, 137, 157, 135, 157, 171, 157, 111, 157, 122, 157, 154, 157, 164, 157, 169, 157, 178, 157, 196, 157, 193, 157, 187, 157, 184, 157, 186, 157, 198, 157, 207, 157, 194, 157, 217, 157, 211, 157, 248, 157, 230, 157, 237, 157, 239, 157, 253, 157, 26, 158, 27, 158, 30, 158, 117, 158, 121, 158, 125, 158, 129, 158, 136, 158, 139, 158, 140, 158, 146, 158, 149, 158, 145, 158, 157, 158, 165, 158, 169, 158, 184, 158, 170, 158, 173, 158, 97, 151, 204, 158, 206, 158, 207, 158, 208, 158, 212, 158, 220, 158, 222, 158, 221, 158, 224, 158, 229, 158, 232, 158, 239, 158, 244, 158, 246, 158, 247, 158, 249, 158, 251, 158, 252, 158, 253, 158, 7, 159, 8, 159, 183, 118, 21, 159, 33, 159, 44, 159, 62, 159, 74, 159, 82, 159, 84, 159, 99, 159, 95, 159, 96, 159, 97, 159, 102, 159, 103, 159, 108, 159, 106, 159, 119, 159, 114, 159, 118, 159, 149, 159, 156, 159, 160, 159, 47, 88, 199, 105, 89, 144, 100, 116, 220, 81, 153, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 78, 4, 78, 5, 78, 6, 78, 15, 78, 18, 78, 23, 78, 31, 78, 32, 78, 33, 78, 35, 78, 38, 78, 41, 78, 46, 78, 47, 78, 49, 78, 51, 78, 53, 78, 55, 78, 60, 78, 64, 78, 65, 78, 66, 78, 68, 78, 70, 78, 74, 78, 81, 78, 85, 78, 87, 78, 90, 78, 91, 78, 98, 78, 99, 78, 100, 78, 101, 78, 103, 78, 104, 78, 106, 78, 107, 78, 108, 78, 109, 78, 110, 78, 111, 78, 114, 78, 116, 78, 117, 78, 118, 78, 119, 78, 120, 78, 121, 78, 122, 78, 123, 78, 124, 78, 125, 78, 127, 78, 128, 78, 129, 78, 130, 78, 131, 78, 132, 78, 133, 78, 135, 78, 138, 78, 144, 78, 150, 78, 151, 78, 153, 78, 156, 78, 157, 78, 158, 78, 163, 78, 170, 78, 175, 78, 176, 78, 177, 78, 180, 78, 182, 78, 183, 78, 184, 78, 185, 78, 188, 78, 189, 78, 190, 78, 200, 78, 204, 78, 207, 78, 208, 78, 210, 78, 218, 78, 219, 78, 220, 78, 224, 78, 226, 78, 230, 78, 231, 78, 233, 78, 237, 78, 238, 78, 239, 78, 241, 78, 244, 78, 248, 78, 249, 78, 250, 78, 252, 78, 254, 78, 0, 79, 2, 79, 3, 79, 4, 79, 5, 79, 6, 79, 7, 79, 8, 79, 11, 79, 12, 79, 18, 79, 19, 79, 20, 79, 21, 79, 22, 79, 28, 79, 29, 79, 33, 79, 35, 79, 40, 79, 41, 79, 44, 79, 45, 79, 46, 79, 49, 79, 51, 79, 53, 79, 55, 79, 57, 79, 59, 79, 62, 79, 63, 79, 64, 79, 65, 79, 66, 79, 68, 79, 69, 79, 71, 79, 72, 79, 73, 79, 74, 79, 75, 79, 76, 79, 82, 79, 84, 79, 86, 79, 97, 79, 98, 79, 102, 79, 104, 79, 106, 79, 107, 79, 109, 79, 110, 79, 113, 79, 114, 79, 117, 79, 119, 79, 120, 79, 121, 79, 122, 79, 125, 79, 128, 79, 129, 79, 130, 79, 133, 79, 134, 79, 135, 79, 138, 79, 140, 79, 142, 79, 144, 79, 146, 79, 147, 79, 149, 79, 150, 79, 152, 79, 153, 79, 154, 79, 156, 79, 158, 79, 159, 79, 161, 79, 162, 79, 164, 79, 171, 79, 173, 79, 176, 79, 177, 79, 178, 79, 179, 79, 180, 79, 182, 79, 183, 79, 184, 79, 185, 79, 186, 79, 187, 79, 188, 79, 189, 79, 190, 79, 192, 79, 193, 79, 194, 79, 198, 79, 199, 79, 200, 79, 201, 79, 203, 79, 204, 79, 205, 79, 210, 79, 211, 79, 212, 79, 213, 79, 214, 79, 217, 79, 219, 79, 224, 79, 226, 79, 228, 79, 229, 79, 231, 79, 235, 79, 236, 79, 240, 79, 242, 79, 244, 79, 245, 79, 246, 79, 247, 79, 249, 79, 251, 79, 252, 79, 253, 79, 255, 79, 0, 80, 1, 80, 2, 80, 3, 80, 4, 80, 5, 80, 6, 80, 7, 80, 8, 80, 9, 80, 10, 80, 11, 80, 14, 80, 16, 80, 17, 80, 19, 80, 21, 80, 22, 80, 23, 80, 27, 80, 29, 80, 30, 80, 32, 80, 34, 80, 35, 80, 36, 80, 39, 80, 43, 80, 47, 80, 48, 80, 49, 80, 50, 80, 51, 80, 52, 80, 53, 80, 54, 80, 55, 80, 56, 80, 57, 80, 59, 80, 61, 80, 63, 80, 64, 80, 65, 80, 66, 80, 68, 80, 69, 80, 70, 80, 73, 80, 74, 80, 75, 80, 77, 80, 80, 80, 81, 80, 82, 80, 83, 80, 84, 80, 86, 80, 87, 80, 88, 80, 89, 80, 91, 80, 93, 80, 94, 80, 95, 80, 96, 80, 97, 80, 98, 80, 99, 80, 100, 80, 102, 80, 103, 80, 104, 80, 105, 80, 106, 80, 107, 80, 109, 80, 110, 80, 111, 80, 112, 80, 113, 80, 114, 80, 115, 80, 116, 80, 117, 80, 120, 80, 121, 80, 122, 80, 124, 80, 125, 80, 129, 80, 130, 80, 131, 80, 132, 80, 134, 80, 135, 80, 137, 80, 138, 80, 139, 80, 140, 80, 142, 80, 143, 80, 144, 80, 145, 80, 146, 80, 147, 80, 148, 80, 149, 80, 150, 80, 151, 80, 152, 80, 153, 80, 154, 80, 155, 80, 156, 80, 157, 80, 158, 80, 159, 80, 160, 80, 161, 80, 162, 80, 164, 80, 166, 80, 170, 80, 171, 80, 173, 80, 174, 80, 175, 80, 176, 80, 177, 80, 179, 80, 180, 80, 181, 80, 182, 80, 183, 80, 184, 80, 185, 80, 188, 80, 189, 80, 190, 80, 191, 80, 192, 80, 193, 80, 194, 80, 195, 80, 196, 80, 197, 80, 198, 80, 199, 80, 200, 80, 201, 80, 202, 80, 203, 80, 204, 80, 205, 80, 206, 80, 208, 80, 209, 80, 210, 80, 211, 80, 212, 80, 213, 80, 215, 80, 216, 80, 217, 80, 219, 80, 220, 80, 221, 80, 222, 80, 223, 80, 224, 80, 225, 80, 226, 80, 227, 80, 228, 80, 229, 80, 232, 80, 233, 80, 234, 80, 235, 80, 239, 80, 240, 80, 241, 80, 242, 80, 244, 80, 246, 80, 247, 80, 248, 80, 249, 80, 250, 80, 252, 80, 253, 80, 254, 80, 255, 80, 0, 81, 1, 81, 2, 81, 3, 81, 4, 81, 5, 81, 8, 81, 9, 81, 10, 81, 12, 81, 13, 81, 14, 81, 15, 81, 16, 81, 17, 81, 19, 81, 20, 81, 21, 81, 22, 81, 23, 81, 24, 81, 25, 81, 26, 81, 27, 81, 28, 81, 29, 81, 30, 81, 31, 81, 32, 81, 34, 81, 35, 81, 36, 81, 37, 81, 38, 81, 39, 81, 40, 81, 41, 81, 42, 81, 43, 81, 44, 81, 45, 81, 46, 81, 47, 81, 48, 81, 49, 81, 50, 81, 51, 81, 52, 81, 53, 81, 54, 81, 55, 81, 56, 81, 57, 81, 58, 81, 59, 81, 60, 81, 61, 81, 62, 81, 66, 81, 71, 81, 74, 81, 76, 81, 78, 81, 79, 81, 80, 81, 82, 81, 83, 81, 87, 81, 88, 81, 89, 81, 91, 81, 93, 81, 94, 81, 95, 81, 96, 81, 97, 81, 99, 81, 100, 81, 102, 81, 103, 81, 105, 81, 106, 81, 111, 81, 114, 81, 122, 81, 126, 81, 127, 81, 131, 81, 132, 81, 134, 81, 135, 81, 138, 81, 139, 81, 142, 81, 143, 81, 144, 81, 145, 81, 147, 81, 148, 81, 152, 81, 154, 81, 157, 81, 158, 81, 159, 81, 161, 81, 163, 81, 166, 81, 167, 81, 168, 81, 169, 81, 170, 81, 173, 81, 174, 81, 180, 81, 184, 81, 185, 81, 186, 81, 190, 81, 191, 81, 193, 81, 194, 81, 195, 81, 197, 81, 200, 81, 202, 81, 205, 81, 206, 81, 208, 81, 210, 81, 211, 81, 212, 81, 213, 81, 214, 81, 215, 81, 216, 81, 217, 81, 218, 81, 220, 81, 222, 81, 223, 81, 226, 81, 227, 81, 229, 81, 230, 81, 231, 81, 232, 81, 233, 81, 234, 81, 236, 81, 238, 81, 241, 81, 242, 81, 244, 81, 247, 81, 254, 81, 4, 82, 5, 82, 9, 82, 11, 82, 12, 82, 15, 82, 16, 82, 19, 82, 20, 82, 21, 82, 28, 82, 30, 82, 31, 82, 33, 82, 34, 82, 35, 82, 37, 82, 38, 82, 39, 82, 42, 82, 44, 82, 47, 82, 49, 82, 50, 82, 52, 82, 53, 82, 60, 82, 62, 82, 68, 82, 69, 82, 70, 82, 71, 82, 72, 82, 73, 82, 75, 82, 78, 82, 79, 82, 82, 82, 83, 82, 85, 82, 87, 82, 88, 82, 89, 82, 90, 82, 91, 82, 93, 82, 95, 82, 96, 82, 98, 82, 99, 82, 100, 82, 102, 82, 104, 82, 107, 82, 108, 82, 109, 82, 110, 82, 112, 82, 113, 82, 115, 82, 116, 82, 117, 82, 118, 82, 119, 82, 120, 82, 121, 82, 122, 82, 123, 82, 124, 82, 126, 82, 128, 82, 131, 82, 132, 82, 133, 82, 134, 82, 135, 82, 137, 82, 138, 82, 139, 82, 140, 82, 141, 82, 142, 82, 143, 82, 145, 82, 146, 82, 148, 82, 149, 82, 150, 82, 151, 82, 152, 82, 153, 82, 154, 82, 156, 82, 164, 82, 165, 82, 166, 82, 167, 82, 174, 82, 175, 82, 176, 82, 180, 82, 181, 82, 182, 82, 183, 82, 184, 82, 185, 82, 186, 82, 187, 82, 188, 82, 189, 82, 192, 82, 193, 82, 194, 82, 196, 82, 197, 82, 198, 82, 200, 82, 202, 82, 204, 82, 205, 82, 206, 82, 207, 82, 209, 82, 211, 82, 212, 82, 213, 82, 215, 82, 217, 82, 218, 82, 219, 82, 220, 82, 221, 82, 222, 82, 224, 82, 225, 82, 226, 82, 227, 82, 229, 82, 230, 82, 231, 82, 232, 82, 233, 82, 234, 82, 235, 82, 236, 82, 237, 82, 238, 82, 239, 82, 241, 82, 242, 82, 243, 82, 244, 82, 245, 82, 246, 82, 247, 82, 248, 82, 251, 82, 252, 82, 253, 82, 1, 83, 2, 83, 3, 83, 4, 83, 7, 83, 9, 83, 10, 83, 11, 83, 12, 83, 14, 83, 17, 83, 18, 83, 19, 83, 20, 83, 24, 83, 27, 83, 28, 83, 30, 83, 31, 83, 34, 83, 36, 83, 37, 83, 39, 83, 40, 83, 41, 83, 43, 83, 44, 83, 45, 83, 47, 83, 48, 83, 49, 83, 50, 83, 51, 83, 52, 83, 53, 83, 54, 83, 55, 83, 56, 83, 60, 83, 61, 83, 64, 83, 66, 83, 68, 83, 70, 83, 75, 83, 76, 83, 77, 83, 80, 83, 84, 83, 88, 83, 89, 83, 91, 83, 93, 83, 101, 83, 104, 83, 106, 83, 108, 83, 109, 83, 114, 83, 118, 83, 121, 83, 123, 83, 124, 83, 125, 83, 126, 83, 128, 83, 129, 83, 131, 83, 135, 83, 136, 83, 138, 83, 142, 83, 143, 83, 144, 83, 145, 83, 146, 83, 147, 83, 148, 83, 150, 83, 151, 83, 153, 83, 155, 83, 156, 83, 158, 83, 160, 83, 161, 83, 164, 83, 167, 83, 170, 83, 171, 83, 172, 83, 173, 83, 175, 83, 176, 83, 177, 83, 178, 83, 179, 83, 180, 83, 181, 83, 183, 83, 184, 83, 185, 83, 186, 83, 188, 83, 189, 83, 190, 83, 192, 83, 195, 83, 196, 83, 197, 83, 198, 83, 199, 83, 206, 83, 207, 83, 208, 83, 210, 83, 211, 83, 213, 83, 218, 83, 220, 83, 221, 83, 222, 83, 225, 83, 226, 83, 231, 83, 244, 83, 250, 83, 254, 83, 255, 83, 0, 84, 2, 84, 5, 84, 7, 84, 11, 84, 20, 84, 24, 84, 25, 84, 26, 84, 28, 84, 34, 84, 36, 84, 37, 84, 42, 84, 48, 84, 51, 84, 54, 84, 55, 84, 58, 84, 61, 84, 63, 84, 65, 84, 66, 84, 68, 84, 69, 84, 71, 84, 73, 84, 76, 84, 77, 84, 78, 84, 79, 84, 81, 84, 90, 84, 93, 84, 94, 84, 95, 84, 96, 84, 97, 84, 99, 84, 101, 84, 103, 84, 105, 84, 106, 84, 107, 84, 108, 84, 109, 84, 110, 84, 111, 84, 112, 84, 116, 84, 121, 84, 122, 84, 126, 84, 127, 84, 129, 84, 131, 84, 133, 84, 135, 84, 136, 84, 137, 84, 138, 84, 141, 84, 145, 84, 147, 84, 151, 84, 152, 84, 156, 84, 158, 84, 159, 84, 160, 84, 161, 84, 162, 84, 165, 84, 174, 84, 176, 84, 178, 84, 181, 84, 182, 84, 183, 84, 185, 84, 186, 84, 188, 84, 190, 84, 195, 84, 197, 84, 202, 84, 203, 84, 214, 84, 216, 84, 219, 84, 224, 84, 225, 84, 226, 84, 227, 84, 228, 84, 235, 84, 236, 84, 239, 84, 240, 84, 241, 84, 244, 84, 245, 84, 246, 84, 247, 84, 248, 84, 249, 84, 251, 84, 254, 84, 0, 85, 2, 85, 3, 85, 4, 85, 5, 85, 8, 85, 10, 85, 11, 85, 12, 85, 13, 85, 14, 85, 18, 85, 19, 85, 21, 85, 22, 85, 23, 85, 24, 85, 25, 85, 26, 85, 28, 85, 29, 85, 30, 85, 31, 85, 33, 85, 37, 85, 38, 85, 40, 85, 41, 85, 43, 85, 45, 85, 50, 85, 52, 85, 53, 85, 54, 85, 56, 85, 57, 85, 58, 85, 59, 85, 61, 85, 64, 85, 66, 85, 69, 85, 71, 85, 72, 85, 75, 85, 76, 85, 77, 85, 78, 85, 79, 85, 81, 85, 82, 85, 83, 85, 84, 85, 87, 85, 88, 85, 89, 85, 90, 85, 91, 85, 93, 85, 94, 85, 95, 85, 96, 85, 98, 85, 99, 85, 104, 85, 105, 85, 107, 85, 111, 85, 112, 85, 113, 85, 114, 85, 115, 85, 116, 85, 121, 85, 122, 85, 125, 85, 127, 85, 133, 85, 134, 85, 140, 85, 141, 85, 142, 85, 144, 85, 146, 85, 147, 85, 149, 85, 150, 85, 151, 85, 154, 85, 155, 85, 158, 85, 160, 85, 161, 85, 162, 85, 163, 85, 164, 85, 165, 85, 166, 85, 168, 85, 169, 85, 170, 85, 171, 85, 172, 85, 173, 85, 174, 85, 175, 85, 176, 85, 178, 85, 180, 85, 182, 85, 184, 85, 186, 85, 188, 85, 191, 85, 192, 85, 193, 85, 194, 85, 195, 85, 198, 85, 199, 85, 200, 85, 202, 85, 203, 85, 206, 85, 207, 85, 208, 85, 213, 85, 215, 85, 216, 85, 217, 85, 218, 85, 219, 85, 222, 85, 224, 85, 226, 85, 231, 85, 233, 85, 237, 85, 238, 85, 240, 85, 241, 85, 244, 85, 246, 85, 248, 85, 249, 85, 250, 85, 251, 85, 252, 85, 255, 85, 2, 86, 3, 86, 4, 86, 5, 86, 6, 86, 7, 86, 10, 86, 11, 86, 13, 86, 16, 86, 17, 86, 18, 86, 19, 86, 20, 86, 21, 86, 22, 86, 23, 86, 25, 86, 26, 86, 28, 86, 29, 86, 32, 86, 33, 86, 34, 86, 37, 86, 38, 86, 40, 86, 41, 86, 42, 86, 43, 86, 46, 86, 47, 86, 48, 86, 51, 86, 53, 86, 55, 86, 56, 86, 58, 86, 60, 86, 61, 86, 62, 86, 64, 86, 65, 86, 66, 86, 67, 86, 68, 86, 69, 86, 70, 86, 71, 86, 72, 86, 73, 86, 74, 86, 75, 86, 79, 86, 80, 86, 81, 86, 82, 86, 83, 86, 85, 86, 86, 86, 90, 86, 91, 86, 93, 86, 94, 86, 95, 86, 96, 86, 97, 86, 99, 86, 101, 86, 102, 86, 103, 86, 109, 86, 110, 86, 111, 86, 112, 86, 114, 86, 115, 86, 116, 86, 117, 86, 119, 86, 120, 86, 121, 86, 122, 86, 125, 86, 126, 86, 127, 86, 128, 86, 129, 86, 130, 86, 131, 86, 132, 86, 135, 86, 136, 86, 137, 86, 138, 86, 139, 86, 140, 86, 141, 86, 144, 86, 145, 86, 146, 86, 148, 86, 149, 86, 150, 86, 151, 86, 152, 86, 153, 86, 154, 86, 155, 86, 156, 86, 157, 86, 158, 86, 159, 86, 160, 86, 161, 86, 162, 86, 164, 86, 165, 86, 166, 86, 167, 86, 168, 86, 169, 86, 170, 86, 171, 86, 172, 86, 173, 86, 174, 86, 176, 86, 177, 86, 178, 86, 179, 86, 180, 86, 181, 86, 182, 86, 184, 86, 185, 86, 186, 86, 187, 86, 189, 86, 190, 86, 191, 86, 192, 86, 193, 86, 194, 86, 195, 86, 196, 86, 197, 86, 198, 86, 199, 86, 200, 86, 201, 86, 203, 86, 204, 86, 205, 86, 206, 86, 207, 86, 208, 86, 209, 86, 210, 86, 211, 86, 213, 86, 214, 86, 216, 86, 217, 86, 220, 86, 227, 86, 229, 86, 230, 86, 231, 86, 232, 86, 233, 86, 234, 86, 236, 86, 238, 86, 239, 86, 242, 86, 243, 86, 246, 86, 247, 86, 248, 86, 251, 86, 252, 86, 0, 87, 1, 87, 2, 87, 5, 87, 7, 87, 11, 87, 12, 87, 13, 87, 14, 87, 15, 87, 16, 87, 17, 87, 18, 87, 19, 87, 20, 87, 21, 87, 22, 87, 23, 87, 24, 87, 25, 87, 26, 87, 27, 87, 29, 87, 30, 87, 32, 87, 33, 87, 34, 87, 36, 87, 37, 87, 38, 87, 39, 87, 43, 87, 49, 87, 50, 87, 52, 87, 53, 87, 54, 87, 55, 87, 56, 87, 60, 87, 61, 87, 63, 87, 65, 87, 67, 87, 68, 87, 69, 87, 70, 87, 72, 87, 73, 87, 75, 87, 82, 87, 83, 87, 84, 87, 85, 87, 86, 87, 88, 87, 89, 87, 98, 87, 99, 87, 101, 87, 103, 87, 108, 87, 110, 87, 112, 87, 113, 87, 114, 87, 116, 87, 117, 87, 120, 87, 121, 87, 122, 87, 125, 87, 126, 87, 127, 87, 128, 87, 129, 87, 135, 87, 136, 87, 137, 87, 138, 87, 141, 87, 142, 87, 143, 87, 144, 87, 145, 87, 148, 87, 149, 87, 150, 87, 151, 87, 152, 87, 153, 87, 154, 87, 156, 87, 157, 87, 158, 87, 159, 87, 165, 87, 168, 87, 170, 87, 172, 87, 175, 87, 176, 87, 177, 87, 179, 87, 181, 87, 182, 87, 183, 87, 185, 87, 186, 87, 187, 87, 188, 87, 189, 87, 190, 87, 191, 87, 192, 87, 193, 87, 196, 87, 197, 87, 198, 87, 199, 87, 200, 87, 201, 87, 202, 87, 204, 87, 205, 87, 208, 87, 209, 87, 211, 87, 214, 87, 215, 87, 219, 87, 220, 87, 222, 87, 225, 87, 226, 87, 227, 87, 229, 87, 230, 87, 231, 87, 232, 87, 233, 87, 234, 87, 235, 87, 236, 87, 238, 87, 240, 87, 241, 87, 242, 87, 243, 87, 245, 87, 246, 87, 247, 87, 251, 87, 252, 87, 254, 87, 255, 87, 1, 88, 3, 88, 4, 88, 5, 88, 8, 88, 9, 88, 10, 88, 12, 88, 14, 88, 15, 88, 16, 88, 18, 88, 19, 88, 20, 88, 22, 88, 23, 88, 24, 88, 26, 88, 27, 88, 28, 88, 29, 88, 31, 88, 34, 88, 35, 88, 37, 88, 38, 88, 39, 88, 40, 88, 41, 88, 43, 88, 44, 88, 45, 88, 46, 88, 47, 88, 49, 88, 50, 88, 51, 88, 52, 88, 54, 88, 55, 88, 56, 88, 57, 88, 58, 88, 59, 88, 60, 88, 61, 88, 62, 88, 63, 88, 64, 88, 65, 88, 66, 88, 67, 88, 69, 88, 70, 88, 71, 88, 72, 88, 73, 88, 74, 88, 75, 88, 78, 88, 79, 88, 80, 88, 82, 88, 83, 88, 85, 88, 86, 88, 87, 88, 89, 88, 90, 88, 91, 88, 92, 88, 93, 88, 95, 88, 96, 88, 97, 88, 98, 88, 99, 88, 100, 88, 102, 88, 103, 88, 104, 88, 105, 88, 106, 88, 109, 88, 110, 88, 111, 88, 112, 88, 113, 88, 114, 88, 115, 88, 116, 88, 117, 88, 118, 88, 119, 88, 120, 88, 121, 88, 122, 88, 123, 88, 124, 88, 125, 88, 127, 88, 130, 88, 132, 88, 134, 88, 135, 88, 136, 88, 138, 88, 139, 88, 140, 88, 141, 88, 142, 88, 143, 88, 144, 88, 145, 88, 148, 88, 149, 88, 150, 88, 151, 88, 152, 88, 155, 88, 156, 88, 157, 88, 160, 88, 161, 88, 162, 88, 163, 88, 164, 88, 165, 88, 166, 88, 167, 88, 170, 88, 171, 88, 172, 88, 173, 88, 174, 88, 175, 88, 176, 88, 177, 88, 178, 88, 179, 88, 180, 88, 181, 88, 182, 88, 183, 88, 184, 88, 185, 88, 186, 88, 187, 88, 189, 88, 190, 88, 191, 88, 192, 88, 194, 88, 195, 88, 196, 88, 198, 88, 199, 88, 200, 88, 201, 88, 202, 88, 203, 88, 204, 88, 205, 88, 206, 88, 207, 88, 208, 88, 210, 88, 211, 88, 212, 88, 214, 88, 215, 88, 216, 88, 217, 88, 218, 88, 219, 88, 220, 88, 221, 88, 222, 88, 223, 88, 224, 88, 225, 88, 226, 88, 227, 88, 229, 88, 230, 88, 231, 88, 232, 88, 233, 88, 234, 88, 237, 88, 239, 88, 241, 88, 242, 88, 244, 88, 245, 88, 247, 88, 248, 88, 250, 88, 251, 88, 252, 88, 253, 88, 254, 88, 255, 88, 0, 89, 1, 89, 3, 89, 5, 89, 6, 89, 8, 89, 9, 89, 10, 89, 11, 89, 12, 89, 14, 89, 16, 89, 17, 89, 18, 89, 19, 89, 23, 89, 24, 89, 27, 89, 29, 89, 30, 89, 32, 89, 33, 89, 34, 89, 35, 89, 38, 89, 40, 89, 44, 89, 48, 89, 50, 89, 51, 89, 53, 89, 54, 89, 59, 89, 61, 89, 62, 89, 63, 89, 64, 89, 67, 89, 69, 89, 70, 89, 74, 89, 76, 89, 77, 89, 80, 89, 82, 89, 83, 89, 89, 89, 91, 89, 92, 89, 93, 89, 94, 89, 95, 89, 97, 89, 99, 89, 100, 89, 102, 89, 103, 89, 104, 89, 105, 89, 106, 89, 107, 89, 108, 89, 109, 89, 110, 89, 111, 89, 112, 89, 113, 89, 114, 89, 117, 89, 119, 89, 122, 89, 123, 89, 124, 89, 126, 89, 127, 89, 128, 89, 133, 89, 137, 89, 139, 89, 140, 89, 142, 89, 143, 89, 144, 89, 145, 89, 148, 89, 149, 89, 152, 89, 154, 89, 155, 89, 156, 89, 157, 89, 159, 89, 160, 89, 161, 89, 162, 89, 166, 89, 167, 89, 172, 89, 173, 89, 176, 89, 177, 89, 179, 89, 180, 89, 181, 89, 182, 89, 183, 89, 184, 89, 186, 89, 188, 89, 189, 89, 191, 89, 192, 89, 193, 89, 194, 89, 195, 89, 196, 89, 197, 89, 199, 89, 200, 89, 201, 89, 204, 89, 205, 89, 206, 89, 207, 89, 213, 89, 214, 89, 217, 89, 219, 89, 222, 89, 223, 89, 224, 89, 225, 89, 226, 89, 228, 89, 230, 89, 231, 89, 233, 89, 234, 89, 235, 89, 237, 89, 238, 89, 239, 89, 240, 89, 241, 89, 242, 89, 243, 89, 244, 89, 245, 89, 246, 89, 247, 89, 248, 89, 250, 89, 252, 89, 253, 89, 254, 89, 0, 90, 2, 90, 10, 90, 11, 90, 13, 90, 14, 90, 15, 90, 16, 90, 18, 90, 20, 90, 21, 90, 22, 90, 23, 90, 25, 90, 26, 90, 27, 90, 29, 90, 30, 90, 33, 90, 34, 90, 36, 90, 38, 90, 39, 90, 40, 90, 42, 90, 43, 90, 44, 90, 45, 90, 46, 90, 47, 90, 48, 90, 51, 90, 53, 90, 55, 90, 56, 90, 57, 90, 58, 90, 59, 90, 61, 90, 62, 90, 63, 90, 65, 90, 66, 90, 67, 90, 68, 90, 69, 90, 71, 90, 72, 90, 75, 90, 76, 90, 77, 90, 78, 90, 79, 90, 80, 90, 81, 90, 82, 90, 83, 90, 84, 90, 86, 90, 87, 90, 88, 90, 89, 90, 91, 90, 92, 90, 93, 90, 94, 90, 95, 90, 96, 90, 97, 90, 99, 90, 100, 90, 101, 90, 102, 90, 104, 90, 105, 90, 107, 90, 108, 90, 109, 90, 110, 90, 111, 90, 112, 90, 113, 90, 114, 90, 115, 90, 120, 90, 121, 90, 123, 90, 124, 90, 125, 90, 126, 90, 128, 90, 129, 90, 130, 90, 131, 90, 132, 90, 133, 90, 134, 90, 135, 90, 136, 90, 137, 90, 138, 90, 139, 90, 140, 90, 141, 90, 142, 90, 143, 90, 144, 90, 145, 90, 147, 90, 148, 90, 149, 90, 150, 90, 151, 90, 152, 90, 153, 90, 156, 90, 157, 90, 158, 90, 159, 90, 160, 90, 161, 90, 162, 90, 163, 90, 164, 90, 165, 90, 166, 90, 167, 90, 168, 90, 169, 90, 171, 90, 172, 90, 173, 90, 174, 90, 175, 90, 176, 90, 177, 90, 180, 90, 182, 90, 183, 90, 185, 90, 186, 90, 187, 90, 188, 90, 189, 90, 191, 90, 192, 90, 195, 90, 196, 90, 197, 90, 198, 90, 199, 90, 200, 90, 202, 90, 203, 90, 205, 90, 206, 90, 207, 90, 208, 90, 209, 90, 211, 90, 213, 90, 215, 90, 217, 90, 218, 90, 219, 90, 221, 90, 222, 90, 223, 90, 226, 90, 228, 90, 229, 90, 231, 90, 232, 90, 234, 90, 236, 90, 237, 90, 238, 90, 239, 90, 240, 90, 242, 90, 243, 90, 244, 90, 245, 90, 246, 90, 247, 90, 248, 90, 249, 90, 250, 90, 251, 90, 252, 90, 253, 90, 254, 90, 255, 90, 0, 91, 1, 91, 2, 91, 3, 91, 4, 91, 5, 91, 6, 91, 7, 91, 8, 91, 10, 91, 11, 91, 12, 91, 13, 91, 14, 91, 15, 91, 16, 91, 17, 91, 18, 91, 19, 91, 20, 91, 21, 91, 24, 91, 25, 91, 26, 91, 27, 91, 28, 91, 29, 91, 30, 91, 31, 91, 32, 91, 33, 91, 34, 91, 35, 91, 36, 91, 37, 91, 38, 91, 39, 91, 40, 91, 41, 91, 42, 91, 43, 91, 44, 91, 45, 91, 46, 91, 47, 91, 48, 91, 49, 91, 51, 91, 53, 91, 54, 91, 56, 91, 57, 91, 58, 91, 59, 91, 60, 91, 61, 91, 62, 91, 63, 91, 65, 91, 66, 91, 67, 91, 68, 91, 69, 91, 70, 91, 71, 91, 72, 91, 73, 91, 74, 91, 75, 91, 76, 91, 77, 91, 78, 91, 79, 91, 82, 91, 86, 91, 94, 91, 96, 91, 97, 91, 103, 91, 104, 91, 107, 91, 109, 91, 110, 91, 111, 91, 114, 91, 116, 91, 118, 91, 119, 91, 120, 91, 121, 91, 123, 91, 124, 91, 126, 91, 127, 91, 130, 91, 134, 91, 138, 91, 141, 91, 142, 91, 144, 91, 145, 91, 146, 91, 148, 91, 150, 91, 159, 91, 167, 91, 168, 91, 169, 91, 172, 91, 173, 91, 174, 91, 175, 91, 177, 91, 178, 91, 183, 91, 186, 91, 187, 91, 188, 91, 192, 91, 193, 91, 195, 91, 200, 91, 201, 91, 202, 91, 203, 91, 205, 91, 206, 91, 207, 91, 209, 91, 212, 91, 213, 91, 214, 91, 215, 91, 216, 91, 217, 91, 218, 91, 219, 91, 220, 91, 224, 91, 226, 91, 227, 91, 230, 91, 231, 91, 233, 91, 234, 91, 235, 91, 236, 91, 237, 91, 239, 91, 241, 91, 242, 91, 243, 91, 244, 91, 245, 91, 246, 91, 247, 91, 253, 91, 254, 91, 0, 92, 2, 92, 3, 92, 5, 92, 7, 92, 8, 92, 11, 92, 12, 92, 13, 92, 14, 92, 16, 92, 18, 92, 19, 92, 23, 92, 25, 92, 27, 92, 30, 92, 31, 92, 32, 92, 33, 92, 35, 92, 38, 92, 40, 92, 41, 92, 42, 92, 43, 92, 45, 92, 46, 92, 47, 92, 48, 92, 50, 92, 51, 92, 53, 92, 54, 92, 55, 92, 67, 92, 68, 92, 70, 92, 71, 92, 76, 92, 77, 92, 82, 92, 83, 92, 84, 92, 86, 92, 87, 92, 88, 92, 90, 92, 91, 92, 92, 92, 93, 92, 95, 92, 98, 92, 100, 92, 103, 92, 104, 92, 105, 92, 106, 92, 107, 92, 108, 92, 109, 92, 112, 92, 114, 92, 115, 92, 116, 92, 117, 92, 118, 92, 119, 92, 120, 92, 123, 92, 124, 92, 125, 92, 126, 92, 128, 92, 131, 92, 132, 92, 133, 92, 134, 92, 135, 92, 137, 92, 138, 92, 139, 92, 142, 92, 143, 92, 146, 92, 147, 92, 149, 92, 157, 92, 158, 92, 159, 92, 160, 92, 161, 92, 164, 92, 165, 92, 166, 92, 167, 92, 168, 92, 170, 92, 174, 92, 175, 92, 176, 92, 178, 92, 180, 92, 182, 92, 185, 92, 186, 92, 187, 92, 188, 92, 190, 92, 192, 92, 194, 92, 195, 92, 197, 92, 198, 92, 199, 92, 200, 92, 201, 92, 202, 92, 204, 92, 205, 92, 206, 92, 207, 92, 208, 92, 209, 92, 211, 92, 212, 92, 213, 92, 214, 92, 215, 92, 216, 92, 218, 92, 219, 92, 220, 92, 221, 92, 222, 92, 223, 92, 224, 92, 226, 92, 227, 92, 231, 92, 233, 92, 235, 92, 236, 92, 238, 92, 239, 92, 241, 92, 242, 92, 243, 92, 244, 92, 245, 92, 246, 92, 247, 92, 248, 92, 249, 92, 250, 92, 252, 92, 253, 92, 254, 92, 255, 92, 0, 93, 1, 93, 4, 93, 5, 93, 8, 93, 9, 93, 10, 93, 11, 93, 12, 93, 13, 93, 15, 93, 16, 93, 17, 93, 18, 93, 19, 93, 21, 93, 23, 93, 24, 93, 25, 93, 26, 93, 28, 93, 29, 93, 31, 93, 32, 93, 33, 93, 34, 93, 35, 93, 37, 93, 40, 93, 42, 93, 43, 93, 44, 93, 47, 93, 48, 93, 49, 93, 50, 93, 51, 93, 53, 93, 54, 93, 55, 93, 56, 93, 57, 93, 58, 93, 59, 93, 60, 93, 63, 93, 64, 93, 65, 93, 66, 93, 67, 93, 68, 93, 69, 93, 70, 93, 72, 93, 73, 93, 77, 93, 78, 93, 79, 93, 80, 93, 81, 93, 82, 93, 83, 93, 84, 93, 85, 93, 86, 93, 87, 93, 89, 93, 90, 93, 92, 93, 94, 93, 95, 93, 96, 93, 97, 93, 98, 93, 99, 93, 100, 93, 101, 93, 102, 93, 103, 93, 104, 93, 106, 93, 109, 93, 110, 93, 112, 93, 113, 93, 114, 93, 115, 93, 117, 93, 118, 93, 119, 93, 120, 93, 121, 93, 122, 93, 123, 93, 124, 93, 125, 93, 126, 93, 127, 93, 128, 93, 129, 93, 131, 93, 132, 93, 133, 93, 134, 93, 135, 93, 136, 93, 137, 93, 138, 93, 139, 93, 140, 93, 141, 93, 142, 93, 143, 93, 144, 93, 145, 93, 146, 93, 147, 93, 148, 93, 149, 93, 150, 93, 151, 93, 152, 93, 154, 93, 155, 93, 156, 93, 158, 93, 159, 93, 160, 93, 161, 93, 162, 93, 163, 93, 164, 93, 165, 93, 166, 93, 167, 93, 168, 93, 169, 93, 170, 93, 171, 93, 172, 93, 173, 93, 174, 93, 175, 93, 176, 93, 177, 93, 178, 93, 179, 93, 180, 93, 181, 93, 182, 93, 184, 93, 185, 93, 186, 93, 187, 93, 188, 93, 189, 93, 190, 93, 191, 93, 192, 93, 193, 93, 194, 93, 195, 93, 196, 93, 198, 93, 199, 93, 200, 93, 201, 93, 202, 93, 203, 93, 204, 93, 206, 93, 207, 93, 208, 93, 209, 93, 210, 93, 211, 93, 212, 93, 213, 93, 214, 93, 215, 93, 216, 93, 217, 93, 218, 93, 220, 93, 223, 93, 224, 93, 227, 93, 228, 93, 234, 93, 236, 93, 237, 93, 240, 93, 245, 93, 246, 93, 248, 93, 249, 93, 250, 93, 251, 93, 252, 93, 255, 93, 0, 94, 4, 94, 7, 94, 9, 94, 10, 94, 11, 94, 13, 94, 14, 94, 18, 94, 19, 94, 23, 94, 30, 94, 31, 94, 32, 94, 33, 94, 34, 94, 35, 94, 36, 94, 37, 94, 40, 94, 41, 94, 42, 94, 43, 94, 44, 94, 47, 94, 48, 94, 50, 94, 51, 94, 52, 94, 53, 94, 54, 94, 57, 94, 58, 94, 62, 94, 63, 94, 64, 94, 65, 94, 67, 94, 70, 94, 71, 94, 72, 94, 73, 94, 74, 94, 75, 94, 77, 94, 78, 94, 79, 94, 80, 94, 81, 94, 82, 94, 83, 94, 86, 94, 87, 94, 88, 94, 89, 94, 90, 94, 92, 94, 93, 94, 95, 94, 96, 94, 99, 94, 100, 94, 101, 94, 102, 94, 103, 94, 104, 94, 105, 94, 106, 94, 107, 94, 108, 94, 109, 94, 110, 94, 111, 94, 112, 94, 113, 94, 117, 94, 119, 94, 121, 94, 126, 94, 129, 94, 130, 94, 131, 94, 133, 94, 136, 94, 137, 94, 140, 94, 141, 94, 142, 94, 146, 94, 152, 94, 155, 94, 157, 94, 161, 94, 162, 94, 163, 94, 164, 94, 168, 94, 169, 94, 170, 94, 171, 94, 172, 94, 174, 94, 175, 94, 176, 94, 177, 94, 178, 94, 180, 94, 186, 94, 187, 94, 188, 94, 189, 94, 191, 94, 192, 94, 193, 94, 194, 94, 195, 94, 196, 94, 197, 94, 198, 94, 199, 94, 200, 94, 203, 94, 204, 94, 205, 94, 206, 94, 207, 94, 208, 94, 212, 94, 213, 94, 215, 94, 216, 94, 217, 94, 218, 94, 220, 94, 221, 94, 222, 94, 223, 94, 224, 94, 225, 94, 226, 94, 227, 94, 228, 94, 229, 94, 230, 94, 231, 94, 233, 94, 235, 94, 236, 94, 237, 94, 238, 94, 239, 94, 240, 94, 241, 94, 242, 94, 243, 94, 245, 94, 248, 94, 249, 94, 251, 94, 252, 94, 253, 94, 5, 95, 6, 95, 7, 95, 9, 95, 12, 95, 13, 95, 14, 95, 16, 95, 18, 95, 20, 95, 22, 95, 25, 95, 26, 95, 28, 95, 29, 95, 30, 95, 33, 95, 34, 95, 35, 95, 36, 95, 40, 95, 43, 95, 44, 95, 46, 95, 48, 95, 50, 95, 51, 95, 52, 95, 53, 95, 54, 95, 55, 95, 56, 95, 59, 95, 61, 95, 62, 95, 63, 95, 65, 95, 66, 95, 67, 95, 68, 95, 69, 95, 70, 95, 71, 95, 72, 95, 73, 95, 74, 95, 75, 95, 76, 95, 77, 95, 78, 95, 79, 95, 81, 95, 84, 95, 89, 95, 90, 95, 91, 95, 92, 95, 94, 95, 95, 95, 96, 95, 99, 95, 101, 95, 103, 95, 104, 95, 107, 95, 110, 95, 111, 95, 114, 95, 116, 95, 117, 95, 118, 95, 120, 95, 122, 95, 125, 95, 126, 95, 127, 95, 131, 95, 134, 95, 141, 95, 142, 95, 143, 95, 145, 95, 147, 95, 148, 95, 150, 95, 154, 95, 155, 95, 157, 95, 158, 95, 159, 95, 160, 95, 162, 95, 163, 95, 164, 95, 165, 95, 166, 95, 167, 95, 169, 95, 171, 95, 172, 95, 175, 95, 176, 95, 177, 95, 178, 95, 179, 95, 180, 95, 182, 95, 184, 95, 185, 95, 186, 95, 187, 95, 190, 95, 191, 95, 192, 95, 193, 95, 194, 95, 199, 95, 200, 95, 202, 95, 203, 95, 206, 95, 211, 95, 212, 95, 213, 95, 218, 95, 219, 95, 220, 95, 222, 95, 223, 95, 226, 95, 227, 95, 229, 95, 230, 95, 232, 95, 233, 95, 236, 95, 239, 95, 240, 95, 242, 95, 243, 95, 244, 95, 246, 95, 247, 95, 249, 95, 250, 95, 252, 95, 7, 96, 8, 96, 9, 96, 11, 96, 12, 96, 16, 96, 17, 96, 19, 96, 23, 96, 24, 96, 26, 96, 30, 96, 31, 96, 34, 96, 35, 96, 36, 96, 44, 96, 45, 96, 46, 96, 48, 96, 49, 96, 50, 96, 51, 96, 52, 96, 54, 96, 55, 96, 56, 96, 57, 96, 58, 96, 61, 96, 62, 96, 64, 96, 68, 96, 69, 96, 70, 96, 71, 96, 72, 96, 73, 96, 74, 96, 76, 96, 78, 96, 79, 96, 81, 96, 83, 96, 84, 96, 86, 96, 87, 96, 88, 96, 91, 96, 92, 96, 94, 96, 95, 96, 96, 96, 97, 96, 101, 96, 102, 96, 110, 96, 113, 96, 114, 96, 116, 96, 117, 96, 119, 96, 126, 96, 128, 96, 129, 96, 130, 96, 133, 96, 134, 96, 135, 96, 136, 96, 138, 96, 139, 96, 142, 96, 143, 96, 144, 96, 145, 96, 147, 96, 149, 96, 151, 96, 152, 96, 153, 96, 156, 96, 158, 96, 161, 96, 162, 96, 164, 96, 165, 96, 167, 96, 169, 96, 170, 96, 174, 96, 176, 96, 179, 96, 181, 96, 182, 96, 183, 96, 185, 96, 186, 96, 189, 96, 190, 96, 191, 96, 192, 96, 193, 96, 194, 96, 195, 96, 196, 96, 199, 96, 200, 96, 201, 96, 204, 96, 205, 96, 206, 96, 207, 96, 208, 96, 210, 96, 211, 96, 212, 96, 214, 96, 215, 96, 217, 96, 219, 96, 222, 96, 225, 96, 226, 96, 227, 96, 228, 96, 229, 96, 234, 96, 241, 96, 242, 96, 245, 96, 247, 96, 248, 96, 251, 96, 252, 96, 253, 96, 254, 96, 255, 96, 2, 97, 3, 97, 4, 97, 5, 97, 7, 97, 10, 97, 11, 97, 12, 97, 16, 97, 17, 97, 18, 97, 19, 97, 20, 97, 22, 97, 23, 97, 24, 97, 25, 97, 27, 97, 28, 97, 29, 97, 30, 97, 33, 97, 34, 97, 37, 97, 40, 97, 41, 97, 42, 97, 44, 97, 45, 97, 46, 97, 47, 97, 48, 97, 49, 97, 50, 97, 51, 97, 52, 97, 53, 97, 54, 97, 55, 97, 56, 97, 57, 97, 58, 97, 59, 97, 60, 97, 61, 97, 62, 97, 64, 97, 65, 97, 66, 97, 67, 97, 68, 97, 69, 97, 70, 97, 71, 97, 73, 97, 75, 97, 77, 97, 79, 97, 80, 97, 82, 97, 83, 97, 84, 97, 86, 97, 87, 97, 88, 97, 89, 97, 90, 97, 91, 97, 92, 97, 94, 97, 95, 97, 96, 97, 97, 97, 99, 97, 100, 97, 101, 97, 102, 97, 105, 97, 106, 97, 107, 97, 108, 97, 109, 97, 110, 97, 111, 97, 113, 97, 114, 97, 115, 97, 116, 97, 118, 97, 120, 97, 121, 97, 122, 97, 123, 97, 124, 97, 125, 97, 126, 97, 127, 97, 128, 97, 129, 97, 130, 97, 131, 97, 132, 97, 133, 97, 134, 97, 135, 97, 136, 97, 137, 97, 138, 97, 140, 97, 141, 97, 143, 97, 144, 97, 145, 97, 146, 97, 147, 97, 149, 97, 150, 97, 151, 97, 152, 97, 153, 97, 154, 97, 155, 97, 156, 97, 158, 97, 159, 97, 160, 97, 161, 97, 162, 97, 163, 97, 164, 97, 165, 97, 166, 97, 170, 97, 171, 97, 173, 97, 174, 97, 175, 97, 176, 97, 177, 97, 178, 97, 179, 97, 180, 97, 181, 97, 182, 97, 184, 97, 185, 97, 186, 97, 187, 97, 188, 97, 189, 97, 191, 97, 192, 97, 193, 97, 195, 97, 196, 97, 197, 97, 198, 97, 199, 97, 201, 97, 204, 97, 205, 97, 206, 97, 207, 97, 208, 97, 211, 97, 213, 97, 214, 97, 215, 97, 216, 97, 217, 97, 218, 97, 219, 97, 220, 97, 221, 97, 222, 97, 223, 97, 224, 97, 225, 97, 226, 97, 227, 97, 228, 97, 229, 97, 231, 97, 232, 97, 233, 97, 234, 97, 235, 97, 236, 97, 237, 97, 238, 97, 239, 97, 240, 97, 241, 97, 242, 97, 243, 97, 244, 97, 246, 97, 247, 97, 248, 97, 249, 97, 250, 97, 251, 97, 252, 97, 253, 97, 254, 97, 0, 98, 1, 98, 2, 98, 3, 98, 4, 98, 5, 98, 7, 98, 9, 98, 19, 98, 20, 98, 25, 98, 28, 98, 29, 98, 30, 98, 32, 98, 35, 98, 38, 98, 39, 98, 40, 98, 41, 98, 43, 98, 45, 98, 47, 98, 48, 98, 49, 98, 50, 98, 53, 98, 54, 98, 56, 98, 57, 98, 58, 98, 59, 98, 60, 98, 66, 98, 68, 98, 69, 98, 70, 98, 74, 98, 79, 98, 80, 98, 85, 98, 86, 98, 87, 98, 89, 98, 90, 98, 92, 98, 93, 98, 94, 98, 95, 98, 96, 98, 97, 98, 98, 98, 100, 98, 101, 98, 104, 98, 113, 98, 114, 98, 116, 98, 117, 98, 119, 98, 120, 98, 122, 98, 123, 98, 125, 98, 129, 98, 130, 98, 131, 98, 133, 98, 134, 98, 135, 98, 136, 98, 139, 98, 140, 98, 141, 98, 142, 98, 143, 98, 144, 98, 148, 98, 153, 98, 156, 98, 157, 98, 158, 98, 163, 98, 166, 98, 167, 98, 169, 98, 170, 98, 173, 98, 174, 98, 175, 98, 176, 98, 178, 98, 179, 98, 180, 98, 182, 98, 183, 98, 184, 98, 186, 98, 190, 98, 192, 98, 193, 98, 195, 98, 203, 98, 207, 98, 209, 98, 213, 98, 221, 98, 222, 98, 224, 98, 225, 98, 228, 98, 234, 98, 235, 98, 240, 98, 242, 98, 245, 98, 248, 98, 249, 98, 250, 98, 251, 98, 0, 99, 3, 99, 4, 99, 5, 99, 6, 99, 10, 99, 11, 99, 12, 99, 13, 99, 15, 99, 16, 99, 18, 99, 19, 99, 20, 99, 21, 99, 23, 99, 24, 99, 25, 99, 28, 99, 38, 99, 39, 99, 41, 99, 44, 99, 45, 99, 46, 99, 48, 99, 49, 99, 51, 99, 52, 99, 53, 99, 54, 99, 55, 99, 56, 99, 59, 99, 60, 99, 62, 99, 63, 99, 64, 99, 65, 99, 68, 99, 71, 99, 72, 99, 74, 99, 81, 99, 82, 99, 83, 99, 84, 99, 86, 99, 87, 99, 88, 99, 89, 99, 90, 99, 91, 99, 92, 99, 93, 99, 96, 99, 100, 99, 101, 99, 102, 99, 104, 99, 106, 99, 107, 99, 108, 99, 111, 99, 112, 99, 114, 99, 115, 99, 116, 99, 117, 99, 120, 99, 121, 99, 124, 99, 125, 99, 126, 99, 127, 99, 129, 99, 131, 99, 132, 99, 133, 99, 134, 99, 139, 99, 141, 99, 145, 99, 147, 99, 148, 99, 149, 99, 151, 99, 153, 99, 154, 99, 155, 99, 156, 99, 157, 99, 158, 99, 159, 99, 161, 99, 164, 99, 166, 99, 171, 99, 175, 99, 177, 99, 178, 99, 181, 99, 182, 99, 185, 99, 187, 99, 189, 99, 191, 99, 192, 99, 193, 99, 194, 99, 195, 99, 197, 99, 199, 99, 200, 99, 202, 99, 203, 99, 204, 99, 209, 99, 211, 99, 212, 99, 213, 99, 215, 99, 216, 99, 217, 99, 218, 99, 219, 99, 220, 99, 221, 99, 223, 99, 226, 99, 228, 99, 229, 99, 230, 99, 231, 99, 232, 99, 235, 99, 236, 99, 238, 99, 239, 99, 240, 99, 241, 99, 243, 99, 245, 99, 247, 99, 249, 99, 250, 99, 251, 99, 252, 99, 254, 99, 3, 100, 4, 100, 6, 100, 7, 100, 8, 100, 9, 100, 10, 100, 13, 100, 14, 100, 17, 100, 18, 100, 21, 100, 22, 100, 23, 100, 24, 100, 25, 100, 26, 100, 29, 100, 31, 100, 34, 100, 35, 100, 36, 100, 37, 100, 39, 100, 40, 100, 41, 100, 43, 100, 46, 100, 47, 100, 48, 100, 49, 100, 50, 100, 51, 100, 53, 100, 54, 100, 55, 100, 56, 100, 57, 100, 59, 100, 60, 100, 62, 100, 64, 100, 66, 100, 67, 100, 73, 100, 75, 100, 76, 100, 77, 100, 78, 100, 79, 100, 80, 100, 81, 100, 83, 100, 85, 100, 86, 100, 87, 100, 89, 100, 90, 100, 91, 100, 92, 100, 93, 100, 95, 100, 96, 100, 97, 100, 98, 100, 99, 100, 100, 100, 101, 100, 102, 100, 104, 100, 106, 100, 107, 100, 108, 100, 110, 100, 111, 100, 112, 100, 113, 100, 114, 100, 115, 100, 116, 100, 117, 100, 118, 100, 119, 100, 123, 100, 124, 100, 125, 100, 126, 100, 127, 100, 128, 100, 129, 100, 131, 100, 134, 100, 136, 100, 137, 100, 138, 100, 139, 100, 140, 100, 141, 100, 142, 100, 143, 100, 144, 100, 147, 100, 148, 100, 151, 100, 152, 100, 154, 100, 155, 100, 156, 100, 157, 100, 159, 100, 160, 100, 161, 100, 162, 100, 163, 100, 165, 100, 166, 100, 167, 100, 168, 100, 170, 100, 171, 100, 175, 100, 177, 100, 178, 100, 179, 100, 180, 100, 182, 100, 185, 100, 187, 100, 189, 100, 190, 100, 191, 100, 193, 100, 195, 100, 196, 100, 198, 100, 199, 100, 200, 100, 201, 100, 202, 100, 203, 100, 204, 100, 207, 100, 209, 100, 211, 100, 212, 100, 213, 100, 214, 100, 217, 100, 218, 100, 219, 100, 220, 100, 221, 100, 223, 100, 224, 100, 225, 100, 227, 100, 229, 100, 231, 100, 232, 100, 233, 100, 234, 100, 235, 100, 236, 100, 237, 100, 238, 100, 239, 100, 240, 100, 241, 100, 242, 100, 243, 100, 244, 100, 245, 100, 246, 100, 247, 100, 248, 100, 249, 100, 250, 100, 251, 100, 252, 100, 253, 100, 254, 100, 255, 100, 1, 101, 2, 101, 3, 101, 4, 101, 5, 101, 6, 101, 7, 101, 8, 101, 10, 101, 11, 101, 12, 101, 13, 101, 14, 101, 15, 101, 16, 101, 17, 101, 19, 101, 20, 101, 21, 101, 22, 101, 23, 101, 25, 101, 26, 101, 27, 101, 28, 101, 29, 101, 30, 101, 31, 101, 32, 101, 33, 101, 34, 101, 35, 101, 36, 101, 38, 101, 39, 101, 40, 101, 41, 101, 42, 101, 44, 101, 45, 101, 48, 101, 49, 101, 50, 101, 51, 101, 55, 101, 58, 101, 60, 101, 61, 101, 64, 101, 65, 101, 66, 101, 67, 101, 68, 101, 70, 101, 71, 101, 74, 101, 75, 101, 77, 101, 78, 101, 80, 101, 82, 101, 83, 101, 84, 101, 87, 101, 88, 101, 90, 101, 92, 101, 95, 101, 96, 101, 97, 101, 100, 101, 101, 101, 103, 101, 104, 101, 105, 101, 106, 101, 109, 101, 110, 101, 111, 101, 113, 101, 115, 101, 117, 101, 118, 101, 120, 101, 121, 101, 122, 101, 123, 101, 124, 101, 125, 101, 126, 101, 127, 101, 128, 101, 129, 101, 130, 101, 131, 101, 132, 101, 133, 101, 134, 101, 136, 101, 137, 101, 138, 101, 141, 101, 142, 101, 143, 101, 146, 101, 148, 101, 149, 101, 150, 101, 152, 101, 154, 101, 157, 101 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 25332 ); /* memory initializer */ allocate( [ 158, 101, 160, 101, 162, 101, 163, 101, 166, 101, 168, 101, 170, 101, 172, 101, 174, 101, 177, 101, 178, 101, 179, 101, 180, 101, 181, 101, 182, 101, 183, 101, 184, 101, 186, 101, 187, 101, 190, 101, 191, 101, 192, 101, 194, 101, 199, 101, 200, 101, 201, 101, 202, 101, 205, 101, 208, 101, 209, 101, 211, 101, 212, 101, 213, 101, 216, 101, 217, 101, 218, 101, 219, 101, 220, 101, 221, 101, 222, 101, 223, 101, 225, 101, 227, 101, 228, 101, 234, 101, 235, 101, 242, 101, 243, 101, 244, 101, 245, 101, 248, 101, 249, 101, 251, 101, 252, 101, 253, 101, 254, 101, 255, 101, 1, 102, 4, 102, 5, 102, 7, 102, 8, 102, 9, 102, 11, 102, 13, 102, 16, 102, 17, 102, 18, 102, 22, 102, 23, 102, 24, 102, 26, 102, 27, 102, 28, 102, 30, 102, 33, 102, 34, 102, 35, 102, 36, 102, 38, 102, 41, 102, 42, 102, 43, 102, 44, 102, 46, 102, 48, 102, 50, 102, 51, 102, 55, 102, 56, 102, 57, 102, 58, 102, 59, 102, 61, 102, 63, 102, 64, 102, 66, 102, 68, 102, 69, 102, 70, 102, 71, 102, 72, 102, 73, 102, 74, 102, 77, 102, 78, 102, 80, 102, 81, 102, 88, 102, 89, 102, 91, 102, 92, 102, 93, 102, 94, 102, 96, 102, 98, 102, 99, 102, 101, 102, 103, 102, 105, 102, 106, 102, 107, 102, 108, 102, 109, 102, 113, 102, 114, 102, 115, 102, 117, 102, 120, 102, 121, 102, 123, 102, 124, 102, 125, 102, 127, 102, 128, 102, 129, 102, 131, 102, 133, 102, 134, 102, 136, 102, 137, 102, 138, 102, 139, 102, 141, 102, 142, 102, 143, 102, 144, 102, 146, 102, 147, 102, 148, 102, 149, 102, 152, 102, 153, 102, 154, 102, 155, 102, 156, 102, 158, 102, 159, 102, 160, 102, 161, 102, 162, 102, 163, 102, 164, 102, 165, 102, 166, 102, 169, 102, 170, 102, 171, 102, 172, 102, 173, 102, 175, 102, 176, 102, 177, 102, 178, 102, 179, 102, 181, 102, 182, 102, 183, 102, 184, 102, 186, 102, 187, 102, 188, 102, 189, 102, 191, 102, 192, 102, 193, 102, 194, 102, 195, 102, 196, 102, 197, 102, 198, 102, 199, 102, 200, 102, 201, 102, 202, 102, 203, 102, 204, 102, 205, 102, 206, 102, 207, 102, 208, 102, 209, 102, 210, 102, 211, 102, 212, 102, 213, 102, 214, 102, 215, 102, 216, 102, 218, 102, 222, 102, 223, 102, 224, 102, 225, 102, 226, 102, 227, 102, 228, 102, 229, 102, 231, 102, 232, 102, 234, 102, 235, 102, 236, 102, 237, 102, 238, 102, 239, 102, 241, 102, 245, 102, 246, 102, 248, 102, 250, 102, 251, 102, 253, 102, 1, 103, 2, 103, 3, 103, 4, 103, 5, 103, 6, 103, 7, 103, 12, 103, 14, 103, 15, 103, 17, 103, 18, 103, 19, 103, 22, 103, 24, 103, 25, 103, 26, 103, 28, 103, 30, 103, 32, 103, 33, 103, 34, 103, 35, 103, 36, 103, 37, 103, 39, 103, 41, 103, 46, 103, 48, 103, 50, 103, 51, 103, 54, 103, 55, 103, 56, 103, 57, 103, 59, 103, 60, 103, 62, 103, 63, 103, 65, 103, 68, 103, 69, 103, 71, 103, 74, 103, 75, 103, 77, 103, 82, 103, 84, 103, 85, 103, 87, 103, 88, 103, 89, 103, 90, 103, 91, 103, 93, 103, 98, 103, 99, 103, 100, 103, 102, 103, 103, 103, 107, 103, 108, 103, 110, 103, 113, 103, 116, 103, 118, 103, 120, 103, 121, 103, 122, 103, 123, 103, 125, 103, 128, 103, 130, 103, 131, 103, 133, 103, 134, 103, 136, 103, 138, 103, 140, 103, 141, 103, 142, 103, 143, 103, 145, 103, 146, 103, 147, 103, 148, 103, 150, 103, 153, 103, 155, 103, 159, 103, 160, 103, 161, 103, 164, 103, 166, 103, 169, 103, 172, 103, 174, 103, 177, 103, 178, 103, 180, 103, 185, 103, 186, 103, 187, 103, 188, 103, 189, 103, 190, 103, 191, 103, 192, 103, 194, 103, 197, 103, 198, 103, 199, 103, 200, 103, 201, 103, 202, 103, 203, 103, 204, 103, 205, 103, 206, 103, 213, 103, 214, 103, 215, 103, 219, 103, 223, 103, 225, 103, 227, 103, 228, 103, 230, 103, 231, 103, 232, 103, 234, 103, 235, 103, 237, 103, 238, 103, 242, 103, 245, 103, 246, 103, 247, 103, 248, 103, 249, 103, 250, 103, 251, 103, 252, 103, 254, 103, 1, 104, 2, 104, 3, 104, 4, 104, 6, 104, 13, 104, 16, 104, 18, 104, 20, 104, 21, 104, 24, 104, 25, 104, 26, 104, 27, 104, 28, 104, 30, 104, 31, 104, 32, 104, 34, 104, 35, 104, 36, 104, 37, 104, 38, 104, 39, 104, 40, 104, 43, 104, 44, 104, 45, 104, 46, 104, 47, 104, 48, 104, 49, 104, 52, 104, 53, 104, 54, 104, 58, 104, 59, 104, 63, 104, 71, 104, 75, 104, 77, 104, 79, 104, 82, 104, 86, 104, 87, 104, 88, 104, 89, 104, 90, 104, 91, 104, 92, 104, 93, 104, 94, 104, 95, 104, 106, 104, 108, 104, 109, 104, 110, 104, 111, 104, 112, 104, 113, 104, 114, 104, 115, 104, 117, 104, 120, 104, 121, 104, 122, 104, 123, 104, 124, 104, 125, 104, 126, 104, 127, 104, 128, 104, 130, 104, 132, 104, 135, 104, 136, 104, 137, 104, 138, 104, 139, 104, 140, 104, 141, 104, 142, 104, 144, 104, 145, 104, 146, 104, 148, 104, 149, 104, 150, 104, 152, 104, 153, 104, 154, 104, 155, 104, 156, 104, 157, 104, 158, 104, 159, 104, 160, 104, 161, 104, 163, 104, 164, 104, 165, 104, 169, 104, 170, 104, 171, 104, 172, 104, 174, 104, 177, 104, 178, 104, 180, 104, 182, 104, 183, 104, 184, 104, 185, 104, 186, 104, 187, 104, 188, 104, 189, 104, 190, 104, 191, 104, 193, 104, 195, 104, 196, 104, 197, 104, 198, 104, 199, 104, 200, 104, 202, 104, 204, 104, 206, 104, 207, 104, 208, 104, 209, 104, 211, 104, 212, 104, 214, 104, 215, 104, 217, 104, 219, 104, 220, 104, 221, 104, 222, 104, 223, 104, 225, 104, 226, 104, 228, 104, 229, 104, 230, 104, 231, 104, 232, 104, 233, 104, 234, 104, 235, 104, 236, 104, 237, 104, 239, 104, 242, 104, 243, 104, 244, 104, 246, 104, 247, 104, 248, 104, 251, 104, 253, 104, 254, 104, 255, 104, 0, 105, 2, 105, 3, 105, 4, 105, 6, 105, 7, 105, 8, 105, 9, 105, 10, 105, 12, 105, 15, 105, 17, 105, 19, 105, 20, 105, 21, 105, 22, 105, 23, 105, 24, 105, 25, 105, 26, 105, 27, 105, 28, 105, 29, 105, 30, 105, 33, 105, 34, 105, 35, 105, 37, 105, 38, 105, 39, 105, 40, 105, 41, 105, 42, 105, 43, 105, 44, 105, 46, 105, 47, 105, 49, 105, 50, 105, 51, 105, 53, 105, 54, 105, 55, 105, 56, 105, 58, 105, 59, 105, 60, 105, 62, 105, 64, 105, 65, 105, 67, 105, 68, 105, 69, 105, 70, 105, 71, 105, 72, 105, 73, 105, 74, 105, 75, 105, 76, 105, 77, 105, 78, 105, 79, 105, 80, 105, 81, 105, 82, 105, 83, 105, 85, 105, 86, 105, 88, 105, 89, 105, 91, 105, 92, 105, 95, 105, 97, 105, 98, 105, 100, 105, 101, 105, 103, 105, 104, 105, 105, 105, 106, 105, 108, 105, 109, 105, 111, 105, 112, 105, 114, 105, 115, 105, 116, 105, 117, 105, 118, 105, 122, 105, 123, 105, 125, 105, 126, 105, 127, 105, 129, 105, 131, 105, 133, 105, 138, 105, 139, 105, 140, 105, 142, 105, 143, 105, 144, 105, 145, 105, 146, 105, 147, 105, 150, 105, 151, 105, 153, 105, 154, 105, 157, 105, 158, 105, 159, 105, 160, 105, 161, 105, 162, 105, 163, 105, 164, 105, 165, 105, 166, 105, 169, 105, 170, 105, 172, 105, 174, 105, 175, 105, 176, 105, 178, 105, 179, 105, 181, 105, 182, 105, 184, 105, 185, 105, 186, 105, 188, 105, 189, 105, 190, 105, 191, 105, 192, 105, 194, 105, 195, 105, 196, 105, 197, 105, 198, 105, 199, 105, 200, 105, 201, 105, 203, 105, 205, 105, 207, 105, 209, 105, 210, 105, 211, 105, 213, 105, 214, 105, 215, 105, 216, 105, 217, 105, 218, 105, 220, 105, 221, 105, 222, 105, 225, 105, 226, 105, 227, 105, 228, 105, 229, 105, 230, 105, 231, 105, 232, 105, 233, 105, 234, 105, 235, 105, 236, 105, 238, 105, 239, 105, 240, 105, 241, 105, 243, 105, 244, 105, 245, 105, 246, 105, 247, 105, 248, 105, 249, 105, 250, 105, 251, 105, 252, 105, 254, 105, 0, 106, 1, 106, 2, 106, 3, 106, 4, 106, 5, 106, 6, 106, 7, 106, 8, 106, 9, 106, 11, 106, 12, 106, 13, 106, 14, 106, 15, 106, 16, 106, 17, 106, 18, 106, 19, 106, 20, 106, 21, 106, 22, 106, 25, 106, 26, 106, 27, 106, 28, 106, 29, 106, 30, 106, 32, 106, 34, 106, 35, 106, 36, 106, 37, 106, 38, 106, 39, 106, 41, 106, 43, 106, 44, 106, 45, 106, 46, 106, 48, 106, 50, 106, 51, 106, 52, 106, 54, 106, 55, 106, 56, 106, 57, 106, 58, 106, 59, 106, 60, 106, 63, 106, 64, 106, 65, 106, 66, 106, 67, 106, 69, 106, 70, 106, 72, 106, 73, 106, 74, 106, 75, 106, 76, 106, 77, 106, 78, 106, 79, 106, 81, 106, 82, 106, 83, 106, 84, 106, 85, 106, 86, 106, 87, 106, 90, 106, 92, 106, 93, 106, 94, 106, 95, 106, 96, 106, 98, 106, 99, 106, 100, 106, 102, 106, 103, 106, 104, 106, 105, 106, 106, 106, 107, 106, 108, 106, 109, 106, 110, 106, 111, 106, 112, 106, 114, 106, 115, 106, 116, 106, 117, 106, 118, 106, 119, 106, 120, 106, 122, 106, 123, 106, 125, 106, 126, 106, 127, 106, 129, 106, 130, 106, 131, 106, 133, 106, 134, 106, 135, 106, 136, 106, 137, 106, 138, 106, 139, 106, 140, 106, 141, 106, 143, 106, 146, 106, 147, 106, 148, 106, 149, 106, 150, 106, 152, 106, 153, 106, 154, 106, 155, 106, 156, 106, 157, 106, 158, 106, 159, 106, 161, 106, 162, 106, 163, 106, 164, 106, 165, 106, 166, 106, 167, 106, 168, 106, 170, 106, 173, 106, 174, 106, 175, 106, 176, 106, 177, 106, 178, 106, 179, 106, 180, 106, 181, 106, 182, 106, 183, 106, 184, 106, 185, 106, 186, 106, 187, 106, 188, 106, 189, 106, 190, 106, 191, 106, 192, 106, 193, 106, 194, 106, 195, 106, 196, 106, 197, 106, 198, 106, 199, 106, 200, 106, 201, 106, 202, 106, 203, 106, 204, 106, 205, 106, 206, 106, 207, 106, 208, 106, 209, 106, 210, 106, 211, 106, 212, 106, 213, 106, 214, 106, 215, 106, 216, 106, 217, 106, 218, 106, 219, 106, 220, 106, 221, 106, 222, 106, 223, 106, 224, 106, 225, 106, 226, 106, 227, 106, 228, 106, 229, 106, 230, 106, 231, 106, 232, 106, 233, 106, 234, 106, 235, 106, 236, 106, 237, 106, 238, 106, 239, 106, 240, 106, 241, 106, 242, 106, 243, 106, 244, 106, 245, 106, 246, 106, 247, 106, 248, 106, 249, 106, 250, 106, 251, 106, 252, 106, 253, 106, 254, 106, 255, 106, 0, 107, 1, 107, 2, 107, 3, 107, 4, 107, 5, 107, 6, 107, 7, 107, 8, 107, 9, 107, 10, 107, 11, 107, 12, 107, 13, 107, 14, 107, 15, 107, 16, 107, 17, 107, 18, 107, 19, 107, 20, 107, 21, 107, 22, 107, 23, 107, 24, 107, 25, 107, 26, 107, 27, 107, 28, 107, 29, 107, 30, 107, 31, 107, 37, 107, 38, 107, 40, 107, 41, 107, 42, 107, 43, 107, 44, 107, 45, 107, 46, 107, 47, 107, 48, 107, 49, 107, 51, 107, 52, 107, 53, 107, 54, 107, 56, 107, 59, 107, 60, 107, 61, 107, 63, 107, 64, 107, 65, 107, 66, 107, 68, 107, 69, 107, 72, 107, 74, 107, 75, 107, 77, 107, 78, 107, 79, 107, 80, 107, 81, 107, 82, 107, 83, 107, 84, 107, 85, 107, 86, 107, 87, 107, 88, 107, 90, 107, 91, 107, 92, 107, 93, 107, 94, 107, 95, 107, 96, 107, 97, 107, 104, 107, 105, 107, 107, 107, 108, 107, 109, 107, 110, 107, 111, 107, 112, 107, 113, 107, 114, 107, 115, 107, 116, 107, 117, 107, 118, 107, 119, 107, 120, 107, 122, 107, 125, 107, 126, 107, 127, 107, 128, 107, 133, 107, 136, 107, 140, 107, 142, 107, 143, 107, 144, 107, 145, 107, 148, 107, 149, 107, 151, 107, 152, 107, 153, 107, 156, 107, 157, 107, 158, 107, 159, 107, 160, 107, 162, 107, 163, 107, 164, 107, 165, 107, 166, 107, 167, 107, 168, 107, 169, 107, 171, 107, 172, 107, 173, 107, 174, 107, 175, 107, 176, 107, 177, 107, 178, 107, 182, 107, 184, 107, 185, 107, 186, 107, 187, 107, 188, 107, 189, 107, 190, 107, 192, 107, 195, 107, 196, 107, 198, 107, 199, 107, 200, 107, 201, 107, 202, 107, 204, 107, 206, 107, 208, 107, 209, 107, 216, 107, 218, 107, 220, 107, 221, 107, 222, 107, 223, 107, 224, 107, 226, 107, 227, 107, 228, 107, 229, 107, 230, 107, 231, 107, 232, 107, 233, 107, 236, 107, 237, 107, 238, 107, 240, 107, 241, 107, 242, 107, 244, 107, 246, 107, 247, 107, 248, 107, 250, 107, 251, 107, 252, 107, 254, 107, 255, 107, 0, 108, 1, 108, 2, 108, 3, 108, 4, 108, 8, 108, 9, 108, 10, 108, 11, 108, 12, 108, 14, 108, 18, 108, 23, 108, 28, 108, 29, 108, 30, 108, 32, 108, 35, 108, 37, 108, 43, 108, 44, 108, 45, 108, 49, 108, 51, 108, 54, 108, 55, 108, 57, 108, 58, 108, 59, 108, 60, 108, 62, 108, 63, 108, 67, 108, 68, 108, 69, 108, 72, 108, 75, 108, 76, 108, 77, 108, 78, 108, 79, 108, 81, 108, 82, 108, 83, 108, 86, 108, 88, 108, 89, 108, 90, 108, 98, 108, 99, 108, 101, 108, 102, 108, 103, 108, 107, 108, 108, 108, 109, 108, 110, 108, 111, 108, 113, 108, 115, 108, 117, 108, 119, 108, 120, 108, 122, 108, 123, 108, 124, 108, 127, 108, 128, 108, 132, 108, 135, 108, 138, 108, 139, 108, 141, 108, 142, 108, 145, 108, 146, 108, 149, 108, 150, 108, 151, 108, 152, 108, 154, 108, 156, 108, 157, 108, 158, 108, 160, 108, 162, 108, 168, 108, 172, 108, 175, 108, 176, 108, 180, 108, 181, 108, 182, 108, 183, 108, 186, 108, 192, 108, 193, 108, 194, 108, 195, 108, 198, 108, 199, 108, 200, 108, 203, 108, 205, 108, 206, 108, 207, 108, 209, 108, 210, 108, 216, 108, 217, 108, 218, 108, 220, 108, 221, 108, 223, 108, 228, 108, 230, 108, 231, 108, 233, 108, 236, 108, 237, 108, 242, 108, 244, 108, 249, 108, 255, 108, 0, 109, 2, 109, 3, 109, 5, 109, 6, 109, 8, 109, 9, 109, 10, 109, 13, 109, 15, 109, 16, 109, 17, 109, 19, 109, 20, 109, 21, 109, 22, 109, 24, 109, 28, 109, 29, 109, 31, 109, 32, 109, 33, 109, 34, 109, 35, 109, 36, 109, 38, 109, 40, 109, 41, 109, 44, 109, 45, 109, 47, 109, 48, 109, 52, 109, 54, 109, 55, 109, 56, 109, 58, 109, 63, 109, 64, 109, 66, 109, 68, 109, 73, 109, 76, 109, 80, 109, 85, 109, 86, 109, 87, 109, 88, 109, 91, 109, 93, 109, 95, 109, 97, 109, 98, 109, 100, 109, 101, 109, 103, 109, 104, 109, 107, 109, 108, 109, 109, 109, 112, 109, 113, 109, 114, 109, 115, 109, 117, 109, 118, 109, 121, 109, 122, 109, 123, 109, 125, 109, 126, 109, 127, 109, 128, 109, 129, 109, 131, 109, 132, 109, 134, 109, 135, 109, 138, 109, 139, 109, 141, 109, 143, 109, 144, 109, 146, 109, 150, 109, 151, 109, 152, 109, 153, 109, 154, 109, 156, 109, 162, 109, 165, 109, 172, 109, 173, 109, 176, 109, 177, 109, 179, 109, 180, 109, 182, 109, 183, 109, 185, 109, 186, 109, 187, 109, 188, 109, 189, 109, 190, 109, 193, 109, 194, 109, 195, 109, 200, 109, 201, 109, 202, 109, 205, 109, 206, 109, 207, 109, 208, 109, 210, 109, 211, 109, 212, 109, 213, 109, 215, 109, 218, 109, 219, 109, 220, 109, 223, 109, 226, 109, 227, 109, 229, 109, 231, 109, 232, 109, 233, 109, 234, 109, 237, 109, 239, 109, 240, 109, 242, 109, 244, 109, 245, 109, 246, 109, 248, 109, 250, 109, 253, 109, 254, 109, 255, 109, 0, 110, 1, 110, 2, 110, 3, 110, 4, 110, 6, 110, 7, 110, 8, 110, 9, 110, 11, 110, 15, 110, 18, 110, 19, 110, 21, 110, 24, 110, 25, 110, 27, 110, 28, 110, 30, 110, 31, 110, 34, 110, 38, 110, 39, 110, 40, 110, 42, 110, 44, 110, 46, 110, 48, 110, 49, 110, 51, 110, 53, 110, 54, 110, 55, 110, 57, 110, 59, 110, 60, 110, 61, 110, 62, 110, 63, 110, 64, 110, 65, 110, 66, 110, 69, 110, 70, 110, 71, 110, 72, 110, 73, 110, 74, 110, 75, 110, 76, 110, 79, 110, 80, 110, 81, 110, 82, 110, 85, 110, 87, 110, 89, 110, 90, 110, 92, 110, 93, 110, 94, 110, 96, 110, 97, 110, 98, 110, 99, 110, 100, 110, 101, 110, 102, 110, 103, 110, 104, 110, 105, 110, 106, 110, 108, 110, 109, 110, 111, 110, 112, 110, 113, 110, 114, 110, 115, 110, 116, 110, 117, 110, 118, 110, 119, 110, 120, 110, 121, 110, 122, 110, 123, 110, 124, 110, 125, 110, 128, 110, 129, 110, 130, 110, 132, 110, 135, 110, 136, 110, 138, 110, 139, 110, 140, 110, 141, 110, 142, 110, 145, 110, 146, 110, 147, 110, 148, 110, 149, 110, 150, 110, 151, 110, 153, 110, 154, 110, 155, 110, 157, 110, 158, 110, 160, 110, 161, 110, 163, 110, 164, 110, 166, 110, 168, 110, 169, 110, 171, 110, 172, 110, 173, 110, 174, 110, 176, 110, 179, 110, 181, 110, 184, 110, 185, 110, 188, 110, 190, 110, 191, 110, 192, 110, 195, 110, 196, 110, 197, 110, 198, 110, 200, 110, 201, 110, 202, 110, 204, 110, 205, 110, 206, 110, 208, 110, 210, 110, 214, 110, 216, 110, 217, 110, 219, 110, 220, 110, 221, 110, 227, 110, 231, 110, 234, 110, 235, 110, 236, 110, 237, 110, 238, 110, 239, 110, 240, 110, 241, 110, 242, 110, 243, 110, 245, 110, 246, 110, 247, 110, 248, 110, 250, 110, 251, 110, 252, 110, 253, 110, 254, 110, 255, 110, 0, 111, 1, 111, 3, 111, 4, 111, 5, 111, 7, 111, 8, 111, 10, 111, 11, 111, 12, 111, 13, 111, 14, 111, 16, 111, 17, 111, 18, 111, 22, 111, 23, 111, 24, 111, 25, 111, 26, 111, 27, 111, 28, 111, 29, 111, 30, 111, 31, 111, 33, 111, 34, 111, 35, 111, 37, 111, 38, 111, 39, 111, 40, 111, 44, 111, 46, 111, 48, 111, 50, 111, 52, 111, 53, 111, 55, 111, 56, 111, 57, 111, 58, 111, 59, 111, 60, 111, 61, 111, 63, 111, 64, 111, 65, 111, 66, 111, 67, 111, 68, 111, 69, 111, 72, 111, 73, 111, 74, 111, 76, 111, 78, 111, 79, 111, 80, 111, 81, 111, 82, 111, 83, 111, 84, 111, 85, 111, 86, 111, 87, 111, 89, 111, 90, 111, 91, 111, 93, 111, 95, 111, 96, 111, 97, 111, 99, 111, 100, 111, 101, 111, 103, 111, 104, 111, 105, 111, 106, 111, 107, 111, 108, 111, 111, 111, 112, 111, 113, 111, 115, 111, 117, 111, 118, 111, 119, 111, 121, 111, 123, 111, 125, 111, 126, 111, 127, 111, 128, 111, 129, 111, 130, 111, 131, 111, 133, 111, 134, 111, 135, 111, 138, 111, 139, 111, 143, 111, 144, 111, 145, 111, 146, 111, 147, 111, 148, 111, 149, 111, 150, 111, 151, 111, 152, 111, 153, 111, 154, 111, 155, 111, 157, 111, 158, 111, 159, 111, 160, 111, 162, 111, 163, 111, 164, 111, 165, 111, 166, 111, 168, 111, 169, 111, 170, 111, 171, 111, 172, 111, 173, 111, 174, 111, 175, 111, 176, 111, 177, 111, 178, 111, 180, 111, 181, 111, 183, 111, 184, 111, 186, 111, 187, 111, 188, 111, 189, 111, 190, 111, 191, 111, 193, 111, 195, 111, 196, 111, 197, 111, 198, 111, 199, 111, 200, 111, 202, 111, 203, 111, 204, 111, 205, 111, 206, 111, 207, 111, 208, 111, 211, 111, 212, 111, 213, 111, 214, 111, 215, 111, 216, 111, 217, 111, 218, 111, 219, 111, 220, 111, 221, 111, 223, 111, 226, 111, 227, 111, 228, 111, 229, 111, 230, 111, 231, 111, 232, 111, 233, 111, 234, 111, 235, 111, 236, 111, 237, 111, 240, 111, 241, 111, 242, 111, 243, 111, 244, 111, 245, 111, 246, 111, 247, 111, 248, 111, 249, 111, 250, 111, 251, 111, 252, 111, 253, 111, 254, 111, 255, 111, 0, 112, 1, 112, 2, 112, 3, 112, 4, 112, 5, 112, 6, 112, 7, 112, 8, 112, 9, 112, 10, 112, 11, 112, 12, 112, 13, 112, 14, 112, 15, 112, 16, 112, 18, 112, 19, 112, 20, 112, 21, 112, 22, 112, 23, 112, 24, 112, 25, 112, 28, 112, 29, 112, 30, 112, 31, 112, 32, 112, 33, 112, 34, 112, 36, 112, 37, 112, 38, 112, 39, 112, 40, 112, 41, 112, 42, 112, 43, 112, 44, 112, 45, 112, 46, 112, 47, 112, 48, 112, 49, 112, 50, 112, 51, 112, 52, 112, 54, 112, 55, 112, 56, 112, 58, 112, 59, 112, 60, 112, 61, 112, 62, 112, 63, 112, 64, 112, 65, 112, 66, 112, 67, 112, 68, 112, 69, 112, 70, 112, 71, 112, 72, 112, 73, 112, 74, 112, 75, 112, 77, 112, 78, 112, 80, 112, 81, 112, 82, 112, 83, 112, 84, 112, 85, 112, 86, 112, 87, 112, 88, 112, 89, 112, 90, 112, 91, 112, 92, 112, 93, 112, 95, 112, 96, 112, 97, 112, 98, 112, 99, 112, 100, 112, 101, 112, 102, 112, 103, 112, 104, 112, 105, 112, 106, 112, 110, 112, 113, 112, 114, 112, 115, 112, 116, 112, 119, 112, 121, 112, 122, 112, 123, 112, 125, 112, 129, 112, 130, 112, 131, 112, 132, 112, 134, 112, 135, 112, 136, 112, 139, 112, 140, 112, 141, 112, 143, 112, 144, 112, 145, 112, 147, 112, 151, 112, 152, 112, 154, 112, 155, 112, 158, 112, 159, 112, 160, 112, 161, 112, 162, 112, 163, 112, 164, 112, 165, 112, 166, 112, 167, 112, 168, 112, 169, 112, 170, 112, 176, 112, 178, 112, 180, 112, 181, 112, 182, 112, 186, 112, 190, 112, 191, 112, 196, 112, 197, 112, 198, 112, 199, 112, 201, 112, 203, 112, 204, 112, 205, 112, 206, 112, 207, 112, 208, 112, 209, 112, 210, 112, 211, 112, 212, 112, 213, 112, 214, 112, 215, 112, 218, 112, 220, 112, 221, 112, 222, 112, 224, 112, 225, 112, 226, 112, 227, 112, 229, 112, 234, 112, 238, 112, 240, 112, 241, 112, 242, 112, 243, 112, 244, 112, 245, 112, 246, 112, 248, 112, 250, 112, 251, 112, 252, 112, 254, 112, 255, 112, 0, 113, 1, 113, 2, 113, 3, 113, 4, 113, 5, 113, 6, 113, 7, 113, 8, 113, 11, 113, 12, 113, 13, 113, 14, 113, 15, 113, 17, 113, 18, 113, 20, 113, 23, 113, 27, 113, 28, 113, 29, 113, 30, 113, 31, 113, 32, 113, 33, 113, 34, 113, 35, 113, 36, 113, 37, 113, 39, 113, 40, 113, 41, 113, 42, 113, 43, 113, 44, 113, 45, 113, 46, 113, 50, 113, 51, 113, 52, 113, 53, 113, 55, 113, 56, 113, 57, 113, 58, 113, 59, 113, 60, 113, 61, 113, 62, 113, 63, 113, 64, 113, 65, 113, 66, 113, 67, 113, 68, 113, 70, 113, 71, 113, 72, 113, 73, 113, 75, 113, 77, 113, 79, 113, 80, 113, 81, 113, 82, 113, 83, 113, 84, 113, 85, 113, 86, 113, 87, 113, 88, 113, 89, 113, 90, 113, 91, 113, 93, 113, 95, 113, 96, 113, 97, 113, 98, 113, 99, 113, 101, 113, 105, 113, 106, 113, 107, 113, 108, 113, 109, 113, 111, 113, 112, 113, 113, 113, 116, 113, 117, 113, 118, 113, 119, 113, 121, 113, 123, 113, 124, 113, 126, 113, 127, 113, 128, 113, 129, 113, 130, 113, 131, 113, 133, 113, 134, 113, 135, 113, 136, 113, 137, 113, 139, 113, 140, 113, 141, 113, 142, 113, 144, 113, 145, 113, 146, 113, 147, 113, 149, 113, 150, 113, 151, 113, 154, 113, 155, 113, 156, 113, 157, 113, 158, 113, 161, 113, 162, 113, 163, 113, 164, 113, 165, 113, 166, 113, 167, 113, 169, 113, 170, 113, 171, 113, 173, 113, 174, 113, 175, 113, 176, 113, 177, 113, 178, 113, 180, 113, 182, 113, 183, 113, 184, 113, 186, 113, 187, 113, 188, 113, 189, 113, 190, 113, 191, 113, 192, 113, 193, 113, 194, 113, 196, 113, 197, 113, 198, 113, 199, 113, 200, 113, 201, 113, 202, 113, 203, 113, 204, 113, 205, 113, 207, 113, 208, 113, 209, 113, 210, 113, 211, 113, 214, 113, 215, 113, 216, 113, 217, 113, 218, 113, 219, 113, 220, 113, 221, 113, 222, 113, 223, 113, 225, 113, 226, 113, 227, 113, 228, 113, 230, 113, 232, 113, 233, 113, 234, 113, 235, 113, 236, 113, 237, 113, 239, 113, 240, 113, 241, 113, 242, 113, 243, 113, 244, 113, 245, 113, 246, 113, 247, 113, 248, 113, 250, 113, 251, 113, 252, 113, 253, 113, 254, 113, 255, 113, 0, 114, 1, 114, 2, 114, 3, 114, 4, 114, 5, 114, 7, 114, 8, 114, 9, 114, 10, 114, 11, 114, 12, 114, 13, 114, 14, 114, 15, 114, 16, 114, 17, 114, 18, 114, 19, 114, 20, 114, 21, 114, 22, 114, 23, 114, 24, 114, 25, 114, 26, 114, 27, 114, 28, 114, 30, 114, 31, 114, 32, 114, 33, 114, 34, 114, 35, 114, 36, 114, 37, 114, 38, 114, 39, 114, 41, 114, 43, 114, 45, 114, 46, 114, 47, 114, 50, 114, 51, 114, 52, 114, 58, 114, 60, 114, 62, 114, 64, 114, 65, 114, 66, 114, 67, 114, 68, 114, 69, 114, 70, 114, 73, 114, 74, 114, 75, 114, 78, 114, 79, 114, 80, 114, 81, 114, 83, 114, 84, 114, 85, 114, 87, 114, 88, 114, 90, 114, 92, 114, 94, 114, 96, 114, 99, 114, 100, 114, 101, 114, 104, 114, 106, 114, 107, 114, 108, 114, 109, 114, 112, 114, 113, 114, 115, 114, 116, 114, 118, 114, 119, 114, 120, 114, 123, 114, 124, 114, 125, 114, 130, 114, 131, 114, 133, 114, 134, 114, 135, 114, 136, 114, 137, 114, 140, 114, 142, 114, 144, 114, 145, 114, 147, 114, 148, 114, 149, 114, 150, 114, 151, 114, 152, 114, 153, 114, 154, 114, 155, 114, 156, 114, 157, 114, 158, 114, 160, 114, 161, 114, 162, 114, 163, 114, 164, 114, 165, 114, 166, 114, 167, 114, 168, 114, 169, 114, 170, 114, 171, 114, 174, 114, 177, 114, 178, 114, 179, 114, 181, 114, 186, 114, 187, 114, 188, 114, 189, 114, 190, 114, 191, 114, 192, 114, 197, 114, 198, 114, 199, 114, 201, 114, 202, 114, 203, 114, 204, 114, 207, 114, 209, 114, 211, 114, 212, 114, 213, 114, 214, 114, 216, 114, 218, 114, 219, 114, 198, 228, 199, 228, 200, 228, 201, 228, 202, 228, 203, 228, 204, 228, 205, 228, 206, 228, 207, 228, 208, 228, 209, 228, 210, 228, 211, 228, 212, 228, 213, 228, 214, 228, 215, 228, 216, 228, 217, 228, 218, 228, 219, 228, 220, 228, 221, 228, 222, 228, 223, 228, 224, 228, 225, 228, 226, 228, 227, 228, 228, 228, 229, 228, 230, 228, 231, 228, 232, 228, 233, 228, 234, 228, 235, 228, 236, 228, 237, 228, 238, 228, 239, 228, 240, 228, 241, 228, 242, 228, 243, 228, 244, 228, 245, 228, 246, 228, 247, 228, 248, 228, 249, 228, 250, 228, 251, 228, 252, 228, 253, 228, 254, 228, 255, 228, 0, 229, 1, 229, 2, 229, 3, 229, 4, 229, 5, 229, 6, 229, 7, 229, 8, 229, 9, 229, 10, 229, 11, 229, 12, 229, 13, 229, 14, 229, 15, 229, 16, 229, 17, 229, 18, 229, 19, 229, 20, 229, 21, 229, 22, 229, 23, 229, 24, 229, 25, 229, 26, 229, 27, 229, 28, 229, 29, 229, 30, 229, 31, 229, 32, 229, 33, 229, 34, 229, 35, 229, 36, 229, 37, 229, 0, 48, 1, 48, 2, 48, 183, 0, 201, 2, 199, 2, 168, 0, 3, 48, 5, 48, 20, 32, 94, 255, 22, 32, 38, 32, 24, 32, 25, 32, 28, 32, 29, 32, 20, 48, 21, 48, 8, 48, 9, 48, 10, 48, 11, 48, 12, 48, 13, 48, 14, 48, 15, 48, 22, 48, 23, 48, 16, 48, 17, 48, 177, 0, 215, 0, 247, 0, 54, 34, 39, 34, 40, 34, 17, 34, 15, 34, 42, 34, 41, 34, 8, 34, 55, 34, 26, 34, 165, 34, 37, 34, 32, 34, 18, 35, 153, 34, 43, 34, 46, 34, 97, 34, 76, 34, 72, 34, 61, 34, 29, 34, 96, 34, 110, 34, 111, 34, 100, 34, 101, 34, 30, 34, 53, 34, 52, 34, 66, 38, 64, 38, 176, 0, 50, 32, 51, 32, 3, 33, 4, 255, 164, 0, 224, 255, 225, 255, 48, 32, 167, 0, 22, 33, 6, 38, 5, 38, 203, 37, 207, 37, 206, 37, 199, 37, 198, 37, 161, 37, 160, 37, 179, 37, 178, 37, 59, 32, 146, 33, 144, 33, 145, 33, 147, 33, 19, 48, 38, 229, 39, 229, 40, 229, 41, 229, 42, 229, 43, 229, 44, 229, 45, 229, 46, 229, 47, 229, 48, 229, 49, 229, 50, 229, 51, 229, 52, 229, 53, 229, 54, 229, 55, 229, 56, 229, 57, 229, 58, 229, 59, 229, 60, 229, 61, 229, 62, 229, 63, 229, 64, 229, 65, 229, 66, 229, 67, 229, 68, 229, 69, 229, 70, 229, 71, 229, 72, 229, 73, 229, 74, 229, 75, 229, 76, 229, 77, 229, 78, 229, 79, 229, 80, 229, 81, 229, 82, 229, 83, 229, 84, 229, 85, 229, 86, 229, 87, 229, 88, 229, 89, 229, 90, 229, 91, 229, 92, 229, 93, 229, 94, 229, 95, 229, 96, 229, 97, 229, 98, 229, 99, 229, 100, 229, 101, 229, 102, 229, 103, 229, 104, 229, 105, 229, 106, 229, 107, 229, 108, 229, 109, 229, 110, 229, 111, 229, 112, 229, 113, 229, 114, 229, 115, 229, 116, 229, 117, 229, 118, 229, 119, 229, 120, 229, 121, 229, 122, 229, 123, 229, 124, 229, 125, 229, 126, 229, 127, 229, 128, 229, 129, 229, 130, 229, 131, 229, 132, 229, 133, 229, 112, 33, 113, 33, 114, 33, 115, 33, 116, 33, 117, 33, 118, 33, 119, 33, 120, 33, 121, 33, 102, 231, 103, 231, 104, 231, 105, 231, 106, 231, 107, 231, 136, 36, 137, 36, 138, 36, 139, 36, 140, 36, 141, 36, 142, 36, 143, 36, 144, 36, 145, 36, 146, 36, 147, 36, 148, 36, 149, 36, 150, 36, 151, 36, 152, 36, 153, 36, 154, 36, 155, 36, 116, 36, 117, 36, 118, 36, 119, 36, 120, 36, 121, 36, 122, 36, 123, 36, 124, 36, 125, 36, 126, 36, 127, 36, 128, 36, 129, 36, 130, 36, 131, 36, 132, 36, 133, 36, 134, 36, 135, 36, 96, 36, 97, 36, 98, 36, 99, 36, 100, 36, 101, 36, 102, 36, 103, 36, 104, 36, 105, 36, 172, 32, 109, 231, 32, 50, 33, 50, 34, 50, 35, 50, 36, 50, 37, 50, 38, 50, 39, 50, 40, 50, 41, 50, 110, 231, 111, 231, 96, 33, 97, 33, 98, 33, 99, 33, 100, 33, 101, 33, 102, 33, 103, 33, 104, 33, 105, 33, 106, 33, 107, 33, 112, 231, 113, 231, 134, 229, 135, 229, 136, 229, 137, 229, 138, 229, 139, 229, 140, 229, 141, 229, 142, 229, 143, 229, 144, 229, 145, 229, 146, 229, 147, 229, 148, 229, 149, 229, 150, 229, 151, 229, 152, 229, 153, 229, 154, 229, 155, 229, 156, 229, 157, 229, 158, 229, 159, 229, 160, 229, 161, 229, 162, 229, 163, 229, 164, 229, 165, 229, 166, 229, 167, 229, 168, 229, 169, 229, 170, 229, 171, 229, 172, 229, 173, 229, 174, 229, 175, 229, 176, 229, 177, 229, 178, 229, 179, 229, 180, 229, 181, 229, 182, 229, 183, 229, 184, 229, 185, 229, 186, 229, 187, 229, 188, 229, 189, 229, 190, 229, 191, 229, 192, 229, 193, 229, 194, 229, 195, 229, 196, 229, 197, 229, 198, 229, 199, 229, 200, 229, 201, 229, 202, 229, 203, 229, 204, 229, 205, 229, 206, 229, 207, 229, 208, 229, 209, 229, 210, 229, 211, 229, 212, 229, 213, 229, 214, 229, 215, 229, 216, 229, 217, 229, 218, 229, 219, 229, 220, 229, 221, 229, 222, 229, 223, 229, 224, 229, 225, 229, 226, 229, 227, 229, 228, 229, 229, 229, 1, 255, 2, 255, 3, 255, 229, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255, 11, 255, 12, 255, 13, 255, 14, 255, 15, 255, 16, 255, 17, 255, 18, 255, 19, 255, 20, 255, 21, 255, 22, 255, 23, 255, 24, 255, 25, 255, 26, 255, 27, 255, 28, 255, 29, 255, 30, 255, 31, 255, 32, 255, 33, 255, 34, 255, 35, 255, 36, 255, 37, 255, 38, 255, 39, 255, 40, 255, 41, 255, 42, 255, 43, 255, 44, 255, 45, 255, 46, 255, 47, 255, 48, 255, 49, 255, 50, 255, 51, 255, 52, 255, 53, 255, 54, 255, 55, 255, 56, 255, 57, 255, 58, 255, 59, 255, 60, 255, 61, 255, 62, 255, 63, 255, 64, 255, 65, 255, 66, 255, 67, 255, 68, 255, 69, 255, 70, 255, 71, 255, 72, 255, 73, 255, 74, 255, 75, 255, 76, 255, 77, 255, 78, 255, 79, 255, 80, 255, 81, 255, 82, 255, 83, 255, 84, 255, 85, 255, 86, 255, 87, 255, 88, 255, 89, 255, 90, 255, 91, 255, 92, 255, 93, 255, 227, 255, 230, 229, 231, 229, 232, 229, 233, 229, 234, 229, 235, 229, 236, 229, 237, 229, 238, 229, 239, 229, 240, 229, 241, 229, 242, 229, 243, 229, 244, 229, 245, 229, 246, 229, 247, 229, 248, 229, 249, 229, 250, 229, 251, 229, 252, 229, 253, 229, 254, 229, 255, 229, 0, 230, 1, 230, 2, 230, 3, 230, 4, 230, 5, 230, 6, 230, 7, 230, 8, 230, 9, 230, 10, 230, 11, 230, 12, 230, 13, 230, 14, 230, 15, 230, 16, 230, 17, 230, 18, 230, 19, 230, 20, 230, 21, 230, 22, 230, 23, 230, 24, 230, 25, 230, 26, 230, 27, 230, 28, 230, 29, 230, 30, 230, 31, 230, 32, 230, 33, 230, 34, 230, 35, 230, 36, 230, 37, 230, 38, 230, 39, 230, 40, 230, 41, 230, 42, 230, 43, 230, 44, 230, 45, 230, 46, 230, 47, 230, 48, 230, 49, 230, 50, 230, 51, 230, 52, 230, 53, 230, 54, 230, 55, 230, 56, 230, 57, 230, 58, 230, 59, 230, 60, 230, 61, 230, 62, 230, 63, 230, 64, 230, 65, 230, 66, 230, 67, 230, 68, 230, 69, 230, 65, 48, 66, 48, 67, 48, 68, 48, 69, 48, 70, 48, 71, 48, 72, 48, 73, 48, 74, 48, 75, 48, 76, 48, 77, 48, 78, 48, 79, 48, 80, 48, 81, 48, 82, 48, 83, 48, 84, 48, 85, 48, 86, 48, 87, 48, 88, 48, 89, 48, 90, 48, 91, 48, 92, 48, 93, 48, 94, 48, 95, 48, 96, 48, 97, 48, 98, 48, 99, 48, 100, 48, 101, 48, 102, 48, 103, 48, 104, 48, 105, 48, 106, 48, 107, 48, 108, 48, 109, 48, 110, 48, 111, 48, 112, 48, 113, 48, 114, 48, 115, 48, 116, 48, 117, 48, 118, 48, 119, 48, 120, 48, 121, 48, 122, 48, 123, 48, 124, 48, 125, 48, 126, 48, 127, 48, 128, 48, 129, 48, 130, 48, 131, 48, 132, 48, 133, 48, 134, 48, 135, 48, 136, 48, 137, 48, 138, 48, 139, 48, 140, 48, 141, 48, 142, 48, 143, 48, 144, 48, 145, 48, 146, 48, 147, 48, 114, 231, 115, 231, 116, 231, 117, 231, 118, 231, 119, 231, 120, 231, 121, 231, 122, 231, 123, 231, 124, 231, 70, 230, 71, 230, 72, 230, 73, 230, 74, 230, 75, 230, 76, 230, 77, 230, 78, 230, 79, 230, 80, 230, 81, 230, 82, 230, 83, 230, 84, 230, 85, 230, 86, 230, 87, 230, 88, 230, 89, 230, 90, 230, 91, 230, 92, 230, 93, 230, 94, 230, 95, 230, 96, 230, 97, 230, 98, 230, 99, 230, 100, 230, 101, 230, 102, 230, 103, 230, 104, 230, 105, 230, 106, 230, 107, 230, 108, 230, 109, 230, 110, 230, 111, 230, 112, 230, 113, 230, 114, 230, 115, 230, 116, 230, 117, 230, 118, 230, 119, 230, 120, 230, 121, 230, 122, 230, 123, 230, 124, 230, 125, 230, 126, 230, 127, 230, 128, 230, 129, 230, 130, 230, 131, 230, 132, 230, 133, 230, 134, 230, 135, 230, 136, 230, 137, 230, 138, 230, 139, 230, 140, 230, 141, 230, 142, 230, 143, 230, 144, 230, 145, 230, 146, 230, 147, 230, 148, 230, 149, 230, 150, 230, 151, 230, 152, 230, 153, 230, 154, 230, 155, 230, 156, 230, 157, 230, 158, 230, 159, 230, 160, 230, 161, 230, 162, 230, 163, 230, 164, 230, 165, 230, 161, 48, 162, 48, 163, 48, 164, 48, 165, 48, 166, 48, 167, 48, 168, 48, 169, 48, 170, 48, 171, 48, 172, 48, 173, 48, 174, 48, 175, 48, 176, 48, 177, 48, 178, 48, 179, 48, 180, 48, 181, 48, 182, 48, 183, 48, 184, 48, 185, 48, 186, 48, 187, 48, 188, 48, 189, 48, 190, 48, 191, 48, 192, 48, 193, 48, 194, 48, 195, 48, 196, 48, 197, 48, 198, 48, 199, 48, 200, 48, 201, 48, 202, 48, 203, 48, 204, 48, 205, 48, 206, 48, 207, 48, 208, 48, 209, 48, 210, 48, 211, 48, 212, 48, 213, 48, 214, 48, 215, 48, 216, 48, 217, 48, 218, 48, 219, 48, 220, 48, 221, 48, 222, 48, 223, 48, 224, 48, 225, 48, 226, 48, 227, 48, 228, 48, 229, 48, 230, 48, 231, 48, 232, 48, 233, 48, 234, 48, 235, 48, 236, 48, 237, 48, 238, 48, 239, 48, 240, 48, 241, 48, 242, 48, 243, 48, 244, 48, 245, 48, 246, 48, 125, 231, 126, 231, 127, 231, 128, 231, 129, 231, 130, 231, 131, 231, 132, 231, 166, 230, 167, 230, 168, 230, 169, 230, 170, 230, 171, 230, 172, 230, 173, 230, 174, 230, 175, 230, 176, 230, 177, 230, 178, 230, 179, 230, 180, 230, 181, 230, 182, 230, 183, 230, 184, 230, 185, 230, 186, 230, 187, 230, 188, 230, 189, 230, 190, 230, 191, 230, 192, 230, 193, 230, 194, 230, 195, 230, 196, 230, 197, 230, 198, 230, 199, 230, 200, 230, 201, 230, 202, 230, 203, 230, 204, 230, 205, 230, 206, 230, 207, 230, 208, 230, 209, 230, 210, 230, 211, 230, 212, 230, 213, 230, 214, 230, 215, 230, 216, 230, 217, 230, 218, 230, 219, 230, 220, 230, 221, 230, 222, 230, 223, 230, 224, 230, 225, 230, 226, 230, 227, 230, 228, 230, 229, 230, 230, 230, 231, 230, 232, 230, 233, 230, 234, 230, 235, 230, 236, 230, 237, 230, 238, 230, 239, 230, 240, 230, 241, 230, 242, 230, 243, 230, 244, 230, 245, 230, 246, 230, 247, 230, 248, 230, 249, 230, 250, 230, 251, 230, 252, 230, 253, 230, 254, 230, 255, 230, 0, 231, 1, 231, 2, 231, 3, 231, 4, 231, 5, 231, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 133, 231, 134, 231, 135, 231, 136, 231, 137, 231, 138, 231, 139, 231, 140, 231, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 141, 231, 142, 231, 143, 231, 144, 231, 145, 231, 146, 231, 147, 231, 53, 254, 54, 254, 57, 254, 58, 254, 63, 254, 64, 254, 61, 254, 62, 254, 65, 254, 66, 254, 67, 254, 68, 254, 148, 231, 149, 231, 59, 254, 60, 254, 55, 254, 56, 254, 49, 254, 150, 231, 51, 254, 52, 254, 151, 231, 152, 231, 153, 231, 154, 231, 155, 231, 156, 231, 157, 231, 158, 231, 159, 231, 6, 231, 7, 231, 8, 231, 9, 231, 10, 231, 11, 231, 12, 231, 13, 231, 14, 231, 15, 231, 16, 231, 17, 231, 18, 231, 19, 231, 20, 231, 21, 231, 22, 231, 23, 231, 24, 231, 25, 231, 26, 231, 27, 231, 28, 231, 29, 231, 30, 231, 31, 231, 32, 231, 33, 231, 34, 231, 35, 231, 36, 231, 37, 231, 38, 231, 39, 231, 40, 231, 41, 231, 42, 231, 43, 231, 44, 231, 45, 231, 46, 231, 47, 231, 48, 231, 49, 231, 50, 231, 51, 231, 52, 231, 53, 231, 54, 231, 55, 231, 56, 231, 57, 231, 58, 231, 59, 231, 60, 231, 61, 231, 62, 231, 63, 231, 64, 231, 65, 231, 66, 231, 67, 231, 68, 231, 69, 231, 70, 231, 71, 231, 72, 231, 73, 231, 74, 231, 75, 231, 76, 231, 77, 231, 78, 231, 79, 231, 80, 231, 81, 231, 82, 231, 83, 231, 84, 231, 85, 231, 86, 231, 87, 231, 88, 231, 89, 231, 90, 231, 91, 231, 92, 231, 93, 231, 94, 231, 95, 231, 96, 231, 97, 231, 98, 231, 99, 231, 100, 231, 101, 231, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 1, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 160, 231, 161, 231, 162, 231, 163, 231, 164, 231, 165, 231, 166, 231, 167, 231, 168, 231, 169, 231, 170, 231, 171, 231, 172, 231, 173, 231, 174, 231, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 81, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 175, 231, 176, 231, 177, 231, 178, 231, 179, 231, 180, 231, 181, 231, 182, 231, 183, 231, 184, 231, 185, 231, 186, 231, 187, 231, 202, 2, 203, 2, 217, 2, 19, 32, 21, 32, 37, 32, 53, 32, 5, 33, 9, 33, 150, 33, 151, 33, 152, 33, 153, 33, 21, 34, 31, 34, 35, 34, 82, 34, 102, 34, 103, 34, 191, 34, 80, 37, 81, 37, 82, 37, 83, 37, 84, 37, 85, 37, 86, 37, 87, 37, 88, 37, 89, 37, 90, 37, 91, 37, 92, 37, 93, 37, 94, 37, 95, 37, 96, 37, 97, 37, 98, 37, 99, 37, 100, 37, 101, 37, 102, 37, 103, 37, 104, 37, 105, 37, 106, 37, 107, 37, 108, 37, 109, 37, 110, 37, 111, 37, 112, 37, 113, 37, 114, 37, 115, 37, 129, 37, 130, 37, 131, 37, 132, 37, 133, 37, 134, 37, 135, 37, 136, 37, 137, 37, 138, 37, 139, 37, 140, 37, 141, 37, 142, 37, 143, 37, 147, 37, 148, 37, 149, 37, 188, 37, 189, 37, 226, 37, 227, 37, 228, 37, 229, 37, 9, 38, 149, 34, 18, 48, 29, 48, 30, 48, 188, 231, 189, 231, 190, 231, 191, 231, 192, 231, 193, 231, 194, 231, 195, 231, 196, 231, 197, 231, 198, 231, 1, 1, 225, 0, 206, 1, 224, 0, 19, 1, 233, 0, 27, 1, 232, 0, 43, 1, 237, 0, 208, 1, 236, 0, 77, 1, 243, 0, 210, 1, 242, 0, 107, 1, 250, 0, 212, 1, 249, 0, 214, 1, 216, 1, 218, 1, 220, 1, 252, 0, 234, 0, 81, 2, 199, 231, 68, 1, 72, 1, 249, 1, 97, 2, 201, 231, 202, 231, 203, 231, 204, 231, 5, 49, 6, 49, 7, 49, 8, 49, 9, 49, 10, 49, 11, 49, 12, 49, 13, 49, 14, 49, 15, 49, 16, 49, 17, 49, 18, 49, 19, 49, 20, 49, 21, 49, 22, 49, 23, 49, 24, 49, 25, 49, 26, 49, 27, 49, 28, 49, 29, 49, 30, 49, 31, 49, 32, 49, 33, 49, 34, 49, 35, 49, 36, 49, 37, 49, 38, 49, 39, 49, 40, 49, 41, 49, 205, 231, 206, 231, 207, 231, 208, 231, 209, 231, 210, 231, 211, 231, 212, 231, 213, 231, 214, 231, 215, 231, 216, 231, 217, 231, 218, 231, 219, 231, 220, 231, 221, 231, 222, 231, 223, 231, 224, 231, 225, 231, 33, 48, 34, 48, 35, 48, 36, 48, 37, 48, 38, 48, 39, 48, 40, 48, 41, 48, 163, 50, 142, 51, 143, 51, 156, 51, 157, 51, 158, 51, 161, 51, 196, 51, 206, 51, 209, 51, 210, 51, 213, 51, 48, 254, 226, 255, 228, 255, 226, 231, 33, 33, 49, 50, 227, 231, 16, 32, 228, 231, 229, 231, 230, 231, 252, 48, 155, 48, 156, 48, 253, 48, 254, 48, 6, 48, 157, 48, 158, 48, 73, 254, 74, 254, 75, 254, 76, 254, 77, 254, 78, 254, 79, 254, 80, 254, 81, 254, 82, 254, 84, 254, 85, 254, 86, 254, 87, 254, 89, 254, 90, 254, 91, 254, 92, 254, 93, 254, 94, 254, 95, 254, 96, 254, 97, 254, 98, 254, 99, 254, 100, 254, 101, 254, 102, 254, 104, 254, 105, 254, 106, 254, 107, 254, 62, 48, 240, 47, 241, 47, 242, 47, 243, 47, 244, 47, 245, 47, 246, 47, 247, 47, 248, 47, 249, 47, 250, 47, 251, 47, 7, 48, 244, 231, 245, 231, 246, 231, 247, 231, 248, 231, 249, 231, 250, 231, 251, 231, 252, 231, 253, 231, 254, 231, 255, 231, 0, 232, 0, 37, 1, 37, 2, 37, 3, 37, 4, 37, 5, 37, 6, 37, 7, 37, 8, 37, 9, 37, 10, 37, 11, 37, 12, 37, 13, 37, 14, 37, 15, 37, 16, 37, 17, 37, 18, 37, 19, 37, 20, 37, 21, 37, 22, 37, 23, 37, 24, 37, 25, 37, 26, 37, 27, 37, 28, 37, 29, 37, 30, 37, 31, 37, 32, 37, 33, 37, 34, 37, 35, 37, 36, 37, 37, 37, 38, 37, 39, 37, 40, 37, 41, 37, 42, 37, 43, 37, 44, 37, 45, 37, 46, 37, 47, 37, 48, 37, 49, 37, 50, 37, 51, 37, 52, 37, 53, 37, 54, 37, 55, 37, 56, 37, 57, 37, 58, 37, 59, 37, 60, 37, 61, 37, 62, 37, 63, 37, 64, 37, 65, 37, 66, 37, 67, 37, 68, 37, 69, 37, 70, 37, 71, 37, 72, 37, 73, 37, 74, 37, 75, 37, 1, 232, 2, 232, 3, 232, 4, 232, 5, 232, 6, 232, 7, 232, 8, 232, 9, 232, 10, 232, 11, 232, 12, 232, 13, 232, 14, 232, 15, 232, 220, 114, 221, 114, 223, 114, 226, 114, 227, 114, 228, 114, 229, 114, 230, 114, 231, 114, 234, 114, 235, 114, 245, 114, 246, 114, 249, 114, 253, 114, 254, 114, 255, 114, 0, 115, 2, 115, 4, 115, 5, 115, 6, 115, 7, 115, 8, 115, 9, 115, 11, 115, 12, 115, 13, 115, 15, 115, 16, 115, 17, 115, 18, 115, 20, 115, 24, 115, 25, 115, 26, 115, 31, 115, 32, 115, 35, 115, 36, 115, 38, 115, 39, 115, 40, 115, 45, 115, 47, 115, 48, 115, 50, 115, 51, 115, 53, 115, 54, 115, 58, 115, 59, 115, 60, 115, 61, 115, 64, 115, 65, 115, 66, 115, 67, 115, 68, 115, 69, 115, 70, 115, 71, 115, 72, 115, 73, 115, 74, 115, 75, 115, 76, 115, 78, 115, 79, 115, 81, 115, 83, 115, 84, 115, 85, 115, 86, 115, 88, 115, 89, 115, 90, 115, 91, 115, 92, 115, 93, 115, 94, 115, 95, 115, 97, 115, 98, 115, 99, 115, 100, 115, 101, 115, 102, 115, 103, 115, 104, 115, 105, 115, 106, 115, 107, 115, 110, 115, 112, 115, 113, 115, 0, 224, 1, 224, 2, 224, 3, 224, 4, 224, 5, 224, 6, 224, 7, 224, 8, 224, 9, 224, 10, 224, 11, 224, 12, 224, 13, 224, 14, 224, 15, 224, 16, 224, 17, 224, 18, 224, 19, 224, 20, 224, 21, 224, 22, 224, 23, 224, 24, 224, 25, 224, 26, 224, 27, 224, 28, 224, 29, 224, 30, 224, 31, 224, 32, 224, 33, 224, 34, 224, 35, 224, 36, 224, 37, 224, 38, 224, 39, 224, 40, 224, 41, 224, 42, 224, 43, 224, 44, 224, 45, 224, 46, 224, 47, 224, 48, 224, 49, 224, 50, 224, 51, 224, 52, 224, 53, 224, 54, 224, 55, 224, 56, 224, 57, 224, 58, 224, 59, 224, 60, 224, 61, 224, 62, 224, 63, 224, 64, 224, 65, 224, 66, 224, 67, 224, 68, 224, 69, 224, 70, 224, 71, 224, 72, 224, 73, 224, 74, 224, 75, 224, 76, 224, 77, 224, 78, 224, 79, 224, 80, 224, 81, 224, 82, 224, 83, 224, 84, 224, 85, 224, 86, 224, 87, 224, 88, 224, 89, 224, 90, 224, 91, 224, 92, 224, 93, 224, 114, 115, 115, 115, 116, 115, 117, 115, 118, 115, 119, 115, 120, 115, 121, 115, 122, 115, 123, 115, 124, 115, 125, 115, 127, 115, 128, 115, 129, 115, 130, 115, 131, 115, 133, 115, 134, 115, 136, 115, 138, 115, 140, 115, 141, 115, 143, 115, 144, 115, 146, 115, 147, 115, 148, 115, 149, 115, 151, 115, 152, 115, 153, 115, 154, 115, 156, 115, 157, 115, 158, 115, 160, 115, 161, 115, 163, 115, 164, 115, 165, 115, 166, 115, 167, 115, 168, 115, 170, 115, 172, 115, 173, 115, 177, 115, 180, 115, 181, 115, 182, 115, 184, 115, 185, 115, 188, 115, 189, 115, 190, 115, 191, 115, 193, 115, 195, 115, 196, 115, 197, 115, 198, 115, 199, 115, 203, 115, 204, 115, 206, 115, 210, 115, 211, 115, 212, 115, 213, 115, 214, 115, 215, 115, 216, 115, 218, 115, 219, 115, 220, 115, 221, 115, 223, 115, 225, 115, 226, 115, 227, 115, 228, 115, 230, 115, 232, 115, 234, 115, 235, 115, 236, 115, 238, 115, 239, 115, 240, 115, 241, 115, 243, 115, 244, 115, 245, 115, 246, 115, 247, 115, 94, 224, 95, 224, 96, 224, 97, 224, 98, 224, 99, 224, 100, 224, 101, 224, 102, 224, 103, 224, 104, 224, 105, 224, 106, 224, 107, 224, 108, 224, 109, 224, 110, 224, 111, 224, 112, 224, 113, 224, 114, 224, 115, 224, 116, 224, 117, 224, 118, 224, 119, 224, 120, 224, 121, 224, 122, 224, 123, 224, 124, 224, 125, 224, 126, 224, 127, 224, 128, 224, 129, 224, 130, 224, 131, 224, 132, 224, 133, 224, 134, 224, 135, 224, 136, 224, 137, 224, 138, 224, 139, 224, 140, 224, 141, 224, 142, 224, 143, 224, 144, 224, 145, 224, 146, 224, 147, 224, 148, 224, 149, 224, 150, 224, 151, 224, 152, 224, 153, 224, 154, 224, 155, 224, 156, 224, 157, 224, 158, 224, 159, 224, 160, 224, 161, 224, 162, 224, 163, 224, 164, 224, 165, 224, 166, 224, 167, 224, 168, 224, 169, 224, 170, 224, 171, 224, 172, 224, 173, 224, 174, 224, 175, 224, 176, 224, 177, 224, 178, 224, 179, 224, 180, 224, 181, 224, 182, 224, 183, 224, 184, 224, 185, 224, 186, 224, 187, 224, 248, 115, 249, 115, 250, 115, 251, 115, 252, 115, 253, 115, 254, 115, 255, 115, 0, 116, 1, 116, 2, 116, 4, 116, 7, 116, 8, 116, 11, 116, 12, 116, 13, 116, 14, 116, 17, 116, 18, 116, 19, 116, 20, 116, 21, 116, 22, 116, 23, 116, 24, 116, 25, 116, 28, 116, 29, 116, 30, 116, 31, 116, 32, 116, 33, 116, 35, 116, 36, 116, 39, 116, 41, 116, 43, 116, 45, 116, 47, 116, 49, 116, 50, 116, 55, 116, 56, 116, 57, 116, 58, 116, 59, 116, 61, 116, 62, 116, 63, 116, 64, 116, 66, 116, 67, 116, 68, 116, 69, 116, 70, 116, 71, 116, 72, 116, 73, 116, 74, 116, 75, 116, 76, 116, 77, 116, 78, 116, 79, 116, 80, 116, 81, 116, 82, 116, 83, 116, 84, 116, 86, 116, 88, 116, 93, 116, 96, 116, 97, 116, 98, 116, 99, 116, 100, 116, 101, 116, 102, 116, 103, 116, 104, 116, 105, 116, 106, 116, 107, 116, 108, 116, 110, 116, 111, 116, 113, 116, 114, 116, 115, 116, 116, 116, 117, 116, 120, 116, 121, 116, 122, 116, 188, 224, 189, 224, 190, 224, 191, 224, 192, 224, 193, 224, 194, 224, 195, 224, 196, 224, 197, 224, 198, 224, 199, 224, 200, 224, 201, 224, 202, 224, 203, 224, 204, 224, 205, 224, 206, 224, 207, 224, 208, 224, 209, 224, 210, 224, 211, 224, 212, 224, 213, 224, 214, 224, 215, 224, 216, 224, 217, 224, 218, 224, 219, 224, 220, 224, 221, 224, 222, 224, 223, 224, 224, 224, 225, 224, 226, 224, 227, 224, 228, 224, 229, 224, 230, 224, 231, 224, 232, 224, 233, 224, 234, 224, 235, 224, 236, 224, 237, 224, 238, 224, 239, 224, 240, 224, 241, 224, 242, 224, 243, 224, 244, 224, 245, 224, 246, 224, 247, 224, 248, 224, 249, 224, 250, 224, 251, 224, 252, 224, 253, 224, 254, 224, 255, 224, 0, 225, 1, 225, 2, 225, 3, 225, 4, 225, 5, 225, 6, 225, 7, 225, 8, 225, 9, 225, 10, 225, 11, 225, 12, 225, 13, 225, 14, 225, 15, 225, 16, 225, 17, 225, 18, 225, 19, 225, 20, 225, 21, 225, 22, 225, 23, 225, 24, 225, 25, 225, 123, 116, 124, 116, 125, 116, 127, 116, 130, 116, 132, 116, 133, 116, 134, 116, 136, 116, 137, 116, 138, 116, 140, 116, 141, 116, 143, 116, 145, 116, 146, 116, 147, 116, 148, 116, 149, 116, 150, 116, 151, 116, 152, 116, 153, 116, 154, 116, 155, 116, 157, 116, 159, 116, 160, 116, 161, 116, 162, 116, 163, 116, 164, 116, 165, 116, 166, 116, 170, 116, 171, 116, 172, 116, 173, 116, 174, 116, 175, 116, 176, 116, 177, 116, 178, 116, 179, 116, 180, 116, 181, 116, 182, 116, 183, 116, 184, 116, 185, 116, 187, 116, 188, 116, 189, 116, 190, 116, 191, 116, 192, 116, 193, 116, 194, 116, 195, 116, 196, 116, 197, 116, 198, 116, 199, 116, 200, 116, 201, 116, 202, 116, 203, 116, 204, 116, 205, 116, 206, 116, 207, 116, 208, 116, 209, 116, 211, 116, 212, 116, 213, 116, 214, 116, 215, 116, 216, 116, 217, 116, 218, 116, 219, 116, 221, 116, 223, 116, 225, 116, 229, 116, 231, 116, 232, 116, 233, 116, 234, 116, 235, 116, 236, 116, 237, 116, 240, 116, 241, 116, 242, 116, 26, 225, 27, 225, 28, 225, 29, 225, 30, 225, 31, 225, 32, 225, 33, 225, 34, 225, 35, 225, 36, 225, 37, 225, 38, 225, 39, 225, 40, 225, 41, 225, 42, 225, 43, 225, 44, 225, 45, 225, 46, 225, 47, 225, 48, 225, 49, 225, 50, 225, 51, 225, 52, 225, 53, 225, 54, 225, 55, 225, 56, 225, 57, 225, 58, 225, 59, 225, 60, 225, 61, 225, 62, 225, 63, 225, 64, 225, 65, 225, 66, 225, 67, 225, 68, 225, 69, 225, 70, 225, 71, 225, 72, 225, 73, 225, 74, 225, 75, 225, 76, 225, 77, 225, 78, 225, 79, 225, 80, 225, 81, 225, 82, 225, 83, 225, 84, 225, 85, 225, 86, 225, 87, 225, 88, 225, 89, 225, 90, 225, 91, 225, 92, 225, 93, 225, 94, 225, 95, 225, 96, 225, 97, 225, 98, 225, 99, 225, 100, 225, 101, 225, 102, 225, 103, 225, 104, 225, 105, 225, 106, 225, 107, 225, 108, 225, 109, 225, 110, 225, 111, 225, 112, 225, 113, 225, 114, 225, 115, 225, 116, 225, 117, 225, 118, 225, 119, 225, 243, 116, 245, 116, 248, 116, 249, 116, 250, 116, 251, 116, 252, 116, 253, 116, 254, 116, 0, 117, 1, 117, 2, 117, 3, 117, 5, 117, 6, 117, 7, 117, 8, 117, 9, 117, 10, 117, 11, 117, 12, 117, 14, 117, 16, 117, 18, 117, 20, 117, 21, 117, 22, 117, 23, 117, 27, 117, 29, 117, 30, 117, 32, 117, 33, 117, 34, 117, 35, 117, 36, 117, 38, 117, 39, 117, 42, 117, 46, 117, 52, 117, 54, 117, 57, 117, 60, 117, 61, 117, 63, 117, 65, 117, 66, 117, 67, 117, 68, 117, 70, 117, 71, 117, 73, 117, 74, 117, 77, 117, 80, 117, 81, 117, 82, 117, 83, 117, 85, 117, 86, 117, 87, 117, 88, 117, 93, 117, 94, 117, 95, 117, 96, 117, 97, 117, 98, 117, 99, 117, 100, 117, 103, 117, 104, 117, 105, 117, 107, 117, 108, 117, 109, 117, 110, 117, 111, 117, 112, 117, 113, 117, 115, 117, 117, 117, 118, 117, 119, 117, 122, 117, 123, 117, 124, 117, 125, 117, 126, 117, 128, 117, 129, 117, 130, 117, 132, 117, 133, 117, 135, 117, 120, 225, 121, 225, 122, 225, 123, 225, 124, 225, 125, 225, 126, 225, 127, 225, 128, 225, 129, 225, 130, 225, 131, 225, 132, 225, 133, 225, 134, 225, 135, 225, 136, 225, 137, 225, 138, 225, 139, 225, 140, 225, 141, 225, 142, 225, 143, 225, 144, 225, 145, 225, 146, 225, 147, 225, 148, 225, 149, 225, 150, 225, 151, 225, 152, 225, 153, 225, 154, 225, 155, 225, 156, 225, 157, 225, 158, 225, 159, 225, 160, 225, 161, 225, 162, 225, 163, 225, 164, 225, 165, 225, 166, 225, 167, 225, 168, 225, 169, 225, 170, 225, 171, 225, 172, 225, 173, 225, 174, 225, 175, 225, 176, 225, 177, 225, 178, 225, 179, 225, 180, 225, 181, 225, 182, 225, 183, 225, 184, 225, 185, 225, 186, 225, 187, 225, 188, 225, 189, 225, 190, 225, 191, 225, 192, 225, 193, 225, 194, 225, 195, 225, 196, 225, 197, 225, 198, 225, 199, 225, 200, 225, 201, 225, 202, 225, 203, 225, 204, 225, 205, 225, 206, 225, 207, 225, 208, 225, 209, 225, 210, 225, 211, 225, 212, 225, 213, 225, 136, 117, 137, 117, 138, 117, 140, 117, 141, 117, 142, 117, 144, 117, 147, 117, 149, 117, 152, 117, 155, 117, 156, 117, 158, 117, 162, 117, 166, 117, 167, 117, 168, 117, 169, 117, 170, 117, 173, 117, 182, 117, 183, 117, 186, 117, 187, 117, 191, 117, 192, 117, 193, 117, 198, 117, 203, 117, 204, 117, 206, 117, 207, 117, 208, 117, 209, 117, 211, 117, 215, 117, 217, 117, 218, 117, 220, 117, 221, 117, 223, 117, 224, 117, 225, 117, 229, 117, 233, 117, 236, 117, 237, 117, 238, 117, 239, 117, 242, 117, 243, 117, 245, 117, 246, 117, 247, 117, 248, 117, 250, 117, 251, 117, 253, 117, 254, 117, 2, 118, 4, 118, 6, 118, 7, 118, 8, 118, 9, 118, 11, 118, 13, 118, 14, 118, 15, 118, 17, 118, 18, 118, 19, 118, 20, 118, 22, 118, 26, 118, 28, 118, 29, 118, 30, 118, 33, 118, 35, 118, 39, 118, 40, 118, 44, 118, 46, 118, 47, 118, 49, 118, 50, 118, 54, 118, 55, 118, 57, 118, 58, 118, 59, 118, 61, 118, 65, 118, 66, 118, 68, 118, 214, 225, 215, 225, 216, 225, 217, 225, 218, 225, 219, 225, 220, 225, 221, 225, 222, 225, 223, 225, 224, 225, 225, 225, 226, 225, 227, 225, 228, 225, 229, 225, 230, 225, 231, 225, 232, 225, 233, 225, 234, 225, 235, 225, 236, 225, 237, 225, 238, 225, 239, 225, 240, 225, 241, 225, 242, 225, 243, 225, 244, 225, 245, 225, 246, 225, 247, 225, 248, 225, 249, 225, 250, 225, 251, 225 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 35572 ); /* memory initializer */ allocate( [ 252, 225, 253, 225, 254, 225, 255, 225, 0, 226, 1, 226, 2, 226, 3, 226, 4, 226, 5, 226, 6, 226, 7, 226, 8, 226, 9, 226, 10, 226, 11, 226, 12, 226, 13, 226, 14, 226, 15, 226, 16, 226, 17, 226, 18, 226, 19, 226, 20, 226, 21, 226, 22, 226, 23, 226, 24, 226, 25, 226, 26, 226, 27, 226, 28, 226, 29, 226, 30, 226, 31, 226, 32, 226, 33, 226, 34, 226, 35, 226, 36, 226, 37, 226, 38, 226, 39, 226, 40, 226, 41, 226, 42, 226, 43, 226, 44, 226, 45, 226, 46, 226, 47, 226, 48, 226, 49, 226, 50, 226, 51, 226, 69, 118, 70, 118, 71, 118, 72, 118, 73, 118, 74, 118, 75, 118, 78, 118, 79, 118, 80, 118, 81, 118, 82, 118, 83, 118, 85, 118, 87, 118, 88, 118, 89, 118, 90, 118, 91, 118, 93, 118, 95, 118, 96, 118, 97, 118, 98, 118, 100, 118, 101, 118, 102, 118, 103, 118, 104, 118, 105, 118, 106, 118, 108, 118, 109, 118, 110, 118, 112, 118, 113, 118, 114, 118, 115, 118, 116, 118, 117, 118, 118, 118, 119, 118, 121, 118, 122, 118, 124, 118, 127, 118, 128, 118, 129, 118, 131, 118, 133, 118, 137, 118, 138, 118, 140, 118, 141, 118, 143, 118, 144, 118, 146, 118, 148, 118, 149, 118, 151, 118, 152, 118, 154, 118, 155, 118, 156, 118, 157, 118, 158, 118, 159, 118, 160, 118, 161, 118, 162, 118, 163, 118, 165, 118, 166, 118, 167, 118, 168, 118, 169, 118, 170, 118, 171, 118, 172, 118, 173, 118, 175, 118, 176, 118, 179, 118, 181, 118, 182, 118, 183, 118, 184, 118, 185, 118, 186, 118, 187, 118, 188, 118, 189, 118, 190, 118, 192, 118, 193, 118, 195, 118, 74, 85, 63, 150, 195, 87, 40, 99, 206, 84, 9, 85, 192, 84, 145, 118, 76, 118, 60, 133, 238, 119, 126, 130, 141, 120, 49, 114, 152, 150, 141, 151, 40, 108, 137, 91, 250, 79, 9, 99, 151, 102, 184, 92, 250, 128, 72, 104, 174, 128, 2, 102, 206, 118, 249, 81, 86, 101, 172, 113, 241, 127, 132, 136, 178, 80, 101, 89, 202, 97, 179, 111, 173, 130, 76, 99, 82, 98, 237, 83, 39, 84, 6, 123, 107, 81, 164, 117, 244, 93, 212, 98, 203, 141, 118, 151, 138, 98, 25, 128, 93, 87, 56, 151, 98, 127, 56, 114, 125, 118, 207, 103, 126, 118, 70, 100, 112, 79, 37, 141, 220, 98, 23, 122, 145, 101, 237, 115, 44, 100, 115, 98, 44, 130, 129, 152, 127, 103, 72, 114, 110, 98, 204, 98, 52, 79, 227, 116, 74, 83, 158, 82, 202, 126, 166, 144, 46, 94, 134, 104, 156, 105, 128, 129, 209, 126, 210, 104, 197, 120, 140, 134, 81, 149, 141, 80, 36, 140, 222, 130, 222, 128, 5, 83, 18, 137, 101, 82, 196, 118, 199, 118, 201, 118, 203, 118, 204, 118, 211, 118, 213, 118, 217, 118, 218, 118, 220, 118, 221, 118, 222, 118, 224, 118, 225, 118, 226, 118, 227, 118, 228, 118, 230, 118, 231, 118, 232, 118, 233, 118, 234, 118, 235, 118, 236, 118, 237, 118, 240, 118, 243, 118, 245, 118, 246, 118, 247, 118, 250, 118, 251, 118, 253, 118, 255, 118, 0, 119, 2, 119, 3, 119, 5, 119, 6, 119, 10, 119, 12, 119, 14, 119, 15, 119, 16, 119, 17, 119, 18, 119, 19, 119, 20, 119, 21, 119, 22, 119, 23, 119, 24, 119, 27, 119, 28, 119, 29, 119, 30, 119, 33, 119, 35, 119, 36, 119, 37, 119, 39, 119, 42, 119, 43, 119, 44, 119, 46, 119, 48, 119, 49, 119, 50, 119, 51, 119, 52, 119, 57, 119, 59, 119, 61, 119, 62, 119, 63, 119, 66, 119, 68, 119, 69, 119, 70, 119, 72, 119, 73, 119, 74, 119, 75, 119, 76, 119, 77, 119, 78, 119, 79, 119, 82, 119, 83, 119, 84, 119, 85, 119, 86, 119, 87, 119, 88, 119, 89, 119, 92, 119, 132, 133, 249, 150, 221, 79, 33, 88, 113, 153, 157, 91, 177, 98, 165, 98, 180, 102, 121, 140, 141, 156, 6, 114, 111, 103, 145, 120, 178, 96, 81, 83, 23, 83, 136, 143, 204, 128, 29, 141, 161, 148, 13, 80, 200, 114, 7, 89, 235, 96, 25, 113, 171, 136, 84, 89, 239, 130, 44, 103, 40, 123, 41, 93, 247, 126, 45, 117, 245, 108, 102, 142, 248, 143, 60, 144, 59, 159, 212, 107, 25, 145, 20, 123, 124, 95, 167, 120, 214, 132, 61, 133, 213, 107, 217, 107, 214, 107, 1, 94, 135, 94, 249, 117, 237, 149, 93, 101, 10, 95, 197, 95, 159, 143, 193, 88, 194, 129, 127, 144, 91, 150, 173, 151, 185, 143, 22, 127, 44, 141, 65, 98, 191, 79, 216, 83, 94, 83, 168, 143, 169, 143, 171, 143, 77, 144, 7, 104, 106, 95, 152, 129, 104, 136, 214, 156, 139, 97, 43, 82, 42, 118, 108, 95, 140, 101, 210, 111, 232, 110, 190, 91, 72, 100, 117, 81, 176, 81, 196, 103, 25, 78, 201, 121, 124, 153, 179, 112, 93, 119, 94, 119, 95, 119, 96, 119, 100, 119, 103, 119, 105, 119, 106, 119, 109, 119, 110, 119, 111, 119, 112, 119, 113, 119, 114, 119, 115, 119, 116, 119, 117, 119, 118, 119, 119, 119, 120, 119, 122, 119, 123, 119, 124, 119, 129, 119, 130, 119, 131, 119, 134, 119, 135, 119, 136, 119, 137, 119, 138, 119, 139, 119, 143, 119, 144, 119, 147, 119, 148, 119, 149, 119, 150, 119, 151, 119, 152, 119, 153, 119, 154, 119, 155, 119, 156, 119, 157, 119, 158, 119, 161, 119, 163, 119, 164, 119, 166, 119, 168, 119, 171, 119, 173, 119, 174, 119, 175, 119, 177, 119, 178, 119, 180, 119, 182, 119, 183, 119, 184, 119, 185, 119, 186, 119, 188, 119, 190, 119, 192, 119, 193, 119, 194, 119, 195, 119, 196, 119, 197, 119, 198, 119, 199, 119, 200, 119, 201, 119, 202, 119, 203, 119, 204, 119, 206, 119, 207, 119, 208, 119, 209, 119, 210, 119, 211, 119, 212, 119, 213, 119, 214, 119, 216, 119, 217, 119, 218, 119, 221, 119, 222, 119, 223, 119, 224, 119, 225, 119, 228, 119, 197, 117, 118, 94, 187, 115, 224, 131, 173, 100, 232, 98, 181, 148, 226, 108, 90, 83, 195, 82, 15, 100, 194, 148, 148, 123, 47, 79, 27, 94, 54, 130, 22, 129, 138, 129, 36, 110, 202, 108, 115, 154, 85, 99, 92, 83, 250, 84, 101, 136, 224, 87, 13, 78, 3, 94, 101, 107, 63, 124, 232, 144, 22, 96, 230, 100, 28, 115, 193, 136, 80, 103, 77, 98, 34, 141, 108, 119, 41, 142, 199, 145, 105, 95, 220, 131, 33, 133, 16, 153, 194, 83, 149, 134, 139, 107, 237, 96, 232, 96, 127, 112, 205, 130, 49, 130, 211, 78, 167, 108, 207, 133, 205, 100, 217, 124, 253, 105, 249, 102, 73, 131, 149, 83, 86, 123, 167, 79, 140, 81, 75, 109, 66, 92, 109, 142, 210, 99, 201, 83, 44, 131, 54, 131, 229, 103, 180, 120, 61, 100, 223, 91, 148, 92, 238, 93, 231, 139, 198, 98, 244, 103, 122, 140, 0, 100, 186, 99, 73, 135, 139, 153, 23, 140, 32, 127, 242, 148, 167, 78, 16, 150, 164, 152, 12, 102, 22, 115, 230, 119, 232, 119, 234, 119, 239, 119, 240, 119, 241, 119, 242, 119, 244, 119, 245, 119, 247, 119, 249, 119, 250, 119, 251, 119, 252, 119, 3, 120, 4, 120, 5, 120, 6, 120, 7, 120, 8, 120, 10, 120, 11, 120, 14, 120, 15, 120, 16, 120, 19, 120, 21, 120, 25, 120, 27, 120, 30, 120, 32, 120, 33, 120, 34, 120, 36, 120, 40, 120, 42, 120, 43, 120, 46, 120, 47, 120, 49, 120, 50, 120, 51, 120, 53, 120, 54, 120, 61, 120, 63, 120, 65, 120, 66, 120, 67, 120, 68, 120, 70, 120, 72, 120, 73, 120, 74, 120, 75, 120, 77, 120, 79, 120, 81, 120, 83, 120, 84, 120, 88, 120, 89, 120, 90, 120, 91, 120, 92, 120, 94, 120, 95, 120, 96, 120, 97, 120, 98, 120, 99, 120, 100, 120, 101, 120, 102, 120, 103, 120, 104, 120, 105, 120, 111, 120, 112, 120, 113, 120, 114, 120, 115, 120, 116, 120, 117, 120, 118, 120, 120, 120, 121, 120, 122, 120, 123, 120, 125, 120, 126, 120, 127, 120, 128, 120, 129, 120, 130, 120, 131, 120, 58, 87, 29, 92, 56, 94, 127, 149, 127, 80, 160, 128, 130, 83, 94, 101, 69, 117, 49, 85, 33, 80, 133, 141, 132, 98, 158, 148, 29, 103, 50, 86, 110, 111, 226, 93, 53, 84, 146, 112, 102, 143, 111, 98, 164, 100, 163, 99, 123, 95, 136, 111, 244, 144, 227, 129, 176, 143, 24, 92, 104, 102, 241, 95, 137, 108, 72, 150, 129, 141, 108, 136, 145, 100, 240, 121, 206, 87, 89, 106, 16, 98, 72, 84, 88, 78, 11, 122, 233, 96, 132, 111, 218, 139, 127, 98, 30, 144, 139, 154, 228, 121, 3, 84, 244, 117, 1, 99, 25, 83, 96, 108, 223, 143, 27, 95, 112, 154, 59, 128, 127, 159, 136, 79, 58, 92, 100, 141, 197, 127, 165, 101, 189, 112, 69, 81, 178, 81, 107, 134, 7, 93, 160, 91, 189, 98, 108, 145, 116, 117, 12, 142, 32, 122, 1, 97, 121, 123, 199, 78, 248, 126, 133, 119, 17, 78, 237, 129, 29, 82, 250, 81, 113, 106, 168, 83, 135, 142, 4, 149, 207, 150, 193, 110, 100, 150, 90, 105, 132, 120, 133, 120, 134, 120, 136, 120, 138, 120, 139, 120, 143, 120, 144, 120, 146, 120, 148, 120, 149, 120, 150, 120, 153, 120, 157, 120, 158, 120, 160, 120, 162, 120, 164, 120, 166, 120, 168, 120, 169, 120, 170, 120, 171, 120, 172, 120, 173, 120, 174, 120, 175, 120, 181, 120, 182, 120, 183, 120, 184, 120, 186, 120, 187, 120, 188, 120, 189, 120, 191, 120, 192, 120, 194, 120, 195, 120, 196, 120, 198, 120, 199, 120, 200, 120, 204, 120, 205, 120, 206, 120, 207, 120, 209, 120, 210, 120, 211, 120, 214, 120, 215, 120, 216, 120, 218, 120, 219, 120, 220, 120, 221, 120, 222, 120, 223, 120, 224, 120, 225, 120, 226, 120, 227, 120, 228, 120, 229, 120, 230, 120, 231, 120, 233, 120, 234, 120, 235, 120, 237, 120, 238, 120, 239, 120, 240, 120, 241, 120, 243, 120, 245, 120, 246, 120, 248, 120, 249, 120, 251, 120, 252, 120, 253, 120, 254, 120, 255, 120, 0, 121, 2, 121, 3, 121, 4, 121, 6, 121, 7, 121, 8, 121, 9, 121, 10, 121, 11, 121, 12, 121, 64, 120, 168, 80, 215, 119, 16, 100, 230, 137, 4, 89, 227, 99, 221, 93, 127, 122, 61, 105, 32, 79, 57, 130, 152, 85, 50, 78, 174, 117, 151, 122, 98, 94, 138, 94, 239, 149, 27, 82, 57, 84, 138, 112, 118, 99, 36, 149, 130, 87, 37, 102, 63, 105, 135, 145, 7, 85, 243, 109, 175, 126, 34, 136, 51, 98, 240, 126, 181, 117, 40, 131, 193, 120, 204, 150, 158, 143, 72, 97, 247, 116, 205, 139, 100, 107, 58, 82, 80, 141, 33, 107, 106, 128, 113, 132, 241, 86, 6, 83, 206, 78, 27, 78, 209, 81, 151, 124, 139, 145, 7, 124, 195, 79, 127, 142, 225, 123, 156, 122, 103, 100, 20, 93, 172, 80, 6, 129, 1, 118, 185, 124, 236, 109, 224, 127, 81, 103, 88, 91, 248, 91, 203, 120, 174, 100, 19, 100, 170, 99, 43, 99, 25, 149, 45, 100, 190, 143, 84, 123, 41, 118, 83, 98, 39, 89, 70, 84, 121, 107, 163, 80, 52, 98, 38, 94, 134, 107, 227, 78, 55, 141, 139, 136, 133, 95, 46, 144, 13, 121, 14, 121, 15, 121, 16, 121, 17, 121, 18, 121, 20, 121, 21, 121, 22, 121, 23, 121, 24, 121, 25, 121, 26, 121, 27, 121, 28, 121, 29, 121, 31, 121, 32, 121, 33, 121, 34, 121, 35, 121, 37, 121, 38, 121, 39, 121, 40, 121, 41, 121, 42, 121, 43, 121, 44, 121, 45, 121, 46, 121, 47, 121, 48, 121, 49, 121, 50, 121, 51, 121, 53, 121, 54, 121, 55, 121, 56, 121, 57, 121, 61, 121, 63, 121, 66, 121, 67, 121, 68, 121, 69, 121, 71, 121, 74, 121, 75, 121, 76, 121, 77, 121, 78, 121, 79, 121, 80, 121, 81, 121, 82, 121, 84, 121, 85, 121, 88, 121, 89, 121, 97, 121, 99, 121, 100, 121, 102, 121, 105, 121, 106, 121, 107, 121, 108, 121, 110, 121, 112, 121, 113, 121, 114, 121, 115, 121, 116, 121, 117, 121, 118, 121, 121, 121, 123, 121, 124, 121, 125, 121, 126, 121, 127, 121, 130, 121, 131, 121, 134, 121, 135, 121, 136, 121, 137, 121, 139, 121, 140, 121, 141, 121, 142, 121, 144, 121, 145, 121, 146, 121, 32, 96, 61, 128, 197, 98, 57, 78, 85, 83, 248, 144, 184, 99, 198, 128, 230, 101, 46, 108, 70, 79, 238, 96, 225, 109, 222, 139, 57, 95, 203, 134, 83, 95, 33, 99, 90, 81, 97, 131, 99, 104, 0, 82, 99, 99, 72, 142, 18, 80, 155, 92, 119, 121, 252, 91, 48, 82, 59, 122, 188, 96, 83, 144, 215, 118, 183, 95, 151, 95, 132, 118, 108, 142, 111, 112, 123, 118, 73, 123, 170, 119, 243, 81, 147, 144, 36, 88, 78, 79, 244, 110, 234, 143, 76, 101, 27, 123, 196, 114, 164, 109, 223, 127, 225, 90, 181, 98, 149, 94, 48, 87, 130, 132, 44, 123, 29, 94, 31, 95, 18, 144, 20, 127, 160, 152, 130, 99, 199, 110, 152, 120, 185, 112, 120, 81, 91, 151, 171, 87, 53, 117, 67, 79, 56, 117, 151, 94, 230, 96, 96, 89, 192, 109, 191, 107, 137, 120, 252, 83, 213, 150, 203, 81, 1, 82, 137, 99, 10, 84, 147, 148, 3, 140, 204, 141, 57, 114, 159, 120, 118, 135, 237, 143, 13, 140, 224, 83, 147, 121, 148, 121, 149, 121, 150, 121, 151, 121, 152, 121, 153, 121, 155, 121, 156, 121, 157, 121, 158, 121, 159, 121, 160, 121, 161, 121, 162, 121, 163, 121, 164, 121, 165, 121, 166, 121, 168, 121, 169, 121, 170, 121, 171, 121, 172, 121, 173, 121, 174, 121, 175, 121, 176, 121, 177, 121, 178, 121, 180, 121, 181, 121, 182, 121, 183, 121, 184, 121, 188, 121, 191, 121, 194, 121, 196, 121, 197, 121, 199, 121, 200, 121, 202, 121, 204, 121, 206, 121, 207, 121, 208, 121, 211, 121, 212, 121, 214, 121, 215, 121, 217, 121, 218, 121, 219, 121, 220, 121, 221, 121, 222, 121, 224, 121, 225, 121, 226, 121, 229, 121, 232, 121, 234, 121, 236, 121, 238, 121, 241, 121, 242, 121, 243, 121, 244, 121, 245, 121, 246, 121, 247, 121, 249, 121, 250, 121, 252, 121, 254, 121, 255, 121, 1, 122, 4, 122, 5, 122, 7, 122, 8, 122, 9, 122, 10, 122, 12, 122, 15, 122, 16, 122, 17, 122, 18, 122, 19, 122, 21, 122, 22, 122, 24, 122, 25, 122, 27, 122, 28, 122, 1, 78, 239, 118, 238, 83, 137, 148, 118, 152, 14, 159, 45, 149, 154, 91, 162, 139, 34, 78, 28, 78, 172, 81, 99, 132, 194, 97, 168, 82, 11, 104, 151, 79, 107, 96, 187, 81, 30, 109, 92, 81, 150, 98, 151, 101, 97, 150, 70, 140, 23, 144, 216, 117, 253, 144, 99, 119, 210, 107, 138, 114, 236, 114, 251, 139, 53, 88, 121, 119, 76, 141, 92, 103, 64, 149, 154, 128, 166, 94, 33, 110, 146, 89, 239, 122, 237, 119, 59, 149, 181, 107, 173, 101, 14, 127, 6, 88, 81, 81, 31, 150, 249, 91, 169, 88, 40, 84, 114, 142, 102, 101, 127, 152, 228, 86, 157, 148, 254, 118, 65, 144, 135, 99, 198, 84, 26, 89, 58, 89, 155, 87, 178, 142, 53, 103, 250, 141, 53, 130, 65, 82, 240, 96, 21, 88, 254, 134, 232, 92, 69, 158, 196, 79, 157, 152, 185, 139, 37, 90, 118, 96, 132, 83, 124, 98, 79, 144, 2, 145, 127, 153, 105, 96, 12, 128, 63, 81, 51, 128, 20, 92, 117, 153, 49, 109, 140, 78, 29, 122, 31, 122, 33, 122, 34, 122, 36, 122, 37, 122, 38, 122, 39, 122, 40, 122, 41, 122, 42, 122, 43, 122, 44, 122, 45, 122, 46, 122, 47, 122, 48, 122, 49, 122, 50, 122, 52, 122, 53, 122, 54, 122, 56, 122, 58, 122, 62, 122, 64, 122, 65, 122, 66, 122, 67, 122, 68, 122, 69, 122, 71, 122, 72, 122, 73, 122, 74, 122, 75, 122, 76, 122, 77, 122, 78, 122, 79, 122, 80, 122, 82, 122, 83, 122, 84, 122, 85, 122, 86, 122, 88, 122, 89, 122, 90, 122, 91, 122, 92, 122, 93, 122, 94, 122, 95, 122, 96, 122, 97, 122, 98, 122, 99, 122, 100, 122, 101, 122, 102, 122, 103, 122, 104, 122, 105, 122, 106, 122, 107, 122, 108, 122, 109, 122, 110, 122, 111, 122, 113, 122, 114, 122, 115, 122, 117, 122, 123, 122, 124, 122, 125, 122, 126, 122, 130, 122, 133, 122, 135, 122, 137, 122, 138, 122, 139, 122, 140, 122, 142, 122, 143, 122, 144, 122, 147, 122, 148, 122, 153, 122, 154, 122, 155, 122, 158, 122, 161, 122, 162, 122, 48, 141, 209, 83, 90, 127, 79, 123, 16, 79, 79, 78, 0, 150, 213, 108, 208, 115, 233, 133, 6, 94, 106, 117, 251, 127, 10, 106, 254, 119, 146, 148, 65, 126, 225, 81, 230, 112, 205, 83, 212, 143, 3, 131, 41, 141, 175, 114, 109, 153, 219, 108, 74, 87, 179, 130, 185, 101, 170, 128, 63, 98, 50, 150, 168, 89, 255, 78, 191, 139, 186, 126, 62, 101, 242, 131, 94, 151, 97, 85, 222, 152, 165, 128, 42, 83, 253, 139, 32, 84, 186, 128, 159, 94, 184, 108, 57, 141, 172, 130, 90, 145, 41, 84, 27, 108, 6, 82, 183, 126, 95, 87, 26, 113, 126, 108, 137, 124, 75, 89, 253, 78, 255, 95, 36, 97, 170, 124, 48, 78, 1, 92, 171, 103, 2, 135, 240, 92, 11, 149, 206, 152, 175, 117, 253, 112, 34, 144, 175, 81, 29, 127, 189, 139, 73, 89, 228, 81, 91, 79, 38, 84, 43, 89, 119, 101, 164, 128, 117, 91, 118, 98, 194, 98, 144, 143, 69, 94, 31, 108, 38, 123, 15, 79, 216, 79, 13, 103, 163, 122, 164, 122, 167, 122, 169, 122, 170, 122, 171, 122, 174, 122, 175, 122, 176, 122, 177, 122, 178, 122, 180, 122, 181, 122, 182, 122, 183, 122, 184, 122, 185, 122, 186, 122, 187, 122, 188, 122, 189, 122, 190, 122, 192, 122, 193, 122, 194, 122, 195, 122, 196, 122, 197, 122, 198, 122, 199, 122, 200, 122, 201, 122, 202, 122, 204, 122, 205, 122, 206, 122, 207, 122, 208, 122, 209, 122, 210, 122, 211, 122, 212, 122, 213, 122, 215, 122, 216, 122, 218, 122, 219, 122, 220, 122, 221, 122, 225, 122, 226, 122, 228, 122, 231, 122, 232, 122, 233, 122, 234, 122, 235, 122, 236, 122, 238, 122, 240, 122, 241, 122, 242, 122, 243, 122, 244, 122, 245, 122, 246, 122, 247, 122, 248, 122, 251, 122, 252, 122, 254, 122, 0, 123, 1, 123, 2, 123, 5, 123, 7, 123, 9, 123, 12, 123, 13, 123, 14, 123, 16, 123, 18, 123, 19, 123, 22, 123, 23, 123, 24, 123, 26, 123, 28, 123, 29, 123, 31, 123, 33, 123, 34, 123, 35, 123, 39, 123, 41, 123, 45, 123, 110, 109, 170, 109, 143, 121, 177, 136, 23, 95, 43, 117, 154, 98, 133, 143, 239, 79, 220, 145, 167, 101, 47, 129, 81, 129, 156, 94, 80, 129, 116, 141, 111, 82, 134, 137, 75, 141, 13, 89, 133, 80, 216, 78, 28, 150, 54, 114, 121, 129, 31, 141, 204, 91, 163, 139, 68, 150, 135, 89, 26, 127, 144, 84, 118, 86, 14, 86, 229, 139, 57, 101, 130, 105, 153, 148, 214, 118, 137, 110, 114, 94, 24, 117, 70, 103, 209, 103, 255, 122, 157, 128, 118, 141, 31, 97, 198, 121, 98, 101, 99, 141, 136, 81, 26, 82, 162, 148, 56, 127, 155, 128, 178, 126, 151, 92, 47, 110, 96, 103, 217, 123, 139, 118, 216, 154, 143, 129, 148, 127, 213, 124, 30, 100, 80, 149, 63, 122, 74, 84, 229, 84, 76, 107, 1, 100, 8, 98, 61, 158, 243, 128, 153, 117, 114, 82, 105, 151, 91, 132, 60, 104, 228, 134, 1, 150, 148, 150, 236, 148, 42, 78, 4, 84, 217, 126, 57, 104, 223, 141, 21, 128, 244, 102, 154, 94, 185, 127, 47, 123, 48, 123, 50, 123, 52, 123, 53, 123, 54, 123, 55, 123, 57, 123, 59, 123, 61, 123, 63, 123, 64, 123, 65, 123, 66, 123, 67, 123, 68, 123, 70, 123, 72, 123, 74, 123, 77, 123, 78, 123, 83, 123, 85, 123, 87, 123, 89, 123, 92, 123, 94, 123, 95, 123, 97, 123, 99, 123, 100, 123, 101, 123, 102, 123, 103, 123, 104, 123, 105, 123, 106, 123, 107, 123, 108, 123, 109, 123, 111, 123, 112, 123, 115, 123, 116, 123, 118, 123, 120, 123, 122, 123, 124, 123, 125, 123, 127, 123, 129, 123, 130, 123, 131, 123, 132, 123, 134, 123, 135, 123, 136, 123, 137, 123, 138, 123, 139, 123, 140, 123, 142, 123, 143, 123, 145, 123, 146, 123, 147, 123, 150, 123, 152, 123, 153, 123, 154, 123, 155, 123, 158, 123, 159, 123, 160, 123, 163, 123, 164, 123, 165, 123, 174, 123, 175, 123, 176, 123, 178, 123, 179, 123, 181, 123, 182, 123, 183, 123, 185, 123, 186, 123, 187, 123, 188, 123, 189, 123, 190, 123, 191, 123, 192, 123, 194, 123, 195, 123, 196, 123, 194, 87, 63, 128, 151, 104, 229, 93, 59, 101, 159, 82, 109, 96, 154, 159, 155, 79, 172, 142, 108, 81, 171, 91, 19, 95, 233, 93, 94, 108, 241, 98, 33, 141, 113, 81, 169, 148, 254, 82, 159, 108, 223, 130, 215, 114, 162, 87, 132, 103, 45, 141, 31, 89, 156, 143, 199, 131, 149, 84, 141, 123, 48, 79, 189, 108, 100, 91, 209, 89, 19, 159, 228, 83, 202, 134, 168, 154, 55, 140, 161, 128, 69, 101, 126, 152, 250, 86, 199, 150, 46, 82, 220, 116, 80, 82, 225, 91, 2, 99, 2, 137, 86, 78, 208, 98, 42, 96, 250, 104, 115, 81, 152, 91, 160, 81, 194, 137, 161, 123, 134, 153, 80, 127, 239, 96, 76, 112, 47, 141, 73, 81, 127, 94, 27, 144, 112, 116, 196, 137, 45, 87, 69, 120, 82, 95, 159, 159, 250, 149, 104, 143, 60, 155, 225, 139, 120, 118, 66, 104, 220, 103, 234, 141, 53, 141, 61, 82, 138, 143, 218, 110, 205, 104, 5, 149, 237, 144, 253, 86, 156, 103, 249, 136, 199, 143, 200, 84, 197, 123, 200, 123, 201, 123, 202, 123, 203, 123, 205, 123, 206, 123, 207, 123, 208, 123, 210, 123, 212, 123, 213, 123, 214, 123, 215, 123, 216, 123, 219, 123, 220, 123, 222, 123, 223, 123, 224, 123, 226, 123, 227, 123, 228, 123, 231, 123, 232, 123, 233, 123, 235, 123, 236, 123, 237, 123, 239, 123, 240, 123, 242, 123, 243, 123, 244, 123, 245, 123, 246, 123, 248, 123, 249, 123, 250, 123, 251, 123, 253, 123, 255, 123, 0, 124, 1, 124, 2, 124, 3, 124, 4, 124, 5, 124, 6, 124, 8, 124, 9, 124, 10, 124, 13, 124, 14, 124, 16, 124, 17, 124, 18, 124, 19, 124, 20, 124, 21, 124, 23, 124, 24, 124, 25, 124, 26, 124, 27, 124, 28, 124, 29, 124, 30, 124, 32, 124, 33, 124, 34, 124, 35, 124, 36, 124, 37, 124, 40, 124, 41, 124, 43, 124, 44, 124, 45, 124, 46, 124, 47, 124, 48, 124, 49, 124, 50, 124, 51, 124, 52, 124, 53, 124, 54, 124, 55, 124, 57, 124, 58, 124, 59, 124, 60, 124, 61, 124, 62, 124, 66, 124, 184, 154, 105, 91, 119, 109, 38, 108, 165, 78, 179, 91, 135, 154, 99, 145, 168, 97, 175, 144, 233, 151, 43, 84, 181, 109, 210, 91, 253, 81, 138, 85, 85, 127, 240, 127, 188, 100, 77, 99, 241, 101, 190, 97, 141, 96, 10, 113, 87, 108, 73, 108, 47, 89, 109, 103, 42, 130, 213, 88, 142, 86, 106, 140, 235, 107, 221, 144, 125, 89, 23, 128, 247, 83, 105, 109, 117, 84, 157, 85, 119, 131, 207, 131, 56, 104, 190, 121, 140, 84, 85, 79, 8, 84, 210, 118, 137, 140, 2, 150, 179, 108, 184, 109, 107, 141, 16, 137, 100, 158, 58, 141, 63, 86, 209, 158, 213, 117, 136, 95, 224, 114, 104, 96, 252, 84, 168, 78, 42, 106, 97, 136, 82, 96, 112, 143, 196, 84, 216, 112, 121, 134, 63, 158, 42, 109, 143, 91, 24, 95, 162, 126, 137, 85, 175, 79, 52, 115, 60, 84, 154, 83, 25, 80, 14, 84, 124, 84, 78, 78, 253, 95, 90, 116, 246, 88, 107, 132, 225, 128, 116, 135, 208, 114, 202, 124, 86, 110, 67, 124, 68, 124, 69, 124, 70, 124, 71, 124, 72, 124, 73, 124, 74, 124, 75, 124, 76, 124, 78, 124, 79, 124, 80, 124, 81, 124, 82, 124, 83, 124, 84, 124, 85, 124, 86, 124, 87, 124, 88, 124, 89, 124, 90, 124, 91, 124, 92, 124, 93, 124, 94, 124, 95, 124, 96, 124, 97, 124, 98, 124, 99, 124, 100, 124, 101, 124, 102, 124, 103, 124, 104, 124, 105, 124, 106, 124, 107, 124, 108, 124, 109, 124, 110, 124, 111, 124, 112, 124, 113, 124, 114, 124, 117, 124, 118, 124, 119, 124, 120, 124, 121, 124, 122, 124, 126, 124, 127, 124, 128, 124, 129, 124, 130, 124, 131, 124, 132, 124, 133, 124, 134, 124, 135, 124, 136, 124, 138, 124, 139, 124, 140, 124, 141, 124, 142, 124, 143, 124, 144, 124, 147, 124, 148, 124, 150, 124, 153, 124, 154, 124, 155, 124, 160, 124, 161, 124, 163, 124, 166, 124, 167, 124, 168, 124, 169, 124, 171, 124, 172, 124, 173, 124, 175, 124, 176, 124, 180, 124, 181, 124, 182, 124, 183, 124, 184, 124, 186, 124, 187, 124, 39, 95, 78, 134, 44, 85, 164, 98, 146, 78, 170, 108, 55, 98, 177, 130, 215, 84, 78, 83, 62, 115, 209, 110, 59, 117, 18, 82, 22, 83, 221, 139, 208, 105, 138, 95, 0, 96, 238, 109, 79, 87, 34, 107, 175, 115, 83, 104, 216, 143, 19, 127, 98, 99, 163, 96, 36, 85, 234, 117, 98, 140, 21, 113, 163, 109, 166, 91, 123, 94, 82, 131, 76, 97, 196, 158, 250, 120, 87, 135, 39, 124, 135, 118, 240, 81, 246, 96, 76, 113, 67, 102, 76, 94, 77, 96, 14, 140, 112, 112, 37, 99, 137, 143, 189, 95, 98, 96, 212, 134, 222, 86, 193, 107, 148, 96, 103, 97, 73, 83, 224, 96, 102, 102, 63, 141, 253, 121, 26, 79, 233, 112, 71, 108, 179, 139, 242, 139, 216, 126, 100, 131, 15, 102, 90, 90, 66, 155, 81, 109, 247, 109, 65, 140, 59, 109, 25, 79, 107, 112, 183, 131, 22, 98, 209, 96, 13, 151, 39, 141, 120, 121, 251, 81, 62, 87, 250, 87, 58, 103, 120, 117, 61, 122, 239, 121, 149, 123, 191, 124, 192, 124, 194, 124, 195, 124, 196, 124, 198, 124, 201, 124, 203, 124, 206, 124, 207, 124, 208, 124, 209, 124, 210, 124, 211, 124, 212, 124, 216, 124, 218, 124, 219, 124, 221, 124, 222, 124, 225, 124, 226, 124, 227, 124, 228, 124, 229, 124, 230, 124, 231, 124, 233, 124, 234, 124, 235, 124, 236, 124, 237, 124, 238, 124, 240, 124, 241, 124, 242, 124, 243, 124, 244, 124, 245, 124, 246, 124, 247, 124, 249, 124, 250, 124, 252, 124, 253, 124, 254, 124, 255, 124, 0, 125, 1, 125, 2, 125, 3, 125, 4, 125, 5, 125, 6, 125, 7, 125, 8, 125, 9, 125, 11, 125, 12, 125, 13, 125, 14, 125, 15, 125, 16, 125, 17, 125, 18, 125, 19, 125, 20, 125, 21, 125, 22, 125, 23, 125, 24, 125, 25, 125, 26, 125, 27, 125, 28, 125, 29, 125, 30, 125, 31, 125, 33, 125, 35, 125, 36, 125, 37, 125, 38, 125, 40, 125, 41, 125, 42, 125, 44, 125, 45, 125, 46, 125, 48, 125, 49, 125, 50, 125, 51, 125, 52, 125, 53, 125, 54, 125, 140, 128, 101, 153, 249, 143, 192, 111, 165, 139, 33, 158, 236, 89, 233, 126, 9, 127, 9, 84, 129, 103, 216, 104, 145, 143, 77, 124, 198, 150, 202, 83, 37, 96, 190, 117, 114, 108, 115, 83, 201, 90, 167, 126, 36, 99, 224, 81, 10, 129, 241, 93, 223, 132, 128, 98, 128, 81, 99, 91, 14, 79, 109, 121, 66, 82, 184, 96, 78, 109, 196, 91, 194, 91, 161, 139, 176, 139, 226, 101, 204, 95, 69, 150, 147, 89, 231, 126, 170, 126, 9, 86, 183, 103, 57, 89, 115, 79, 182, 91, 160, 82, 90, 131, 138, 152, 62, 141, 50, 117, 190, 148, 71, 80, 60, 122, 247, 78, 182, 103, 126, 154, 193, 90, 124, 107, 209, 118, 90, 87, 22, 92, 58, 123, 244, 149, 78, 113, 124, 81, 169, 128, 112, 130, 120, 89, 4, 127, 39, 131, 192, 104, 236, 103, 177, 120, 119, 120, 227, 98, 97, 99, 128, 123, 237, 79, 106, 82, 207, 81, 80, 131, 219, 105, 116, 146, 245, 141, 49, 141, 193, 137, 46, 149, 173, 123, 246, 78, 55, 125, 56, 125, 57, 125, 58, 125, 59, 125, 60, 125, 61, 125, 62, 125, 63, 125, 64, 125, 65, 125, 66, 125, 67, 125, 68, 125, 69, 125, 70, 125, 71, 125, 72, 125, 73, 125, 74, 125, 75, 125, 76, 125, 77, 125, 78, 125, 79, 125, 80, 125, 81, 125, 82, 125, 83, 125, 84, 125, 85, 125, 86, 125, 87, 125, 88, 125, 89, 125, 90, 125, 91, 125, 92, 125, 93, 125, 94, 125, 95, 125, 96, 125, 97, 125, 98, 125, 99, 125, 100, 125, 101, 125, 102, 125, 103, 125, 104, 125, 105, 125, 106, 125, 107, 125, 108, 125, 109, 125, 111, 125, 112, 125, 113, 125, 114, 125, 115, 125, 116, 125, 117, 125, 118, 125, 120, 125, 121, 125, 122, 125, 123, 125, 124, 125, 125, 125, 126, 125, 127, 125, 128, 125, 129, 125, 130, 125, 131, 125, 132, 125, 133, 125, 134, 125, 135, 125, 136, 125, 137, 125, 138, 125, 139, 125, 140, 125, 141, 125, 142, 125, 143, 125, 144, 125, 145, 125, 146, 125, 147, 125, 148, 125, 149, 125, 150, 125, 151, 125, 152, 125, 101, 80, 48, 130, 81, 82, 111, 153, 16, 110, 133, 110, 167, 109, 250, 94, 245, 80, 220, 89, 6, 92, 70, 109, 95, 108, 134, 117, 139, 132, 104, 104, 86, 89, 178, 139, 32, 83, 113, 145, 77, 150, 73, 133, 18, 105, 1, 121, 38, 113, 246, 128, 164, 78, 202, 144, 71, 109, 132, 154, 7, 90, 188, 86, 5, 100, 240, 148, 235, 119, 165, 79, 26, 129, 225, 114, 210, 137, 122, 153, 52, 127, 222, 126, 127, 82, 89, 101, 117, 145, 127, 143, 131, 143, 235, 83, 150, 122, 237, 99, 165, 99, 134, 118, 248, 121, 87, 136, 54, 150, 42, 98, 171, 82, 130, 130, 84, 104, 112, 103, 119, 99, 107, 119, 237, 122, 1, 109, 211, 126, 227, 137, 208, 89, 18, 98, 201, 133, 165, 130, 76, 117, 31, 80, 203, 78, 165, 117, 235, 139, 74, 92, 254, 93, 75, 123, 164, 101, 209, 145, 202, 78, 37, 109, 95, 137, 39, 125, 38, 149, 197, 78, 40, 140, 219, 143, 115, 151, 75, 102, 129, 121, 209, 143, 236, 112, 120, 109, 153, 125, 154, 125, 155, 125, 156, 125, 157, 125, 158, 125, 159, 125, 160, 125, 161, 125, 162, 125, 163, 125, 164, 125, 165, 125, 167, 125, 168, 125, 169, 125, 170, 125, 171, 125, 172, 125, 173, 125, 175, 125, 176, 125, 177, 125, 178, 125, 179, 125, 180, 125, 181, 125, 182, 125, 183, 125, 184, 125, 185, 125, 186, 125, 187, 125, 188, 125, 189, 125, 190, 125, 191, 125, 192, 125, 193, 125, 194, 125, 195, 125, 196, 125, 197, 125, 198, 125, 199, 125, 200, 125, 201, 125, 202, 125, 203, 125, 204, 125, 205, 125, 206, 125, 207, 125, 208, 125, 209, 125, 210, 125, 211, 125, 212, 125, 213, 125, 214, 125, 215, 125, 216, 125, 217, 125, 218, 125, 219, 125, 220, 125, 221, 125, 222, 125, 223, 125, 224, 125, 225, 125, 226, 125, 227, 125, 228, 125, 229, 125, 230, 125, 231, 125, 232, 125, 233, 125, 234, 125, 235, 125, 236, 125, 237, 125, 238, 125, 239, 125, 240, 125, 241, 125, 242, 125, 243, 125, 244, 125, 245, 125, 246, 125, 247, 125, 248, 125, 249, 125, 250, 125, 61, 92, 178, 82, 70, 131, 98, 81, 14, 131, 91, 119, 118, 102, 184, 156, 172, 78, 202, 96, 190, 124, 179, 124, 207, 126, 149, 78, 102, 139, 111, 102, 136, 152, 89, 151, 131, 88, 108, 101, 92, 149, 132, 95, 201, 117, 86, 151, 223, 122, 222, 122, 192, 81, 175, 112, 152, 122, 234, 99, 118, 122, 160, 126, 150, 115, 237, 151, 69, 78, 120, 112, 93, 78, 82, 145, 169, 83, 81, 101, 231, 101, 252, 129, 5, 130, 142, 84, 49, 92, 154, 117, 160, 151, 216, 98, 217, 114, 189, 117, 69, 92, 121, 154, 202, 131, 64, 92, 128, 84, 233, 119, 62, 78, 174, 108, 90, 128, 210, 98, 110, 99, 232, 93, 119, 81, 221, 141, 30, 142, 47, 149, 241, 79, 229, 83, 231, 96, 172, 112, 103, 82, 80, 99, 67, 158, 31, 90, 38, 80, 55, 119, 119, 83, 226, 126, 133, 100, 43, 101, 137, 98, 152, 99, 20, 80, 53, 114, 201, 137, 179, 81, 192, 139, 221, 126, 71, 87, 204, 131, 167, 148, 155, 81, 27, 84, 251, 92, 251, 125, 252, 125, 253, 125, 254, 125, 255, 125, 0, 126, 1, 126, 2, 126, 3, 126, 4, 126, 5, 126, 6, 126, 7, 126, 8, 126, 9, 126, 10, 126, 11, 126, 12, 126, 13, 126, 14, 126, 15, 126, 16, 126, 17, 126, 18, 126, 19, 126, 20, 126, 21, 126, 22, 126, 23, 126, 24, 126, 25, 126, 26, 126, 27, 126, 28, 126, 29, 126, 30, 126, 31, 126, 32, 126, 33, 126, 34, 126, 35, 126, 36, 126, 37, 126, 38, 126, 39, 126, 40, 126, 41, 126, 42, 126, 43, 126, 44, 126, 45, 126, 46, 126, 47, 126, 48, 126, 49, 126, 50, 126, 51, 126, 52, 126, 53, 126, 54, 126, 55, 126, 56, 126, 57, 126, 58, 126, 60, 126, 61, 126, 62, 126, 63, 126, 64, 126, 66, 126, 67, 126, 68, 126, 69, 126, 70, 126, 72, 126, 73, 126, 74, 126, 75, 126, 76, 126, 77, 126, 78, 126, 79, 126, 80, 126, 81, 126, 82, 126, 83, 126, 84, 126, 85, 126, 86, 126, 87, 126, 88, 126, 89, 126, 90, 126, 91, 126, 92, 126, 93, 126, 202, 79, 227, 122, 90, 109, 225, 144, 143, 154, 128, 85, 150, 84, 97, 83, 175, 84, 0, 95, 233, 99, 119, 105, 239, 81, 104, 97, 10, 82, 42, 88, 216, 82, 78, 87, 13, 120, 11, 119, 183, 94, 119, 97, 224, 124, 91, 98, 151, 98, 162, 78, 149, 112, 3, 128, 247, 98, 228, 112, 96, 151, 119, 87, 219, 130, 239, 103, 245, 104, 213, 120, 151, 152, 209, 121, 243, 88, 179, 84, 239, 83, 52, 110, 75, 81, 59, 82, 162, 91, 254, 139, 175, 128, 67, 85, 166, 87, 115, 96, 81, 87, 45, 84, 122, 122, 80, 96, 84, 91, 167, 99, 160, 98, 227, 83, 99, 98, 199, 91, 175, 103, 237, 84, 159, 122, 230, 130, 119, 145, 147, 94, 228, 136, 56, 89, 174, 87, 14, 99, 232, 141, 239, 128, 87, 87, 119, 123, 169, 79, 235, 95, 189, 91, 62, 107, 33, 83, 80, 123, 194, 114, 70, 104, 255, 119, 54, 119, 247, 101, 181, 81, 143, 78, 212, 118, 191, 92, 165, 122, 117, 132, 78, 89, 65, 155, 128, 80, 94, 126, 95, 126, 96, 126, 97, 126, 98, 126, 99, 126, 100, 126, 101, 126, 102, 126, 103, 126, 104, 126, 105, 126, 106, 126, 107, 126, 108, 126, 109, 126, 110, 126, 111, 126, 112, 126, 113, 126, 114, 126, 115, 126, 116, 126, 117, 126, 118, 126, 119, 126, 120, 126, 121, 126, 122, 126, 123, 126, 124, 126, 125, 126, 126, 126, 127, 126, 128, 126, 129, 126, 131, 126, 132, 126, 133, 126, 134, 126, 135, 126, 136, 126, 137, 126, 138, 126, 139, 126, 140, 126, 141, 126, 142, 126, 143, 126, 144, 126, 145, 126, 146, 126, 147, 126, 148, 126, 149, 126, 150, 126, 151, 126, 152, 126, 153, 126, 154, 126, 156, 126, 157, 126, 158, 126, 174, 126, 180, 126, 187, 126, 188, 126, 214, 126, 228, 126, 236, 126, 249, 126, 10, 127, 16, 127, 30, 127, 55, 127, 57, 127, 59, 127, 60, 127, 61, 127, 62, 127, 63, 127, 64, 127, 65, 127, 67, 127, 70, 127, 71, 127, 72, 127, 73, 127, 74, 127, 75, 127, 76, 127, 77, 127, 78, 127, 79, 127, 82, 127, 83, 127, 136, 153, 39, 97, 131, 110, 100, 87, 6, 102, 70, 99, 240, 86, 236, 98, 105, 98, 211, 94, 20, 150, 131, 87, 201, 98, 135, 85, 33, 135, 74, 129, 163, 143, 102, 85, 177, 131, 101, 103, 86, 141, 221, 132, 106, 90, 15, 104, 230, 98, 238, 123, 17, 150, 112, 81, 156, 111, 48, 140, 253, 99, 200, 137, 210, 97, 6, 127, 194, 112, 229, 110, 5, 116, 148, 105, 252, 114, 202, 94, 206, 144, 23, 103, 106, 109, 94, 99, 179, 82, 98, 114, 1, 128, 108, 79, 229, 89, 106, 145, 217, 112, 157, 109, 210, 82, 80, 78, 247, 150, 109, 149, 126, 133, 202, 120, 47, 125, 33, 81, 146, 87, 194, 100, 139, 128, 123, 124, 234, 108, 241, 104, 94, 105, 183, 81, 152, 83, 168, 104, 129, 114, 206, 158, 241, 123, 248, 114, 187, 121, 19, 111, 6, 116, 78, 103, 204, 145, 164, 156, 60, 121, 137, 131, 84, 131, 15, 84, 23, 104, 61, 78, 137, 83, 177, 82, 62, 120, 134, 83, 41, 82, 136, 80, 139, 79, 208, 79, 86, 127, 89, 127, 91, 127, 92, 127, 93, 127, 94, 127, 96, 127, 99, 127, 100, 127, 101, 127, 102, 127, 103, 127, 107, 127, 108, 127, 109, 127, 111, 127, 112, 127, 115, 127, 117, 127, 118, 127, 119, 127, 120, 127, 122, 127, 123, 127, 124, 127, 125, 127, 127, 127, 128, 127, 130, 127, 131, 127, 132, 127, 133, 127, 134, 127, 135, 127, 136, 127, 137, 127, 139, 127, 141, 127, 143, 127, 144, 127, 145, 127, 146, 127, 147, 127, 149, 127, 150, 127, 151, 127, 152, 127, 153, 127, 155, 127, 156, 127, 160, 127, 162, 127, 163, 127, 165, 127, 166, 127, 168, 127, 169, 127, 170, 127, 171, 127, 172, 127, 173, 127, 174, 127, 177, 127, 179, 127, 180, 127, 181, 127, 182, 127, 183, 127, 186, 127, 187, 127, 190, 127, 192, 127, 194, 127, 195, 127, 196, 127, 198, 127, 199, 127, 200, 127, 201, 127, 203, 127, 205, 127, 207, 127, 208, 127, 209, 127, 210, 127, 211, 127, 214, 127, 215, 127, 217, 127, 218, 127, 219, 127, 220, 127, 221, 127, 222, 127, 226, 127, 227, 127, 226, 117, 203, 122, 146, 124, 165, 108, 182, 150, 155, 82, 131, 116, 233, 84, 233, 79, 84, 128, 178, 131, 222, 143, 112, 149, 201, 94, 28, 96, 159, 109, 24, 94, 91, 101, 56, 129, 254, 148, 75, 96, 188, 112, 195, 126, 174, 124, 201, 81, 129, 104, 177, 124, 111, 130, 36, 78, 134, 143, 207, 145, 126, 102, 174, 78, 5, 140, 169, 100, 74, 128, 218, 80, 151, 117, 206, 113, 229, 91, 189, 143, 102, 111, 134, 78, 130, 100, 99, 149, 214, 94, 153, 101, 23, 82, 194, 136, 200, 112, 163, 82, 14, 115, 51, 116, 151, 103, 247, 120, 22, 151, 52, 78, 187, 144, 222, 156, 203, 109, 219, 81, 65, 141, 29, 84, 206, 98, 178, 115, 241, 131, 246, 150, 132, 159, 195, 148, 54, 79, 154, 127, 204, 81, 117, 112, 117, 150, 173, 92, 134, 152, 230, 83, 228, 78, 156, 110, 9, 116, 180, 105, 107, 120, 143, 153, 89, 117, 24, 82, 36, 118, 65, 109, 243, 103, 109, 81, 153, 159, 75, 128, 153, 84, 60, 123, 191, 122, 228, 127, 231, 127, 232, 127, 234, 127, 235, 127, 236, 127, 237, 127, 239, 127, 242, 127, 244, 127, 245, 127, 246, 127, 247, 127, 248, 127, 249, 127, 250, 127, 253, 127, 254, 127, 255, 127, 2, 128, 7, 128, 8, 128, 9, 128, 10, 128, 14, 128, 15, 128, 17, 128, 19, 128, 26, 128, 27, 128, 29, 128, 30, 128, 31, 128, 33, 128, 35, 128, 36, 128, 43, 128, 44, 128, 45, 128, 46, 128, 47, 128, 48, 128, 50, 128, 52, 128, 57, 128, 58, 128, 60, 128, 62, 128, 64, 128, 65, 128, 68, 128, 69, 128, 71, 128, 72, 128, 73, 128, 78, 128, 79, 128, 80, 128, 81, 128, 83, 128, 85, 128, 86, 128, 87, 128, 89, 128, 91, 128, 92, 128, 93, 128, 94, 128, 95, 128, 96, 128, 97, 128, 98, 128, 99, 128, 100, 128, 101, 128, 102, 128, 103, 128, 104, 128, 107, 128, 108, 128, 109, 128, 110, 128, 111, 128, 112, 128, 114, 128, 115, 128, 116, 128, 117, 128, 118, 128, 119, 128, 120, 128, 121, 128, 122, 128, 123, 128, 124, 128, 125, 128, 134, 150, 132, 87, 226, 98, 71, 150, 124, 105, 4, 90, 2, 100, 211, 123, 15, 111, 75, 150, 166, 130, 98, 83, 133, 152, 144, 94, 137, 112, 179, 99, 100, 83, 79, 134, 129, 156, 147, 158, 140, 120, 50, 151, 239, 141, 66, 141, 127, 158, 94, 111, 132, 121, 85, 95, 70, 150, 46, 98, 116, 154, 21, 84, 221, 148, 163, 79, 197, 101, 101, 92, 97, 92, 21, 127, 81, 134, 47, 108, 139, 95, 135, 115, 228, 110, 255, 126, 230, 92, 27, 99, 106, 91, 230, 110, 117, 83, 113, 78, 160, 99, 101, 117, 161, 98, 110, 143, 38, 79, 209, 78, 166, 108, 182, 126, 186, 139, 29, 132, 186, 135, 87, 127, 59, 144, 35, 149, 169, 123, 161, 154, 248, 136, 61, 132, 27, 109, 134, 154, 220, 126, 136, 89, 187, 158, 155, 115, 1, 120, 130, 134, 108, 154, 130, 154, 27, 86, 23, 84, 203, 87, 112, 78, 166, 158, 86, 83, 200, 143, 9, 129, 146, 119, 146, 153, 238, 134, 225, 110, 19, 133, 252, 102, 98, 97, 43, 111, 126, 128, 129, 128, 130, 128, 133, 128, 136, 128, 138, 128, 141, 128, 142, 128, 143, 128, 144, 128, 145, 128, 146, 128, 148, 128, 149, 128, 151, 128, 153, 128, 158, 128, 163, 128, 166, 128, 167, 128, 168, 128, 172, 128, 176, 128, 179, 128, 181, 128, 182, 128, 184, 128, 185, 128, 187, 128, 197, 128, 199, 128, 200, 128, 201, 128, 202, 128, 203, 128, 207, 128, 208, 128, 209, 128, 210, 128, 211, 128, 212, 128, 213, 128, 216, 128, 223, 128, 224, 128, 226, 128, 227, 128, 230, 128, 238, 128, 245, 128, 247, 128, 249, 128, 251, 128, 254, 128, 255, 128, 0, 129, 1, 129, 3, 129, 4, 129, 5, 129, 7, 129, 8, 129, 11, 129, 12, 129, 21, 129, 23, 129, 25, 129, 27, 129, 28, 129, 29, 129, 31, 129, 32, 129, 33, 129, 34, 129, 35, 129, 36, 129, 37, 129, 38, 129, 39, 129, 40, 129, 41, 129, 42, 129, 43, 129, 45, 129, 46, 129, 48, 129, 51, 129, 52, 129, 53, 129, 55, 129, 57, 129, 58, 129, 59, 129, 60, 129, 61, 129, 63, 129, 41, 140, 146, 130, 43, 131, 242, 118, 19, 108, 217, 95, 189, 131, 43, 115, 5, 131, 26, 149, 219, 107, 219, 119, 198, 148, 111, 83, 2, 131, 146, 81, 61, 94, 140, 140, 56, 141, 72, 78, 171, 115, 154, 103, 133, 104, 118, 145, 9, 151, 100, 113, 161, 108, 9, 119, 146, 90, 65, 149, 207, 107, 142, 127, 39, 102, 208, 91, 185, 89, 154, 90, 232, 149, 247, 149, 236, 78, 12, 132, 153, 132, 172, 106, 223, 118, 48, 149, 27, 115, 166, 104, 95, 91, 47, 119, 154, 145, 97, 151, 220, 124, 247, 143, 28, 140, 37, 95, 115, 124, 216, 121, 197, 137, 204, 108, 28, 135, 198, 91, 66, 94, 201, 104, 32, 119, 245, 126, 149, 81, 77, 81, 201, 82, 41, 90, 5, 127, 98, 151, 215, 130, 207, 99, 132, 119, 208, 133, 210, 121, 58, 110, 153, 94, 153, 89, 17, 133, 109, 112, 17, 108, 191, 98, 191, 118, 79, 101, 175, 96, 253, 149, 14, 102, 159, 135, 35, 158, 237, 148, 13, 84, 125, 84, 44, 140, 120, 100, 64, 129, 65, 129, 66, 129, 67, 129, 68, 129, 69, 129, 71, 129, 73, 129, 77, 129, 78, 129, 79, 129, 82, 129, 86, 129, 87, 129, 88, 129, 91, 129, 92, 129, 93, 129, 94, 129, 95, 129, 97, 129, 98, 129, 99, 129, 100, 129, 102, 129, 104, 129, 106, 129, 107, 129, 108, 129, 111, 129, 114, 129, 115, 129, 117, 129, 118, 129, 119, 129, 120, 129, 129, 129, 131, 129, 132, 129, 133, 129, 134, 129, 135, 129, 137, 129, 139, 129, 140, 129, 141, 129, 142, 129, 144, 129, 146, 129, 147, 129, 148, 129, 149, 129, 150, 129, 151, 129, 153, 129, 154, 129, 158, 129, 159, 129, 160, 129, 161, 129, 162, 129, 164, 129, 165, 129, 167, 129, 169, 129, 171, 129, 172, 129, 173, 129, 174, 129, 175, 129, 176, 129, 177, 129, 178, 129, 180, 129, 181, 129, 182, 129, 183, 129, 184, 129, 185, 129, 188, 129, 189, 129, 190, 129, 191, 129, 196, 129, 197, 129, 199, 129, 200, 129, 201, 129, 203, 129, 205, 129, 206, 129, 207, 129, 208, 129, 209, 129, 210, 129, 211, 129, 121, 100, 17, 134, 33, 106, 156, 129, 232, 120, 105, 100, 84, 155, 185, 98, 43, 103, 171, 131, 168, 88, 216, 158, 171, 108, 32, 111, 222, 91, 76, 150, 11, 140, 95, 114, 208, 103, 199, 98, 97, 114, 169, 78, 198, 89, 205, 107, 147, 88, 174, 102, 85, 94, 223, 82, 85, 97, 40, 103, 238, 118, 102, 119, 103, 114, 70, 122, 255, 98, 234, 84, 80, 84, 160, 148, 163, 144, 28, 90, 179, 126, 22, 108, 67, 78, 118, 89, 16, 128, 72, 89, 87, 83, 55, 117, 190, 150, 202, 86, 32, 99, 17, 129, 124, 96, 249, 149, 214, 109, 98, 84, 129, 153, 133, 81, 233, 90, 253, 128, 174, 89, 19, 151, 42, 80, 229, 108, 60, 92, 223, 98, 96, 79, 63, 83, 123, 129, 6, 144, 186, 110, 43, 133, 200, 98, 116, 94, 190, 120, 181, 100, 123, 99, 245, 95, 24, 90, 127, 145, 31, 158, 63, 92, 79, 99, 66, 128, 125, 91, 110, 85, 74, 149, 77, 149, 133, 109, 168, 96, 224, 103, 222, 114, 221, 81, 129, 91, 212, 129, 213, 129, 214, 129, 215, 129, 216, 129, 217, 129, 218, 129, 219, 129, 220, 129, 221, 129, 222, 129, 223, 129, 224, 129, 225, 129, 226, 129, 228, 129, 229, 129, 230, 129, 232, 129, 233, 129, 235, 129, 238, 129, 239, 129, 240, 129, 241, 129, 242, 129, 245, 129, 246, 129, 247, 129, 248, 129, 249, 129, 250, 129, 253, 129, 255, 129, 3, 130, 7, 130, 8, 130, 9, 130, 10, 130, 11, 130, 14, 130, 15, 130, 17, 130, 19, 130, 21, 130, 22, 130, 23, 130, 24, 130, 25, 130, 26, 130, 29, 130, 32, 130, 36, 130, 37, 130, 38, 130, 39, 130, 41, 130, 46, 130, 50, 130, 58, 130, 60, 130, 61, 130, 63, 130, 64, 130, 65, 130, 66, 130, 67, 130, 69, 130, 70, 130, 72, 130, 74, 130, 76, 130, 77, 130, 78, 130, 80, 130, 81, 130, 82, 130, 83, 130, 84, 130, 85, 130, 86, 130, 87, 130, 89, 130, 91, 130, 92, 130, 93, 130, 94, 130, 96, 130, 97, 130, 98, 130, 99, 130, 100, 130, 101, 130, 102, 130, 103, 130, 105, 130, 231, 98, 222, 108, 91, 114, 109, 98, 174, 148, 189, 126, 19, 129, 83, 109, 156, 81, 4, 95, 116, 89, 170, 82, 18, 96, 115, 89, 150, 102, 80, 134, 159, 117, 42, 99, 230, 97, 239, 124, 250, 139, 230, 84, 39, 107, 37, 158, 180, 107, 213, 133, 85, 84, 118, 80, 164, 108, 106, 85, 180, 141, 44, 114, 21, 94, 21, 96, 54, 116, 205, 98, 146, 99, 76, 114, 152, 95, 67, 110, 62, 109, 0, 101, 88, 111, 216, 118, 208, 120, 252, 118, 84, 117, 36, 82, 219, 83, 83, 78, 158, 94, 193, 101, 42, 128, 214, 128, 155, 98, 134, 84, 40, 82, 174, 112, 141, 136, 209, 141, 225, 108, 120, 84, 218, 128, 249, 87, 244, 136, 84, 141, 106, 150, 77, 145, 105, 79, 155, 108, 183, 85, 198, 118, 48, 120, 168, 98, 249, 112, 142, 111, 109, 95, 236, 132, 218, 104, 124, 120, 247, 123, 168, 129, 11, 103, 79, 158, 103, 99, 176, 120, 111, 87, 18, 120, 57, 151, 121, 98, 171, 98, 136, 82, 53, 116, 215, 107, 106, 130, 107, 130, 108, 130, 109, 130, 113, 130, 117, 130, 118, 130, 119, 130, 120, 130, 123, 130, 124, 130, 128, 130, 129, 130, 131, 130, 133, 130, 134, 130, 135, 130, 137, 130, 140, 130, 144, 130, 147, 130, 148, 130, 149, 130, 150, 130, 154, 130, 155, 130, 158, 130, 160, 130, 162, 130, 163, 130, 167, 130, 178, 130, 181, 130, 182, 130, 186, 130, 187, 130, 188, 130, 191, 130, 192, 130, 194, 130, 195, 130, 197, 130, 198, 130, 201, 130, 208, 130, 214, 130, 217, 130, 218, 130, 221, 130, 226, 130, 231, 130, 232, 130, 233, 130, 234, 130, 236, 130, 237, 130, 238, 130, 240, 130, 242, 130, 243, 130, 245, 130, 246, 130, 248, 130, 250, 130, 252, 130, 253, 130, 254, 130, 255, 130, 0, 131, 10, 131, 11, 131, 13, 131, 16, 131, 18, 131, 19, 131, 22, 131, 24, 131, 25, 131, 29, 131, 30, 131, 31, 131, 32, 131, 33, 131, 34, 131, 35, 131, 36, 131, 37, 131, 38, 131, 41, 131, 42, 131, 46, 131, 48, 131, 50, 131, 55, 131, 59, 131, 61, 131, 100, 85, 62, 129, 178, 117, 174, 118, 57, 83, 222, 117, 251, 80, 65, 92, 108, 139, 199, 123, 79, 80, 71, 114, 151, 154, 216, 152, 2, 111, 226, 116, 104, 121, 135, 100, 165, 119, 252, 98, 145, 152, 43, 141, 193, 84, 88, 128, 82, 78, 106, 87, 249, 130, 13, 132, 115, 94, 237, 81, 246, 116, 196, 139, 79, 92, 97, 87, 252, 108, 135, 152, 70, 90, 52, 120, 68, 155, 235, 143, 149, 124, 86, 82, 81, 98, 250, 148, 198, 78, 134, 131, 97, 132, 233, 131, 178, 132, 212, 87, 52, 103, 3, 87, 110, 102, 102, 109, 49, 140, 221, 102, 17, 112, 31, 103, 58, 107, 22, 104, 26, 98, 187, 89, 3, 78, 196, 81, 6, 111, 210, 103, 143, 108, 118, 81, 203, 104, 71, 89, 103, 107, 102, 117, 14, 93, 16, 129, 80, 159, 215, 101, 72, 121, 65, 121, 145, 154, 119, 141, 130, 92, 94, 78, 1, 79, 47, 84, 81, 89, 12, 120, 104, 86, 20, 108, 196, 143, 3, 95, 125, 108, 227, 108, 171, 139, 144, 99, 62, 131, 63, 131, 65, 131, 66, 131, 68, 131, 69, 131, 72, 131, 74, 131, 75, 131, 76, 131, 77, 131, 78, 131, 83, 131, 85, 131, 86, 131, 87, 131, 88, 131, 89, 131, 93, 131, 98, 131, 112, 131, 113, 131, 114, 131, 115, 131, 116, 131, 117, 131, 118, 131, 121, 131, 122, 131, 126, 131, 127, 131, 128, 131, 129, 131, 130, 131, 131, 131, 132, 131, 135, 131, 136, 131, 138, 131, 139, 131, 140, 131, 141, 131, 143, 131, 144, 131, 145, 131, 148, 131, 149, 131, 150, 131, 151, 131, 153, 131, 154, 131, 157, 131, 159, 131, 161, 131, 162, 131, 163, 131, 164, 131, 165, 131, 166, 131, 167, 131, 172, 131, 173, 131, 174, 131, 175, 131, 181, 131, 187, 131, 190, 131, 191, 131, 194, 131, 195, 131, 196, 131, 198, 131, 200, 131, 201, 131, 203, 131, 205, 131, 206, 131, 208, 131, 209, 131, 210, 131, 211, 131, 213, 131, 215, 131, 217, 131, 218, 131, 219, 131, 222, 131, 226, 131, 227, 131, 228, 131, 230, 131, 231, 131, 232, 131, 235, 131, 236, 131, 237, 131, 112, 96, 61, 109, 117, 114, 102, 98, 142, 148, 197, 148, 67, 83, 193, 143, 126, 123, 223, 78, 38, 140, 126, 78, 212, 158, 177, 148, 179, 148, 77, 82, 92, 111, 99, 144, 69, 109, 52, 140, 17, 88, 76, 93, 32, 107, 73, 107, 170, 103, 91, 84, 84, 129, 140, 127, 153, 88, 55, 133, 58, 95, 162, 98, 71, 106, 57, 149, 114, 101, 132, 96, 101, 104, 167, 119, 84, 78, 168, 79, 231, 93, 152, 151, 172, 100, 216, 127, 237, 92, 207, 79, 141, 122, 7, 82, 4, 131, 20, 78, 47, 96, 131, 122, 166, 148, 181, 79, 178, 78, 230, 121, 52, 116, 228, 82, 185, 130, 210, 100, 189, 121, 221, 91, 129, 108, 82, 151, 123, 143, 34, 108, 62, 80, 127, 83, 5, 110, 206, 100, 116, 102, 48, 108, 197, 96, 119, 152, 247, 139, 134, 94, 60, 116, 119, 122, 203, 121, 24, 78, 177, 144, 3, 116, 66, 108, 218, 86, 75, 145, 197, 108, 139, 141, 58, 83, 198, 134, 242, 102, 175, 142, 72, 92, 113, 154, 32, 110, 238, 131, 239, 131, 243, 131, 244, 131, 245, 131, 246, 131, 247, 131, 250, 131, 251, 131, 252, 131, 254, 131, 255, 131, 0, 132, 2, 132, 5, 132, 7, 132, 8, 132, 9, 132, 10, 132, 16, 132, 18, 132, 19, 132, 20, 132, 21, 132, 22, 132, 23, 132, 25, 132, 26, 132, 27, 132, 30, 132, 31, 132, 32, 132, 33, 132, 34, 132, 35, 132, 41, 132, 42, 132, 43, 132, 44, 132, 45, 132, 46, 132, 47, 132, 48, 132, 50, 132, 51, 132, 52, 132, 53, 132, 54, 132, 55, 132, 57, 132, 58, 132, 59, 132, 62, 132, 63, 132, 64, 132, 65, 132, 66, 132, 67, 132, 68, 132, 69, 132, 71, 132, 72, 132, 73, 132, 74, 132, 75, 132, 76, 132, 77, 132, 78, 132, 79, 132, 80, 132, 82, 132, 83, 132, 84, 132, 85, 132, 86, 132, 88, 132, 93, 132, 94, 132, 95, 132, 96, 132, 98, 132, 100, 132, 101, 132, 102, 132, 103, 132, 104, 132, 106, 132, 110, 132, 111, 132, 112, 132, 114, 132, 116, 132, 119, 132, 121, 132, 123, 132, 124, 132, 214, 83, 54, 90, 139, 159, 163, 141, 187, 83, 8, 87, 167, 152, 67, 103, 155, 145, 201, 108, 104, 81, 202, 117, 243, 98, 172, 114, 56, 82, 157, 82, 58, 127, 148, 112, 56, 118, 116, 83, 74, 158, 183, 105, 110, 120, 192, 150, 217, 136, 164, 127, 54, 113, 195, 113, 137, 81, 211, 103, 228, 116, 228, 88, 24, 101, 183, 86, 169, 139, 118, 153, 112, 98, 213, 126, 249, 96, 237, 112, 236, 88, 193, 78, 186, 78, 205, 95, 231, 151, 251, 78, 164, 139, 3, 82, 138, 89, 171, 126, 84, 98, 205, 78, 229, 101, 14, 98, 56, 131, 201, 132, 99, 131, 141, 135, 148, 113, 182, 110, 185, 91, 210, 126, 151, 81, 201, 99, 212, 103, 137, 128, 57, 131, 21, 136, 18, 81, 122, 91, 130, 89, 177, 143, 115, 78, 93, 108, 101, 81, 37, 137, 111, 143, 46, 150, 74, 133, 94, 116, 16, 149, 240, 149, 166, 109, 229, 130, 49, 95, 146, 100, 18, 109, 40, 132, 110, 129, 195, 156, 94, 88, 91, 141, 9, 78, 193, 83, 125, 132, 126, 132, 127, 132, 128, 132, 129, 132, 131, 132, 132, 132, 133, 132, 134, 132, 138, 132, 141, 132, 143, 132, 144, 132, 145, 132, 146, 132, 147, 132, 148, 132, 149, 132, 150, 132, 152, 132, 154, 132, 155, 132, 157, 132, 158, 132, 159, 132, 160, 132, 162, 132, 163, 132, 164, 132, 165, 132, 166, 132, 167, 132, 168, 132, 169, 132, 170, 132, 171, 132, 172, 132, 173, 132, 174, 132, 176, 132, 177, 132, 179, 132, 181, 132, 182, 132, 183, 132, 187, 132, 188, 132, 190, 132, 192, 132, 194, 132, 195, 132, 197, 132, 198, 132, 199, 132, 200, 132, 203, 132, 204, 132, 206, 132, 207, 132, 210, 132, 212, 132, 213, 132, 215, 132, 216, 132, 217, 132, 218, 132, 219, 132, 220, 132, 222, 132, 225, 132, 226, 132, 228, 132, 231, 132, 232, 132, 233, 132, 234, 132, 235, 132, 237, 132, 238, 132, 239, 132, 241, 132, 242, 132, 243, 132, 244, 132, 245, 132, 246, 132, 247, 132, 248, 132, 249, 132, 250, 132, 251, 132, 253, 132, 254, 132, 0, 133, 1, 133, 2, 133, 30, 79, 99, 101, 81, 104, 211, 85, 39, 78, 20, 100, 154, 154, 107, 98, 194, 90, 95, 116, 114, 130, 169, 109, 238, 104, 231, 80, 142, 131, 2, 120, 64, 103, 57, 82, 153, 108, 177, 126, 187, 80, 101, 85, 94, 113, 91, 123, 82, 102, 202, 115, 235, 130, 73, 103, 113, 92, 32, 82, 125, 113, 107, 136, 234, 149, 85, 150, 197, 100, 97, 141, 179, 129, 132, 85, 85, 108, 71, 98, 46, 127, 146, 88, 36, 79, 70, 85, 79, 141, 76, 102, 10, 78, 26, 92, 243, 136, 162, 104, 78, 99, 13, 122, 231, 112, 141, 130, 250, 82, 246, 151, 17, 92, 232, 84, 181, 144, 205, 126, 98, 89, 74, 141, 199, 134, 12, 130, 13, 130, 102, 141, 68, 100, 4, 92, 81, 97, 137, 109, 62, 121, 190, 139, 55, 120, 51, 117, 123, 84, 56, 79, 171, 142, 241, 109, 32, 90, 197, 126, 94, 121, 136, 108, 161, 91, 118, 90, 26, 117, 190, 128, 78, 97, 23, 110, 240, 88, 31, 117, 37, 117, 114, 114, 71, 83, 243, 126, 3, 133, 4, 133, 5, 133, 6, 133, 7, 133, 8, 133, 9, 133, 10, 133, 11, 133, 13, 133, 14, 133, 15, 133, 16, 133, 18, 133, 20, 133, 21, 133, 22, 133, 24, 133, 25, 133, 27, 133, 28, 133, 29, 133, 30, 133, 32, 133, 34, 133, 35, 133, 36, 133, 37, 133, 38, 133, 39, 133, 40, 133, 41, 133, 42, 133, 45, 133, 46, 133, 47, 133, 48, 133, 49, 133, 50, 133, 51, 133, 52, 133, 53, 133, 54, 133, 62, 133, 63, 133, 64, 133, 65, 133, 66, 133, 68, 133, 69, 133, 70, 133, 71, 133, 75, 133, 76, 133, 77, 133, 78, 133, 79, 133, 80, 133, 81, 133, 82, 133, 83, 133, 84, 133, 85, 133, 87, 133, 88, 133, 90, 133, 91, 133, 92, 133, 93, 133, 95, 133, 96, 133, 97, 133, 98, 133, 99, 133, 101, 133, 102, 133, 103, 133, 105, 133, 106, 133, 107, 133, 108, 133, 109, 133, 110, 133, 111, 133, 112, 133, 113, 133, 115, 133, 117, 133, 118, 133, 119, 133, 120, 133, 124, 133, 125, 133, 127, 133, 128, 133, 129, 133, 1, 119, 219, 118, 105, 82, 220, 128, 35, 87, 8, 94, 49, 89, 238, 114, 189, 101, 127, 110, 215, 139, 56, 92, 113, 134, 65, 83, 243, 119, 254, 98, 246, 101, 192, 78, 223, 152, 128, 134, 158, 91, 198, 139, 242, 83, 226, 119, 127, 79, 78, 92, 118, 154, 203, 89 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 45812 ); /* memory initializer */ allocate( [ 15, 95, 58, 121, 235, 88, 22, 78, 255, 103, 139, 78, 237, 98, 147, 138, 29, 144, 191, 82, 47, 102, 220, 85, 108, 86, 2, 144, 213, 78, 141, 79, 202, 145, 112, 153, 15, 108, 2, 94, 67, 96, 164, 91, 198, 137, 213, 139, 54, 101, 75, 98, 150, 153, 136, 91, 255, 91, 136, 99, 46, 85, 215, 83, 38, 118, 125, 81, 44, 133, 162, 103, 179, 104, 138, 107, 146, 98, 147, 143, 212, 83, 18, 130, 209, 109, 143, 117, 102, 78, 78, 141, 112, 91, 159, 113, 175, 133, 145, 102, 217, 102, 114, 127, 0, 135, 205, 158, 32, 159, 94, 92, 47, 103, 240, 143, 17, 104, 95, 103, 13, 98, 214, 122, 133, 88, 182, 94, 112, 101, 49, 111, 130, 133, 131, 133, 134, 133, 136, 133, 137, 133, 138, 133, 139, 133, 140, 133, 141, 133, 142, 133, 144, 133, 145, 133, 146, 133, 147, 133, 148, 133, 149, 133, 150, 133, 151, 133, 152, 133, 153, 133, 154, 133, 157, 133, 158, 133, 159, 133, 160, 133, 161, 133, 162, 133, 163, 133, 165, 133, 166, 133, 167, 133, 169, 133, 171, 133, 172, 133, 173, 133, 177, 133, 178, 133, 179, 133, 180, 133, 181, 133, 182, 133, 184, 133, 186, 133, 187, 133, 188, 133, 189, 133, 190, 133, 191, 133, 192, 133, 194, 133, 195, 133, 196, 133, 197, 133, 198, 133, 199, 133, 200, 133, 202, 133, 203, 133, 204, 133, 205, 133, 206, 133, 209, 133, 210, 133, 212, 133, 214, 133, 215, 133, 216, 133, 217, 133, 218, 133, 219, 133, 221, 133, 222, 133, 223, 133, 224, 133, 225, 133, 226, 133, 227, 133, 229, 133, 230, 133, 231, 133, 232, 133, 234, 133, 235, 133, 236, 133, 237, 133, 238, 133, 239, 133, 240, 133, 241, 133, 242, 133, 243, 133, 244, 133, 245, 133, 246, 133, 247, 133, 248, 133, 85, 96, 55, 82, 13, 128, 84, 100, 112, 136, 41, 117, 5, 94, 19, 104, 244, 98, 28, 151, 204, 83, 61, 114, 1, 140, 52, 108, 97, 119, 14, 122, 46, 84, 172, 119, 122, 152, 28, 130, 244, 139, 85, 120, 20, 103, 193, 112, 175, 101, 149, 100, 54, 86, 29, 96, 193, 121, 248, 83, 29, 78, 123, 107, 134, 128, 250, 91, 227, 85, 219, 86, 58, 79, 60, 79, 114, 153, 243, 93, 126, 103, 56, 128, 2, 96, 130, 152, 1, 144, 139, 91, 188, 139, 245, 139, 28, 100, 88, 130, 222, 100, 253, 85, 207, 130, 101, 145, 215, 79, 32, 125, 31, 144, 159, 124, 243, 80, 81, 88, 175, 110, 191, 91, 201, 139, 131, 128, 120, 145, 156, 132, 151, 123, 125, 134, 139, 150, 143, 150, 229, 126, 211, 154, 142, 120, 129, 92, 87, 122, 66, 144, 167, 150, 95, 121, 89, 91, 95, 99, 11, 123, 209, 132, 173, 104, 6, 85, 41, 127, 16, 116, 34, 125, 1, 149, 64, 98, 76, 88, 214, 78, 131, 91, 121, 89, 84, 88, 249, 133, 250, 133, 252, 133, 253, 133, 254, 133, 0, 134, 1, 134, 2, 134, 3, 134, 4, 134, 6, 134, 7, 134, 8, 134, 9, 134, 10, 134, 11, 134, 12, 134, 13, 134, 14, 134, 15, 134, 16, 134, 18, 134, 19, 134, 20, 134, 21, 134, 23, 134, 24, 134, 25, 134, 26, 134, 27, 134, 28, 134, 29, 134, 30, 134, 31, 134, 32, 134, 33, 134, 34, 134, 35, 134, 36, 134, 37, 134, 38, 134, 40, 134, 42, 134, 43, 134, 44, 134, 45, 134, 46, 134, 47, 134, 48, 134, 49, 134, 50, 134, 51, 134, 52, 134, 53, 134, 54, 134, 55, 134, 57, 134, 58, 134, 59, 134, 61, 134, 62, 134, 63, 134, 64, 134, 65, 134, 66, 134, 67, 134, 68, 134, 69, 134, 70, 134, 71, 134, 72, 134, 73, 134, 74, 134, 75, 134, 76, 134, 82, 134, 83, 134, 85, 134, 86, 134, 87, 134, 88, 134, 89, 134, 91, 134, 92, 134, 93, 134, 95, 134, 96, 134, 97, 134, 99, 134, 100, 134, 101, 134, 102, 134, 103, 134, 104, 134, 105, 134, 106, 134, 109, 115, 30, 99, 75, 142, 15, 142, 206, 128, 212, 130, 172, 98, 240, 83, 240, 108, 94, 145, 42, 89, 1, 96, 112, 108, 77, 87, 74, 100, 42, 141, 43, 118, 233, 110, 91, 87, 128, 106, 240, 117, 109, 111, 45, 140, 8, 140, 102, 87, 239, 107, 146, 136, 179, 120, 162, 99, 249, 83, 173, 112, 100, 108, 88, 88, 42, 100, 2, 88, 224, 104, 155, 129, 16, 85, 214, 124, 24, 80, 186, 142, 204, 109, 159, 141, 235, 112, 143, 99, 155, 109, 212, 110, 230, 126, 4, 132, 67, 104, 3, 144, 216, 109, 118, 150, 168, 139, 87, 89, 121, 114, 228, 133, 126, 129, 188, 117, 138, 138, 175, 104, 84, 82, 34, 142, 17, 149, 208, 99, 152, 152, 68, 142, 124, 85, 83, 79, 255, 102, 143, 86, 213, 96, 149, 109, 67, 82, 73, 92, 41, 89, 251, 109, 107, 88, 48, 117, 28, 117, 108, 96, 20, 130, 70, 129, 17, 99, 97, 103, 226, 143, 58, 119, 243, 141, 52, 141, 193, 148, 22, 94, 133, 83, 44, 84, 195, 112, 109, 134, 111, 134, 112, 134, 114, 134, 115, 134, 116, 134, 117, 134, 118, 134, 119, 134, 120, 134, 131, 134, 132, 134, 133, 134, 134, 134, 135, 134, 136, 134, 137, 134, 142, 134, 143, 134, 144, 134, 145, 134, 146, 134, 148, 134, 150, 134, 151, 134, 152, 134, 153, 134, 154, 134, 155, 134, 158, 134, 159, 134, 160, 134, 161, 134, 162, 134, 165, 134, 166, 134, 171, 134, 173, 134, 174, 134, 178, 134, 179, 134, 183, 134, 184, 134, 185, 134, 187, 134, 188, 134, 189, 134, 190, 134, 191, 134, 193, 134, 194, 134, 195, 134, 197, 134, 200, 134, 204, 134, 205, 134, 210, 134, 211, 134, 213, 134, 214, 134, 215, 134, 218, 134, 220, 134, 221, 134, 224, 134, 225, 134, 226, 134, 227, 134, 229, 134, 230, 134, 231, 134, 232, 134, 234, 134, 235, 134, 236, 134, 239, 134, 245, 134, 246, 134, 247, 134, 250, 134, 251, 134, 252, 134, 253, 134, 255, 134, 1, 135, 4, 135, 5, 135, 6, 135, 11, 135, 12, 135, 14, 135, 15, 135, 16, 135, 17, 135, 20, 135, 22, 135, 64, 108, 247, 94, 92, 80, 173, 78, 173, 94, 58, 99, 71, 130, 26, 144, 80, 104, 110, 145, 179, 119, 12, 84, 220, 148, 100, 95, 229, 122, 118, 104, 69, 99, 82, 123, 223, 126, 219, 117, 119, 80, 149, 98, 52, 89, 15, 144, 248, 81, 195, 121, 129, 122, 254, 86, 146, 95, 20, 144, 130, 109, 96, 92, 31, 87, 16, 84, 84, 81, 77, 110, 226, 86, 168, 99, 147, 152, 127, 129, 21, 135, 42, 137, 0, 144, 30, 84, 111, 92, 192, 129, 214, 98, 88, 98, 49, 129, 53, 158, 64, 150, 110, 154, 124, 154, 45, 105, 165, 89, 211, 98, 62, 85, 22, 99, 199, 84, 217, 134, 60, 109, 3, 90, 230, 116, 156, 136, 106, 107, 22, 89, 76, 140, 47, 95, 126, 110, 169, 115, 125, 152, 56, 78, 247, 112, 140, 91, 151, 120, 61, 99, 90, 102, 150, 118, 203, 96, 155, 91, 73, 90, 7, 78, 85, 129, 106, 108, 139, 115, 161, 78, 137, 103, 81, 127, 128, 95, 250, 101, 27, 103, 216, 95, 132, 89, 1, 90, 25, 135, 27, 135, 29, 135, 31, 135, 32, 135, 36, 135, 38, 135, 39, 135, 40, 135, 42, 135, 43, 135, 44, 135, 45, 135, 47, 135, 48, 135, 50, 135, 51, 135, 53, 135, 54, 135, 56, 135, 57, 135, 58, 135, 60, 135, 61, 135, 64, 135, 65, 135, 66, 135, 67, 135, 68, 135, 69, 135, 70, 135, 74, 135, 75, 135, 77, 135, 79, 135, 80, 135, 81, 135, 82, 135, 84, 135, 85, 135, 86, 135, 88, 135, 90, 135, 91, 135, 92, 135, 93, 135, 94, 135, 95, 135, 97, 135, 98, 135, 102, 135, 103, 135, 104, 135, 105, 135, 106, 135, 107, 135, 108, 135, 109, 135, 111, 135, 113, 135, 114, 135, 115, 135, 117, 135, 119, 135, 120, 135, 121, 135, 122, 135, 127, 135, 128, 135, 129, 135, 132, 135, 134, 135, 135, 135, 137, 135, 138, 135, 140, 135, 142, 135, 143, 135, 144, 135, 145, 135, 146, 135, 148, 135, 149, 135, 150, 135, 152, 135, 153, 135, 154, 135, 155, 135, 156, 135, 157, 135, 158, 135, 160, 135, 161, 135, 162, 135, 163, 135, 164, 135, 205, 93, 174, 95, 113, 83, 230, 151, 221, 143, 69, 104, 244, 86, 47, 85, 223, 96, 58, 78, 77, 111, 244, 126, 199, 130, 14, 132, 212, 89, 31, 79, 42, 79, 62, 92, 172, 126, 42, 103, 26, 133, 115, 84, 79, 117, 195, 128, 130, 85, 79, 155, 77, 79, 45, 110, 19, 140, 9, 92, 112, 97, 107, 83, 31, 118, 41, 110, 138, 134, 135, 101, 251, 149, 185, 126, 59, 84, 51, 122, 10, 125, 238, 149, 225, 85, 193, 127, 238, 116, 29, 99, 23, 135, 161, 109, 157, 122, 17, 98, 161, 101, 103, 83, 225, 99, 131, 108, 235, 93, 92, 84, 168, 148, 76, 78, 97, 108, 236, 139, 75, 92, 224, 101, 156, 130, 167, 104, 62, 84, 52, 84, 203, 107, 102, 107, 148, 78, 66, 99, 72, 83, 30, 130, 13, 79, 174, 79, 94, 87, 10, 98, 254, 150, 100, 102, 105, 114, 255, 82, 161, 82, 159, 96, 239, 139, 20, 102, 153, 113, 144, 103, 127, 137, 82, 120, 253, 119, 112, 102, 59, 86, 56, 84, 33, 149, 122, 114, 165, 135, 166, 135, 167, 135, 169, 135, 170, 135, 174, 135, 176, 135, 177, 135, 178, 135, 180, 135, 182, 135, 183, 135, 184, 135, 185, 135, 187, 135, 188, 135, 190, 135, 191, 135, 193, 135, 194, 135, 195, 135, 196, 135, 197, 135, 199, 135, 200, 135, 201, 135, 204, 135, 205, 135, 206, 135, 207, 135, 208, 135, 212, 135, 213, 135, 214, 135, 215, 135, 216, 135, 217, 135, 218, 135, 220, 135, 221, 135, 222, 135, 223, 135, 225, 135, 226, 135, 227, 135, 228, 135, 230, 135, 231, 135, 232, 135, 233, 135, 235, 135, 236, 135, 237, 135, 239, 135, 240, 135, 241, 135, 242, 135, 243, 135, 244, 135, 245, 135, 246, 135, 247, 135, 248, 135, 250, 135, 251, 135, 252, 135, 253, 135, 255, 135, 0, 136, 1, 136, 2, 136, 4, 136, 5, 136, 6, 136, 7, 136, 8, 136, 9, 136, 11, 136, 12, 136, 13, 136, 14, 136, 15, 136, 16, 136, 17, 136, 18, 136, 20, 136, 23, 136, 24, 136, 25, 136, 26, 136, 28, 136, 29, 136, 30, 136, 31, 136, 32, 136, 35, 136, 0, 122, 111, 96, 12, 94, 137, 96, 157, 129, 21, 89, 220, 96, 132, 113, 239, 112, 170, 110, 80, 108, 128, 114, 132, 106, 173, 136, 45, 94, 96, 78, 179, 90, 156, 85, 227, 148, 23, 109, 251, 124, 153, 150, 15, 98, 198, 126, 142, 119, 126, 134, 35, 83, 30, 151, 150, 143, 135, 102, 225, 92, 160, 79, 237, 114, 11, 78, 166, 83, 15, 89, 19, 84, 128, 99, 40, 149, 72, 81, 217, 78, 156, 156, 164, 126, 184, 84, 36, 141, 84, 136, 55, 130, 242, 149, 142, 109, 38, 95, 204, 90, 62, 102, 105, 150, 176, 115, 46, 115, 191, 83, 122, 129, 133, 153, 161, 127, 170, 91, 119, 150, 80, 150, 191, 126, 248, 118, 162, 83, 118, 149, 153, 153, 177, 123, 68, 137, 88, 110, 97, 78, 212, 127, 101, 121, 230, 139, 243, 96, 205, 84, 171, 78, 121, 152, 247, 93, 97, 106, 207, 80, 17, 84, 97, 140, 39, 132, 93, 120, 4, 151, 74, 82, 238, 84, 163, 86, 0, 149, 136, 109, 181, 91, 198, 109, 83, 102, 36, 136, 37, 136, 38, 136, 39, 136, 40, 136, 41, 136, 42, 136, 43, 136, 44, 136, 45, 136, 46, 136, 47, 136, 48, 136, 49, 136, 51, 136, 52, 136, 53, 136, 54, 136, 55, 136, 56, 136, 58, 136, 59, 136, 61, 136, 62, 136, 63, 136, 65, 136, 66, 136, 67, 136, 70, 136, 71, 136, 72, 136, 73, 136, 74, 136, 75, 136, 78, 136, 79, 136, 80, 136, 81, 136, 82, 136, 83, 136, 85, 136, 86, 136, 88, 136, 90, 136, 91, 136, 92, 136, 93, 136, 94, 136, 95, 136, 96, 136, 102, 136, 103, 136, 106, 136, 109, 136, 111, 136, 113, 136, 115, 136, 116, 136, 117, 136, 118, 136, 120, 136, 121, 136, 122, 136, 123, 136, 124, 136, 128, 136, 131, 136, 134, 136, 135, 136, 137, 136, 138, 136, 140, 136, 142, 136, 143, 136, 144, 136, 145, 136, 147, 136, 148, 136, 149, 136, 151, 136, 152, 136, 153, 136, 154, 136, 155, 136, 157, 136, 158, 136, 159, 136, 160, 136, 161, 136, 163, 136, 165, 136, 166, 136, 167, 136, 168, 136, 169, 136, 170, 136, 15, 92, 93, 91, 33, 104, 150, 128, 120, 85, 17, 123, 72, 101, 84, 105, 155, 78, 71, 107, 78, 135, 139, 151, 79, 83, 31, 99, 58, 100, 170, 144, 156, 101, 193, 128, 16, 140, 153, 81, 176, 104, 120, 83, 249, 135, 200, 97, 196, 108, 251, 108, 34, 140, 81, 92, 170, 133, 175, 130, 12, 149, 35, 107, 155, 143, 176, 101, 251, 95, 195, 95, 225, 79, 69, 136, 31, 102, 101, 129, 41, 115, 250, 96, 116, 81, 17, 82, 139, 87, 98, 95, 162, 144, 76, 136, 146, 145, 120, 94, 79, 103, 39, 96, 211, 89, 68, 81, 246, 81, 248, 128, 8, 83, 121, 108, 196, 150, 138, 113, 17, 79, 238, 79, 158, 127, 61, 103, 197, 85, 8, 149, 192, 121, 150, 136, 227, 126, 159, 88, 12, 98, 0, 151, 90, 134, 24, 86, 123, 152, 144, 95, 184, 139, 196, 132, 87, 145, 217, 83, 237, 101, 143, 94, 92, 117, 100, 96, 110, 125, 127, 90, 234, 126, 237, 126, 105, 143, 167, 85, 163, 91, 172, 96, 203, 101, 132, 115, 172, 136, 174, 136, 175, 136, 176, 136, 178, 136, 179, 136, 180, 136, 181, 136, 182, 136, 184, 136, 185, 136, 186, 136, 187, 136, 189, 136, 190, 136, 191, 136, 192, 136, 195, 136, 196, 136, 199, 136, 200, 136, 202, 136, 203, 136, 204, 136, 205, 136, 207, 136, 208, 136, 209, 136, 211, 136, 214, 136, 215, 136, 218, 136, 219, 136, 220, 136, 221, 136, 222, 136, 224, 136, 225, 136, 230, 136, 231, 136, 233, 136, 234, 136, 235, 136, 236, 136, 237, 136, 238, 136, 239, 136, 242, 136, 245, 136, 246, 136, 247, 136, 250, 136, 251, 136, 253, 136, 255, 136, 0, 137, 1, 137, 3, 137, 4, 137, 5, 137, 6, 137, 7, 137, 8, 137, 9, 137, 11, 137, 12, 137, 13, 137, 14, 137, 15, 137, 17, 137, 20, 137, 21, 137, 22, 137, 23, 137, 24, 137, 28, 137, 29, 137, 30, 137, 31, 137, 32, 137, 34, 137, 35, 137, 36, 137, 38, 137, 39, 137, 40, 137, 41, 137, 44, 137, 45, 137, 46, 137, 47, 137, 49, 137, 50, 137, 51, 137, 53, 137, 55, 137, 9, 144, 99, 118, 41, 119, 218, 126, 116, 151, 155, 133, 102, 91, 116, 122, 234, 150, 64, 136, 203, 82, 143, 113, 170, 95, 236, 101, 226, 139, 251, 91, 111, 154, 225, 93, 137, 107, 91, 108, 173, 139, 175, 139, 10, 144, 197, 143, 139, 83, 188, 98, 38, 158, 45, 158, 64, 84, 43, 78, 189, 130, 89, 114, 156, 134, 22, 93, 89, 136, 175, 109, 197, 150, 209, 84, 154, 78, 182, 139, 9, 113, 189, 84, 9, 150, 223, 112, 249, 109, 208, 118, 37, 78, 20, 120, 18, 135, 169, 92, 246, 94, 0, 138, 156, 152, 14, 150, 142, 112, 191, 108, 68, 89, 169, 99, 60, 119, 77, 136, 20, 111, 115, 130, 48, 88, 213, 113, 140, 83, 26, 120, 193, 150, 1, 85, 102, 95, 48, 113, 180, 91, 26, 140, 140, 154, 131, 107, 46, 89, 47, 158, 231, 121, 104, 103, 108, 98, 111, 79, 161, 117, 138, 127, 11, 109, 51, 150, 39, 108, 240, 78, 210, 117, 123, 81, 55, 104, 62, 111, 128, 144, 112, 129, 150, 89, 118, 116, 56, 137, 57, 137, 58, 137, 59, 137, 60, 137, 61, 137, 62, 137, 63, 137, 64, 137, 66, 137, 67, 137, 69, 137, 70, 137, 71, 137, 72, 137, 73, 137, 74, 137, 75, 137, 76, 137, 77, 137, 78, 137, 79, 137, 80, 137, 81, 137, 82, 137, 83, 137, 84, 137, 85, 137, 86, 137, 87, 137, 88, 137, 89, 137, 90, 137, 91, 137, 92, 137, 93, 137, 96, 137, 97, 137, 98, 137, 99, 137, 100, 137, 101, 137, 103, 137, 104, 137, 105, 137, 106, 137, 107, 137, 108, 137, 109, 137, 110, 137, 111, 137, 112, 137, 113, 137, 114, 137, 115, 137, 116, 137, 117, 137, 118, 137, 119, 137, 120, 137, 121, 137, 122, 137, 124, 137, 125, 137, 126, 137, 128, 137, 130, 137, 132, 137, 133, 137, 135, 137, 136, 137, 137, 137, 138, 137, 139, 137, 140, 137, 141, 137, 142, 137, 143, 137, 144, 137, 145, 137, 146, 137, 147, 137, 148, 137, 149, 137, 150, 137, 151, 137, 152, 137, 153, 137, 154, 137, 155, 137, 156, 137, 157, 137, 158, 137, 159, 137, 160, 137, 161, 137, 71, 100, 39, 92, 101, 144, 145, 122, 35, 140, 218, 89, 172, 84, 0, 130, 111, 131, 129, 137, 0, 128, 48, 105, 78, 86, 54, 128, 55, 114, 206, 145, 182, 81, 95, 78, 117, 152, 150, 99, 26, 78, 246, 83, 243, 102, 75, 129, 28, 89, 178, 109, 0, 78, 249, 88, 59, 83, 214, 99, 241, 148, 157, 79, 10, 79, 99, 136, 144, 152, 55, 89, 87, 144, 251, 121, 234, 78, 240, 128, 145, 117, 130, 108, 156, 91, 232, 89, 93, 95, 5, 105, 129, 134, 26, 80, 242, 93, 89, 78, 227, 119, 229, 78, 122, 130, 145, 98, 19, 102, 145, 144, 121, 92, 191, 78, 121, 95, 198, 129, 56, 144, 132, 128, 171, 117, 166, 78, 212, 136, 15, 97, 197, 107, 198, 95, 73, 78, 202, 118, 162, 110, 227, 139, 174, 139, 10, 140, 209, 139, 2, 95, 252, 127, 204, 127, 206, 126, 53, 131, 107, 131, 224, 86, 183, 107, 243, 151, 52, 150, 251, 89, 31, 84, 246, 148, 235, 109, 197, 91, 110, 153, 57, 92, 21, 95, 144, 150, 162, 137, 163, 137, 164, 137, 165, 137, 166, 137, 167, 137, 168, 137, 169, 137, 170, 137, 171, 137, 172, 137, 173, 137, 174, 137, 175, 137, 176, 137, 177, 137, 178, 137, 179, 137, 180, 137, 181, 137, 182, 137, 183, 137, 184, 137, 185, 137, 186, 137, 187, 137, 188, 137, 189, 137, 190, 137, 191, 137, 192, 137, 195, 137, 205, 137, 211, 137, 212, 137, 213, 137, 215, 137, 216, 137, 217, 137, 219, 137, 221, 137, 223, 137, 224, 137, 225, 137, 226, 137, 228, 137, 231, 137, 232, 137, 233, 137, 234, 137, 236, 137, 237, 137, 238, 137, 240, 137, 241, 137, 242, 137, 244, 137, 245, 137, 246, 137, 247, 137, 248, 137, 249, 137, 250, 137, 251, 137, 252, 137, 253, 137, 254, 137, 255, 137, 1, 138, 2, 138, 3, 138, 4, 138, 5, 138, 6, 138, 8, 138, 9, 138, 10, 138, 11, 138, 12, 138, 13, 138, 14, 138, 15, 138, 16, 138, 17, 138, 18, 138, 19, 138, 20, 138, 21, 138, 22, 138, 23, 138, 24, 138, 25, 138, 26, 138, 27, 138, 28, 138, 29, 138, 112, 83, 241, 130, 49, 106, 116, 90, 112, 158, 148, 94, 40, 127, 185, 131, 36, 132, 37, 132, 103, 131, 71, 135, 206, 143, 98, 141, 200, 118, 113, 95, 150, 152, 108, 120, 32, 102, 223, 84, 229, 98, 99, 79, 195, 129, 200, 117, 184, 94, 205, 150, 10, 142, 249, 134, 143, 84, 243, 108, 140, 109, 56, 108, 127, 96, 199, 82, 40, 117, 125, 94, 24, 79, 160, 96, 231, 95, 36, 92, 49, 117, 174, 144, 192, 148, 185, 114, 185, 108, 56, 110, 73, 145, 9, 103, 203, 83, 243, 83, 81, 79, 201, 145, 241, 139, 200, 83, 124, 94, 194, 143, 228, 109, 142, 78, 194, 118, 134, 105, 94, 134, 26, 97, 6, 130, 89, 79, 222, 79, 62, 144, 124, 156, 9, 97, 29, 110, 20, 110, 133, 150, 136, 78, 49, 90, 232, 150, 14, 78, 127, 92, 185, 121, 135, 91, 237, 139, 189, 127, 137, 115, 223, 87, 139, 130, 193, 144, 1, 84, 71, 144, 187, 85, 234, 92, 161, 95, 8, 97, 50, 107, 241, 114, 178, 128, 137, 138, 30, 138, 31, 138, 32, 138, 33, 138, 34, 138, 35, 138, 36, 138, 37, 138, 38, 138, 39, 138, 40, 138, 41, 138, 42, 138, 43, 138, 44, 138, 45, 138, 46, 138, 47, 138, 48, 138, 49, 138, 50, 138, 51, 138, 52, 138, 53, 138, 54, 138, 55, 138, 56, 138, 57, 138, 58, 138, 59, 138, 60, 138, 61, 138, 63, 138, 64, 138, 65, 138, 66, 138, 67, 138, 68, 138, 69, 138, 70, 138, 71, 138, 73, 138, 74, 138, 75, 138, 76, 138, 77, 138, 78, 138, 79, 138, 80, 138, 81, 138, 82, 138, 83, 138, 84, 138, 85, 138, 86, 138, 87, 138, 88, 138, 89, 138, 90, 138, 91, 138, 92, 138, 93, 138, 94, 138, 95, 138, 96, 138, 97, 138, 98, 138, 99, 138, 100, 138, 101, 138, 102, 138, 103, 138, 104, 138, 105, 138, 106, 138, 107, 138, 108, 138, 109, 138, 110, 138, 111, 138, 112, 138, 113, 138, 114, 138, 115, 138, 116, 138, 117, 138, 118, 138, 119, 138, 120, 138, 122, 138, 123, 138, 124, 138, 125, 138, 126, 138, 127, 138, 128, 138, 116, 109, 211, 91, 213, 136, 132, 152, 107, 140, 109, 154, 51, 158, 10, 110, 164, 81, 67, 81, 163, 87, 129, 136, 159, 83, 244, 99, 149, 143, 237, 86, 88, 84, 6, 87, 63, 115, 144, 110, 24, 127, 220, 143, 209, 130, 63, 97, 40, 96, 98, 150, 240, 102, 166, 126, 138, 141, 195, 141, 165, 148, 179, 92, 164, 124, 8, 103, 166, 96, 5, 150, 24, 128, 145, 78, 231, 144, 0, 83, 104, 150, 65, 81, 208, 143, 116, 133, 93, 145, 85, 102, 245, 151, 85, 91, 29, 83, 56, 120, 66, 103, 61, 104, 201, 84, 126, 112, 176, 91, 125, 143, 141, 81, 40, 87, 177, 84, 18, 101, 130, 102, 94, 141, 67, 141, 15, 129, 108, 132, 109, 144, 223, 124, 255, 81, 251, 133, 163, 103, 233, 101, 161, 111, 164, 134, 129, 142, 106, 86, 32, 144, 130, 118, 118, 112, 229, 113, 35, 141, 233, 98, 25, 82, 253, 108, 60, 141, 14, 96, 158, 88, 142, 97, 254, 102, 96, 141, 78, 98, 179, 85, 35, 110, 45, 103, 103, 143, 129, 138, 130, 138, 131, 138, 132, 138, 133, 138, 134, 138, 135, 138, 136, 138, 139, 138, 140, 138, 141, 138, 142, 138, 143, 138, 144, 138, 145, 138, 146, 138, 148, 138, 149, 138, 150, 138, 151, 138, 152, 138, 153, 138, 154, 138, 155, 138, 156, 138, 157, 138, 158, 138, 159, 138, 160, 138, 161, 138, 162, 138, 163, 138, 164, 138, 165, 138, 166, 138, 167, 138, 168, 138, 169, 138, 170, 138, 171, 138, 172, 138, 173, 138, 174, 138, 175, 138, 176, 138, 177, 138, 178, 138, 179, 138, 180, 138, 181, 138, 182, 138, 183, 138, 184, 138, 185, 138, 186, 138, 187, 138, 188, 138, 189, 138, 190, 138, 191, 138, 192, 138, 193, 138, 194, 138, 195, 138, 196, 138, 197, 138, 198, 138, 199, 138, 200, 138, 201, 138, 202, 138, 203, 138, 204, 138, 205, 138, 206, 138, 207, 138, 208, 138, 209, 138, 210, 138, 211, 138, 212, 138, 213, 138, 214, 138, 215, 138, 216, 138, 217, 138, 218, 138, 219, 138, 220, 138, 221, 138, 222, 138, 223, 138, 224, 138, 225, 138, 226, 138, 227, 138, 225, 148, 248, 149, 40, 119, 5, 104, 168, 105, 139, 84, 77, 78, 184, 112, 200, 139, 88, 100, 139, 101, 133, 91, 132, 122, 58, 80, 232, 91, 187, 119, 225, 107, 121, 138, 152, 124, 190, 108, 207, 118, 169, 101, 151, 143, 45, 93, 85, 92, 56, 134, 8, 104, 96, 83, 24, 98, 217, 122, 91, 110, 253, 126, 31, 106, 224, 122, 112, 95, 51, 111, 32, 95, 140, 99, 168, 109, 86, 103, 8, 78, 16, 94, 38, 141, 215, 78, 192, 128, 52, 118, 156, 150, 219, 98, 45, 102, 126, 98, 188, 108, 117, 141, 103, 113, 105, 127, 70, 81, 135, 128, 236, 83, 110, 144, 152, 98, 242, 84, 240, 134, 153, 143, 5, 128, 23, 149, 23, 133, 217, 143, 89, 109, 205, 115, 159, 101, 31, 119, 4, 117, 39, 120, 251, 129, 30, 141, 136, 148, 166, 79, 149, 103, 185, 117, 202, 139, 7, 151, 47, 99, 71, 149, 53, 150, 184, 132, 35, 99, 65, 119, 129, 95, 240, 114, 137, 78, 20, 96, 116, 101, 239, 98, 99, 107, 63, 101, 228, 138, 229, 138, 230, 138, 231, 138, 232, 138, 233, 138, 234, 138, 235, 138, 236, 138, 237, 138, 238, 138, 239, 138, 240, 138, 241, 138, 242, 138, 243, 138, 244, 138, 245, 138, 246, 138, 247, 138, 248, 138, 249, 138, 250, 138, 251, 138, 252, 138, 253, 138, 254, 138, 255, 138, 0, 139, 1, 139, 2, 139, 3, 139, 4, 139, 5, 139, 6, 139, 8, 139, 9, 139, 10, 139, 11, 139, 12, 139, 13, 139, 14, 139, 15, 139, 16, 139, 17, 139, 18, 139, 19, 139, 20, 139, 21, 139, 22, 139, 23, 139, 24, 139, 25, 139, 26, 139, 27, 139, 28, 139, 29, 139, 30, 139, 31, 139, 32, 139, 33, 139, 34, 139, 35, 139, 36, 139, 37, 139, 39, 139, 40, 139, 41, 139, 42, 139, 43, 139, 44, 139, 45, 139, 46, 139, 47, 139, 48, 139, 49, 139, 50, 139, 51, 139, 52, 139, 53, 139, 54, 139, 55, 139, 56, 139, 57, 139, 58, 139, 59, 139, 60, 139, 61, 139, 62, 139, 63, 139, 64, 139, 65, 139, 66, 139, 67, 139, 68, 139, 69, 139, 39, 94, 199, 117, 209, 144, 193, 139, 157, 130, 157, 103, 47, 101, 49, 84, 24, 135, 229, 119, 162, 128, 2, 129, 65, 108, 75, 78, 199, 126, 76, 128, 244, 118, 13, 105, 150, 107, 103, 98, 60, 80, 132, 79, 64, 87, 7, 99, 98, 107, 190, 141, 234, 83, 232, 101, 184, 126, 215, 95, 26, 99, 183, 99, 243, 129, 244, 129, 110, 127, 28, 94, 217, 92, 54, 82, 122, 102, 233, 121, 26, 122, 40, 141, 153, 112, 212, 117, 222, 110, 187, 108, 146, 122, 45, 78, 197, 118, 224, 95, 159, 148, 119, 136, 200, 126, 205, 121, 191, 128, 205, 145, 242, 78, 23, 79, 31, 130, 104, 84, 222, 93, 50, 109, 204, 139, 165, 124, 116, 143, 152, 128, 26, 94, 146, 84, 177, 118, 153, 91, 60, 102, 164, 154, 224, 115, 42, 104, 219, 134, 49, 103, 42, 115, 248, 139, 219, 139, 16, 144, 249, 122, 219, 112, 110, 113, 196, 98, 169, 119, 49, 86, 59, 78, 87, 132, 241, 103, 169, 82, 192, 134, 46, 141, 248, 148, 81, 123, 70, 139, 71, 139, 72, 139, 73, 139, 74, 139, 75, 139, 76, 139, 77, 139, 78, 139, 79, 139, 80, 139, 81, 139, 82, 139, 83, 139, 84, 139, 85, 139, 86, 139, 87, 139, 88, 139, 89, 139, 90, 139, 91, 139, 92, 139, 93, 139, 94, 139, 95, 139, 96, 139, 97, 139, 98, 139, 99, 139, 100, 139, 101, 139, 103, 139, 104, 139, 105, 139, 106, 139, 107, 139, 109, 139, 110, 139, 111, 139, 112, 139, 113, 139, 114, 139, 115, 139, 116, 139, 117, 139, 118, 139, 119, 139, 120, 139, 121, 139, 122, 139, 123, 139, 124, 139, 125, 139, 126, 139, 127, 139, 128, 139, 129, 139, 130, 139, 131, 139, 132, 139, 133, 139, 134, 139, 135, 139, 136, 139, 137, 139, 138, 139, 139, 139, 140, 139, 141, 139, 142, 139, 143, 139, 144, 139, 145, 139, 146, 139, 147, 139, 148, 139, 149, 139, 150, 139, 151, 139, 152, 139, 153, 139, 154, 139, 155, 139, 156, 139, 157, 139, 158, 139, 159, 139, 172, 139, 177, 139, 187, 139, 199, 139, 208, 139, 234, 139, 9, 140, 30, 140, 79, 79, 232, 108, 93, 121, 123, 154, 147, 98, 42, 114, 253, 98, 19, 78, 22, 120, 108, 143, 176, 100, 90, 141, 198, 123, 105, 104, 132, 94, 197, 136, 134, 89, 158, 100, 238, 88, 182, 114, 14, 105, 37, 149, 253, 143, 88, 141, 96, 87, 0, 127, 6, 140, 198, 81, 73, 99, 217, 98, 83, 83, 76, 104, 34, 116, 1, 131, 76, 145, 68, 85, 64, 119, 124, 112, 74, 109, 121, 81, 168, 84, 68, 141, 255, 89, 203, 110, 196, 109, 92, 91, 43, 125, 212, 78, 125, 124, 211, 110, 80, 91, 234, 129, 13, 110, 87, 91, 3, 155, 213, 104, 42, 142, 151, 91, 252, 126, 59, 96, 181, 126, 185, 144, 112, 141, 79, 89, 205, 99, 223, 121, 179, 141, 82, 83, 207, 101, 86, 121, 197, 139, 59, 150, 196, 126, 187, 148, 130, 126, 52, 86, 137, 145, 0, 103, 106, 127, 10, 92, 117, 144, 40, 102, 230, 93, 80, 79, 222, 103, 90, 80, 92, 79, 80, 87, 167, 94, 16, 232, 17, 232, 18, 232, 19, 232, 20, 232, 56, 140, 57, 140, 58, 140, 59, 140, 60, 140, 61, 140, 62, 140, 63, 140, 64, 140, 66, 140, 67, 140, 68, 140, 69, 140, 72, 140, 74, 140, 75, 140, 77, 140, 78, 140, 79, 140, 80, 140, 81, 140, 82, 140, 83, 140, 84, 140, 86, 140, 87, 140, 88, 140, 89, 140, 91, 140, 92, 140, 93, 140, 94, 140, 95, 140, 96, 140, 99, 140, 100, 140, 101, 140, 102, 140, 103, 140, 104, 140, 105, 140, 108, 140, 109, 140, 110, 140, 111, 140, 112, 140, 113, 140, 114, 140, 116, 140, 117, 140, 118, 140, 119, 140, 123, 140, 124, 140, 125, 140, 126, 140, 127, 140, 128, 140, 129, 140, 131, 140, 132, 140, 134, 140, 135, 140, 136, 140, 139, 140, 141, 140, 142, 140, 143, 140, 144, 140, 145, 140, 146, 140, 147, 140, 149, 140, 150, 140, 151, 140, 153, 140, 154, 140, 155, 140, 156, 140, 157, 140, 158, 140, 159, 140, 160, 140, 161, 140, 162, 140, 163, 140, 164, 140, 165, 140, 166, 140, 167, 140, 168, 140, 169, 140, 170, 140, 171, 140, 172, 140, 173, 140, 141, 78, 12, 78, 64, 81, 16, 78, 255, 94, 69, 83, 21, 78, 152, 78, 30, 78, 50, 155, 108, 91, 105, 86, 40, 78, 186, 121, 63, 78, 21, 83, 71, 78, 45, 89, 59, 114, 110, 83, 16, 108, 223, 86, 228, 128, 151, 153, 211, 107, 126, 119, 23, 159, 54, 78, 159, 78, 16, 159, 92, 78, 105, 78, 147, 78, 136, 130, 91, 91, 108, 85, 15, 86, 196, 78, 141, 83, 157, 83, 163, 83, 165, 83, 174, 83, 101, 151, 93, 141, 26, 83, 245, 83, 38, 83, 46, 83, 62, 83, 92, 141, 102, 83, 99, 83, 2, 82, 8, 82, 14, 82, 45, 82, 51, 82, 63, 82, 64, 82, 76, 82, 94, 82, 97, 82, 92, 82, 175, 132, 125, 82, 130, 82, 129, 82, 144, 82, 147, 82, 130, 81, 84, 127, 187, 78, 195, 78, 201, 78, 194, 78, 232, 78, 225, 78, 235, 78, 222, 78, 27, 79, 243, 78, 34, 79, 100, 79, 245, 78, 37, 79, 39, 79, 9, 79, 43, 79, 94, 79, 103, 79, 56, 101, 90, 79, 93, 79, 174, 140, 175, 140, 176, 140, 177, 140, 178, 140, 179, 140, 180, 140, 181, 140, 182, 140, 183, 140, 184, 140, 185, 140, 186, 140, 187, 140, 188, 140, 189, 140, 190, 140, 191, 140, 192, 140, 193, 140, 194, 140, 195, 140, 196, 140, 197, 140, 198, 140, 199, 140, 200, 140, 201, 140, 202, 140, 203, 140, 204, 140, 205, 140, 206, 140, 207, 140, 208, 140, 209, 140, 210, 140, 211, 140, 212, 140, 213, 140, 214, 140, 215, 140, 216, 140, 217, 140, 218, 140, 219, 140, 220, 140, 221, 140, 222, 140, 223, 140, 224, 140, 225, 140, 226, 140, 227, 140, 228, 140, 229, 140, 230, 140, 231, 140, 232, 140, 233, 140, 234, 140, 235, 140, 236, 140, 237, 140, 238, 140, 239, 140, 240, 140, 241, 140, 242, 140, 243, 140, 244, 140, 245, 140, 246, 140, 247, 140, 248, 140, 249, 140, 250, 140, 251, 140, 252, 140, 253, 140, 254, 140, 255, 140, 0, 141, 1, 141, 2, 141, 3, 141, 4, 141, 5, 141, 6, 141, 7, 141, 8, 141, 9, 141, 10, 141, 11, 141, 12, 141, 13, 141, 95, 79, 87, 79, 50, 79, 61, 79, 118, 79, 116, 79, 145, 79, 137, 79, 131, 79, 143, 79, 126, 79, 123, 79, 170, 79, 124, 79, 172, 79, 148, 79, 230, 79, 232, 79, 234, 79, 197, 79, 218, 79, 227, 79, 220, 79, 209, 79, 223, 79, 248, 79, 41, 80, 76, 80, 243, 79, 44, 80, 15, 80, 46, 80, 45, 80, 254, 79, 28, 80, 12, 80, 37, 80, 40, 80, 126, 80, 67, 80, 85, 80, 72, 80, 78, 80, 108, 80, 123, 80, 165, 80, 167, 80, 169, 80, 186, 80, 214, 80, 6, 81, 237, 80, 236, 80, 230, 80, 238, 80, 7, 81, 11, 81, 221, 78, 61, 108, 88, 79, 101, 79, 206, 79, 160, 159, 70, 108, 116, 124, 110, 81, 253, 93, 201, 158, 152, 153, 129, 81, 20, 89, 249, 82, 13, 83, 7, 138, 16, 83, 235, 81, 25, 89, 85, 81, 160, 78, 86, 81, 179, 78, 110, 136, 164, 136, 181, 78, 20, 129, 210, 136, 128, 121, 52, 91, 3, 136, 184, 127, 171, 81, 177, 81, 189, 81, 188, 81, 14, 141, 15, 141, 16, 141, 17, 141, 18, 141, 19, 141, 20, 141, 21, 141, 22, 141, 23, 141, 24, 141, 25, 141, 26, 141, 27, 141, 28, 141, 32, 141, 81, 141, 82, 141, 87, 141, 95, 141, 101, 141, 104, 141, 105, 141, 106, 141, 108, 141, 110, 141, 111, 141, 113, 141, 114, 141, 120, 141, 121, 141, 122, 141, 123, 141, 124, 141, 125, 141, 126, 141, 127, 141, 128, 141, 130, 141, 131, 141, 134, 141, 135, 141, 136, 141, 137, 141, 140, 141, 141, 141, 142, 141, 143, 141, 144, 141, 146, 141, 147, 141, 149, 141, 150, 141, 151, 141, 152, 141, 153, 141, 154, 141, 155, 141, 156, 141, 157, 141, 158, 141, 160, 141, 161, 141, 162, 141, 164, 141, 165, 141, 166, 141, 167, 141, 168, 141, 169, 141, 170, 141, 171, 141, 172, 141, 173, 141, 174, 141, 175, 141, 176, 141, 178, 141, 182, 141, 183, 141, 185, 141, 187, 141, 189, 141, 192, 141, 193, 141, 194, 141, 197, 141, 199, 141, 200, 141, 201, 141, 202, 141, 205, 141, 208, 141, 210, 141, 211, 141, 212, 141, 199, 81, 150, 81, 162, 81, 165, 81, 160, 139, 166, 139, 167, 139, 170, 139, 180, 139, 181, 139, 183, 139, 194, 139, 195, 139, 203, 139, 207, 139, 206, 139, 210, 139, 211, 139, 212, 139, 214, 139, 216, 139, 217, 139, 220, 139, 223, 139, 224, 139, 228, 139, 232, 139, 233, 139, 238, 139, 240, 139, 243, 139, 246, 139, 249, 139, 252, 139, 255, 139, 0, 140, 2, 140, 4, 140, 7, 140, 12, 140, 15, 140, 17, 140, 18, 140, 20, 140, 21, 140, 22, 140, 25, 140, 27, 140, 24, 140, 29, 140, 31, 140, 32, 140, 33, 140, 37, 140, 39, 140, 42, 140, 43, 140, 46, 140, 47, 140, 50, 140, 51, 140, 53, 140, 54, 140, 105, 83, 122, 83, 29, 150, 34, 150, 33, 150, 49, 150, 42, 150, 61, 150, 60, 150, 66, 150, 73, 150, 84, 150, 95, 150, 103, 150, 108, 150, 114, 150, 116, 150, 136, 150, 141, 150, 151, 150, 176, 150, 151, 144, 155, 144, 157, 144, 153, 144, 172, 144, 161, 144, 180, 144, 179, 144, 182, 144, 186, 144, 213, 141, 216, 141, 217, 141, 220, 141, 224, 141, 225, 141, 226, 141, 229, 141, 230, 141, 231, 141, 233, 141, 237, 141, 238, 141, 240, 141, 241, 141, 242, 141, 244, 141, 246, 141, 252, 141, 254, 141, 255, 141, 0, 142, 1, 142, 2, 142, 3, 142, 4, 142, 6, 142, 7, 142, 8, 142, 11, 142, 13, 142, 14, 142, 16, 142, 17, 142, 18, 142, 19, 142, 21, 142, 22, 142, 23, 142, 24, 142, 25, 142, 26, 142, 27, 142, 28, 142, 32, 142, 33, 142, 36, 142, 37, 142, 38, 142, 39, 142, 40, 142, 43, 142, 45, 142, 48, 142, 50, 142, 51, 142, 52, 142, 54, 142, 55, 142, 56, 142, 59, 142, 60, 142, 62, 142, 63, 142, 67, 142, 69, 142, 70, 142, 76, 142, 77, 142, 78, 142, 79, 142, 80, 142, 83, 142, 84, 142, 85, 142, 86, 142, 87, 142, 88, 142, 90, 142, 91, 142, 92, 142, 93, 142, 94, 142, 95, 142, 96, 142, 97, 142, 98, 142, 99, 142, 100, 142, 101, 142, 103, 142, 104, 142, 106, 142, 107, 142, 110, 142, 113, 142, 184, 144, 176, 144, 207, 144, 197, 144, 190, 144, 208, 144, 196, 144, 199, 144, 211, 144, 230, 144, 226, 144, 220, 144, 215, 144, 219, 144, 235, 144, 239, 144, 254, 144, 4, 145, 34, 145, 30, 145, 35, 145, 49, 145, 47, 145, 57, 145, 67, 145, 70, 145, 13, 82, 66, 89, 162, 82, 172, 82, 173, 82, 190, 82, 255, 84, 208, 82, 214, 82, 240, 82, 223, 83, 238, 113, 205, 119, 244, 94, 245, 81, 252, 81, 47, 155, 182, 83, 1, 95, 90, 117, 239, 93, 76, 87, 169, 87, 161, 87, 126, 88, 188, 88, 197, 88, 209, 88, 41, 87, 44, 87, 42, 87, 51, 87, 57, 87, 46, 87, 47, 87, 92, 87, 59, 87, 66, 87, 105, 87, 133, 87, 107, 87, 134, 87, 124, 87, 123, 87, 104, 87, 109, 87, 118, 87, 115, 87, 173, 87, 164, 87, 140, 87, 178, 87, 207, 87, 167, 87, 180, 87, 147, 87, 160, 87, 213, 87, 216, 87, 218, 87, 217, 87, 210, 87, 184, 87, 244, 87, 239, 87, 248, 87, 228, 87, 221, 87, 115, 142, 117, 142, 119, 142, 120, 142, 121, 142, 122, 142, 123, 142, 125, 142, 126, 142, 128, 142, 130, 142, 131, 142, 132, 142, 134, 142, 136, 142, 137, 142, 138, 142, 139, 142, 140, 142, 141, 142, 142, 142, 145, 142, 146, 142, 147, 142, 149, 142, 150, 142, 151, 142, 152, 142, 153, 142, 154, 142, 155, 142, 157, 142, 159, 142, 160, 142, 161, 142, 162, 142, 163, 142, 164, 142, 165, 142, 166, 142, 167, 142, 168, 142, 169, 142, 170, 142, 173, 142, 174, 142, 176, 142, 177, 142, 179, 142, 180, 142, 181, 142, 182, 142, 183, 142, 184, 142, 185, 142, 187, 142, 188, 142, 189, 142, 190, 142, 191, 142, 192, 142, 193, 142, 194, 142, 195, 142, 196, 142, 197, 142, 198, 142, 199, 142, 200, 142, 201, 142, 202, 142, 203, 142, 204, 142, 205, 142, 207, 142, 208, 142, 209, 142, 210, 142, 211, 142, 212, 142, 213, 142, 214, 142, 215, 142, 216, 142, 217, 142, 218, 142, 219, 142, 220, 142, 221, 142, 222, 142, 223, 142, 224, 142, 225, 142, 226, 142, 227, 142, 228, 142, 11, 88, 13, 88, 253, 87, 237, 87, 0, 88, 30, 88, 25, 88, 68, 88, 32, 88, 101, 88, 108, 88, 129, 88, 137, 88, 154, 88, 128, 88, 168, 153, 25, 159, 255, 97, 121, 130, 125, 130, 127, 130, 143, 130, 138, 130, 168, 130, 132, 130, 142, 130, 145, 130, 151, 130, 153, 130, 171, 130, 184, 130, 190, 130, 176, 130, 200, 130, 202, 130, 227, 130, 152, 130, 183, 130, 174, 130, 203, 130, 204, 130, 193, 130, 169, 130, 180, 130, 161, 130, 170, 130, 159, 130, 196, 130, 206, 130, 164, 130, 225, 130, 9, 131, 247, 130, 228, 130, 15, 131, 7, 131, 220, 130, 244, 130, 210, 130, 216, 130, 12, 131, 251, 130, 211, 130, 17, 131, 26, 131, 6, 131, 20, 131, 21, 131, 224, 130, 213, 130, 28, 131, 81, 131, 91, 131, 92, 131, 8, 131, 146, 131, 60, 131, 52, 131, 49, 131, 155, 131, 94, 131, 47, 131, 79, 131, 71, 131, 67, 131, 95, 131, 64, 131, 23, 131, 96, 131, 45, 131, 58, 131, 51, 131, 102, 131, 101, 131, 229, 142, 230, 142, 231, 142, 232, 142, 233, 142, 234, 142, 235, 142, 236, 142, 237, 142, 238, 142, 239, 142, 240, 142, 241, 142, 242, 142, 243, 142, 244, 142, 245, 142, 246, 142, 247, 142, 248, 142, 249, 142, 250, 142, 251, 142, 252, 142, 253, 142, 254, 142, 255, 142, 0, 143, 1, 143, 2, 143, 3, 143, 4, 143, 5, 143, 6, 143, 7, 143, 8, 143, 9, 143, 10, 143, 11, 143, 12, 143, 13, 143, 14, 143, 15, 143, 16, 143, 17, 143, 18, 143, 19, 143, 20, 143, 21, 143, 22, 143, 23, 143, 24, 143, 25, 143, 26, 143, 27, 143, 28, 143, 29, 143, 30, 143, 31, 143, 32, 143, 33, 143, 34, 143, 35, 143, 36, 143, 37, 143, 38, 143, 39, 143, 40, 143, 41, 143, 42, 143, 43, 143, 44, 143, 45, 143, 46, 143, 47, 143, 48, 143, 49, 143, 50, 143, 51, 143, 52, 143, 53, 143, 54, 143, 55, 143, 56, 143, 57, 143, 58, 143, 59, 143, 60, 143, 61, 143, 62, 143, 63, 143, 64, 143, 65, 143, 66, 143, 67, 143, 68, 143, 104, 131, 27, 131, 105, 131, 108, 131, 106, 131, 109, 131, 110, 131, 176, 131, 120, 131, 179, 131, 180, 131, 160, 131, 170, 131, 147, 131, 156, 131, 133, 131, 124, 131, 182, 131, 169, 131, 125, 131, 184, 131, 123, 131, 152, 131, 158, 131, 168, 131, 186, 131, 188, 131, 193, 131, 1, 132, 229, 131, 216, 131, 7, 88, 24, 132, 11, 132, 221, 131, 253, 131, 214, 131, 28, 132, 56, 132, 17, 132, 6, 132, 212, 131, 223, 131, 15, 132, 3, 132, 248, 131, 249, 131, 234, 131, 197, 131, 192, 131, 38, 132, 240, 131, 225, 131, 92, 132, 81, 132, 90, 132, 89, 132, 115, 132, 135, 132, 136, 132, 122, 132, 137, 132, 120, 132, 60, 132, 70, 132, 105, 132, 118, 132, 140, 132, 142, 132, 49, 132, 109, 132, 193, 132, 205, 132, 208, 132, 230, 132, 189, 132, 211, 132, 202, 132, 191, 132, 186, 132, 224, 132, 161, 132, 185, 132, 180, 132, 151, 132, 229, 132, 227, 132, 12, 133, 13, 117, 56, 133, 240, 132, 57, 133, 31, 133, 58, 133, 69, 143, 70, 143, 71, 143, 72, 143, 73, 143, 74, 143, 75, 143, 76, 143, 77, 143, 78, 143, 79, 143, 80, 143, 81, 143, 82, 143, 83, 143, 84, 143, 85, 143, 86, 143, 87, 143, 88, 143, 89, 143, 90, 143, 91, 143, 92, 143, 93, 143, 94, 143, 95, 143, 96, 143, 97, 143, 98, 143, 99, 143, 100, 143, 101, 143, 106, 143, 128, 143, 140, 143, 146, 143, 157, 143, 160, 143, 161, 143, 162, 143, 164, 143, 165, 143, 166, 143, 167, 143, 170, 143, 172, 143, 173, 143, 174, 143, 175, 143, 178, 143, 179, 143, 180, 143, 181, 143, 183, 143, 184, 143, 186, 143, 187, 143, 188, 143, 191, 143, 192, 143, 195, 143, 198, 143, 201, 143, 202, 143, 203, 143, 204, 143, 205, 143, 207, 143, 210, 143, 214, 143, 215, 143, 218, 143, 224, 143, 225, 143, 227, 143, 231, 143, 236, 143, 239, 143, 241, 143, 242, 143, 244, 143, 245, 143, 246, 143, 250, 143, 251, 143, 252, 143, 254, 143, 255, 143, 7, 144, 8, 144, 12, 144, 14, 144, 19, 144, 21, 144, 24, 144, 86, 133, 59, 133, 255, 132, 252, 132, 89, 133, 72, 133, 104, 133, 100, 133, 94, 133, 122, 133, 162, 119, 67, 133, 114, 133, 123, 133, 164, 133, 168, 133, 135, 133, 143, 133, 121, 133, 174, 133, 156, 133, 133, 133, 185, 133, 183, 133, 176, 133, 211, 133, 193, 133, 220, 133, 255, 133, 39, 134, 5, 134, 41, 134, 22, 134, 60, 134, 254, 94, 8, 95, 60, 89, 65, 89, 55, 128, 85, 89, 90, 89, 88, 89, 15, 83, 34, 92, 37, 92, 44, 92, 52, 92, 76, 98, 106, 98, 159, 98, 187, 98, 202, 98, 218, 98, 215, 98, 238, 98, 34, 99, 246, 98, 57, 99, 75, 99, 67, 99, 173, 99, 246, 99, 113, 99, 122, 99, 142, 99, 180, 99, 109, 99, 172, 99, 138, 99, 105, 99, 174, 99, 188, 99, 242, 99, 248, 99, 224, 99, 255, 99, 196, 99, 222, 99, 206, 99, 82, 100, 198, 99, 190, 99, 69, 100, 65, 100, 11, 100, 27, 100, 32, 100, 12, 100, 38, 100, 33, 100, 94, 100, 132, 100, 109, 100, 150, 100, 25, 144, 28, 144, 35, 144, 36, 144, 37, 144, 39, 144, 40, 144, 41, 144, 42, 144, 43, 144, 44, 144, 48, 144, 49, 144, 50, 144, 51, 144, 52, 144, 55, 144, 57, 144, 58, 144, 61, 144, 63, 144, 64, 144, 67, 144, 69, 144, 70, 144, 72, 144, 73, 144, 74, 144, 75, 144, 76, 144, 78, 144, 84, 144, 85, 144, 86, 144, 89, 144, 90, 144, 92, 144, 93, 144, 94, 144, 95, 144, 96, 144, 97, 144, 100, 144, 102, 144, 103, 144, 105, 144, 106, 144, 107, 144, 108, 144, 111, 144, 112, 144, 113, 144, 114, 144, 115, 144, 118, 144, 119, 144, 120, 144, 121, 144, 122, 144, 123, 144, 124, 144, 126, 144, 129, 144, 132, 144, 133, 144, 134, 144, 135, 144, 137, 144, 138, 144, 140, 144, 141, 144, 142, 144, 143, 144, 144, 144, 146, 144, 148, 144, 150, 144, 152, 144, 154, 144, 156, 144, 158, 144, 159, 144, 160, 144, 164, 144, 165, 144, 167, 144, 168, 144, 169, 144, 171, 144, 173, 144, 178, 144, 183, 144, 188, 144, 189, 144, 191, 144, 192, 144, 122, 100, 183, 100, 184, 100, 153, 100, 186, 100, 192, 100, 208, 100, 215, 100, 228, 100, 226, 100, 9, 101, 37, 101, 46, 101, 11, 95, 210, 95, 25, 117, 17, 95, 95, 83, 241, 83, 253, 83, 233, 83, 232, 83, 251, 83, 18, 84, 22, 84, 6, 84, 75, 84, 82, 84, 83, 84, 84, 84, 86, 84, 67, 84, 33, 84, 87, 84, 89, 84, 35, 84, 50, 84, 130, 84, 148, 84, 119, 84, 113, 84, 100, 84, 154, 84, 155, 84, 132, 84, 118, 84, 102, 84, 157, 84, 208, 84, 173, 84, 194, 84, 180, 84, 210, 84, 167, 84, 166, 84, 211, 84, 212, 84, 114, 84, 163, 84, 213, 84, 187, 84, 191, 84, 204, 84, 217, 84, 218, 84, 220, 84, 169, 84, 170, 84, 164, 84, 221, 84, 207, 84, 222, 84, 27, 85, 231, 84, 32, 85, 253, 84, 20, 85, 243, 84, 34, 85, 35, 85, 15, 85, 17, 85, 39, 85, 42, 85, 103, 85, 143, 85, 181, 85, 73, 85, 109, 85, 65, 85, 85, 85, 63, 85, 80, 85, 60, 85, 194, 144, 195, 144, 198, 144, 200, 144, 201, 144, 203, 144, 204, 144, 205, 144, 210, 144, 212, 144, 213, 144, 214, 144, 216, 144, 217, 144, 218, 144, 222, 144, 223, 144, 224, 144, 227, 144, 228, 144, 229, 144, 233, 144, 234, 144, 236, 144, 238, 144, 240, 144, 241, 144, 242, 144, 243, 144, 245, 144, 246, 144, 247, 144, 249, 144, 250, 144, 251, 144, 252, 144, 255, 144, 0, 145, 1, 145, 3, 145, 5, 145, 6, 145, 7, 145, 8, 145, 9, 145, 10, 145, 11, 145, 12, 145, 13, 145, 14, 145, 15, 145, 16, 145, 17, 145, 18, 145, 19, 145, 20, 145, 21, 145, 22, 145, 23, 145, 24, 145, 26, 145, 27, 145, 28, 145, 29, 145, 31, 145, 32, 145, 33, 145, 36, 145, 37, 145, 38, 145, 39, 145, 40, 145, 41, 145, 42, 145, 43, 145, 44, 145, 45, 145, 46, 145, 48, 145, 50, 145, 51, 145, 52, 145, 53, 145, 54, 145, 55, 145, 56, 145, 58, 145, 59, 145, 60, 145, 61, 145, 62, 145, 63, 145, 64, 145, 65, 145, 66, 145, 68, 145, 55, 85, 86, 85, 117, 85, 118, 85, 119, 85, 51, 85, 48, 85, 92, 85, 139, 85, 210, 85, 131, 85, 177, 85, 185, 85, 136, 85, 129, 85, 159, 85, 126, 85, 214, 85, 145, 85, 123, 85, 223, 85, 189, 85, 190, 85, 148, 85, 153, 85, 234, 85, 247, 85, 201, 85, 31, 86, 209, 85, 235, 85, 236, 85, 212, 85, 230, 85, 221, 85, 196, 85, 239, 85, 229, 85, 242, 85, 243, 85, 204, 85, 205, 85, 232, 85, 245, 85, 228, 85, 148, 143, 30, 86, 8, 86, 12, 86, 1, 86, 36, 86, 35, 86, 254, 85, 0, 86, 39, 86, 45, 86, 88, 86, 57, 86, 87, 86, 44, 86, 77, 86, 98, 86, 89, 86, 92, 86, 76, 86, 84, 86, 134, 86, 100, 86, 113, 86, 107, 86, 123, 86, 124, 86, 133, 86, 147, 86, 175, 86, 212, 86, 215, 86, 221, 86, 225, 86, 245, 86, 235, 86, 249, 86, 255, 86, 4, 87, 10, 87, 9, 87, 28, 87, 15, 94, 25, 94, 20, 94, 17, 94, 49, 94, 59, 94, 60, 94, 69, 145, 71, 145, 72, 145, 81, 145, 83, 145, 84, 145, 85, 145, 86, 145, 88, 145, 89, 145, 91, 145, 92, 145, 95, 145, 96, 145, 102, 145, 103, 145, 104, 145, 107, 145, 109, 145, 115, 145, 122, 145, 123, 145, 124, 145, 128, 145, 129, 145, 130, 145, 131, 145, 132, 145, 134, 145, 136, 145, 138, 145, 142, 145, 143, 145, 147, 145, 148, 145, 149, 145, 150, 145, 151, 145, 152, 145, 153, 145, 156, 145, 157, 145, 158, 145, 159, 145, 160, 145, 161, 145, 164, 145, 165, 145, 166, 145, 167, 145, 168, 145, 169, 145, 171, 145, 172, 145, 176, 145, 177, 145, 178, 145, 179, 145, 182, 145, 183, 145, 184, 145, 185, 145, 187, 145, 188, 145, 189, 145, 190, 145, 191, 145, 192, 145, 193, 145, 194, 145, 195, 145, 196, 145, 197, 145, 198, 145, 200, 145, 203, 145, 208, 145, 210, 145, 211, 145, 212, 145, 213, 145, 214, 145, 215, 145, 216, 145, 217, 145, 218, 145, 219, 145, 221, 145, 222, 145, 223, 145, 224, 145, 225, 145, 226, 145, 227, 145, 228, 145, 229, 145, 55, 94, 68, 94, 84, 94, 91, 94, 94, 94, 97, 94, 140, 92, 122, 92, 141, 92, 144, 92, 150, 92, 136, 92, 152, 92, 153, 92, 145, 92, 154, 92, 156, 92, 181, 92, 162, 92, 189, 92, 172, 92, 171, 92, 177, 92, 163, 92, 193, 92, 183, 92, 196, 92, 210, 92, 228, 92, 203, 92, 229, 92, 2, 93, 3, 93, 39, 93, 38, 93, 46, 93, 36, 93, 30, 93, 6, 93, 27, 93, 88, 93, 62, 93, 52, 93, 61, 93, 108, 93, 91, 93, 111, 93, 93, 93, 107, 93, 75, 93, 74, 93, 105, 93, 116, 93, 130, 93, 153, 93, 157, 93, 115, 140, 183, 93, 197, 93, 115, 95, 119, 95, 130, 95, 135, 95, 137, 95, 140, 95, 149, 95, 153, 95, 156, 95, 168, 95, 173, 95, 181, 95, 188, 95, 98, 136, 97, 95, 173, 114, 176, 114, 180, 114, 183, 114, 184, 114, 195, 114, 193, 114, 206, 114, 205, 114, 210, 114, 232, 114, 239, 114, 233, 114, 242, 114, 244, 114, 247, 114, 1, 115, 243, 114, 3, 115, 250, 114, 230, 145, 231, 145, 232, 145, 233, 145, 234, 145, 235, 145, 236, 145, 237, 145, 238, 145, 239, 145, 240, 145, 241, 145, 242, 145, 243, 145, 244, 145, 245, 145, 246, 145, 247, 145, 248, 145, 249, 145, 250, 145, 251, 145, 252, 145, 253, 145, 254, 145, 255, 145, 0, 146, 1, 146, 2, 146, 3, 146, 4, 146, 5, 146, 6, 146, 7, 146, 8, 146, 9, 146, 10, 146, 11, 146, 12, 146, 13, 146, 14, 146, 15, 146, 16, 146, 17, 146, 18, 146, 19, 146, 20, 146, 21, 146, 22, 146, 23, 146, 24, 146, 25, 146, 26, 146, 27, 146, 28, 146, 29, 146, 30, 146, 31, 146, 32, 146, 33, 146, 34, 146, 35, 146, 36, 146, 37, 146, 38, 146, 39, 146, 40, 146, 41, 146, 42, 146, 43, 146, 44, 146, 45, 146, 46, 146, 47, 146, 48, 146, 49, 146, 50, 146, 51, 146, 52, 146, 53, 146, 54, 146, 55, 146, 56, 146, 57, 146, 58, 146, 59, 146, 60, 146, 61, 146, 62, 146, 63, 146, 64, 146, 65, 146, 66, 146, 67, 146, 68, 146, 69, 146, 251, 114, 23, 115, 19, 115, 33, 115, 10, 115, 30, 115, 29, 115, 21, 115, 34, 115, 57, 115, 37, 115, 44, 115, 56, 115, 49, 115, 80, 115, 77, 115, 87, 115, 96, 115, 108, 115, 111, 115, 126, 115, 27, 130, 37, 89, 231, 152, 36, 89, 2, 89, 99, 153, 103, 153, 104, 153, 105, 153, 106, 153, 107, 153, 108, 153, 116, 153, 119, 153, 125, 153, 128, 153, 132, 153, 135, 153, 138, 153, 141, 153, 144, 153, 145, 153, 147, 153, 148, 153, 149, 153, 128, 94, 145, 94, 139, 94, 150, 94, 165, 94, 160, 94, 185, 94, 181, 94, 190, 94, 179, 94, 83, 141, 210, 94, 209, 94, 219, 94, 232, 94, 234, 94, 186, 129, 196, 95, 201, 95, 214, 95, 207, 95, 3, 96, 238, 95, 4, 96, 225, 95, 228, 95, 254, 95, 5, 96, 6, 96, 234, 95, 237, 95, 248, 95, 25, 96, 53, 96, 38, 96, 27, 96, 15, 96, 13, 96, 41, 96, 43, 96, 10, 96, 63, 96, 33, 96, 120, 96, 121, 96, 123, 96, 122, 96, 66, 96, 70, 146, 71, 146, 72, 146, 73, 146, 74, 146, 75, 146, 76, 146, 77, 146, 78, 146, 79, 146, 80, 146, 81, 146, 82, 146, 83, 146, 84, 146, 85, 146, 86, 146, 87, 146, 88, 146, 89, 146, 90, 146, 91, 146, 92, 146, 93, 146, 94, 146, 95, 146, 96, 146, 97, 146, 98, 146, 99, 146, 100, 146, 101, 146, 102, 146, 103, 146, 104, 146, 105, 146, 106, 146, 107, 146, 108, 146, 109, 146, 110, 146, 111, 146, 112, 146, 113, 146, 114, 146, 115, 146, 117, 146, 118, 146, 119, 146, 120, 146, 121, 146, 122, 146, 123, 146, 124, 146, 125, 146, 126, 146, 127, 146, 128, 146, 129, 146, 130, 146, 131, 146, 132, 146, 133, 146, 134, 146, 135, 146, 136, 146, 137, 146, 138, 146, 139, 146, 140, 146, 141, 146, 143, 146, 144, 146, 145, 146, 146, 146, 147, 146, 148, 146, 149, 146, 150, 146, 151, 146, 152, 146, 153, 146, 154, 146, 155, 146, 156, 146, 157, 146, 158, 146, 159, 146, 160, 146, 161, 146, 162, 146, 163, 146, 164, 146, 165, 146, 166, 146, 167, 146, 106, 96, 125, 96, 150, 96, 154, 96, 173, 96, 157, 96, 131, 96, 146, 96, 140, 96, 155, 96, 236, 96, 187, 96, 177, 96, 221, 96, 216, 96, 198, 96, 218, 96, 180, 96, 32, 97, 38, 97, 21, 97, 35, 97, 244, 96, 0, 97, 14, 97, 43, 97, 74, 97, 117, 97, 172, 97, 148, 97, 167, 97, 183, 97, 212, 97, 245, 97, 221, 95, 179, 150, 233, 149, 235, 149, 241, 149, 243, 149, 245, 149, 246, 149, 252, 149, 254, 149, 3, 150, 4, 150, 6, 150, 8, 150, 10, 150, 11, 150, 12, 150, 13, 150, 15, 150, 18, 150, 21, 150, 22, 150, 23, 150, 25, 150, 26, 150, 44, 78, 63, 114, 21, 98, 53, 108, 84, 108, 92, 108, 74, 108, 163, 108, 133, 108, 144, 108, 148, 108, 140, 108, 104, 108, 105, 108, 116, 108, 118, 108, 134, 108, 169, 108, 208, 108, 212, 108, 173, 108, 247, 108, 248, 108, 241, 108, 215, 108, 178, 108, 224, 108, 214, 108, 250, 108, 235, 108, 238, 108, 177, 108, 211, 108, 239, 108, 254, 108, 168, 146, 169, 146, 170, 146, 171, 146, 172, 146, 173, 146, 175, 146, 176, 146, 177, 146, 178, 146, 179, 146, 180, 146, 181, 146, 182, 146, 183, 146, 184, 146, 185, 146, 186, 146, 187, 146, 188, 146, 189, 146, 190, 146, 191, 146, 192, 146, 193, 146, 194, 146, 195, 146, 196, 146, 197, 146, 198, 146, 199, 146, 201, 146, 202, 146, 203, 146, 204, 146, 205, 146, 206, 146, 207, 146, 208, 146, 209, 146, 210, 146, 211, 146, 212, 146, 213, 146, 214, 146, 215, 146, 216, 146, 217, 146, 218, 146, 219, 146, 220, 146, 221, 146, 222, 146, 223, 146, 224, 146, 225, 146, 226, 146, 227, 146, 228, 146, 229, 146, 230, 146, 231, 146, 232, 146, 233, 146, 234, 146, 235, 146, 236, 146, 237, 146, 238, 146, 239, 146, 240, 146, 241, 146, 242, 146, 243, 146, 244, 146, 245, 146, 246, 146, 247, 146, 248, 146, 249, 146, 250, 146, 251, 146, 252, 146, 253, 146, 254, 146, 255, 146, 0, 147, 1, 147, 2, 147, 3, 147, 4, 147, 5, 147, 6, 147, 7, 147, 8, 147, 9, 147, 57, 109, 39, 109, 12, 109, 67, 109, 72, 109, 7, 109, 4, 109, 25, 109, 14, 109, 43, 109, 77, 109, 46, 109, 53, 109, 26, 109, 79, 109, 82, 109, 84, 109, 51, 109, 145, 109, 111, 109, 158, 109, 160, 109, 94, 109, 147, 109, 148, 109, 92, 109, 96, 109, 124, 109, 99, 109, 26, 110, 199, 109, 197, 109, 222, 109, 14, 110, 191, 109, 224, 109, 17, 110, 230, 109, 221, 109, 217, 109, 22, 110, 171, 109, 12, 110, 174, 109, 43, 110, 110, 110, 78, 110, 107, 110, 178, 110, 95, 110, 134, 110, 83, 110, 84, 110, 50, 110, 37, 110, 68, 110, 223, 110, 177, 110, 152, 110, 224, 110, 45, 111, 226, 110, 165, 110, 167, 110, 189, 110, 187, 110, 183, 110, 215, 110, 180, 110, 207, 110, 143, 110, 194, 110, 159, 110, 98, 111, 70, 111, 71, 111, 36, 111, 21, 111, 249, 110, 47, 111, 54, 111, 75, 111, 116, 111, 42, 111, 9, 111, 41, 111, 137, 111, 141, 111, 140, 111, 120, 111, 114, 111, 124, 111, 122, 111, 209, 111, 10, 147, 11, 147, 12, 147, 13, 147, 14, 147, 15, 147, 16, 147, 17, 147, 18, 147, 19, 147, 20, 147, 21, 147, 22, 147, 23, 147, 24, 147, 25, 147, 26, 147, 27, 147, 28, 147, 29, 147, 30, 147, 31, 147, 32, 147, 33, 147, 34, 147, 35, 147, 36, 147, 37, 147, 38, 147, 39, 147, 40, 147, 41, 147, 42, 147, 43, 147, 44, 147, 45, 147, 46, 147, 47, 147, 48, 147, 49, 147, 50, 147, 51, 147, 52, 147, 53, 147, 54, 147, 55, 147, 56, 147, 57, 147, 58, 147, 59, 147, 60, 147, 61, 147, 63, 147, 64, 147, 65, 147, 66, 147, 67, 147, 68, 147, 69, 147, 70, 147, 71, 147, 72, 147, 73, 147, 74, 147, 75, 147, 76, 147, 77, 147, 78, 147, 79, 147, 80, 147, 81, 147, 82, 147, 83, 147, 84, 147, 85, 147, 86, 147, 87, 147, 88, 147, 89, 147, 90, 147, 91, 147, 92, 147, 93, 147, 94, 147, 95, 147, 96, 147, 97, 147, 98, 147, 99, 147, 100, 147, 101, 147, 102, 147, 103, 147, 104, 147, 105, 147, 107, 147, 201, 111, 167, 111, 185, 111, 182, 111, 194, 111, 225, 111, 238, 111, 222, 111, 224, 111, 239, 111, 26, 112, 35, 112, 27, 112, 57, 112, 53, 112, 79, 112, 94, 112, 128, 91 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 56052 ); /* memory initializer */ allocate( [ 132, 91, 149, 91, 147, 91, 165, 91, 184, 91, 47, 117, 158, 154, 52, 100, 228, 91, 238, 91, 48, 137, 240, 91, 71, 142, 7, 139, 182, 143, 211, 143, 213, 143, 229, 143, 238, 143, 228, 143, 233, 143, 230, 143, 243, 143, 232, 143, 5, 144, 4, 144, 11, 144, 38, 144, 17, 144, 13, 144, 22, 144, 33, 144, 53, 144, 54, 144, 45, 144, 47, 144, 68, 144, 81, 144, 82, 144, 80, 144, 104, 144, 88, 144, 98, 144, 91, 144, 185, 102, 116, 144, 125, 144, 130, 144, 136, 144, 131, 144, 139, 144, 80, 95, 87, 95, 86, 95, 88, 95, 59, 92, 171, 84, 80, 92, 89, 92, 113, 91, 99, 92, 102, 92, 188, 127, 42, 95, 41, 95, 45, 95, 116, 130, 60, 95, 59, 155, 110, 92, 129, 89, 131, 89, 141, 89, 169, 89, 170, 89, 163, 89, 108, 147, 109, 147, 110, 147, 111, 147, 112, 147, 113, 147, 114, 147, 115, 147, 116, 147, 117, 147, 118, 147, 119, 147, 120, 147, 121, 147, 122, 147, 123, 147, 124, 147, 125, 147, 126, 147, 127, 147, 128, 147, 129, 147, 130, 147, 131, 147, 132, 147, 133, 147, 134, 147, 135, 147, 136, 147, 137, 147, 138, 147, 139, 147, 140, 147, 141, 147, 142, 147, 144, 147, 145, 147, 146, 147, 147, 147, 148, 147, 149, 147, 150, 147, 151, 147, 152, 147, 153, 147, 154, 147, 155, 147, 156, 147, 157, 147, 158, 147, 159, 147, 160, 147, 161, 147, 162, 147, 163, 147, 164, 147, 165, 147, 166, 147, 167, 147, 168, 147, 169, 147, 170, 147, 171, 147, 172, 147, 173, 147, 174, 147, 175, 147, 176, 147, 177, 147, 178, 147, 179, 147, 180, 147, 181, 147, 182, 147, 183, 147, 184, 147, 185, 147, 186, 147, 187, 147, 188, 147, 189, 147, 190, 147, 191, 147, 192, 147, 193, 147, 194, 147, 195, 147, 196, 147, 197, 147, 198, 147, 199, 147, 200, 147, 201, 147, 203, 147, 204, 147, 205, 147, 151, 89, 202, 89, 171, 89, 158, 89, 164, 89, 210, 89, 178, 89, 175, 89, 215, 89, 190, 89, 5, 90, 6, 90, 221, 89, 8, 90, 227, 89, 216, 89, 249, 89, 12, 90, 9, 90, 50, 90, 52, 90, 17, 90, 35, 90, 19, 90, 64, 90, 103, 90, 74, 90, 85, 90, 60, 90, 98, 90, 117, 90, 236, 128, 170, 90, 155, 90, 119, 90, 122, 90, 190, 90, 235, 90, 178, 90, 210, 90, 212, 90, 184, 90, 224, 90, 227, 90, 241, 90, 214, 90, 230, 90, 216, 90, 220, 90, 9, 91, 23, 91, 22, 91, 50, 91, 55, 91, 64, 91, 21, 92, 28, 92, 90, 91, 101, 91, 115, 91, 81, 91, 83, 91, 98, 91, 117, 154, 119, 154, 120, 154, 122, 154, 127, 154, 125, 154, 128, 154, 129, 154, 133, 154, 136, 154, 138, 154, 144, 154, 146, 154, 147, 154, 150, 154, 152, 154, 155, 154, 156, 154, 157, 154, 159, 154, 160, 154, 162, 154, 163, 154, 165, 154, 167, 154, 159, 126, 161, 126, 163, 126, 165, 126, 168, 126, 169, 126, 206, 147, 207, 147, 208, 147, 209, 147, 210, 147, 211, 147, 212, 147, 213, 147, 215, 147, 216, 147, 217, 147, 218, 147, 219, 147, 220, 147, 221, 147, 222, 147, 223, 147, 224, 147, 225, 147, 226, 147, 227, 147, 228, 147, 229, 147, 230, 147, 231, 147, 232, 147, 233, 147, 234, 147, 235, 147, 236, 147, 237, 147, 238, 147, 239, 147, 240, 147, 241, 147, 242, 147, 243, 147, 244, 147, 245, 147, 246, 147, 247, 147, 248, 147, 249, 147, 250, 147, 251, 147, 252, 147, 253, 147, 254, 147, 255, 147, 0, 148, 1, 148, 2, 148, 3, 148, 4, 148, 5, 148, 6, 148, 7, 148, 8, 148, 9, 148, 10, 148, 11, 148, 12, 148, 13, 148, 14, 148, 15, 148, 16, 148, 17, 148, 18, 148, 19, 148, 20, 148, 21, 148, 22, 148, 23, 148, 24, 148, 25, 148, 26, 148, 27, 148, 28, 148, 29, 148, 30, 148, 31, 148, 32, 148, 33, 148, 34, 148, 35, 148, 36, 148, 37, 148, 38, 148, 39, 148, 40, 148, 41, 148, 42, 148, 43, 148, 44, 148, 45, 148, 46, 148, 173, 126, 176, 126, 190, 126, 192, 126, 193, 126, 194, 126, 201, 126, 203, 126, 204, 126, 208, 126, 212, 126, 215, 126, 219, 126, 224, 126, 225, 126, 232, 126, 235, 126, 238, 126, 239, 126, 241, 126, 242, 126, 13, 127, 246, 126, 250, 126, 251, 126, 254, 126, 1, 127, 2, 127, 3, 127, 7, 127, 8, 127, 11, 127, 12, 127, 15, 127, 17, 127, 18, 127, 23, 127, 25, 127, 28, 127, 27, 127, 31, 127, 33, 127, 34, 127, 35, 127, 36, 127, 37, 127, 38, 127, 39, 127, 42, 127, 43, 127, 44, 127, 45, 127, 47, 127, 48, 127, 49, 127, 50, 127, 51, 127, 53, 127, 122, 94, 127, 117, 219, 93, 62, 117, 149, 144, 142, 115, 145, 115, 174, 115, 162, 115, 159, 115, 207, 115, 194, 115, 209, 115, 183, 115, 179, 115, 192, 115, 201, 115, 200, 115, 229, 115, 217, 115, 124, 152, 10, 116, 233, 115, 231, 115, 222, 115, 186, 115, 242, 115, 15, 116, 42, 116, 91, 116, 38, 116, 37, 116, 40, 116, 48, 116, 46, 116, 44, 116, 47, 148, 48, 148, 49, 148, 50, 148, 51, 148, 52, 148, 53, 148, 54, 148, 55, 148, 56, 148, 57, 148, 58, 148, 59, 148, 60, 148, 61, 148, 63, 148, 64, 148, 65, 148, 66, 148, 67, 148, 68, 148, 69, 148, 70, 148, 71, 148, 72, 148, 73, 148, 74, 148, 75, 148, 76, 148, 77, 148, 78, 148, 79, 148, 80, 148, 81, 148, 82, 148, 83, 148, 84, 148, 85, 148, 86, 148, 87, 148, 88, 148, 89, 148, 90, 148, 91, 148, 92, 148, 93, 148, 94, 148, 95, 148, 96, 148, 97, 148, 98, 148, 99, 148, 100, 148, 101, 148, 102, 148, 103, 148, 104, 148, 105, 148, 106, 148, 108, 148, 109, 148, 110, 148, 111, 148, 112, 148, 113, 148, 114, 148, 115, 148, 116, 148, 117, 148, 118, 148, 119, 148, 120, 148, 121, 148, 122, 148, 123, 148, 124, 148, 125, 148, 126, 148, 127, 148, 128, 148, 129, 148, 130, 148, 131, 148, 132, 148, 145, 148, 150, 148, 152, 148, 199, 148, 207, 148, 211, 148, 212, 148, 218, 148, 230, 148, 251, 148, 28, 149, 32, 149, 27, 116, 26, 116, 65, 116, 92, 116, 87, 116, 85, 116, 89, 116, 119, 116, 109, 116, 126, 116, 156, 116, 142, 116, 128, 116, 129, 116, 135, 116, 139, 116, 158, 116, 168, 116, 169, 116, 144, 116, 167, 116, 210, 116, 186, 116, 234, 151, 235, 151, 236, 151, 76, 103, 83, 103, 94, 103, 72, 103, 105, 103, 165, 103, 135, 103, 106, 103, 115, 103, 152, 103, 167, 103, 117, 103, 168, 103, 158, 103, 173, 103, 139, 103, 119, 103, 124, 103, 240, 103, 9, 104, 216, 103, 10, 104, 233, 103, 176, 103, 12, 104, 217, 103, 181, 103, 218, 103, 179, 103, 221, 103, 0, 104, 195, 103, 184, 103, 226, 103, 14, 104, 193, 103, 253, 103, 50, 104, 51, 104, 96, 104, 97, 104, 78, 104, 98, 104, 68, 104, 100, 104, 131, 104, 29, 104, 85, 104, 102, 104, 65, 104, 103, 104, 64, 104, 62, 104, 74, 104, 73, 104, 41, 104, 181, 104, 143, 104, 116, 104, 119, 104, 147, 104, 107, 104, 194, 104, 110, 105, 252, 104, 31, 105, 32, 105, 249, 104, 39, 149, 51, 149, 61, 149, 67, 149, 72, 149, 75, 149, 85, 149, 90, 149, 96, 149, 110, 149, 116, 149, 117, 149, 119, 149, 120, 149, 121, 149, 122, 149, 123, 149, 124, 149, 125, 149, 126, 149, 128, 149, 129, 149, 130, 149, 131, 149, 132, 149, 133, 149, 134, 149, 135, 149, 136, 149, 137, 149, 138, 149, 139, 149, 140, 149, 141, 149, 142, 149, 143, 149, 144, 149, 145, 149, 146, 149, 147, 149, 148, 149, 149, 149, 150, 149, 151, 149, 152, 149, 153, 149, 154, 149, 155, 149, 156, 149, 157, 149, 158, 149, 159, 149, 160, 149, 161, 149, 162, 149, 163, 149, 164, 149, 165, 149, 166, 149, 167, 149, 168, 149, 169, 149, 170, 149, 171, 149, 172, 149, 173, 149, 174, 149, 175, 149, 176, 149, 177, 149, 178, 149, 179, 149, 180, 149, 181, 149, 182, 149, 183, 149, 184, 149, 185, 149, 186, 149, 187, 149, 188, 149, 189, 149, 190, 149, 191, 149, 192, 149, 193, 149, 194, 149, 195, 149, 196, 149, 197, 149, 198, 149, 199, 149, 200, 149, 201, 149, 202, 149, 203, 149, 36, 105, 240, 104, 11, 105, 1, 105, 87, 105, 227, 104, 16, 105, 113, 105, 57, 105, 96, 105, 66, 105, 93, 105, 132, 105, 107, 105, 128, 105, 152, 105, 120, 105, 52, 105, 204, 105, 135, 105, 136, 105, 206, 105, 137, 105, 102, 105, 99, 105, 121, 105, 155, 105, 167, 105, 187, 105, 171, 105, 173, 105, 212, 105, 177, 105, 193, 105, 202, 105, 223, 105, 149, 105, 224, 105, 141, 105, 255, 105, 47, 106, 237, 105, 23, 106, 24, 106, 101, 106, 242, 105, 68, 106, 62, 106, 160, 106, 80, 106, 91, 106, 53, 106, 142, 106, 121, 106, 61, 106, 40, 106, 88, 106, 124, 106, 145, 106, 144, 106, 169, 106, 151, 106, 171, 106, 55, 115, 82, 115, 129, 107, 130, 107, 135, 107, 132, 107, 146, 107, 147, 107, 141, 107, 154, 107, 155, 107, 161, 107, 170, 107, 107, 143, 109, 143, 113, 143, 114, 143, 115, 143, 117, 143, 118, 143, 120, 143, 119, 143, 121, 143, 122, 143, 124, 143, 126, 143, 129, 143, 130, 143, 132, 143, 135, 143, 139, 143, 204, 149, 205, 149, 206, 149, 207, 149, 208, 149, 209, 149, 210, 149, 211, 149, 212, 149, 213, 149, 214, 149, 215, 149, 216, 149, 217, 149, 218, 149, 219, 149, 220, 149, 221, 149, 222, 149, 223, 149, 224, 149, 225, 149, 226, 149, 227, 149, 228, 149, 229, 149, 230, 149, 231, 149, 236, 149, 255, 149, 7, 150, 19, 150, 24, 150, 27, 150, 30, 150, 32, 150, 35, 150, 36, 150, 37, 150, 38, 150, 39, 150, 40, 150, 41, 150, 43, 150, 44, 150, 45, 150, 47, 150, 48, 150, 55, 150, 56, 150, 57, 150, 58, 150, 62, 150, 65, 150, 67, 150, 74, 150, 78, 150, 79, 150, 81, 150, 82, 150, 83, 150, 86, 150, 87, 150, 88, 150, 89, 150, 90, 150, 92, 150, 93, 150, 94, 150, 96, 150, 99, 150, 101, 150, 102, 150, 107, 150, 109, 150, 110, 150, 111, 150, 112, 150, 113, 150, 115, 150, 120, 150, 121, 150, 122, 150, 123, 150, 124, 150, 125, 150, 126, 150, 127, 150, 128, 150, 129, 150, 130, 150, 131, 150, 132, 150, 135, 150, 137, 150, 138, 150, 141, 143, 142, 143, 143, 143, 152, 143, 154, 143, 206, 142, 11, 98, 23, 98, 27, 98, 31, 98, 34, 98, 33, 98, 37, 98, 36, 98, 44, 98, 231, 129, 239, 116, 244, 116, 255, 116, 15, 117, 17, 117, 19, 117, 52, 101, 238, 101, 239, 101, 240, 101, 10, 102, 25, 102, 114, 103, 3, 102, 21, 102, 0, 102, 133, 112, 247, 102, 29, 102, 52, 102, 49, 102, 54, 102, 53, 102, 6, 128, 95, 102, 84, 102, 65, 102, 79, 102, 86, 102, 97, 102, 87, 102, 119, 102, 132, 102, 140, 102, 167, 102, 157, 102, 190, 102, 219, 102, 220, 102, 230, 102, 233, 102, 50, 141, 51, 141, 54, 141, 59, 141, 61, 141, 64, 141, 69, 141, 70, 141, 72, 141, 73, 141, 71, 141, 77, 141, 85, 141, 89, 141, 199, 137, 202, 137, 203, 137, 204, 137, 206, 137, 207, 137, 208, 137, 209, 137, 110, 114, 159, 114, 93, 114, 102, 114, 111, 114, 126, 114, 127, 114, 132, 114, 139, 114, 141, 114, 143, 114, 146, 114, 8, 99, 50, 99, 176, 99, 140, 150, 142, 150, 145, 150, 146, 150, 147, 150, 149, 150, 150, 150, 154, 150, 155, 150, 157, 150, 158, 150, 159, 150, 160, 150, 161, 150, 162, 150, 163, 150, 164, 150, 165, 150, 166, 150, 168, 150, 169, 150, 170, 150, 171, 150, 172, 150, 173, 150, 174, 150, 175, 150, 177, 150, 178, 150, 180, 150, 181, 150, 183, 150, 184, 150, 186, 150, 187, 150, 191, 150, 194, 150, 195, 150, 200, 150, 202, 150, 203, 150, 208, 150, 209, 150, 211, 150, 212, 150, 214, 150, 215, 150, 216, 150, 217, 150, 218, 150, 219, 150, 220, 150, 221, 150, 222, 150, 223, 150, 225, 150, 226, 150, 227, 150, 228, 150, 229, 150, 230, 150, 231, 150, 235, 150, 236, 150, 237, 150, 238, 150, 240, 150, 241, 150, 242, 150, 244, 150, 245, 150, 248, 150, 250, 150, 251, 150, 252, 150, 253, 150, 255, 150, 2, 151, 3, 151, 5, 151, 10, 151, 11, 151, 12, 151, 16, 151, 17, 151, 18, 151, 20, 151, 21, 151, 23, 151, 24, 151, 25, 151, 26, 151, 27, 151, 29, 151, 31, 151, 32, 151, 63, 100, 216, 100, 4, 128, 234, 107, 243, 107, 253, 107, 245, 107, 249, 107, 5, 108, 7, 108, 6, 108, 13, 108, 21, 108, 24, 108, 25, 108, 26, 108, 33, 108, 41, 108, 36, 108, 42, 108, 50, 108, 53, 101, 85, 101, 107, 101, 77, 114, 82, 114, 86, 114, 48, 114, 98, 134, 22, 82, 159, 128, 156, 128, 147, 128, 188, 128, 10, 103, 189, 128, 177, 128, 171, 128, 173, 128, 180, 128, 183, 128, 231, 128, 232, 128, 233, 128, 234, 128, 219, 128, 194, 128, 196, 128, 217, 128, 205, 128, 215, 128, 16, 103, 221, 128, 235, 128, 241, 128, 244, 128, 237, 128, 13, 129, 14, 129, 242, 128, 252, 128, 21, 103, 18, 129, 90, 140, 54, 129, 30, 129, 44, 129, 24, 129, 50, 129, 72, 129, 76, 129, 83, 129, 116, 129, 89, 129, 90, 129, 113, 129, 96, 129, 105, 129, 124, 129, 125, 129, 109, 129, 103, 129, 77, 88, 181, 90, 136, 129, 130, 129, 145, 129, 213, 110, 163, 129, 170, 129, 204, 129, 38, 103, 202, 129, 187, 129, 33, 151, 34, 151, 35, 151, 36, 151, 37, 151, 38, 151, 39, 151, 40, 151, 41, 151, 43, 151, 44, 151, 46, 151, 47, 151, 49, 151, 51, 151, 52, 151, 53, 151, 54, 151, 55, 151, 58, 151, 59, 151, 60, 151, 61, 151, 63, 151, 64, 151, 65, 151, 66, 151, 67, 151, 68, 151, 69, 151, 70, 151, 71, 151, 72, 151, 73, 151, 74, 151, 75, 151, 76, 151, 77, 151, 78, 151, 79, 151, 80, 151, 81, 151, 84, 151, 85, 151, 87, 151, 88, 151, 90, 151, 92, 151, 93, 151, 95, 151, 99, 151, 100, 151, 102, 151, 103, 151, 104, 151, 106, 151, 107, 151, 108, 151, 109, 151, 110, 151, 111, 151, 112, 151, 113, 151, 114, 151, 117, 151, 119, 151, 120, 151, 121, 151, 122, 151, 123, 151, 125, 151, 126, 151, 127, 151, 128, 151, 129, 151, 130, 151, 131, 151, 132, 151, 134, 151, 135, 151, 136, 151, 137, 151, 138, 151, 140, 151, 142, 151, 143, 151, 144, 151, 147, 151, 149, 151, 150, 151, 151, 151, 153, 151, 154, 151, 155, 151, 156, 151, 157, 151, 193, 129, 166, 129, 36, 107, 55, 107, 57, 107, 67, 107, 70, 107, 89, 107, 209, 152, 210, 152, 211, 152, 213, 152, 217, 152, 218, 152, 179, 107, 64, 95, 194, 107, 243, 137, 144, 101, 81, 159, 147, 101, 188, 101, 198, 101, 196, 101, 195, 101, 204, 101, 206, 101, 210, 101, 214, 101, 128, 112, 156, 112, 150, 112, 157, 112, 187, 112, 192, 112, 183, 112, 171, 112, 177, 112, 232, 112, 202, 112, 16, 113, 19, 113, 22, 113, 47, 113, 49, 113, 115, 113, 92, 113, 104, 113, 69, 113, 114, 113, 74, 113, 120, 113, 122, 113, 152, 113, 179, 113, 181, 113, 168, 113, 160, 113, 224, 113, 212, 113, 231, 113, 249, 113, 29, 114, 40, 114, 108, 112, 24, 113, 102, 113, 185, 113, 62, 98, 61, 98, 67, 98, 72, 98, 73, 98, 59, 121, 64, 121, 70, 121, 73, 121, 91, 121, 92, 121, 83, 121, 90, 121, 98, 121, 87, 121, 96, 121, 111, 121, 103, 121, 122, 121, 133, 121, 138, 121, 154, 121, 167, 121, 179, 121, 209, 95, 208, 95, 158, 151, 159, 151, 161, 151, 162, 151, 164, 151, 165, 151, 166, 151, 167, 151, 168, 151, 169, 151, 170, 151, 172, 151, 174, 151, 176, 151, 177, 151, 179, 151, 181, 151, 182, 151, 183, 151, 184, 151, 185, 151, 186, 151, 187, 151, 188, 151, 189, 151, 190, 151, 191, 151, 192, 151, 193, 151, 194, 151, 195, 151, 196, 151, 197, 151, 198, 151, 199, 151, 200, 151, 201, 151, 202, 151, 203, 151, 204, 151, 205, 151, 206, 151, 207, 151, 208, 151, 209, 151, 210, 151, 211, 151, 212, 151, 213, 151, 214, 151, 215, 151, 216, 151, 217, 151, 218, 151, 219, 151, 220, 151, 221, 151, 222, 151, 223, 151, 224, 151, 225, 151, 226, 151, 227, 151, 228, 151, 229, 151, 232, 151, 238, 151, 239, 151, 240, 151, 241, 151, 242, 151, 244, 151, 247, 151, 248, 151, 249, 151, 250, 151, 251, 151, 252, 151, 253, 151, 254, 151, 255, 151, 0, 152, 1, 152, 2, 152, 3, 152, 4, 152, 5, 152, 6, 152, 7, 152, 8, 152, 9, 152, 10, 152, 11, 152, 12, 152, 13, 152, 14, 152, 60, 96, 93, 96, 90, 96, 103, 96, 65, 96, 89, 96, 99, 96, 171, 96, 6, 97, 13, 97, 93, 97, 169, 97, 157, 97, 203, 97, 209, 97, 6, 98, 128, 128, 127, 128, 147, 108, 246, 108, 252, 109, 246, 119, 248, 119, 0, 120, 9, 120, 23, 120, 24, 120, 17, 120, 171, 101, 45, 120, 28, 120, 29, 120, 57, 120, 58, 120, 59, 120, 31, 120, 60, 120, 37, 120, 44, 120, 35, 120, 41, 120, 78, 120, 109, 120, 86, 120, 87, 120, 38, 120, 80, 120, 71, 120, 76, 120, 106, 120, 155, 120, 147, 120, 154, 120, 135, 120, 156, 120, 161, 120, 163, 120, 178, 120, 185, 120, 165, 120, 212, 120, 217, 120, 201, 120, 236, 120, 242, 120, 5, 121, 244, 120, 19, 121, 36, 121, 30, 121, 52, 121, 155, 159, 249, 158, 251, 158, 252, 158, 241, 118, 4, 119, 13, 119, 249, 118, 7, 119, 8, 119, 26, 119, 34, 119, 25, 119, 45, 119, 38, 119, 53, 119, 56, 119, 80, 119, 81, 119, 71, 119, 67, 119, 90, 119, 104, 119, 15, 152, 16, 152, 17, 152, 18, 152, 19, 152, 20, 152, 21, 152, 22, 152, 23, 152, 24, 152, 25, 152, 26, 152, 27, 152, 28, 152, 29, 152, 30, 152, 31, 152, 32, 152, 33, 152, 34, 152, 35, 152, 36, 152, 37, 152, 38, 152, 39, 152, 40, 152, 41, 152, 42, 152, 43, 152, 44, 152, 45, 152, 46, 152, 47, 152, 48, 152, 49, 152, 50, 152, 51, 152, 52, 152, 53, 152, 54, 152, 55, 152, 56, 152, 57, 152, 58, 152, 59, 152, 60, 152, 61, 152, 62, 152, 63, 152, 64, 152, 65, 152, 66, 152, 67, 152, 68, 152, 69, 152, 70, 152, 71, 152, 72, 152, 73, 152, 74, 152, 75, 152, 76, 152, 77, 152, 78, 152, 79, 152, 80, 152, 81, 152, 82, 152, 83, 152, 84, 152, 85, 152, 86, 152, 87, 152, 88, 152, 89, 152, 90, 152, 91, 152, 92, 152, 93, 152, 94, 152, 95, 152, 96, 152, 97, 152, 98, 152, 99, 152, 100, 152, 101, 152, 102, 152, 103, 152, 104, 152, 105, 152, 106, 152, 107, 152, 108, 152, 109, 152, 110, 152, 98, 119, 101, 119, 127, 119, 141, 119, 125, 119, 128, 119, 140, 119, 145, 119, 159, 119, 160, 119, 176, 119, 181, 119, 189, 119, 58, 117, 64, 117, 78, 117, 75, 117, 72, 117, 91, 117, 114, 117, 121, 117, 131, 117, 88, 127, 97, 127, 95, 127, 72, 138, 104, 127, 116, 127, 113, 127, 121, 127, 129, 127, 126, 127, 205, 118, 229, 118, 50, 136, 133, 148, 134, 148, 135, 148, 139, 148, 138, 148, 140, 148, 141, 148, 143, 148, 144, 148, 148, 148, 151, 148, 149, 148, 154, 148, 155, 148, 156, 148, 163, 148, 164, 148, 171, 148, 170, 148, 173, 148, 172, 148, 175, 148, 176, 148, 178, 148, 180, 148, 182, 148, 183, 148, 184, 148, 185, 148, 186, 148, 188, 148, 189, 148, 191, 148, 196, 148, 200, 148, 201, 148, 202, 148, 203, 148, 204, 148, 205, 148, 206, 148, 208, 148, 209, 148, 210, 148, 213, 148, 214, 148, 215, 148, 217, 148, 216, 148, 219, 148, 222, 148, 223, 148, 224, 148, 226, 148, 228, 148, 229, 148, 231, 148, 232, 148, 234, 148, 111, 152, 112, 152, 113, 152, 114, 152, 115, 152, 116, 152, 139, 152, 142, 152, 146, 152, 149, 152, 153, 152, 163, 152, 168, 152, 169, 152, 170, 152, 171, 152, 172, 152, 173, 152, 174, 152, 175, 152, 176, 152, 177, 152, 178, 152, 179, 152, 180, 152, 181, 152, 182, 152, 183, 152, 184, 152, 185, 152, 186, 152, 187, 152, 188, 152, 189, 152, 190, 152, 191, 152, 192, 152, 193, 152, 194, 152, 195, 152, 196, 152, 197, 152, 198, 152, 199, 152, 200, 152, 201, 152, 202, 152, 203, 152, 204, 152, 205, 152, 207, 152, 208, 152, 212, 152, 214, 152, 215, 152, 219, 152, 220, 152, 221, 152, 224, 152, 225, 152, 226, 152, 227, 152, 228, 152, 229, 152, 230, 152, 233, 152, 234, 152, 235, 152, 236, 152, 237, 152, 238, 152, 239, 152, 240, 152, 241, 152, 242, 152, 243, 152, 244, 152, 245, 152, 246, 152, 247, 152, 248, 152, 249, 152, 250, 152, 251, 152, 252, 152, 253, 152, 254, 152, 255, 152, 0, 153, 1, 153, 2, 153, 3, 153, 4, 153, 5, 153, 6, 153, 7, 153, 233, 148, 235, 148, 238, 148, 239, 148, 243, 148, 244, 148, 245, 148, 247, 148, 249, 148, 252, 148, 253, 148, 255, 148, 3, 149, 2, 149, 6, 149, 7, 149, 9, 149, 10, 149, 13, 149, 14, 149, 15, 149, 18, 149, 19, 149, 20, 149, 21, 149, 22, 149, 24, 149, 27, 149, 29, 149, 30, 149, 31, 149, 34, 149, 42, 149, 43, 149, 41, 149, 44, 149, 49, 149, 50, 149, 52, 149, 54, 149, 55, 149, 56, 149, 60, 149, 62, 149, 63, 149, 66, 149, 53, 149, 68, 149, 69, 149, 70, 149, 73, 149, 76, 149, 78, 149, 79, 149, 82, 149, 83, 149, 84, 149, 86, 149, 87, 149, 88, 149, 89, 149, 91, 149, 94, 149, 95, 149, 93, 149, 97, 149, 98, 149, 100, 149, 101, 149, 102, 149, 103, 149, 104, 149, 105, 149, 106, 149, 107, 149, 108, 149, 111, 149, 113, 149, 114, 149, 115, 149, 58, 149, 231, 119, 236, 119, 201, 150, 213, 121, 237, 121, 227, 121, 235, 121, 6, 122, 71, 93, 3, 122, 2, 122, 30, 122, 20, 122, 8, 153, 9, 153, 10, 153, 11, 153, 12, 153, 14, 153, 15, 153, 17, 153, 18, 153, 19, 153, 20, 153, 21, 153, 22, 153, 23, 153, 24, 153, 25, 153, 26, 153, 27, 153, 28, 153, 29, 153, 30, 153, 31, 153, 32, 153, 33, 153, 34, 153, 35, 153, 36, 153, 37, 153, 38, 153, 39, 153, 40, 153, 41, 153, 42, 153, 43, 153, 44, 153, 45, 153, 47, 153, 48, 153, 49, 153, 50, 153, 51, 153, 52, 153, 53, 153, 54, 153, 55, 153, 56, 153, 57, 153, 58, 153, 59, 153, 60, 153, 61, 153, 62, 153, 63, 153, 64, 153, 65, 153, 66, 153, 67, 153, 68, 153, 69, 153, 70, 153, 71, 153, 72, 153, 73, 153, 74, 153, 75, 153, 76, 153, 77, 153, 78, 153, 79, 153, 80, 153, 81, 153, 82, 153, 83, 153, 86, 153, 87, 153, 88, 153, 89, 153, 90, 153, 91, 153, 92, 153, 93, 153, 94, 153, 95, 153, 96, 153, 97, 153, 98, 153, 100, 153, 102, 153, 115, 153, 120, 153, 121, 153, 123, 153, 126, 153, 130, 153, 131, 153, 137, 153, 57, 122, 55, 122, 81, 122, 207, 158, 165, 153, 112, 122, 136, 118, 142, 118, 147, 118, 153, 118, 164, 118, 222, 116, 224, 116, 44, 117, 32, 158, 34, 158, 40, 158, 41, 158, 42, 158, 43, 158, 44, 158, 50, 158, 49, 158, 54, 158, 56, 158, 55, 158, 57, 158, 58, 158, 62, 158, 65, 158, 66, 158, 68, 158, 70, 158, 71, 158, 72, 158, 73, 158, 75, 158, 76, 158, 78, 158, 81, 158, 85, 158, 87, 158, 90, 158, 91, 158, 92, 158, 94, 158, 99, 158, 102, 158, 103, 158, 104, 158, 105, 158, 106, 158, 107, 158, 108, 158, 113, 158, 109, 158, 115, 158, 146, 117, 148, 117, 150, 117, 160, 117, 157, 117, 172, 117, 163, 117, 179, 117, 180, 117, 184, 117, 196, 117, 177, 117, 176, 117, 195, 117, 194, 117, 214, 117, 205, 117, 227, 117, 232, 117, 230, 117, 228, 117, 235, 117, 231, 117, 3, 118, 241, 117, 252, 117, 255, 117, 16, 118, 0, 118, 5, 118, 12, 118, 23, 118, 10, 118, 37, 118, 24, 118, 21, 118, 25, 118, 140, 153, 142, 153, 154, 153, 155, 153, 156, 153, 157, 153, 158, 153, 159, 153, 160, 153, 161, 153, 162, 153, 163, 153, 164, 153, 166, 153, 167, 153, 169, 153, 170, 153, 171, 153, 172, 153, 173, 153, 174, 153, 175, 153, 176, 153, 177, 153, 178, 153, 179, 153, 180, 153, 181, 153, 182, 153, 183, 153, 184, 153, 185, 153, 186, 153, 187, 153, 188, 153, 189, 153, 190, 153, 191, 153, 192, 153, 193, 153, 194, 153, 195, 153, 196, 153, 197, 153, 198, 153, 199, 153, 200, 153, 201, 153, 202, 153, 203, 153, 204, 153, 205, 153, 206, 153, 207, 153, 208, 153, 209, 153, 210, 153, 211, 153, 212, 153, 213, 153, 214, 153, 215, 153, 216, 153, 217, 153, 218, 153, 219, 153, 220, 153, 221, 153, 222, 153, 223, 153, 224, 153, 225, 153, 226, 153, 227, 153, 228, 153, 229, 153, 230, 153, 231, 153, 232, 153, 233, 153, 234, 153, 235, 153, 236, 153, 237, 153, 238, 153, 239, 153, 240, 153, 241, 153, 242, 153, 243, 153, 244, 153, 245, 153, 246, 153, 247, 153, 248, 153, 249, 153, 27, 118, 60, 118, 34, 118, 32, 118, 64, 118, 45, 118, 48, 118, 63, 118, 53, 118, 67, 118, 62, 118, 51, 118, 77, 118, 94, 118, 84, 118, 92, 118, 86, 118, 107, 118, 111, 118, 202, 127, 230, 122, 120, 122, 121, 122, 128, 122, 134, 122, 136, 122, 149, 122, 166, 122, 160, 122, 172, 122, 168, 122, 173, 122, 179, 122, 100, 136, 105, 136, 114, 136, 125, 136, 127, 136, 130, 136, 162, 136, 198, 136, 183, 136, 188, 136, 201, 136, 226, 136, 206, 136, 227, 136, 229, 136, 241, 136, 26, 137, 252, 136, 232, 136, 254, 136, 240, 136, 33, 137, 25, 137, 19, 137, 27, 137, 10, 137, 52, 137, 43, 137, 54, 137, 65, 137, 102, 137, 123, 137, 139, 117, 229, 128, 178, 118, 180, 118, 220, 119, 18, 128, 20, 128, 22, 128, 28, 128, 32, 128, 34, 128, 37, 128, 38, 128, 39, 128, 41, 128, 40, 128, 49, 128, 11, 128, 53, 128, 67, 128, 70, 128, 77, 128, 82, 128, 105, 128, 113, 128, 131, 137, 120, 152, 128, 152, 131, 152, 250, 153, 251, 153, 252, 153, 253, 153, 254, 153, 255, 153, 0, 154, 1, 154, 2, 154, 3, 154, 4, 154, 5, 154, 6, 154, 7, 154, 8, 154, 9, 154, 10, 154, 11, 154, 12, 154, 13, 154, 14, 154, 15, 154, 16, 154, 17, 154, 18, 154, 19, 154, 20, 154, 21, 154, 22, 154, 23, 154, 24, 154, 25, 154, 26, 154, 27, 154, 28, 154, 29, 154, 30, 154, 31, 154, 32, 154, 33, 154, 34, 154, 35, 154, 36, 154, 37, 154, 38, 154, 39, 154, 40, 154, 41, 154, 42, 154, 43, 154, 44, 154, 45, 154, 46, 154, 47, 154, 48, 154, 49, 154, 50, 154, 51, 154, 52, 154, 53, 154, 54, 154, 55, 154, 56, 154, 57, 154, 58, 154, 59, 154, 60, 154, 61, 154, 62, 154, 63, 154, 64, 154, 65, 154, 66, 154, 67, 154, 68, 154, 69, 154, 70, 154, 71, 154, 72, 154, 73, 154, 74, 154, 75, 154, 76, 154, 77, 154, 78, 154, 79, 154, 80, 154, 81, 154, 82, 154, 83, 154, 84, 154, 85, 154, 86, 154, 87, 154, 88, 154, 89, 154, 137, 152, 140, 152, 141, 152, 143, 152, 148, 152, 154, 152, 155, 152, 158, 152, 159, 152, 161, 152, 162, 152, 165, 152, 166, 152, 77, 134, 84, 134, 108, 134, 110, 134, 127, 134, 122, 134, 124, 134, 123, 134, 168, 134, 141, 134, 139, 134, 172, 134, 157, 134, 167, 134, 163, 134, 170, 134, 147, 134, 169, 134, 182, 134, 196, 134, 181, 134, 206, 134, 176, 134, 186, 134, 177, 134, 175, 134, 201, 134, 207, 134, 180, 134, 233, 134, 241, 134, 242, 134, 237, 134, 243, 134, 208, 134, 19, 135, 222, 134, 244, 134, 223, 134, 216, 134, 209, 134, 3, 135, 7, 135, 248, 134, 8, 135, 10, 135, 13, 135, 9, 135, 35, 135, 59, 135, 30, 135, 37, 135, 46, 135, 26, 135, 62, 135, 72, 135, 52, 135, 49, 135, 41, 135, 55, 135, 63, 135, 130, 135, 34, 135, 125, 135, 126, 135, 123, 135, 96, 135, 112, 135, 76, 135, 110, 135, 139, 135, 83, 135, 99, 135, 124, 135, 100, 135, 89, 135, 101, 135, 147, 135, 175, 135, 168, 135, 210, 135, 90, 154, 91, 154, 92, 154, 93, 154, 94, 154, 95, 154, 96, 154, 97, 154, 98, 154, 99, 154, 100, 154, 101, 154, 102, 154, 103, 154, 104, 154, 105, 154, 106, 154, 107, 154, 114, 154, 131, 154, 137, 154, 141, 154, 142, 154, 148, 154, 149, 154, 153, 154, 166, 154, 169, 154, 170, 154, 171, 154, 172, 154, 173, 154, 174, 154, 175, 154, 178, 154, 179, 154, 180, 154, 181, 154, 185, 154, 187, 154, 189, 154, 190, 154, 191, 154, 195, 154, 196, 154, 198, 154, 199, 154, 200, 154, 201, 154, 202, 154, 205, 154, 206, 154, 207, 154, 208, 154, 210, 154, 212, 154, 213, 154, 214, 154, 215, 154, 217, 154, 218, 154, 219, 154, 220, 154, 221, 154, 222, 154, 224, 154, 226, 154, 227, 154, 228, 154, 229, 154, 231, 154, 232, 154, 233, 154, 234, 154, 236, 154, 238, 154, 240, 154, 241, 154, 242, 154, 243, 154, 244, 154, 245, 154, 246, 154, 247, 154, 248, 154, 250, 154, 252, 154, 253, 154, 254, 154, 255, 154, 0, 155, 1, 155, 2, 155, 4, 155, 5, 155, 6, 155, 198, 135, 136, 135, 133, 135, 173, 135, 151, 135, 131, 135, 171, 135, 229, 135, 172, 135, 181, 135, 179, 135, 203, 135, 211, 135, 189, 135, 209, 135, 192, 135, 202, 135, 219, 135, 234, 135, 224, 135, 238, 135, 22, 136, 19, 136, 254, 135, 10, 136, 27, 136, 33, 136, 57, 136, 60, 136, 54, 127, 66, 127, 68, 127, 69, 127, 16, 130, 250, 122, 253, 122, 8, 123, 3, 123, 4, 123, 21, 123, 10, 123, 43, 123, 15, 123, 71, 123, 56, 123, 42, 123, 25, 123, 46, 123, 49, 123, 32, 123, 37, 123, 36, 123, 51, 123, 62, 123, 30, 123, 88, 123, 90, 123, 69, 123, 117, 123, 76, 123, 93, 123, 96, 123, 110, 123, 123, 123, 98, 123, 114, 123, 113, 123, 144, 123, 166, 123, 167, 123, 184, 123, 172, 123, 157, 123, 168, 123, 133, 123, 170, 123, 156, 123, 162, 123, 171, 123, 180, 123, 209, 123, 193, 123, 204, 123, 221, 123, 218, 123, 229, 123, 230, 123, 234, 123, 12, 124, 254, 123, 252, 123, 15, 124, 22, 124, 11, 124, 7, 155, 9, 155, 10, 155, 11, 155, 12, 155, 13, 155, 14, 155, 16, 155, 17, 155, 18, 155, 20, 155, 21, 155, 22, 155, 23, 155, 24, 155, 25, 155, 26, 155, 27, 155, 28, 155, 29, 155, 30, 155, 32, 155, 33, 155, 34, 155, 36, 155, 37, 155, 38, 155, 39, 155, 40, 155, 41, 155, 42, 155, 43, 155, 44, 155, 45, 155, 46, 155, 48, 155, 49, 155, 51, 155, 52, 155, 53, 155, 54, 155, 55, 155, 56, 155, 57, 155, 58, 155, 61, 155, 62, 155, 63, 155, 64, 155, 70, 155, 74, 155, 75, 155, 76, 155, 78, 155, 80, 155, 82, 155, 83, 155, 85, 155, 86, 155, 87, 155, 88, 155, 89, 155, 90, 155, 91, 155, 92, 155, 93, 155, 94, 155, 95, 155, 96, 155, 97, 155, 98, 155, 99, 155, 100, 155, 101, 155, 102, 155, 103, 155, 104, 155, 105, 155, 106, 155, 107, 155, 108, 155, 109, 155, 110, 155, 111, 155, 112, 155, 113, 155, 114, 155, 115, 155, 116, 155, 117, 155, 118, 155, 119, 155, 120, 155, 121, 155, 122, 155, 123, 155, 31, 124, 42, 124, 38, 124, 56, 124, 65, 124, 64, 124, 254, 129, 1, 130, 2, 130, 4, 130, 236, 129, 68, 136, 33, 130, 34, 130, 35, 130, 45, 130, 47, 130, 40, 130, 43, 130, 56, 130, 59, 130, 51, 130, 52, 130, 62, 130, 68, 130, 73, 130, 75, 130, 79, 130, 90, 130, 95, 130, 104, 130, 126, 136, 133, 136, 136, 136, 216, 136, 223, 136, 94, 137, 157, 127, 159, 127, 167, 127, 175, 127, 176, 127, 178, 127, 124, 124, 73, 101, 145, 124, 157, 124, 156, 124, 158, 124, 162, 124, 178, 124, 188, 124, 189, 124, 193, 124, 199, 124, 204, 124, 205, 124, 200, 124, 197, 124, 215, 124, 232, 124, 110, 130, 168, 102, 191, 127, 206, 127, 213, 127, 229, 127, 225, 127, 230, 127, 233, 127, 238, 127, 243, 127, 248, 124, 119, 125, 166, 125, 174, 125, 71, 126, 155, 126, 184, 158, 180, 158, 115, 141, 132, 141, 148, 141, 145, 141, 177, 141, 103, 141, 109, 141, 71, 140, 73, 140, 74, 145, 80, 145, 78, 145, 79, 145, 100, 145, 124, 155, 125, 155, 126, 155, 127, 155, 128, 155, 129, 155, 130, 155, 131, 155, 132, 155, 133, 155, 134, 155, 135, 155, 136, 155, 137, 155, 138, 155, 139, 155, 140, 155, 141, 155, 142, 155, 143, 155, 144, 155, 145, 155, 146, 155, 147, 155, 148, 155, 149, 155, 150, 155, 151, 155, 152, 155, 153, 155, 154, 155, 155, 155, 156, 155, 157, 155, 158, 155, 159, 155, 160, 155, 161, 155, 162, 155, 163, 155, 164, 155, 165, 155, 166, 155, 167, 155, 168, 155, 169, 155, 170, 155, 171, 155, 172, 155, 173, 155, 174, 155, 175, 155, 176, 155, 177, 155, 178, 155, 179, 155, 180, 155, 181, 155, 182, 155, 183, 155, 184, 155, 185, 155, 186, 155, 187, 155, 188, 155, 189, 155, 190, 155, 191, 155, 192, 155, 193, 155, 194, 155, 195, 155, 196, 155, 197, 155, 198, 155, 199, 155, 200, 155, 201, 155, 202, 155, 203, 155, 204, 155, 205, 155, 206, 155, 207, 155, 208, 155, 209, 155, 210, 155, 211, 155, 212, 155, 213, 155, 214, 155, 215, 155, 216, 155, 217, 155, 218, 155, 219, 155, 98, 145, 97, 145, 112, 145, 105, 145, 111, 145, 125, 145, 126, 145, 114, 145, 116, 145, 121, 145, 140, 145, 133, 145, 144, 145, 141, 145, 145, 145, 162, 145, 163, 145, 170, 145, 173, 145, 174, 145, 175, 145, 181, 145, 180, 145, 186, 145, 85, 140, 126, 158, 184, 141, 235, 141, 5, 142, 89, 142, 105, 142, 181, 141, 191, 141, 188, 141, 186, 141, 196, 141, 214, 141, 215, 141, 218, 141, 222, 141, 206, 141, 207, 141, 219, 141, 198, 141, 236, 141, 247, 141, 248, 141, 227, 141, 249, 141, 251, 141, 228, 141, 9, 142, 253, 141, 20, 142, 29, 142, 31, 142, 44, 142, 46, 142, 35, 142, 47, 142, 58, 142, 64, 142, 57, 142, 53, 142, 61, 142, 49, 142, 73, 142, 65, 142, 66, 142, 81, 142, 82, 142, 74, 142, 112, 142, 118, 142, 124, 142, 111, 142, 116, 142, 133, 142, 143, 142, 148, 142, 144, 142, 156, 142, 158, 142, 120, 140, 130, 140, 138, 140, 133, 140, 152, 140, 148, 140, 155, 101, 214, 137, 222, 137, 218, 137, 220, 137, 220, 155, 221, 155, 222, 155, 223, 155, 224, 155, 225, 155, 226, 155, 227, 155, 228, 155, 229, 155, 230, 155, 231, 155, 232, 155, 233, 155, 234, 155, 235, 155, 236, 155, 237, 155, 238, 155, 239, 155, 240, 155, 241, 155, 242, 155, 243, 155, 244, 155, 245, 155, 246, 155, 247, 155, 248, 155, 249, 155, 250, 155, 251, 155, 252, 155, 253, 155, 254, 155, 255, 155, 0, 156, 1, 156, 2, 156, 3, 156, 4, 156, 5, 156, 6, 156, 7, 156, 8, 156, 9, 156, 10, 156, 11, 156, 12, 156, 13, 156, 14, 156, 15, 156, 16, 156, 17, 156, 18, 156, 19, 156, 20, 156, 21, 156, 22, 156, 23, 156, 24, 156, 25, 156, 26, 156, 27, 156, 28, 156, 29, 156, 30, 156, 31, 156, 32, 156, 33, 156, 34, 156, 35, 156, 36, 156, 37, 156, 38, 156, 39, 156, 40, 156, 41, 156, 42, 156, 43, 156, 44, 156, 45, 156, 46, 156, 47, 156, 48, 156, 49, 156, 50, 156, 51, 156, 52, 156, 53, 156, 54, 156, 55, 156, 56, 156, 57, 156, 58, 156, 59, 156, 229, 137, 235, 137, 239, 137, 62, 138, 38, 139, 83, 151, 233, 150, 243, 150, 239, 150, 6, 151, 1, 151, 8, 151, 15, 151, 14, 151, 42, 151, 45, 151, 48, 151, 62, 151, 128, 159, 131, 159, 133, 159, 134, 159, 135, 159, 136, 159, 137, 159, 138, 159, 140, 159, 254, 158, 11, 159, 13, 159, 185, 150, 188, 150, 189, 150, 206, 150, 210, 150, 191, 119, 224, 150, 142, 146, 174, 146, 200, 146, 62, 147, 106, 147, 202, 147, 143, 147, 62, 148, 107, 148, 127, 156, 130, 156, 133, 156, 134, 156, 135, 156, 136, 156, 35, 122, 139, 156, 142, 156, 144, 156, 145, 156, 146, 156, 148, 156, 149, 156, 154, 156, 155, 156, 158, 156, 159, 156, 160, 156, 161, 156, 162, 156, 163, 156, 165, 156, 166, 156, 167, 156, 168, 156, 169, 156, 171, 156, 173, 156, 174, 156, 176, 156, 177, 156, 178, 156, 179, 156, 180, 156, 181, 156, 182, 156, 183, 156, 186, 156, 187, 156, 188, 156, 189, 156, 196, 156, 197, 156, 198, 156, 199, 156, 202, 156, 203, 156, 60, 156, 61, 156, 62, 156, 63, 156, 64, 156, 65, 156, 66, 156, 67, 156, 68, 156, 69, 156, 70, 156, 71, 156, 72, 156, 73, 156, 74, 156, 75, 156, 76, 156, 77, 156, 78, 156, 79, 156, 80, 156, 81, 156, 82, 156, 83, 156, 84, 156, 85, 156, 86, 156, 87, 156, 88, 156, 89, 156, 90, 156, 91, 156, 92, 156, 93, 156, 94, 156, 95, 156, 96, 156, 97, 156, 98, 156, 99, 156, 100, 156, 101, 156, 102, 156, 103, 156, 104, 156, 105, 156, 106, 156, 107, 156, 108, 156, 109, 156, 110, 156, 111, 156, 112, 156, 113, 156, 114, 156, 115, 156, 116, 156, 117, 156, 118, 156, 119, 156, 120, 156, 121, 156, 122, 156, 123, 156, 125, 156, 126, 156, 128, 156, 131, 156, 132, 156, 137, 156, 138, 156, 140, 156, 143, 156, 147, 156, 150, 156, 151, 156, 152, 156, 153, 156, 157, 156, 170, 156, 172, 156, 175, 156, 185, 156, 190, 156, 191, 156, 192, 156, 193, 156, 194, 156, 200, 156, 201, 156, 209, 156, 210, 156, 218, 156, 219, 156, 224, 156, 225, 156, 204, 156, 205, 156, 206, 156, 207, 156, 208, 156, 211, 156, 212, 156, 213, 156, 215, 156, 216, 156, 217, 156, 220, 156, 221, 156, 223, 156, 226, 156, 124, 151, 133, 151, 145, 151, 146, 151, 148, 151, 175, 151, 171, 151, 163, 151, 178, 151, 180, 151, 177, 154, 176, 154, 183, 154, 88, 158, 182, 154, 186, 154, 188, 154, 193, 154, 192, 154, 197, 154, 194, 154, 203, 154, 204, 154, 209, 154, 69, 155, 67, 155, 71, 155, 73, 155, 72, 155, 77, 155, 81, 155, 232, 152, 13, 153, 46, 153, 85, 153, 84, 153, 223, 154, 225, 154, 230, 154, 239, 154, 235, 154, 251, 154, 237, 154, 249, 154, 8, 155, 15, 155, 19, 155, 31, 155, 35, 155, 189, 158, 190, 158, 59, 126, 130, 158, 135, 158, 136, 158, 139, 158, 146, 158, 214, 147, 157, 158, 159, 158, 219, 158, 220, 158, 221, 158, 224, 158, 223, 158, 226, 158, 233, 158, 231, 158, 229, 158, 234, 158, 239, 158, 34, 159, 44, 159, 47, 159, 57, 159, 55, 159, 61, 159, 62, 159, 68, 159, 227, 156, 228, 156, 229, 156, 230, 156, 231, 156, 232, 156, 233, 156, 234, 156, 235, 156, 236, 156, 237, 156, 238, 156, 239, 156, 240, 156, 241, 156, 242, 156, 243, 156, 244, 156, 245, 156, 246, 156, 247, 156, 248, 156, 249, 156, 250, 156, 251, 156, 252, 156, 253, 156, 254, 156, 255, 156, 0, 157, 1, 157, 2, 157, 3, 157, 4, 157, 5, 157, 6, 157, 7, 157, 8, 157, 9, 157, 10, 157, 11, 157, 12, 157, 13, 157, 14, 157, 15, 157, 16, 157, 17, 157, 18, 157, 19, 157, 20, 157, 21, 157, 22, 157, 23, 157, 24, 157, 25, 157, 26, 157, 27, 157, 28, 157, 29, 157, 30, 157, 31, 157, 32, 157, 33, 157, 34, 157, 35, 157, 36, 157, 37, 157, 38, 157, 39, 157, 40, 157, 41, 157, 42, 157, 43, 157, 44, 157, 45, 157, 46, 157, 47, 157, 48, 157, 49, 157, 50, 157, 51, 157, 52, 157, 53, 157, 54, 157, 55, 157, 56, 157, 57, 157, 58, 157, 59, 157, 60, 157, 61, 157, 62, 157, 63, 157, 64, 157, 65, 157, 66, 157, 52, 226, 53, 226, 54, 226, 55, 226, 56, 226, 57, 226, 58, 226, 59, 226, 60, 226, 61, 226, 62, 226, 63, 226, 64, 226, 65, 226, 66, 226, 67, 226, 68, 226, 69, 226, 70, 226, 71, 226, 72, 226, 73, 226, 74, 226, 75, 226, 76, 226, 77, 226, 78, 226, 79, 226, 80, 226, 81, 226, 82, 226, 83, 226, 84, 226, 85, 226, 86, 226, 87, 226, 88, 226, 89, 226, 90, 226, 91, 226, 92, 226, 93, 226, 94, 226, 95, 226, 96, 226, 97, 226, 98, 226, 99, 226, 100, 226, 101, 226, 102, 226, 103, 226, 104, 226, 105, 226, 106, 226, 107, 226, 108, 226, 109, 226, 110, 226, 111, 226, 112, 226, 113, 226, 114, 226, 115, 226, 116, 226, 117, 226, 118, 226, 119, 226, 120, 226, 121, 226, 122, 226, 123, 226, 124, 226, 125, 226, 126, 226, 127, 226, 128, 226, 129, 226, 130, 226, 131, 226, 132, 226, 133, 226, 134, 226, 135, 226, 136, 226, 137, 226, 138, 226, 139, 226, 140, 226, 141, 226, 142, 226, 143, 226, 144, 226, 145, 226, 67, 157, 68, 157, 69, 157, 70, 157, 71, 157, 72, 157, 73, 157, 74, 157, 75, 157, 76, 157, 77, 157, 78, 157, 79, 157, 80, 157, 81, 157, 82, 157, 83, 157, 84, 157, 85, 157, 86, 157, 87, 157, 88, 157, 89, 157, 90, 157, 91, 157, 92, 157, 93, 157, 94, 157, 95, 157, 96, 157, 97, 157, 98, 157, 99, 157, 100, 157, 101, 157, 102, 157, 103, 157, 104, 157, 105, 157, 106, 157, 107, 157, 108, 157, 109, 157, 110, 157, 111, 157, 112, 157, 113, 157, 114, 157, 115, 157, 116, 157, 117, 157, 118, 157, 119, 157, 120, 157, 121, 157, 122, 157, 123, 157, 124, 157, 125, 157, 126, 157, 127, 157, 128, 157, 129, 157, 130, 157, 131, 157, 132, 157, 133, 157, 134, 157, 135, 157, 136, 157, 137, 157, 138, 157, 139, 157, 140, 157, 141, 157, 142, 157, 143, 157, 144, 157, 145, 157, 146, 157, 147, 157, 148, 157, 149, 157, 150, 157, 151, 157, 152, 157, 153, 157, 154, 157, 155, 157, 156, 157, 157, 157, 158, 157, 159, 157, 160, 157, 161, 157, 162, 157, 146, 226, 147, 226, 148, 226, 149, 226, 150, 226, 151, 226, 152, 226, 153, 226, 154, 226, 155, 226, 156, 226, 157, 226, 158, 226, 159, 226, 160, 226, 161, 226, 162, 226, 163, 226, 164, 226, 165, 226, 166, 226, 167, 226, 168, 226, 169, 226, 170, 226, 171, 226, 172, 226, 173, 226, 174, 226, 175, 226, 176, 226, 177, 226, 178, 226, 179, 226, 180, 226, 181, 226, 182, 226, 183, 226, 184, 226, 185, 226, 186, 226, 187, 226, 188, 226, 189, 226, 190, 226, 191, 226, 192, 226, 193, 226, 194, 226, 195, 226, 196, 226, 197, 226, 198, 226, 199, 226, 200, 226, 201, 226, 202, 226, 203, 226, 204, 226, 205, 226, 206, 226, 207, 226, 208, 226, 209, 226, 210, 226, 211, 226, 212, 226, 213, 226, 214, 226, 215, 226, 216, 226, 217, 226, 218, 226, 219, 226, 220, 226, 221, 226, 222, 226, 223, 226, 224, 226, 225, 226, 226, 226, 227, 226, 228, 226, 229, 226, 230, 226, 231, 226, 232, 226, 233, 226, 234, 226, 235, 226, 236, 226, 237, 226, 238, 226, 239, 226, 163, 157, 164, 157, 165, 157, 166, 157, 167, 157, 168, 157, 169, 157, 170, 157, 171, 157, 172, 157, 173, 157, 174, 157, 175, 157, 176, 157, 177, 157, 178, 157, 179, 157, 180, 157, 181, 157, 182, 157, 183, 157, 184, 157, 185, 157, 186, 157, 187, 157, 188, 157, 189, 157, 190, 157, 191, 157, 192, 157, 193, 157, 194, 157, 195, 157, 196, 157, 197, 157, 198, 157, 199, 157, 200, 157, 201, 157, 202, 157, 203, 157, 204, 157, 205, 157, 206, 157, 207, 157, 208, 157, 209, 157, 210, 157, 211, 157, 212, 157, 213, 157, 214, 157, 215, 157, 216, 157, 217, 157, 218, 157, 219, 157, 220, 157, 221, 157, 222, 157, 223, 157, 224, 157, 225, 157, 226, 157, 227, 157, 228, 157, 229, 157, 230, 157, 231, 157, 232, 157, 233, 157, 234, 157, 235, 157, 236, 157, 237, 157, 238, 157, 239, 157, 240, 157, 241, 157, 242, 157, 243, 157, 244, 157, 245, 157, 246, 157, 247, 157, 248, 157, 249, 157, 250, 157, 251, 157, 252, 157, 253, 157, 254, 157, 255, 157, 0, 158, 1, 158, 2, 158, 240, 226, 241, 226, 242, 226, 243, 226, 244, 226, 245, 226, 246, 226, 247, 226, 248, 226, 249, 226, 250, 226, 251, 226, 252, 226, 253, 226, 254, 226, 255, 226, 0, 227, 1, 227, 2, 227, 3, 227, 4, 227, 5, 227, 6, 227, 7, 227, 8, 227, 9, 227, 10, 227, 11, 227, 12, 227, 13, 227, 14, 227, 15, 227, 16, 227, 17, 227, 18, 227, 19, 227, 20, 227, 21, 227, 22, 227, 23, 227, 24, 227, 25, 227, 26, 227, 27, 227, 28, 227, 29, 227, 30, 227, 31, 227, 32, 227, 33, 227, 34, 227, 35, 227, 36, 227, 37, 227, 38, 227, 39, 227, 40, 227, 41, 227, 42, 227, 43, 227, 44, 227, 45, 227, 46, 227, 47, 227, 48, 227, 49, 227, 50, 227, 51, 227, 52, 227, 53, 227, 54, 227, 55, 227, 56, 227, 57, 227, 58, 227, 59, 227, 60, 227, 61, 227, 62, 227, 63, 227, 64, 227, 65, 227, 66, 227, 67, 227, 68, 227, 69, 227, 70, 227, 71, 227, 72, 227, 73, 227, 74, 227, 75, 227, 76, 227, 77, 227, 3, 158, 4, 158, 5, 158, 6, 158, 7, 158, 8, 158, 9, 158, 10, 158, 11, 158, 12, 158, 13, 158, 14, 158, 15, 158, 16, 158, 17, 158, 18, 158, 19, 158, 20, 158, 21, 158, 22, 158, 23, 158, 24, 158, 25, 158, 26, 158, 27, 158, 28, 158, 29, 158, 30, 158, 36, 158, 39, 158, 46, 158, 48, 158, 52, 158, 59, 158, 60, 158, 64, 158, 77, 158, 80, 158, 82, 158, 83, 158, 84, 158, 86, 158, 89, 158, 93, 158, 95, 158, 96, 158, 97, 158, 98, 158, 101, 158, 110, 158, 111, 158, 114, 158, 116, 158, 117, 158, 118, 158, 119, 158, 120, 158, 121, 158, 122, 158, 123, 158, 124, 158, 125, 158, 128, 158, 129, 158, 131, 158, 132, 158, 133, 158, 134, 158, 137, 158, 138, 158, 140, 158, 141, 158, 142, 158, 143, 158, 144, 158, 145, 158, 148, 158, 149, 158, 150, 158, 151, 158, 152, 158, 153, 158, 154, 158, 155, 158, 156, 158, 158, 158, 160, 158, 161, 158, 162, 158, 163, 158, 164, 158, 165, 158, 167, 158, 168, 158, 169, 158, 170, 158, 78, 227, 79, 227, 80, 227, 81, 227, 82, 227, 83, 227, 84, 227, 85, 227, 86, 227, 87, 227, 88, 227, 89, 227, 90, 227, 91, 227, 92, 227, 93, 227, 94, 227, 95, 227, 96, 227, 97, 227, 98, 227, 99, 227, 100, 227, 101, 227, 102, 227, 103, 227, 104, 227, 105, 227, 106, 227, 107, 227, 108, 227, 109, 227, 110, 227, 111, 227, 112, 227, 113, 227, 114, 227, 115, 227, 116, 227, 117, 227, 118, 227, 119, 227, 120, 227, 121, 227, 122, 227, 123, 227, 124, 227, 125, 227, 126, 227, 127, 227, 128, 227, 129, 227, 130, 227, 131, 227, 132, 227, 133, 227, 134, 227, 135, 227, 136, 227, 137, 227, 138, 227, 139, 227, 140, 227, 141, 227, 142, 227, 143, 227, 144, 227, 145, 227, 146, 227, 147, 227, 148, 227, 149, 227, 150, 227, 151, 227, 152, 227, 153, 227, 154, 227, 155, 227, 156, 227, 157, 227, 158, 227, 159, 227, 160, 227, 161, 227, 162, 227, 163, 227, 164, 227, 165, 227, 166, 227, 167, 227, 168, 227, 169, 227, 170, 227, 171, 227, 171, 158, 172, 158, 173, 158, 174, 158, 175, 158, 176, 158, 177, 158, 178, 158, 179, 158, 181, 158, 182, 158, 183, 158, 185, 158, 186, 158, 188, 158, 191, 158, 192, 158, 193, 158, 194, 158, 195, 158, 197, 158, 198, 158, 199, 158, 200, 158, 202, 158, 203, 158, 204, 158, 208, 158, 210, 158, 211, 158, 213, 158, 214, 158, 215, 158, 217, 158, 218, 158, 222, 158, 225, 158, 227, 158, 228, 158, 230, 158, 232, 158, 235, 158, 236, 158, 237, 158, 238, 158, 240, 158, 241, 158, 242, 158, 243, 158, 244, 158, 245, 158, 246, 158, 247, 158, 248, 158, 250, 158, 253, 158, 255, 158, 0, 159, 1, 159, 2, 159, 3, 159, 4, 159, 5, 159, 6, 159, 7, 159, 8, 159, 9, 159, 10, 159, 12, 159, 15, 159, 17, 159, 18, 159, 20, 159, 21, 159, 22, 159, 24, 159, 26, 159, 27, 159, 28, 159, 29, 159, 30, 159, 31, 159, 33, 159, 35, 159, 36, 159, 37, 159, 38, 159, 39, 159, 40, 159, 41, 159, 42, 159, 43, 159, 45, 159, 46, 159, 48, 159, 49, 159, 172, 227, 173, 227, 174, 227, 175, 227, 176, 227, 177, 227, 178, 227, 179, 227, 180, 227, 181, 227, 182, 227, 183, 227, 184, 227, 185, 227, 186, 227, 187, 227, 188, 227, 189, 227, 190, 227, 191, 227, 192, 227, 193, 227, 194, 227, 195, 227, 196, 227, 197, 227, 198, 227, 199, 227, 200, 227, 201, 227, 202, 227, 203, 227, 204, 227, 205, 227, 206, 227, 207, 227, 208, 227, 209, 227, 210, 227, 211, 227, 212, 227, 213, 227, 214, 227, 215, 227, 216, 227, 217, 227, 218, 227, 219, 227, 220, 227, 221, 227, 222, 227, 223, 227, 224, 227, 225, 227, 226, 227, 227, 227, 228, 227, 229, 227, 230, 227, 231, 227, 232, 227, 233, 227, 234, 227, 235, 227, 236, 227, 237, 227, 238, 227, 239, 227, 240, 227, 241, 227, 242, 227, 243, 227, 244, 227, 245, 227, 246, 227, 247, 227, 248, 227, 249, 227, 250, 227, 251, 227, 252, 227, 253, 227, 254, 227, 255, 227, 0, 228, 1, 228, 2, 228, 3, 228, 4, 228, 5, 228, 6, 228, 7, 228, 8, 228, 9, 228, 50, 159, 51, 159, 52, 159, 53, 159, 54, 159, 56, 159, 58, 159, 60, 159, 63, 159, 64, 159, 65, 159, 66, 159, 67, 159, 69, 159, 70, 159, 71, 159, 72, 159, 73, 159, 74, 159, 75, 159, 76, 159, 77, 159, 78, 159, 79, 159, 82, 159, 83, 159, 84, 159, 85, 159, 86, 159, 87, 159, 88, 159, 89, 159, 90, 159, 91, 159, 92, 159, 93, 159, 94, 159, 95, 159, 96, 159, 97, 159, 98, 159, 99, 159, 100, 159, 101, 159, 102, 159, 103, 159, 104, 159, 105, 159, 106, 159, 107, 159, 108, 159, 109, 159, 110, 159, 111, 159, 112, 159, 113, 159, 114, 159, 115, 159, 116, 159, 117, 159, 118, 159, 119, 159, 120, 159, 121, 159, 122, 159, 123, 159, 124, 159, 125, 159, 126, 159, 129, 159, 130, 159, 141, 159, 142, 159, 143, 159, 144, 159, 145, 159, 146, 159, 147, 159, 148, 159, 149, 159, 150, 159, 151, 159, 152, 159, 156, 159, 157, 159, 158, 159, 161, 159, 162, 159, 163, 159, 164, 159, 165, 159, 44, 249, 121, 249, 149, 249, 231, 249, 241, 249, 10, 228, 11, 228, 12, 228, 13, 228, 14, 228, 15, 228, 16, 228, 17, 228, 18, 228, 19, 228, 20, 228, 21, 228, 22, 228, 23, 228, 24, 228, 25, 228, 26, 228, 27, 228, 28, 228, 29, 228, 30, 228, 31, 228, 32, 228, 33, 228, 34, 228, 35, 228, 36, 228, 37, 228, 38, 228, 39, 228, 40, 228, 41, 228, 42, 228, 43, 228, 44, 228, 45, 228, 46, 228, 47, 228, 48, 228, 49, 228, 50, 228, 51, 228, 52, 228, 53, 228, 54, 228, 55, 228, 56, 228, 57, 228, 58, 228, 59, 228, 60, 228, 61, 228, 62, 228, 63, 228, 64, 228, 65, 228, 66, 228, 67, 228, 68, 228, 69, 228, 70, 228, 71, 228, 72, 228, 73, 228, 74, 228, 75, 228, 76, 228, 77, 228, 78, 228, 79, 228, 80, 228, 81, 228, 82, 228, 83, 228, 84, 228, 85, 228, 86, 228, 87, 228, 88, 228, 89, 228, 90, 228, 91, 228, 92, 228, 93, 228, 94, 228, 95, 228, 96, 228, 97, 228, 98, 228, 99, 228, 100, 228, 101, 228, 102, 228, 103, 228, 12, 250, 13, 250, 14, 250, 15, 250, 17, 250, 19, 250, 20, 250, 24, 250, 31, 250, 32, 250, 33, 250, 35, 250, 36, 250, 39, 250, 40, 250, 41, 250, 129, 46, 22, 232, 23, 232, 24, 232, 132, 46, 115, 52, 71, 52, 136, 46, 139, 46, 30, 232, 158, 53, 26, 54, 14, 54, 140, 46, 151, 46, 110, 57, 24, 57, 38, 232, 207, 57, 223, 57, 115, 58, 208, 57, 43, 232, 44, 232, 78, 59, 110, 60, 224, 60, 167, 46, 49, 232, 50, 232, 170, 46, 86, 64, 95, 65, 174, 46, 55, 67, 179, 46, 182, 46, 183, 46, 59, 232, 177, 67, 172, 67, 187, 46, 221, 67, 214, 68, 97, 70, 76, 70, 67, 232, 35, 71, 41, 71, 124, 71, 141, 71, 202, 46, 71, 73, 122, 73, 125, 73, 130, 73, 131, 73, 133, 73, 134, 73, 159, 73, 155, 73, 183, 73, 182, 73, 84, 232, 85, 232, 163, 76, 159, 76, 160, 76, 161, 76, 119, 76, 162, 76, 19, 77, 20, 77, 21, 77, 22, 77, 23, 77, 24, 77, 25, 77, 174, 77, 100, 232, 104, 228, 105, 228, 106, 228, 107, 228, 108, 228, 109, 228, 110, 228, 111, 228, 112, 228, 113, 228, 114, 228, 115, 228, 116, 228, 117, 228, 118, 228, 119, 228, 120, 228, 121, 228, 122, 228, 123, 228, 124, 228, 125, 228, 126, 228, 127, 228, 128, 228, 129, 228, 130, 228, 131, 228, 132, 228, 133, 228, 134, 228, 135, 228, 136, 228, 137, 228, 138, 228, 139, 228, 140, 228, 141, 228, 142, 228, 143, 228, 144, 228, 145, 228, 146, 228, 147, 228, 148, 228, 149, 228, 150, 228, 151, 228, 152, 228, 153, 228, 154, 228, 155, 228, 156, 228, 157, 228, 158, 228, 159, 228, 160, 228, 161, 228, 162, 228, 163, 228, 164, 228, 165, 228, 166, 228, 167, 228, 168, 228, 169, 228, 170, 228, 171, 228, 172, 228, 173, 228, 174, 228, 175, 228, 176, 228, 177, 228, 178, 228, 179, 228, 180, 228, 181, 228, 182, 228, 183, 228, 184, 228, 185, 228, 186, 228, 187, 228, 188, 228, 189, 228, 190, 228, 191, 228, 192, 228, 193, 228, 194, 228, 195, 228, 196, 228, 197, 228, 240, 67, 50, 76, 3, 70, 166, 69, 120, 69, 103, 114, 119, 77, 179, 69, 177, 124, 226, 76, 197, 124, 149, 59, 54, 71, 68, 71, 71, 76, 64, 76, 191, 66, 23, 54, 82, 115, 139, 110, 210, 112, 87, 76, 81, 163, 79, 71, 218, 69, 133, 76, 108, 124, 7, 77, 164, 74, 161, 70, 35, 107, 37, 114, 84, 90, 99, 26, 6, 62, 97, 63, 77, 102, 251, 86, 0, 0, 149, 125, 29, 89, 185, 139, 244, 61, 52, 151, 239, 123, 219, 91, 94, 29, 164, 90, 37, 54, 176, 158, 209, 90, 183, 91, 252, 92, 110, 103, 147, 133, 69, 153, 97, 116, 157, 116, 117, 56, 83, 29, 158, 54, 33, 96, 236, 62, 222, 88, 245, 58, 252, 122, 151, 159, 97, 65, 13, 137, 234, 49, 138, 10, 94, 50, 10, 67, 132, 132, 150, 159, 47, 148, 48, 73, 19, 134, 150, 88, 74, 151, 24, 146, 208, 121, 50, 122, 96, 102, 41, 106, 157, 136, 76, 116, 197, 123, 130, 103, 44, 122, 79, 82, 70, 144, 230, 52, 196, 115, 185, 93, 198, 116, 199, 159, 179, 87, 47, 73, 76, 84, 49, 65, 142, 54, 24, 88, 114, 122, 101, 123, 143, 139, 174, 70, 136, 110, 129, 65, 153, 93, 174, 123, 188, 36, 200, 159, 193, 36, 201, 36, 204, 36, 201, 159, 4, 133, 187, 53, 180, 64, 202, 159, 225, 68, 255, 173, 193, 98, 110, 112, 203, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 49, 193, 49, 194, 49, 195, 49, 196, 49, 12, 1, 197, 49, 209, 0, 205, 0, 198, 49, 199, 49, 203, 0, 232, 31, 200, 49, 202, 0, 201, 49, 202, 49, 203, 49, 204, 49, 14, 1, 205, 49, 206, 49, 0, 1, 193, 0, 205, 1, 192, 0, 18, 1, 201, 0, 26, 1, 200, 0, 76, 1, 211, 0, 209, 1, 210, 0, 0, 220, 190, 30, 4, 220, 192, 30, 202, 0, 1, 1, 225, 0, 206, 1, 224, 0, 81, 2, 19, 1, 233, 0, 27, 1, 232, 0, 43, 1, 237, 0, 208, 1, 236, 0, 77, 1, 243, 0, 210, 1, 242, 0, 107, 1, 250, 0, 212, 1, 249, 0, 214, 1, 216, 1, 218, 1, 220, 1, 252, 0, 8, 220, 191, 30, 12, 220, 193, 30, 234, 0, 97, 2, 218, 35, 219, 35 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 66292 ); /* memory initializer */ allocate( [ 169, 163, 69, 17, 0, 0, 10, 101, 0, 0, 0, 0, 61, 78, 221, 110, 78, 157, 223, 145, 0, 0, 0, 0, 53, 119, 145, 100, 26, 79, 40, 79, 168, 79, 86, 81, 116, 81, 156, 81, 228, 81, 161, 82, 168, 82, 59, 83, 78, 83, 209, 83, 216, 83, 226, 86, 240, 88, 4, 89, 7, 89, 50, 89, 52, 89, 102, 91, 158, 91, 159, 91, 154, 92, 134, 94, 59, 96, 137, 101, 254, 103, 4, 104, 101, 104, 78, 109, 188, 112, 53, 117, 164, 126, 172, 126, 186, 126, 199, 126, 207, 126, 223, 126, 6, 127, 55, 127, 122, 130, 207, 130, 111, 131, 198, 137, 190, 139, 226, 139, 102, 143, 103, 143, 110, 143, 17, 116, 252, 124, 205, 125, 70, 105, 201, 122, 39, 82, 0, 0, 0, 0, 0, 0, 0, 0, 140, 145, 184, 120, 94, 145, 188, 128, 0, 0, 11, 141, 246, 128, 231, 9, 0, 0, 0, 0, 159, 128, 199, 158, 205, 76, 201, 157, 12, 158, 62, 76, 246, 157, 14, 112, 10, 158, 51, 161, 193, 53, 0, 0, 154, 110, 62, 130, 25, 117, 0, 0, 17, 73, 108, 154, 143, 154, 153, 159, 135, 121, 108, 132, 202, 29, 208, 5, 230, 42, 36, 78, 129, 78, 128, 78, 135, 78, 191, 78, 235, 78, 55, 79, 76, 52, 189, 79, 72, 62, 3, 80, 136, 80, 125, 52, 147, 52, 165, 52, 134, 81, 5, 89, 219, 81, 252, 81, 5, 82, 137, 78, 121, 82, 144, 82, 39, 83, 199, 53, 169, 83, 81, 53, 176, 83, 83, 53, 194, 83, 35, 84, 109, 53, 114, 53, 129, 54, 147, 84, 163, 84, 180, 84, 185, 84, 208, 84, 239, 84, 24, 85, 35, 85, 40, 85, 152, 53, 63, 85, 165, 53, 191, 53, 215, 85, 197, 53, 132, 125, 37, 85, 0, 0, 66, 12, 21, 13, 43, 81, 144, 85, 198, 44, 236, 57, 65, 3, 70, 142, 184, 77, 229, 148, 83, 64, 190, 128, 122, 119, 56, 44, 52, 58, 213, 71, 93, 129, 242, 105, 234, 77, 221, 100, 124, 13, 180, 15, 213, 12, 244, 16, 141, 100, 126, 142, 150, 14, 11, 12, 100, 15, 169, 44, 86, 130, 211, 68, 0, 0, 70, 13, 77, 154, 233, 128, 244, 71, 167, 78, 194, 44, 178, 154, 103, 58, 244, 149, 237, 63, 6, 53, 199, 82, 212, 151, 200, 120, 68, 45, 110, 157, 21, 152, 0, 0, 217, 67, 165, 96, 180, 100, 227, 84, 76, 45, 202, 43, 119, 16, 251, 57, 111, 16, 218, 102, 22, 103, 160, 121, 234, 100, 82, 80, 67, 12, 104, 142, 161, 33, 76, 139, 49, 7, 0, 0, 11, 72, 169, 1, 250, 63, 115, 88, 141, 45, 0, 0, 200, 69, 252, 4, 151, 96, 76, 15, 150, 13, 121, 85, 187, 64, 186, 67, 0, 0, 180, 74, 102, 42, 157, 16, 170, 129, 245, 152, 156, 13, 121, 99, 254, 57, 117, 39, 192, 141, 161, 86, 124, 100, 67, 62, 0, 0, 1, 166, 9, 14, 207, 42, 201, 44, 0, 0, 200, 16, 194, 57, 146, 57, 6, 58, 155, 130, 120, 53, 73, 94, 199, 32, 82, 86, 49, 15, 178, 44, 32, 151, 188, 52, 61, 108, 59, 78, 0, 0, 0, 0, 116, 117, 139, 46, 8, 34, 91, 166, 205, 140, 122, 14, 52, 12, 28, 104, 147, 127, 207, 16, 3, 40, 57, 41, 251, 53, 227, 81, 140, 14, 141, 15, 170, 14, 147, 63, 48, 15, 71, 13, 79, 17, 76, 14, 0, 0, 171, 14, 169, 11, 72, 13, 192, 16, 61, 17, 249, 63, 150, 38, 50, 100, 173, 15, 244, 51, 57, 118, 206, 43, 126, 13, 127, 13, 81, 44, 85, 44, 24, 58, 152, 14, 199, 16, 46, 15, 50, 166, 80, 107, 210, 140, 153, 141, 202, 140, 170, 149, 204, 84, 196, 130, 185, 85, 0, 0, 195, 158, 38, 156, 182, 154, 94, 119, 238, 45, 64, 113, 109, 129, 236, 128, 28, 92, 114, 101, 52, 129, 151, 55, 95, 83, 189, 128, 182, 145, 250, 14, 15, 14, 119, 14, 251, 14, 221, 53, 235, 77, 9, 54, 214, 12, 175, 86, 181, 39, 201, 16, 16, 14, 120, 14, 120, 16, 72, 17, 7, 130, 85, 20, 121, 14, 80, 78, 164, 45, 84, 90, 29, 16, 30, 16, 245, 16, 246, 16, 156, 87, 17, 14, 148, 118, 205, 130, 181, 15, 123, 14, 126, 81, 3, 55, 182, 15, 128, 17, 216, 82, 189, 162, 218, 73, 58, 24, 119, 65, 124, 130, 153, 88, 104, 82, 26, 54, 61, 87, 178, 123, 104, 91, 0, 72, 44, 75, 39, 159, 231, 73, 31, 156, 141, 155, 116, 91, 61, 49, 251, 85, 242, 53, 137, 86, 40, 78, 2, 89, 193, 27, 120, 248, 81, 151, 134, 0, 91, 78, 187, 78, 62, 53, 35, 92, 81, 95, 196, 95, 250, 56, 76, 98, 53, 101, 122, 107, 53, 108, 58, 108, 108, 112, 43, 114, 44, 78, 173, 114, 233, 72, 82, 127, 59, 121, 249, 124, 83, 127, 106, 98, 193, 52, 0, 0, 75, 99, 2, 128, 128, 128, 18, 102, 81, 105, 93, 83, 100, 136, 193, 137, 178, 120, 160, 139, 29, 141, 133, 148, 120, 149, 127, 149, 232, 149, 15, 142, 230, 151, 117, 152, 206, 152, 222, 152, 99, 153, 16, 152, 124, 156, 31, 158, 196, 158, 111, 107, 7, 249, 55, 78, 135, 0, 29, 150, 55, 98, 162, 148, 0, 0, 59, 80, 254, 109, 115, 156, 166, 159, 201, 61, 143, 136, 78, 65, 119, 112, 245, 92, 32, 75, 205, 81, 89, 53, 48, 93, 34, 97, 50, 138, 167, 143, 246, 145, 145, 113, 25, 103, 186, 115, 129, 50, 7, 161, 139, 60, 128, 25, 16, 75, 228, 120, 2, 116, 174, 81, 15, 135, 9, 64, 99, 106, 186, 162, 35, 66, 15, 134, 111, 10, 42, 122, 71, 153, 234, 138, 85, 151, 77, 112, 36, 83, 126, 32, 244, 147, 217, 118, 227, 137, 167, 159, 221, 119, 163, 78, 240, 79, 188, 80, 47, 78, 23, 79, 168, 159, 52, 84, 139, 125, 146, 88, 208, 88, 182, 29, 146, 94, 153, 94, 194, 95, 18, 39, 139, 101, 249, 51, 25, 105, 67, 106, 99, 60, 255, 108, 0, 0, 0, 114, 5, 69, 140, 115, 219, 62, 19, 74, 21, 91, 185, 116, 131, 139, 164, 92, 149, 86, 147, 122, 236, 123, 195, 124, 108, 126, 248, 130, 151, 133, 169, 159, 144, 136, 170, 159, 185, 142, 171, 159, 207, 143, 95, 133, 224, 153, 33, 146, 172, 159, 185, 141, 63, 20, 113, 64, 162, 66, 26, 90, 0, 0, 0, 0, 0, 0, 104, 152, 107, 103, 118, 66, 61, 87, 0, 0, 214, 133, 123, 73, 191, 130, 13, 113, 129, 76, 116, 109, 123, 93, 21, 107, 190, 111, 173, 159, 174, 159, 150, 91, 175, 159, 231, 102, 91, 126, 87, 110, 202, 121, 136, 61, 195, 68, 86, 50, 150, 39, 154, 67, 54, 69, 0, 0, 213, 92, 26, 59, 249, 138, 120, 92, 18, 61, 81, 53, 120, 93, 178, 159, 87, 113, 88, 69, 236, 64, 35, 30, 119, 76, 120, 57, 74, 52, 164, 1, 65, 108, 204, 138, 180, 79, 57, 2, 191, 89, 108, 129, 86, 152, 250, 152, 59, 95, 159, 11, 0, 0, 193, 33, 109, 137, 2, 65, 187, 70, 121, 144, 7, 63, 179, 159, 181, 161, 248, 64, 214, 55, 247, 70, 70, 108, 124, 65, 178, 134, 255, 115, 109, 69, 212, 56, 154, 84, 97, 69, 27, 69, 137, 77, 123, 76, 118, 77, 234, 69, 200, 63, 15, 75, 97, 54, 222, 68, 189, 68, 237, 65, 62, 93, 72, 93, 86, 93, 252, 61, 15, 56, 164, 93, 185, 93, 32, 56, 56, 56, 66, 94, 189, 94, 37, 95, 131, 95, 8, 57, 20, 57, 63, 57, 77, 57, 215, 96, 61, 97, 229, 92, 137, 57, 183, 97, 185, 97, 207, 97, 184, 57, 44, 98, 144, 98, 229, 98, 24, 99, 248, 57, 177, 86, 3, 58, 226, 99, 251, 99, 7, 100, 90, 100, 75, 58, 192, 100, 21, 93, 33, 86, 159, 159, 151, 58, 134, 101, 189, 58, 255, 101, 83, 102, 242, 58, 146, 102, 34, 59, 22, 103, 66, 59, 164, 103, 0, 104, 88, 59, 74, 104, 132, 104, 114, 59, 113, 59, 123, 59, 9, 105, 67, 105, 92, 114, 100, 105, 159, 105, 133, 105, 188, 59, 214, 105, 221, 59, 101, 106, 116, 106, 113, 106, 130, 106, 236, 59, 153, 106, 242, 59, 171, 106, 181, 106, 212, 106, 246, 106, 129, 107, 193, 107, 234, 107, 117, 108, 170, 108, 203, 60, 2, 109, 6, 109, 38, 109, 129, 109, 239, 60, 164, 109, 177, 109, 21, 110, 24, 110, 41, 110, 134, 110, 192, 137, 187, 110, 226, 110, 218, 110, 127, 159, 232, 110, 233, 110, 36, 111, 52, 111, 70, 61, 65, 63, 129, 111, 190, 111, 106, 61, 117, 61, 183, 113, 153, 92, 138, 61, 44, 112, 145, 61, 80, 112, 84, 112, 111, 112, 127, 112, 137, 112, 37, 3, 193, 67, 241, 53, 216, 14, 215, 62, 190, 87, 211, 110, 62, 113, 224, 87, 78, 54, 162, 105, 233, 139, 116, 91, 73, 122, 225, 88, 217, 148, 101, 122, 125, 122, 172, 89, 187, 122, 176, 122, 194, 122, 195, 122, 209, 113, 141, 100, 202, 65, 218, 122, 221, 122, 234, 122, 239, 65, 178, 84, 1, 92, 11, 123, 85, 123, 41, 123, 14, 83, 254, 92, 162, 123, 111, 123, 156, 131, 180, 91, 127, 108, 208, 123, 33, 132, 146, 123, 0, 0, 32, 93, 173, 61, 101, 92, 146, 132, 250, 123, 0, 0, 53, 124, 193, 92, 68, 124, 131, 124, 130, 72, 166, 124, 125, 102, 120, 69, 201, 124, 199, 124, 230, 124, 116, 124, 243, 124, 245, 124, 0, 0, 103, 126, 29, 69, 68, 110, 93, 125, 214, 110, 141, 116, 137, 125, 171, 125, 53, 113, 179, 125, 0, 0, 87, 64, 41, 96, 228, 125, 19, 61, 245, 125, 249, 23, 229, 125, 109, 131, 0, 0, 33, 97, 90, 97, 110, 126, 146, 126, 43, 67, 108, 148, 39, 126, 64, 127, 65, 127, 71, 127, 54, 121, 208, 98, 225, 153, 151, 127, 81, 99, 163, 127, 97, 22, 104, 0, 92, 69, 102, 55, 3, 69, 58, 131, 250, 127, 137, 100, 0, 0, 8, 128, 29, 128, 0, 0, 47, 128, 135, 160, 195, 108, 59, 128, 60, 128, 97, 128, 20, 39, 137, 73, 38, 102, 227, 61, 232, 102, 37, 103, 167, 128, 72, 138, 7, 129, 26, 129, 176, 88, 246, 38, 127, 108, 152, 100, 184, 79, 231, 100, 138, 20, 24, 130, 94, 24, 83, 106, 101, 74, 149, 74, 122, 68, 41, 130, 13, 11, 82, 106, 126, 61, 249, 79, 253, 20, 226, 132, 98, 131, 10, 107, 167, 73, 48, 53, 115, 23, 248, 61, 170, 130, 27, 105, 148, 249, 219, 65, 75, 133, 208, 130, 26, 131, 22, 14, 180, 23, 193, 54, 125, 49, 90, 53, 123, 130, 226, 130, 24, 131, 139, 62, 163, 109, 5, 107, 151, 107, 206, 53, 191, 61, 29, 131, 236, 85, 133, 131, 11, 69, 165, 109, 172, 131, 0, 0, 211, 131, 126, 52, 212, 110, 87, 106, 90, 133, 150, 52, 66, 110, 239, 46, 88, 132, 228, 91, 113, 132, 211, 61, 228, 68, 167, 106, 74, 132, 181, 60, 88, 121, 0, 0, 150, 107, 119, 110, 67, 110, 222, 132, 0, 0, 145, 131, 160, 68, 147, 132, 228, 132, 145, 92, 64, 66, 192, 92, 67, 69, 52, 133, 242, 90, 153, 110, 39, 69, 115, 133, 22, 69, 191, 103, 22, 134, 37, 134, 59, 134, 193, 133, 136, 112, 2, 134, 130, 21, 205, 112, 178, 249, 106, 69, 40, 134, 72, 54, 162, 24, 247, 83, 154, 115, 126, 134, 113, 135, 248, 160, 238, 135, 39, 44, 177, 135, 218, 135, 15, 136, 97, 86, 108, 134, 86, 104, 15, 70, 69, 136, 70, 136, 224, 117, 185, 61, 228, 117, 94, 136, 156, 136, 91, 70, 180, 136, 181, 136, 193, 99, 197, 136, 119, 119, 15, 119, 135, 137, 138, 137, 0, 0, 0, 0, 167, 137, 188, 137, 37, 138, 231, 137, 36, 121, 189, 122, 156, 138, 147, 119, 254, 145, 144, 138, 89, 122, 233, 122, 58, 123, 143, 63, 19, 71, 56, 123, 124, 113, 12, 139, 31, 139, 48, 84, 101, 85, 63, 139, 76, 139, 77, 139, 169, 138, 122, 74, 144, 139, 155, 139, 175, 138, 223, 22, 21, 70, 79, 136, 155, 140, 84, 125, 143, 125, 212, 249, 37, 55, 83, 125, 214, 140, 152, 125, 189, 125, 18, 141, 3, 141, 16, 25, 219, 140, 92, 112, 17, 141, 201, 76, 208, 62, 0, 0, 169, 141, 2, 128, 20, 16, 138, 73, 124, 59, 188, 129, 12, 113, 231, 122, 173, 142, 182, 142, 195, 142, 212, 146, 25, 143, 45, 143, 101, 131, 18, 132, 165, 143, 3, 147, 159, 162, 80, 10, 179, 143, 42, 73, 222, 137, 61, 133, 187, 61, 248, 94, 98, 50, 249, 143, 20, 160, 188, 134, 1, 133, 37, 35, 128, 57, 215, 110, 55, 144, 60, 133, 190, 122, 97, 144, 108, 133, 11, 134, 168, 144, 19, 135, 196, 144, 230, 134, 174, 144, 0, 0, 103, 145, 240, 58, 169, 145, 196, 145, 172, 124, 51, 137, 137, 30, 14, 146, 159, 108, 65, 146, 98, 146, 185, 85, 0, 0, 198, 138, 155, 60, 12, 139, 219, 85, 49, 13, 44, 147, 107, 147, 225, 138, 235, 139, 143, 112, 195, 90, 226, 138, 229, 138, 101, 73, 68, 146, 236, 139, 57, 140, 255, 139, 115, 147, 91, 148, 188, 142, 133, 149, 166, 149, 38, 148, 160, 149, 246, 111, 185, 66, 122, 38, 216, 134, 124, 18, 46, 62, 223, 73, 28, 108, 123, 150, 150, 150, 108, 65, 163, 150, 213, 110, 218, 97, 182, 150, 245, 120, 224, 138, 189, 150, 204, 83, 161, 73, 184, 108, 116, 2, 16, 100, 175, 144, 229, 144, 209, 74, 21, 25, 10, 51, 49, 151, 66, 134, 54, 151, 15, 74, 61, 69, 133, 69, 233, 74, 117, 112, 65, 91, 27, 151, 0, 0, 213, 145, 87, 151, 74, 91, 235, 145, 95, 151, 37, 148, 208, 80, 183, 48, 188, 48, 137, 151, 159, 151, 177, 151, 190, 151, 192, 151, 210, 151, 224, 151, 108, 84, 238, 151, 28, 116, 51, 148, 0, 0, 245, 151, 29, 148, 122, 121, 209, 74, 52, 152, 51, 152, 75, 152, 102, 152, 14, 59, 117, 113, 81, 61, 48, 6, 92, 65, 6, 87, 202, 152, 183, 152, 200, 152, 199, 152, 255, 74, 39, 109, 211, 22, 176, 85, 225, 152, 230, 152, 236, 152, 120, 147, 57, 153, 41, 74, 114, 75, 87, 152, 5, 153, 245, 153, 12, 154, 59, 154, 16, 154, 88, 154, 37, 87, 196, 54, 177, 144, 213, 155, 224, 154, 226, 154, 5, 155, 244, 154, 14, 76, 20, 155, 45, 155, 0, 134, 52, 80, 52, 155, 168, 105, 195, 56, 125, 48, 80, 155, 64, 155, 62, 157, 69, 90, 99, 24, 142, 155, 75, 66, 2, 156, 255, 155, 12, 156, 104, 158, 212, 157, 183, 159, 146, 161, 171, 161, 225, 160, 35, 161, 223, 161, 126, 157, 131, 157, 52, 161, 14, 158, 136, 104, 196, 157, 91, 33, 147, 161, 32, 162, 59, 25, 51, 162, 57, 157, 185, 160, 180, 162, 144, 158, 149, 158, 158, 158, 162, 158, 52, 77, 170, 158, 175, 158, 100, 67, 193, 158, 96, 59, 229, 57, 29, 61, 50, 79, 190, 55, 43, 140, 2, 159, 8, 159, 150, 75, 36, 148, 162, 109, 23, 159, 0, 0, 57, 159, 159, 86, 138, 86, 69, 159, 184, 153, 139, 144, 242, 151, 127, 132, 98, 159, 105, 159, 220, 122, 142, 159, 22, 114, 190, 75, 117, 73, 187, 73, 119, 113, 248, 73, 72, 67, 81, 74, 158, 115, 218, 139, 250, 24, 159, 121, 126, 137, 54, 142, 105, 147, 243, 147, 68, 138, 236, 146, 129, 147, 203, 147, 108, 137, 185, 68, 23, 114, 235, 62, 114, 119, 67, 122, 208, 112, 115, 68, 248, 67, 126, 113, 239, 23, 163, 112, 190, 24, 153, 53, 199, 62, 133, 24, 47, 84, 248, 23, 34, 55, 251, 22, 57, 24, 225, 54, 116, 23, 209, 24, 75, 95, 35, 55, 192, 22, 91, 87, 37, 74, 254, 19, 168, 18, 198, 19, 182, 20, 3, 133, 166, 54, 0, 0, 85, 132, 148, 73, 101, 113, 49, 62, 92, 85, 251, 62, 82, 112, 244, 68, 238, 54, 157, 153, 38, 111, 249, 103, 51, 55, 21, 60, 231, 61, 108, 88, 34, 25, 16, 104, 87, 64, 63, 55, 225, 64, 139, 64, 15, 65, 33, 108, 203, 84, 158, 86, 177, 102, 146, 86, 223, 15, 168, 11, 13, 14, 198, 147, 19, 139, 156, 147, 248, 78, 43, 81, 25, 56, 54, 68, 188, 78, 101, 4, 127, 3, 75, 79, 138, 79, 81, 86, 104, 90, 171, 1, 203, 3, 153, 57, 10, 3, 20, 4, 53, 52, 41, 79, 192, 2, 179, 142, 117, 2, 218, 138, 12, 2, 152, 78, 205, 80, 13, 81, 162, 79, 3, 79, 14, 74, 138, 62, 66, 79, 46, 80, 108, 80, 129, 80, 204, 79, 229, 79, 88, 80, 252, 80, 0, 0, 0, 0, 0, 0, 0, 0, 118, 110, 149, 53, 57, 62, 191, 62, 114, 109, 132, 24, 137, 62, 168, 81, 195, 81, 224, 5, 221, 68, 163, 4, 146, 4, 145, 4, 122, 141, 156, 138, 14, 7, 89, 82, 164, 82, 115, 8, 225, 82, 0, 0, 122, 70, 140, 113, 140, 67, 32, 12, 172, 73, 228, 16, 209, 105, 29, 14, 0, 0, 222, 62, 153, 116, 20, 116, 86, 116, 152, 115, 142, 75, 188, 74, 141, 64, 208, 83, 132, 53, 15, 114, 201, 64, 180, 85, 69, 3, 205, 84, 198, 11, 29, 87, 93, 146, 244, 150, 102, 147, 221, 87, 141, 87, 127, 87, 62, 54, 203, 88, 153, 90, 70, 138, 250, 22, 111, 23, 16, 23, 44, 90, 184, 89, 143, 146, 126, 90, 207, 90, 18, 90, 70, 89, 243, 25, 97, 24, 149, 66, 245, 54, 5, 109, 67, 116, 33, 90, 131, 94, 129, 90, 215, 139, 19, 4, 224, 147, 140, 116, 3, 19, 5, 113, 114, 73, 8, 148, 251, 137, 189, 147, 160, 55, 30, 92, 158, 92, 94, 94, 72, 94, 150, 25, 124, 25, 238, 58, 205, 94, 79, 91, 3, 25, 4, 25, 1, 55, 160, 24, 221, 54, 254, 22, 211, 54, 42, 129, 71, 138, 186, 29, 114, 52, 168, 137, 12, 95, 14, 95, 39, 25, 171, 23, 107, 90, 59, 23, 68, 91, 20, 134, 253, 117, 96, 136, 126, 96, 96, 40, 43, 38, 219, 95, 184, 62, 175, 37, 190, 37, 136, 144, 115, 111, 192, 97, 62, 0, 70, 0, 27, 38, 153, 97, 152, 97, 117, 96, 155, 44, 7, 45, 212, 70, 77, 145, 113, 100, 101, 70, 106, 43, 41, 58, 34, 43, 80, 52, 234, 152, 120, 46, 55, 99, 91, 164, 182, 100, 49, 99, 209, 99, 227, 73, 103, 45, 164, 98, 161, 44, 59, 100, 107, 101, 114, 105, 244, 59, 142, 48, 173, 50, 137, 73, 171, 50, 13, 85, 224, 50, 217, 24, 63, 148, 206, 102, 137, 50, 179, 49, 224, 58, 144, 65, 132, 85, 34, 139, 143, 85, 252, 22, 91, 85, 37, 84, 238, 120, 3, 49, 42, 24, 52, 50, 100, 52, 15, 50, 130, 49, 201, 66, 142, 102, 36, 109, 107, 102, 147, 75, 48, 102, 112, 120, 235, 29, 99, 102, 210, 50, 225, 50, 30, 102, 114, 88, 209, 56, 58, 56, 188, 55, 153, 59, 162, 55, 254, 51, 208, 116, 150, 59, 143, 103, 42, 70, 182, 104, 30, 104, 196, 59, 190, 106, 99, 56, 213, 55, 135, 68, 51, 106, 82, 106, 201, 106, 5, 107, 18, 25, 17, 101, 152, 104, 76, 106, 215, 59, 122, 106, 87, 107, 192, 63, 154, 60, 160, 147, 242, 146, 234, 139, 203, 138, 137, 146, 30, 128, 220, 137, 103, 148, 165, 109, 11, 111, 236, 73, 0, 0, 127, 63, 143, 61, 4, 110, 60, 64, 61, 90, 10, 110, 71, 88, 36, 109, 66, 120, 59, 113, 26, 67, 118, 66, 241, 112, 80, 114, 135, 114, 148, 114, 143, 71, 37, 71, 121, 81, 164, 74, 235, 5, 122, 116, 248, 62, 95, 54, 74, 74, 23, 73, 225, 95, 6, 63, 177, 62, 223, 74, 35, 140, 53, 63, 167, 96, 243, 62, 204, 116, 60, 116, 135, 147, 55, 116, 159, 68, 234, 109, 81, 69, 131, 117, 99, 63, 217, 76, 6, 77, 88, 63, 85, 117, 115, 118, 198, 165, 25, 59, 104, 116, 204, 138, 171, 73, 142, 73, 251, 58, 205, 61, 78, 74, 255, 62, 197, 73, 243, 72, 250, 145, 50, 87, 66, 147, 227, 138, 100, 24, 223, 80, 33, 82, 231, 81, 120, 119, 50, 50, 14, 119, 15, 119, 123, 119, 151, 70, 129, 55, 94, 58, 240, 72, 56, 116, 155, 116, 191, 62, 186, 74, 199, 74, 200, 64, 150, 74, 174, 97, 7, 147, 129, 85, 30, 120, 141, 120, 136, 120, 210, 120, 208, 115, 89, 121, 65, 119, 227, 86, 14, 65, 0, 0, 150, 132, 165, 121, 45, 106, 250, 62, 58, 122, 244, 121, 110, 65, 230, 22, 50, 65, 53, 146, 241, 121, 76, 13, 140, 73, 153, 2, 186, 61, 110, 23, 151, 53, 107, 85, 112, 53, 170, 54, 212, 1, 13, 12, 226, 122, 89, 90, 245, 38, 175, 90, 156, 90, 13, 90, 91, 2, 240, 120, 42, 90, 198, 91, 254, 122, 249, 65, 93, 124, 109, 124, 17, 66, 179, 91, 188, 94, 166, 94, 205, 124, 249, 73, 176, 23, 142, 124, 124, 124, 174, 124, 178, 106, 220, 125, 7, 126, 211, 125, 78, 127, 97, 98, 92, 97, 72, 123, 151, 125, 130, 94, 106, 66, 117, 107, 22, 9, 214, 103, 78, 0, 207, 53, 196, 87, 18, 100, 248, 99, 98, 73, 221, 127, 39, 123, 44, 8, 233, 90, 67, 93, 12, 123, 14, 94, 230, 153, 69, 134, 99, 154, 28, 106, 63, 52, 226, 57, 247, 73, 173, 101, 31, 154, 160, 101, 128, 132, 39, 113, 209, 108, 234, 68, 55, 129, 2, 68, 198, 128, 9, 129, 66, 129, 180, 103, 195, 152, 66, 106, 98, 130, 101, 130, 81, 106, 83, 132, 167, 109, 16, 134, 27, 114, 134, 90, 127, 65, 64, 24, 43, 91, 161, 24, 228, 90, 216, 24, 160, 134, 188, 249, 143, 61, 45, 136, 34, 116, 2, 90, 110, 136, 69, 79, 135, 136, 191, 136, 230, 136, 101, 137, 77, 137, 131, 86, 84, 137, 133, 119, 132, 119, 245, 139, 217, 139, 156, 139, 249, 137, 173, 62, 163, 132, 245, 70, 207, 70, 242, 55, 61, 138, 28, 138, 72, 148, 77, 95, 43, 146, 132, 66, 212, 101, 41, 113, 196, 112, 69, 24, 109, 157, 159, 140, 233, 140, 220, 125, 154, 89, 195, 119, 240, 89, 110, 67, 212, 54, 42, 142, 167, 142, 9, 76, 48, 143, 74, 143, 244, 66, 88, 108, 187, 111, 33, 35, 155, 72, 121, 111, 139, 110, 218, 23, 233, 155, 181, 54, 47, 73, 187, 144, 0, 0, 113, 85, 6, 73, 187, 145, 4, 148, 75, 138, 98, 64, 252, 138, 39, 148, 29, 140, 59, 140, 229, 132, 43, 138, 153, 149, 167, 149, 151, 149, 150, 149, 52, 141, 69, 116, 194, 62, 255, 72, 66, 74, 234, 67, 231, 62, 37, 50, 143, 150, 231, 142, 102, 142, 101, 142, 204, 62, 237, 73, 120, 74, 238, 63, 18, 116, 107, 116, 252, 62, 65, 151, 176, 144, 71, 104, 29, 74, 147, 144, 223, 87, 0, 0, 104, 147, 137, 137, 38, 140, 47, 139, 190, 99, 186, 146, 17, 91, 105, 139, 60, 73, 249, 115, 27, 66, 155, 151, 113, 151, 56, 153, 38, 15, 193, 93, 197, 139, 178, 74, 31, 152, 218, 148, 246, 146, 215, 149, 229, 145, 192, 68, 80, 139, 103, 74, 100, 139, 220, 152, 69, 138, 0, 63, 42, 146, 37, 73, 20, 132, 59, 153, 77, 153, 6, 123, 253, 61, 155, 153, 111, 75, 170, 153, 92, 154, 101, 139, 200, 88, 143, 106, 33, 154, 254, 90, 47, 154, 241, 152, 144, 75, 72, 153, 188, 153, 189, 75, 151, 75, 125, 147, 114, 88, 2, 19, 34, 88, 184, 73, 232, 20, 68, 120, 31, 39, 184, 61, 197, 104, 125, 61, 88, 148, 39, 57, 80, 97, 129, 39, 107, 41, 7, 97, 79, 156, 83, 156, 123, 156, 53, 156, 16, 156, 127, 155, 207, 155, 45, 158, 159, 155, 245, 161, 254, 160, 33, 157, 174, 76, 4, 65, 24, 158, 176, 76, 12, 157, 180, 161, 237, 160, 243, 160, 47, 153, 165, 157, 189, 132, 18, 110, 223, 111, 130, 107, 252, 133, 51, 69, 164, 109, 132, 110, 240, 109, 32, 132, 238, 133, 0, 110, 215, 55, 100, 96, 226, 121, 156, 53, 64, 54, 45, 73, 222, 73, 98, 61, 219, 147, 190, 146, 72, 147, 191, 2, 185, 120, 119, 146, 77, 148, 228, 79, 64, 52, 100, 144, 93, 85, 61, 120, 84, 120, 182, 120, 75, 120, 87, 23, 201, 49, 65, 73, 154, 54, 114, 79, 218, 111, 217, 111, 0, 0, 30, 112, 20, 84, 181, 65, 187, 87, 243, 88, 138, 87, 22, 157, 215, 87, 52, 113, 175, 52, 172, 65, 235, 113, 64, 108, 151, 79, 0, 0, 181, 23, 73, 138, 12, 97, 206, 90, 11, 90, 188, 66, 136, 68, 44, 55, 123, 75, 252, 137, 187, 147, 184, 147, 214, 24, 29, 15, 114, 132, 192, 108, 19, 20, 250, 66, 38, 44, 193, 67, 148, 89, 183, 61, 65, 103, 168, 125, 91, 97, 164, 96, 185, 73, 139, 73, 250, 137, 229, 146, 226, 115, 233, 62, 180, 116, 99, 139, 159, 24, 225, 62, 179, 74, 216, 106, 243, 115, 251, 115, 214, 62, 62, 74, 148, 74, 217, 23, 102, 74, 167, 3, 36, 20, 229, 73, 72, 116, 22, 73, 165, 112, 118, 73, 132, 146, 230, 115, 95, 147, 254, 4, 49, 147, 206, 138, 22, 138, 134, 147, 231, 139, 213, 85, 53, 73, 130, 138, 107, 113, 67, 73, 255, 12, 164, 86, 26, 6, 235, 11, 184, 12, 2, 85, 196, 121, 250, 23, 254, 125, 194, 22, 80, 74, 82, 24, 46, 69, 1, 148, 10, 55, 192, 138, 173, 73, 176, 89, 191, 24, 131, 24, 132, 116, 161, 90, 226, 54, 91, 61, 176, 54, 95, 146, 121, 90, 129, 138, 98, 24, 116, 147, 205, 60, 180, 10, 150, 74, 138, 57, 244, 80, 105, 61, 76, 61, 156, 19, 117, 113, 251, 66, 24, 130, 15, 110, 228, 144, 235, 68, 87, 109, 79, 126, 103, 112, 175, 108, 214, 60, 237, 63, 45, 62, 2, 110, 12, 111, 111, 61, 245, 3, 81, 117, 188, 54, 200, 52, 128, 70, 218, 62, 113, 72, 196, 89, 110, 146, 62, 73, 65, 143, 28, 140, 192, 107, 18, 88, 200, 87, 214, 54, 82, 20, 254, 112, 98, 67, 113, 74, 227, 47, 176, 18, 189, 35, 185, 104, 103, 105, 152, 19, 229, 52, 244, 123, 223, 54, 131, 138, 214, 55, 250, 51, 159, 76, 26, 106, 173, 54, 183, 108, 62, 132, 223, 68, 206, 68, 38, 109, 81, 109, 130, 108, 222, 111, 23, 111, 9, 113, 61, 131, 58, 23, 237, 131, 128, 108, 83, 112, 219, 23, 137, 89, 130, 90, 179, 23, 97, 90, 113, 90, 5, 25, 252, 65, 45, 55, 239, 89, 60, 23, 199, 54, 142, 113, 144, 147, 154, 102, 165, 66, 110, 90, 43, 90, 147, 66, 43, 106, 249, 62, 54, 119, 91, 68, 202, 66, 29, 113, 89, 66, 225, 137, 176, 79, 40, 109, 194, 92, 206, 68, 77, 126, 189, 67, 12, 106, 86, 66, 4, 19, 166, 112, 51, 113, 233, 67, 165, 61, 223, 108, 37, 248, 79, 74, 101, 126, 235, 89, 47, 93, 243, 61, 92, 95, 93, 74, 223, 23, 164, 125, 38, 132, 133, 84, 250, 58, 0, 51, 20, 2, 126, 87, 213, 8, 25, 6, 229, 63, 158, 31, 182, 162, 3, 112, 91, 145, 112, 93, 143, 115, 211, 124, 89, 138, 32, 148, 200, 79, 231, 127, 205, 114, 16, 115, 244, 122, 56, 115, 57, 115, 246, 86, 65, 115, 72, 115, 169, 62, 24, 123, 108, 144, 245, 113, 242, 72, 225, 115, 246, 129, 202, 62, 12, 119, 209, 62, 162, 108, 253, 86, 25, 116, 30, 116, 31, 116, 226, 62, 240, 62, 244, 62, 250, 62, 211, 116, 14, 63, 83, 63, 66, 117, 109, 117, 114, 117, 141, 117, 124, 63, 200, 117, 220, 117, 192, 63, 77, 118, 215, 63, 116, 118, 220, 63, 122, 118, 92, 79, 136, 113, 35, 86, 128, 137, 105, 88, 29, 64, 67, 119, 57, 64, 97, 103, 69, 64, 219, 53, 152, 119, 106, 64, 111, 64, 94, 92, 190, 119, 203, 119, 242, 88, 24, 120, 185, 112, 28, 120, 168, 64, 57, 120, 71, 120, 81, 120, 102, 120, 72, 132, 53, 85, 51, 121, 3, 104, 50, 121, 3, 65, 9, 65, 145, 121, 153, 121, 187, 143, 6, 122, 188, 143, 103, 65, 145, 122, 178, 65, 188, 122, 121, 130, 196, 65, 207, 122, 219, 122, 207, 65, 33, 78, 98, 123, 108, 123, 123, 123, 18, 124, 27, 124, 96, 66, 122, 66, 123, 124, 156, 124, 140, 66, 184, 124, 148, 66, 237, 124, 147, 143, 192, 112, 207, 12, 207, 125, 212, 125, 208, 125, 253, 125, 174, 127, 180, 127, 159, 114, 151, 67, 32, 128, 37, 128, 57, 123, 46, 128, 49, 128, 84, 128, 204, 61, 180, 87, 160, 112, 183, 128, 233, 128, 237, 67, 12, 129, 42, 115, 14, 129, 18, 129, 96, 117, 20, 129, 1, 68, 57, 59, 86, 129, 89, 129, 90, 129, 19, 68, 58, 88, 124, 129, 132, 129, 37, 68, 147, 129, 45, 68, 165, 129, 239, 87, 193, 129, 228, 129, 84, 130, 143, 68, 166, 130, 118, 130, 202, 130, 216, 130, 255, 130, 176, 68, 87, 131, 105, 150, 138, 105, 5, 132, 245, 112, 100, 132, 227, 96, 136, 132, 4, 69, 190, 132, 225, 132, 248, 132, 16, 133, 56, 133, 82, 133, 59, 69, 111, 133, 112, 133, 224, 133, 119, 69, 114, 134, 146, 134, 178, 134, 239, 134, 69, 150, 139, 135, 6, 70, 23, 70, 174, 136, 255, 136, 36, 137, 71, 137, 145, 137, 103, 121, 41, 138, 56, 138, 148, 138, 180, 138, 81, 140, 212, 140, 242, 140, 28, 141, 152, 71, 95, 88, 195, 141, 237, 71, 238, 78, 58, 142, 216, 85, 84, 87, 113, 142, 245, 85, 176, 142, 55, 72, 206, 142, 226, 142, 228, 142, 237, 142, 242, 142, 183, 143, 193, 143, 202, 143, 204, 143, 51, 144, 196, 153, 173, 72, 224, 152, 19, 146, 30, 73, 40, 146, 88, 146, 107, 146, 177, 146, 174, 146, 191, 146, 227, 146, 235, 146, 243, 146, 244, 146, 253, 146, 67, 147, 132, 147, 173, 147, 69, 73, 81, 73, 191, 158, 23, 148, 1, 83, 29, 148, 45, 148, 62, 148, 106, 73, 84, 148, 121, 148, 45, 149, 162, 149, 167, 73, 244, 149, 51, 150, 229, 73, 160, 103, 36, 74, 64, 151, 53, 74, 178, 151, 194, 151, 84, 86, 228, 74, 232, 96, 185, 152, 25, 75, 241, 152, 68, 88, 14, 153, 25, 153, 180, 81, 28, 153, 55, 153, 66, 153, 93, 153, 98, 153, 112, 75, 197, 153, 157, 75, 60, 154, 15, 155, 131, 122, 105, 155, 129, 155, 221, 155, 241, 155, 244, 155, 109, 76, 32, 156, 111, 55, 194, 27, 73, 157, 58, 156, 254, 158, 80, 86, 147, 157, 189, 157, 192, 157, 252, 157, 246, 148, 182, 143, 123, 158, 172, 158, 177, 158, 189, 158, 198, 158, 220, 148, 226, 158, 241, 158, 248, 158, 200, 122, 68, 159, 148, 0, 183, 2, 160, 3, 26, 105, 195, 148, 172, 89, 215, 4, 64, 88, 193, 148, 185, 55, 213, 5, 21, 6, 118, 6, 186, 22, 87, 87, 115, 113, 194, 10, 205, 10, 191, 11, 106, 84, 59, 248, 203, 11, 158, 84, 251, 11, 59, 12, 83, 12, 101, 12, 124, 12, 231, 96, 141, 12, 122, 86, 181, 12, 221, 12, 237, 12, 111, 13, 178, 13, 200, 13, 85, 105, 47, 156, 165, 135, 4, 14, 14, 14, 215, 14, 144, 15, 45, 15, 115, 14, 32, 92, 188, 15, 11, 94, 92, 16, 79, 16, 118, 16, 30, 103, 123, 16, 136, 16, 150, 16, 71, 54, 191, 16, 211, 16, 47, 17, 59, 17, 100, 83, 173, 132, 227, 18, 117, 19, 54, 19, 129, 139, 119, 21, 25, 22, 195, 23, 199, 23, 120, 78, 187, 112, 45, 24, 106, 25, 45, 26, 69, 26, 42, 28, 112, 28, 172, 28, 200, 30, 195, 98, 213, 30, 21, 31, 152, 113, 85, 104, 69, 32, 233, 105, 200, 54, 124, 34, 215, 35, 250, 35, 42, 39, 113, 40, 79, 41, 253, 130, 103, 41, 147, 41, 213, 42, 165, 137, 232, 42, 160, 143, 14, 43, 184, 151, 63, 43, 71, 152, 189, 154, 76, 44, 0, 0, 136, 44, 183, 44, 232, 91, 8, 45, 18, 45, 183, 45, 149, 45, 66, 46, 116, 47, 204, 47, 51, 48, 102, 48, 31, 51, 222, 51, 177, 95, 72, 102, 191, 102, 121, 122, 103, 53, 243, 53, 0, 0, 186, 73, 0, 0, 26, 54, 22, 55, 0, 0, 70, 3, 181, 88, 14, 103, 24, 105, 167, 58, 87, 118, 226, 95, 17, 62, 185, 62, 254, 117, 154, 32, 208, 72, 184, 74, 25, 65, 154, 138, 238, 66, 13, 67, 59, 64, 52, 67, 150, 67, 69, 74, 202, 5, 210, 81, 17, 6, 159, 89, 168, 30, 190, 59, 255, 60, 4, 68, 214, 68, 136, 87, 116, 70, 155, 57, 47, 71, 232, 133, 201, 153, 98, 55, 195, 33, 94, 139, 78, 139, 0, 0, 18, 72, 251, 72, 21, 74, 9, 114, 192, 74, 120, 12, 101, 89, 165, 78, 134, 79, 121, 7, 218, 142, 44, 80, 143, 82, 63, 87, 113, 113, 153, 82, 25, 84, 74, 63, 167, 74, 188, 85, 70, 84, 110, 84, 82, 107, 0, 0, 115, 52, 63, 85, 50, 118, 94, 85, 24, 71, 98, 85, 102, 85, 199, 87, 63, 73, 93, 88, 102, 80, 251, 52, 204, 51, 0, 0, 3, 89, 124, 71, 72, 137, 174, 90, 137, 91, 6, 92, 144, 29, 161, 87, 81, 113, 0, 0, 2, 97, 18, 124, 86, 144, 178, 97, 154, 79, 98, 139, 2, 100, 74, 100, 91, 93, 247, 107, 0, 0, 132, 100, 28, 25, 234, 138, 246, 73, 136, 100, 239, 63, 18, 101, 192, 75, 191, 101, 181, 102, 27, 39, 101, 148, 225, 87, 149, 97, 39, 90, 205, 248, 0, 0, 185, 86, 33, 69, 252, 102, 106, 78, 52, 73, 86, 150, 143, 109, 189, 108, 24, 54, 119, 137, 153, 103, 110, 104, 17, 100, 94, 104, 0, 0, 199, 104, 66, 123, 192, 144, 17, 10, 38, 105, 0, 0, 57, 105, 69, 122, 0, 0, 250, 105, 38, 154, 45, 106, 95, 54, 105, 100, 33, 0, 131, 121, 52, 106, 91, 107, 44, 93, 25, 53, 0, 0, 157, 107, 208, 70, 164, 108, 59, 117, 101, 136, 174, 109, 182, 88, 28, 55, 141, 37, 75, 112, 205, 113, 84, 60, 128, 114, 133, 114, 129, 146, 122, 33, 139, 114, 48, 147, 230, 114, 208, 73, 57, 108, 159, 148, 80, 116, 248, 14, 39, 136, 245, 136, 38, 41, 115, 132, 177, 23, 184, 110, 42, 74, 32, 24, 164, 57, 185, 54, 0, 0, 0, 0, 63, 69, 182, 102, 173, 156, 164, 152, 67, 137, 204, 119, 88, 120, 214, 86, 223, 64, 10, 22, 161, 57, 47, 55, 232, 128, 197, 19, 173, 113, 102, 131, 221, 121, 168, 145, 0, 0, 183, 76, 175, 112, 171, 137, 253, 121, 10, 122, 11, 123, 102, 125, 122, 65, 67, 123, 126, 121, 9, 128, 181, 111, 223, 162, 3, 106, 24, 131, 162, 83, 7, 110, 191, 147, 54, 104, 93, 151, 111, 129, 35, 128, 181, 105, 237, 19, 47, 50, 72, 128, 133, 93, 48, 140, 131, 128, 21, 87, 35, 152, 73, 137, 171, 93, 136, 73, 190, 101, 213, 105, 210, 83, 165, 74, 129, 63, 17, 60, 54, 103, 144, 128, 244, 128, 46, 129, 161, 31, 79, 129, 137, 129, 175, 129, 26, 130, 6, 131, 47, 131, 138, 131, 202, 53, 104, 132, 170, 134, 250, 72, 230, 99, 86, 137, 8, 120, 85, 146, 184, 137, 242, 67, 231, 137, 223, 67, 232, 137, 70, 139, 212, 139, 248, 89, 9, 140, 0, 0, 197, 143, 236, 144, 0, 0, 16, 145, 60, 145, 247, 61, 94, 145, 202, 74, 208, 143, 143, 114, 139, 86, 231, 148, 233, 149, 176, 149, 184, 149, 50, 151, 209, 152, 73, 153, 106, 153, 195, 153, 40, 154, 14, 155, 90, 157, 155, 157, 159, 126, 248, 158, 35, 159, 164, 76, 71, 149, 147, 162, 162, 113, 255, 162, 145, 77, 18, 144, 203, 165, 156, 77, 156, 12, 190, 143, 193, 85, 186, 143, 176, 36, 185, 143, 147, 74, 9, 69, 127, 126, 86, 111, 177, 106, 234, 78, 228, 52, 44, 139, 157, 120, 58, 55, 128, 142, 245, 23, 36, 128, 108, 139, 153, 139, 62, 122, 175, 102, 235, 61, 85, 118, 183, 60, 53, 86, 86, 89, 154, 78, 129, 94, 88, 98, 191, 86, 109, 14, 14, 142, 109, 91, 136, 62, 158, 76, 222, 99, 0, 0, 246, 23, 123, 24, 48, 101, 45, 86, 74, 92, 26, 84, 17, 83, 198, 61, 152, 157, 125, 76, 34, 86, 30, 86, 73, 127, 216, 94, 117, 89, 64, 61, 112, 135, 28, 78, 234, 15, 73, 13, 186, 54, 23, 129, 94, 157, 24, 141, 59, 118, 69, 156, 78, 118, 185, 119, 69, 147, 50, 84, 72, 129, 247, 130, 37, 86, 50, 129, 24, 132, 189, 128, 234, 85, 98, 121, 67, 86, 22, 84, 157, 14, 206, 53, 5, 86, 241, 85, 241, 102, 226, 130, 45, 54, 52, 117, 240, 85, 186, 85, 151, 84, 114, 85, 65, 12, 150, 12, 208, 94, 72, 81, 118, 14, 98, 44, 162, 14, 171, 158, 90, 125, 222, 85, 117, 16, 157, 98, 109, 151, 148, 84, 205, 140, 246, 113, 118, 145, 252, 99, 185, 99, 254, 99, 105, 85, 67, 43, 114, 156, 179, 46, 154, 81, 223, 52, 167, 13, 167, 81, 77, 84, 30, 85, 19, 85, 102, 118, 45, 142, 138, 104, 177, 117, 182, 128, 4, 136, 134, 135, 199, 136, 182, 129, 28, 132, 193, 16, 236, 68, 4, 115, 6, 71, 144, 91, 11, 131, 147, 104, 123, 86, 244, 38, 47, 125, 163, 65, 115, 125, 208, 110, 182, 114, 112, 145, 217, 17, 8, 146, 252, 60, 169, 166, 172, 14, 249, 14, 102, 114, 162, 28, 78, 71, 194, 79, 249, 127, 235, 15, 250, 64, 93, 156, 31, 101, 160, 45, 243, 72, 224, 71, 124, 157, 236, 15, 10, 14, 0, 0, 163, 117, 237, 15, 0, 0, 72, 96, 135, 17, 163, 113, 142, 126, 80, 157, 26, 78, 4, 78, 119, 53, 13, 91, 178, 108, 103, 83, 172, 54, 220, 57, 125, 83, 165, 54, 24, 70, 154, 88, 110, 75, 45, 130, 75, 84, 170, 87, 149, 90, 121, 9, 0, 0, 82, 58, 101, 36, 116, 115, 172, 158, 9, 77, 237, 155, 254, 60, 48, 159, 91, 76, 169, 79, 158, 149, 222, 159, 92, 132, 182, 61, 178, 114, 179, 103, 32, 55, 46, 99, 37, 125, 247, 62, 44, 62, 42, 58, 8, 144, 204, 82, 116, 62, 122, 54, 233, 69, 142, 4, 64, 118, 240, 90, 182, 14, 122, 120, 46, 127, 167, 88, 191, 64, 124, 86, 139, 155, 116, 93, 84, 118, 52, 164, 133, 158, 225, 76, 0, 0, 251, 55, 25, 97, 218, 48, 242, 67, 0, 0, 93, 86, 169, 18, 167, 87, 99, 73, 6, 158, 52, 82, 174, 112, 173, 53, 0, 0, 124, 157, 86, 124, 57, 155, 222, 87, 108, 23, 83, 92, 211, 100, 208, 148, 53, 99, 100, 113, 173, 134, 40, 13, 34, 109, 226, 74, 113, 13, 0, 0, 254, 81, 15, 31, 142, 93, 3, 151, 209, 29, 129, 158, 76, 144, 31, 123, 2, 155, 209, 92, 163, 123, 104, 98, 53, 99, 255, 154, 207, 123, 42, 155, 126, 124, 0, 0, 66, 124, 134, 124, 21, 156, 252, 123, 9, 155, 0, 0, 27, 156, 62, 73, 90, 159, 115, 85, 195, 91, 253, 79, 152, 158, 242, 79, 96, 82, 6, 62, 209, 82, 103, 87, 86, 80, 183, 89, 18, 94, 200, 151, 171, 157, 92, 143, 105, 84, 180, 151, 64, 153, 186, 151, 44, 83, 48, 97, 44, 105, 218, 83, 10, 156, 2, 157, 59, 76, 65, 150, 128, 105, 166, 80, 70, 117, 109, 23, 218, 153, 115, 82, 0, 0, 89, 145, 129, 150, 92, 145, 0, 0, 81, 145, 151, 142, 127, 99, 35, 109, 202, 106, 17, 86, 142, 145, 122, 117, 133, 98, 252, 3, 79, 115, 112, 124, 33, 92, 253, 60, 0, 0, 25, 73, 214, 118, 157, 155, 42, 78, 212, 12, 190, 131, 66, 136, 0, 0, 74, 92, 192, 105, 0, 0, 122, 87, 31, 82, 245, 93, 206, 78, 49, 108, 242, 1, 57, 79, 156, 84, 218, 84, 154, 82, 130, 141, 254, 53, 0, 0, 243, 53, 0, 0, 82, 107, 124, 145, 165, 159, 151, 155, 46, 152, 180, 152, 186, 154, 168, 158, 132, 158, 122, 113, 20, 123, 0, 0, 250, 107, 24, 136, 120, 127, 0, 0, 32, 86, 74, 166, 119, 142, 83, 159, 0, 0, 212, 141, 79, 142, 28, 158, 1, 142, 130, 98, 125, 131, 40, 142, 117, 142, 211, 122, 119, 74, 62, 122, 216, 120, 234, 108, 103, 138, 7, 118, 90, 138, 38, 159, 206, 108, 214, 135, 195, 117, 178, 162, 83, 120, 64, 248, 12, 141, 226, 114, 113, 115, 45, 139, 2, 115, 241, 116, 235, 140, 187, 74, 47, 134, 186, 95, 160, 136, 183, 68, 0, 0, 59, 24, 5, 110, 0, 0, 126, 138, 27, 37, 0, 0, 253, 96, 103, 118, 215, 154, 68, 157, 110, 147, 143, 155, 245, 135, 0, 0, 0, 0, 247, 140, 44, 115, 33, 151, 176, 155, 214, 53, 178, 114, 7, 76, 81, 124, 74, 153, 89, 97, 89, 97, 4, 76, 150, 158, 125, 97, 0, 0, 95, 87, 111, 97, 166, 98, 57, 98, 0, 0, 92, 58, 226, 97, 170, 83, 245, 51, 100, 99, 2, 104, 210, 53, 87, 93, 194, 139, 218, 143, 57, 142, 0, 0, 217, 80, 70, 29, 6, 121, 50, 83, 56, 150, 59, 15, 101, 64, 0, 0, 254, 119, 0, 0, 194, 124, 26, 95, 218, 124, 45, 122, 102, 128, 99, 128, 77, 125, 5, 117, 242, 116, 148, 137, 26, 130, 12, 103, 98, 128, 134, 116, 91, 128, 240, 116, 3, 129, 36, 119, 137, 137, 204, 103, 83, 117, 209, 110, 169, 135, 206, 135, 200, 129, 140, 135, 73, 138, 173, 140, 67, 139, 43, 119, 248, 116, 218, 132, 53, 54, 178, 105, 166, 141, 0, 0, 169, 137, 0, 0, 185, 109, 193, 135, 17, 64, 231, 116, 219, 61, 118, 113, 164, 96, 156, 97, 209, 60, 0, 0, 119, 96, 0, 0, 113, 127, 45, 139, 0, 0, 233, 96, 126, 75, 32, 82, 24, 60, 199, 60, 215, 94, 86, 118, 49, 85, 68, 25, 254, 18, 3, 153, 220, 109, 173, 112, 193, 92, 173, 97, 15, 138, 119, 54, 238, 0, 70, 104, 14, 79, 98, 69, 31, 91, 76, 99, 80, 159, 166, 158, 107, 98, 71, 5, 219, 146, 223, 5, 197, 63, 76, 133, 181, 66, 239, 115, 181, 81, 73, 54, 66, 73, 228, 137, 68, 147, 219, 25, 238, 130, 200, 60, 60, 120, 68, 103, 223, 98, 51, 73, 170, 137, 160, 2, 179, 107, 5, 19, 171, 79, 237, 36, 8, 80, 41, 109, 132, 122, 0, 54, 177, 74, 19, 37, 0, 0, 126, 3, 164, 95, 128, 3, 71, 3, 219, 110, 31, 4, 0, 0, 1, 81, 122, 52, 14, 81, 108, 152, 67, 55, 22, 132, 164, 73, 135, 4, 96, 81, 180, 51, 106, 81, 255, 11, 252, 32, 229, 2, 48, 37, 142, 5, 51, 50, 131, 25, 130, 91, 125, 135, 179, 5, 153, 60, 178, 81, 184, 81, 52, 157, 201, 81, 207, 81, 209, 81, 220, 60, 211, 81, 166, 74, 179, 81, 226, 81, 66, 83, 237, 81, 205, 131, 62, 105, 45, 55, 123, 95, 11, 82, 38, 82, 60, 82, 181, 82, 87, 82, 148, 82, 185, 82, 197, 82, 21, 124, 66, 133, 224, 82, 13, 134, 19, 107, 0, 0, 222, 138, 73, 85, 217, 110, 128, 63, 84, 9, 236, 63, 51, 83, 0, 0, 226, 11, 203, 108, 38, 23, 27, 104, 213, 115, 74, 96, 170, 62, 204, 56, 232, 22, 221, 113, 162, 68, 109, 83, 116, 83, 171, 134, 126, 83, 0, 0, 150, 21, 19, 22, 230, 119, 147, 83, 155, 138, 160, 83, 171, 83, 174, 83, 167, 115, 114, 87, 89, 63, 156, 115, 193, 83, 197, 83, 73, 108, 73, 78, 254, 87, 217, 83, 171, 58, 143, 11, 224, 83, 235, 63, 163, 45, 246, 83, 119, 12, 19, 84, 121, 112, 43, 85, 87, 102, 91, 109, 109, 84, 83, 107, 116, 13, 93, 85, 143, 84, 164, 84, 166, 71, 13, 23, 221, 14, 180, 61, 77, 13, 188, 137, 152, 38, 71, 85, 237, 76, 47, 84, 23, 116, 134, 85, 169, 85, 0, 0, 215, 24, 58, 64, 82, 69, 53, 68, 179, 102, 180, 16, 55, 86, 205, 102, 138, 50, 164, 102, 173, 102, 77, 86, 79, 86, 241, 120, 241, 86, 135, 151, 254, 83, 0, 87, 239, 86, 237, 86, 102, 139, 35, 54, 79, 18, 70, 87, 165, 65, 110, 108, 139, 112, 66, 87, 177, 54, 126, 108, 230, 87, 22, 20, 3, 88, 84, 20, 99, 67, 38, 88, 245, 75, 92, 88, 170, 88, 97, 53, 224, 88, 220, 88, 60, 18, 251, 88, 255, 91, 67, 87, 80, 161, 120, 66, 211, 147, 161, 53, 31, 89, 166, 104, 195, 54, 89, 110, 62, 22, 36, 90, 83, 85, 146, 22, 5, 133, 201, 89, 78, 13, 129, 108, 42, 109, 220, 23, 217, 89, 251, 23, 178, 23, 166, 109, 113, 109, 40, 24, 213, 22, 249, 89, 69, 110, 171, 90, 99, 90, 230, 54, 169, 73, 0, 0, 8, 55, 150, 90, 101, 116, 211, 90, 161, 111, 84, 37, 133, 61, 17, 25, 50, 55, 184, 22, 131, 94, 208, 82, 118, 91, 136, 101, 124, 91, 14, 122, 4, 64, 93, 72, 4, 2, 213, 91, 96, 97, 52, 26, 204, 89, 165, 5, 243, 91, 157, 91, 16, 77, 5, 92, 68, 27, 19, 92, 206, 115, 20, 92, 165, 28, 40, 107, 73, 92, 221, 72, 133, 92, 233, 92, 239, 92, 139, 93, 249, 29, 55, 30, 16, 93, 24, 93, 70, 93, 164, 30, 186, 92, 215, 93, 252, 130, 45, 56, 1, 73, 73, 32, 115, 33, 135, 130, 54, 56, 194, 59, 46, 94, 138, 106, 0, 0, 122, 94, 188, 68, 211, 12, 166, 83, 183, 78, 0, 0, 168, 83, 113, 23, 9, 94, 244, 94, 130, 132, 249, 94, 251, 94, 160, 56, 252, 94, 62, 104, 27, 148, 13, 95, 193, 1, 148, 248, 222, 58, 174, 72, 58, 19, 58, 95, 136, 104, 208, 35, 0, 0, 113, 36, 99, 95, 189, 151, 110, 110, 114, 95, 64, 147, 54, 138, 167, 95, 182, 93, 95, 61, 80, 82, 106, 31, 248, 112, 104, 38, 214, 145, 158, 2, 41, 138, 49, 96, 133, 102, 119, 24, 99, 57, 199, 61, 57, 54, 144, 87, 180, 39, 113, 121, 64, 62, 158, 96, 0, 0, 179, 96, 130, 73, 143, 73, 83, 122, 164, 116, 225, 80, 160, 90, 100, 97, 36, 132, 66, 97, 166, 248, 210, 110, 129, 97, 244, 81, 86, 6, 135, 97, 170, 91, 183, 63, 95, 40, 211, 97, 157, 139, 93, 153, 208, 97, 50, 57, 128, 41, 193, 40, 35, 96, 92, 97, 30, 101, 139, 99, 24, 1, 197, 98, 112, 23, 213, 98, 13, 46, 108, 99, 223, 73, 23, 58, 56, 100, 248, 99, 142, 19, 252, 23, 0, 0, 138, 111, 54, 46, 20, 152, 140, 64, 29, 87, 225, 100, 229, 100, 123, 148, 102, 58, 58, 100, 87, 58, 77, 101, 22, 111, 40, 74, 35, 74, 133, 101, 109, 101, 95, 101, 126, 48, 181, 101, 64, 73, 55, 75, 209, 101, 216, 64, 41, 24, 224, 101, 227, 101, 223, 95, 0, 52, 24, 102, 247, 49, 248, 49, 68, 102, 164, 49, 165, 49, 75, 102, 117, 14, 103, 102, 230, 81, 115, 102, 0, 0, 61, 30, 49, 50, 244, 133, 200, 49, 19, 83, 197, 119, 247, 40, 164, 153, 2, 103, 156, 67, 33, 74, 43, 59, 250, 105, 194, 55, 0, 0, 103, 103, 98, 103, 205, 65, 237, 144, 215, 103, 233, 68, 34, 104, 80, 110, 60, 146, 1, 104, 230, 51, 160, 109, 93, 104, 111, 52, 225, 105, 11, 106, 223, 138, 115, 105, 195, 104, 205, 53, 1, 105, 0, 105, 50, 61, 1, 58, 60, 54, 128, 59, 172, 103, 97, 105, 74, 138, 252, 66, 54, 105, 152, 105, 161, 59, 201, 3, 99, 131, 144, 80, 249, 105, 89, 54, 42, 33, 69, 106, 3, 55, 157, 106, 243, 59, 177, 103, 200, 106, 156, 145, 13, 60, 29, 107, 35, 9, 222, 96, 53, 107, 116, 107, 205, 39, 181, 110, 219, 58, 181, 3, 88, 25, 64, 55, 33, 84, 90, 59, 225, 107, 252, 62, 220, 107, 55, 108, 139, 36, 241, 72, 81, 107, 90, 108, 38, 130, 121, 108, 188, 61, 197, 68, 189, 61, 164, 65, 12, 73, 0, 73, 201, 60, 229, 54, 235, 60, 50, 13, 131, 155, 249, 49, 145, 36, 143, 127, 55, 104, 37, 109, 161, 109, 235, 109, 150, 109, 92, 109, 124, 110, 4, 111, 127, 73, 133, 64, 114, 110, 51, 133, 116, 111, 199, 81, 0, 0, 0, 0, 46, 132, 33, 139, 0, 0, 47, 62, 83, 116, 130, 63, 204, 121, 79, 110, 145, 90, 75, 48, 248, 111, 13, 55, 157, 111, 48, 62, 250, 110, 151, 20, 61, 64, 85, 69, 240, 147, 68, 111, 92, 111, 78, 61, 116, 111, 112, 145, 59, 61, 159, 111, 68, 65, 211, 111, 145, 64, 85, 65, 57, 64, 240, 63, 180, 63, 63, 65, 223, 81, 86, 65, 87, 65, 64, 65, 221, 97, 75, 112, 126, 112, 167, 112, 129, 112, 204, 112, 213, 112, 214, 112, 223, 112, 4, 65, 232, 61, 180, 113, 150, 113, 119, 66, 43, 113, 69, 113, 136, 90, 74, 113, 0, 0, 156, 92, 101, 67, 79, 113, 98, 147, 193, 66, 44, 113, 90, 68, 39, 74, 34, 74, 186, 113, 232, 139, 189, 112, 14, 114, 66, 148, 21, 114, 17, 89, 67, 148, 36, 114, 65, 147, 5, 86, 46, 114, 64, 114, 116, 73, 189, 104, 85, 114, 87, 114, 85, 62, 68, 48, 13, 104, 61, 111, 130, 114, 0, 0, 43, 115, 35, 72, 43, 136, 237, 72, 4, 136, 40, 115, 46, 115, 207, 115, 170, 115, 58, 12, 46, 106, 201, 115, 73, 116, 226, 65, 231, 22, 36, 74, 35, 102, 197, 54, 183, 73, 141, 73, 251, 73, 247, 115, 21, 116, 3, 105, 38, 74, 57, 116, 195, 5, 215, 62, 0, 0, 173, 40, 96, 116, 178, 142, 71, 116, 228, 115, 118, 116, 185, 131, 108, 116, 48, 55, 116, 116, 241, 147, 44, 106, 130, 116, 83, 73, 140, 74, 95, 65, 121, 74, 143, 139, 70, 91, 3, 140, 158, 24, 200, 116, 136, 25, 14, 117, 0, 0, 30, 117, 217, 142, 75, 26, 215, 91, 172, 142, 133, 147, 77, 117, 74, 117, 103, 117, 110, 117, 130, 79, 4, 63, 19, 77, 142, 117, 93, 116, 158, 117, 180, 117, 2, 118, 44, 118, 81, 118, 79, 118, 111, 118, 118, 118, 245, 99, 144, 118, 239, 129, 248, 55, 17, 105, 14, 105, 161, 118, 165, 118, 183, 118, 204, 118, 159, 111, 98, 132, 157, 80, 125, 81, 28, 30, 30, 119, 38, 119, 64, 119, 175, 100, 32, 82, 88, 119, 172, 50, 175, 119, 100, 137, 104, 137, 193, 22, 244, 119, 0, 0, 118, 19, 18, 74, 202, 104, 175, 120, 199, 120, 211, 120, 165, 150, 46, 121, 224, 85, 215, 120, 52, 121, 177, 120, 12, 118, 184, 143, 132, 136, 43, 139, 131, 96, 28, 38, 134, 121, 0, 137, 2, 105, 128, 121, 87, 88, 157, 121, 57, 123, 60, 121, 169, 121, 42, 110, 38, 113, 168, 62, 198, 121, 13, 145, 212, 121, 32, 5, 95, 68, 15, 82, 130, 184, 248, 0, 0, 64, 32, 169, 78, 4, 0, 0, 0, 0, 52, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64, 0, 0, 0, 0, 0, 0, 0, 0, 4, 88, 0, 60, 0, 0, 0, 0, 0, 128, 92, 173, 220, 243, 187, 201, 67, 238, 237, 164, 15, 38, 193, 155, 118, 242, 239, 222, 251, 250, 247, 15, 50, 68, 175, 254, 239, 253, 254, 17, 96, 176, 0, 0, 33, 25, 129, 32, 16, 136, 168, 96, 33, 105, 36, 0, 68, 137, 196, 0, 0, 3, 64, 53, 0, 67, 132, 49, 81, 147, 104, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 1, 128, 172, 100, 130, 64, 140, 161, 144, 4, 80, 96, 212, 0, 210, 42, 24, 157, 104, 53, 151, 79, 216, 248, 32, 196, 130, 28, 40, 130, 117, 148, 2, 56, 64, 160, 161, 197, 16, 113, 77, 196, 13, 152, 185, 94, 91, 1, 67, 159, 153, 3, 120, 32, 226, 31, 8, 137, 1, 201, 64, 7, 3, 13, 154, 144, 82, 209, 79, 124, 3, 2, 33, 32, 192, 110, 19, 131, 181, 219, 245, 229, 119, 144, 79, 23, 154, 54, 23, 12, 0, 110, 186, 9, 47, 96, 84, 0, 30, 120, 104, 34, 112, 86, 158, 37, 243, 142, 183, 23, 11, 239, 230, 119, 23, 91, 27, 193, 16, 152, 141, 18, 24, 182, 207, 1, 49, 114, 26, 91, 44, 182, 192, 32, 226, 195, 92, 130, 27, 224, 218, 206, 133, 214, 64, 169, 84, 11, 208, 15, 72, 68, 64, 16, 9, 212, 64, 174, 59, 100, 30, 68, 43, 23, 8, 134, 130, 54, 24, 160, 137, 231, 156, 91, 8, 132, 3, 2, 218, 144, 236, 219, 135, 133, 191, 162, 173, 157, 142, 157, 152, 32, 37, 70, 0, 70, 159, 127, 227, 213, 201, 132, 244, 214, 77, 6, 227, 182, 24, 18, 9, 0, 0, 0, 4, 0, 0, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 142, 120, 110, 95, 63, 126, 221, 61, 247, 252, 155, 252, 174, 210, 255, 143, 107, 241, 231, 191, 186, 174, 110, 23, 239, 220, 167, 62, 182, 181, 119, 201, 146, 215, 165, 182, 74, 110, 155, 185, 129, 77, 103, 254, 84, 241, 155, 98, 254, 111, 82, 215, 54, 254, 191, 41, 69, 129, 249, 189, 101, 166, 66, 57, 0, 0, 66, 96, 143, 0, 148, 64, 64, 210, 175, 215, 209, 219, 0, 160, 152, 178, 123, 6, 82, 32, 152, 22, 200, 61, 9, 0, 0, 1, 0, 0, 0, 1, 10, 178, 8, 128, 0, 0, 0, 4, 136, 32, 20, 16, 76, 0, 0, 4, 0, 161, 68, 16, 0, 65, 1, 0, 8, 64, 240, 223, 79, 54, 88, 241, 245, 181, 128, 245, 103, 128, 64, 0, 80, 78, 65, 200, 132, 0, 90, 96, 216, 1, 43, 1, 80, 161, 22, 196, 64, 242, 110, 17, 172, 32, 57, 196, 192, 8, 7, 12, 9, 152, 150, 196, 155, 16, 28, 152, 108, 134, 42, 166, 1, 70, 17, 109, 229, 203, 196, 192, 146, 16, 33, 22, 18, 157, 114, 244, 105, 14, 23, 42, 162, 129, 244, 123, 0, 8, 164, 11, 144, 16, 44, 204, 57, 74, 1, 240, 22, 11, 10, 64, 12, 29, 234, 12, 68, 14, 69, 2, 0, 8, 4, 4, 8, 4, 4, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 195, 138, 204, 132, 195, 138, 204, 140, 195, 170, 204, 132, 195, 170, 204, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 12, 255, 1, 48, 2, 48, 14, 255, 39, 32, 27, 255, 26, 255, 31, 255, 1, 255, 48, 254, 38, 32, 37, 32, 80, 254, 81, 254, 82, 254, 183, 0, 84, 254, 85, 254, 86, 254, 87, 254, 92, 255, 19, 32, 49, 254, 20, 32, 51, 254, 116, 37, 52, 254, 79, 254, 8, 255, 9, 255, 53, 254, 54, 254, 91, 255, 93, 255, 55, 254, 56, 254, 20, 48, 21, 48, 57, 254, 58, 254, 16, 48, 17, 48, 59, 254, 60, 254, 10, 48, 11, 48, 61, 254, 62, 254, 8, 48, 9, 48, 63, 254, 64, 254, 12, 48, 13, 48, 65, 254, 66, 254, 14, 48, 15, 48, 67, 254, 68, 254, 89, 254, 90, 254, 91, 254, 92, 254, 93, 254, 94, 254, 24, 32, 25, 32, 28, 32, 29, 32, 29, 48, 30, 48, 53, 32, 50, 32, 3, 255, 6, 255, 10, 255, 59, 32, 167, 0, 3, 48, 203, 37, 207, 37, 179, 37, 178, 37, 206, 37, 6, 38, 5, 38, 199, 37, 198, 37, 161, 37, 160, 37, 189, 37, 188, 37, 163, 50, 5, 33, 175, 0, 227, 255, 63, 255, 205, 2, 73, 254, 74, 254, 77, 254, 78, 254, 75, 254, 76, 254, 95, 254, 96, 254, 97, 254, 11, 255, 13, 255, 215, 0, 247, 0, 177, 0, 26, 34, 28, 255, 30, 255, 29, 255, 102, 34, 103, 34, 96, 34, 30, 34, 82, 34, 97, 34, 98, 254, 99, 254, 100, 254, 101, 254, 102, 254, 94, 255, 41, 34, 42, 34, 165, 34, 32, 34, 31, 34, 191, 34, 210, 51, 209, 51, 43, 34, 46, 34, 53, 34, 52, 34, 64, 38, 66, 38, 149, 34, 153, 34, 145, 33, 147, 33, 144, 33, 146, 33, 150, 33, 151, 33, 153, 33, 152, 33, 37, 34, 35, 34, 15, 255, 60, 255, 21, 34, 104, 254, 4, 255, 229, 255, 18, 48, 224, 255, 225, 255, 5, 255, 32, 255, 3, 33, 9, 33, 105, 254, 106, 254, 107, 254, 213, 51, 156, 51, 157, 51, 158, 51, 206, 51, 161, 51, 142, 51, 143, 51, 196, 51, 176, 0, 89, 81, 91, 81, 94, 81, 93, 81, 97, 81, 99, 81, 231, 85, 233, 116, 206, 124, 129, 37, 130, 37, 131, 37, 132, 37, 133, 37, 134, 37, 135, 37, 136, 37, 143, 37, 142, 37, 141, 37, 140, 37, 139, 37, 138, 37, 137, 37, 60, 37, 52, 37, 44, 37, 36, 37, 28, 37, 148, 37, 0, 37, 2, 37, 149, 37, 12, 37, 16, 37, 20, 37, 24, 37, 109, 37, 110, 37, 112, 37, 111, 37, 80, 37, 94, 37, 106, 37, 97, 37, 226, 37, 227, 37, 229, 37, 228, 37, 113, 37, 114, 37, 115, 37, 16, 255, 17, 255, 18, 255, 19, 255, 20, 255, 21, 255, 22, 255, 23, 255 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 76572 ); /* memory initializer */ allocate( [ 24, 255, 25, 255, 96, 33, 97, 33, 98, 33, 99, 33, 100, 33, 101, 33, 102, 33, 103, 33, 104, 33, 105, 33, 33, 48, 34, 48, 35, 48, 36, 48, 37, 48, 38, 48, 39, 48, 40, 48, 41, 48, 65, 83, 68, 83, 69, 83, 33, 255, 34, 255, 35, 255, 36, 255, 37, 255, 38, 255, 39, 255, 40, 255, 41, 255, 42, 255, 43, 255, 44, 255, 45, 255, 46, 255, 47, 255, 48, 255, 49, 255, 50, 255, 51, 255, 52, 255, 53, 255, 54, 255, 55, 255, 56, 255, 57, 255, 58, 255, 65, 255, 66, 255, 67, 255, 68, 255, 69, 255, 70, 255, 71, 255, 72, 255, 73, 255, 74, 255, 75, 255, 76, 255, 77, 255, 78, 255, 79, 255, 80, 255, 81, 255, 82, 255, 83, 255, 84, 255, 85, 255, 86, 255, 87, 255, 88, 255, 89, 255, 90, 255, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 5, 49, 6, 49, 7, 49, 8, 49, 9, 49, 10, 49, 11, 49, 12, 49, 13, 49, 14, 49, 15, 49, 16, 49, 17, 49, 18, 49, 19, 49, 20, 49, 21, 49, 22, 49, 23, 49, 24, 49, 25, 49, 26, 49, 27, 49, 28, 49, 29, 49, 30, 49, 31, 49, 32, 49, 33, 49, 34, 49, 35, 49, 36, 49, 37, 49, 38, 49, 39, 49, 40, 49, 41, 49, 217, 2, 201, 2, 202, 2, 199, 2, 203, 2, 0, 36, 1, 36, 2, 36, 3, 36, 4, 36, 5, 36, 6, 36, 7, 36, 8, 36, 9, 36, 10, 36, 11, 36, 12, 36, 13, 36, 14, 36, 15, 36, 16, 36, 17, 36, 18, 36, 19, 36, 20, 36, 21, 36, 22, 36, 23, 36, 24, 36, 25, 36, 26, 36, 27, 36, 28, 36, 29, 36, 30, 36, 31, 36, 33, 36, 172, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 89, 78, 1, 78, 3, 78, 67, 78, 93, 78, 134, 78, 140, 78, 186, 78, 63, 81, 101, 81, 107, 81, 224, 81, 0, 82, 1, 82, 155, 82, 21, 83, 65, 83, 92, 83, 200, 83, 9, 78, 11, 78, 8, 78, 10, 78, 43, 78, 56, 78, 225, 81, 69, 78, 72, 78, 95, 78, 94, 78, 142, 78, 161, 78, 64, 81, 3, 82, 250, 82, 67, 83, 201, 83, 227, 83, 31, 87, 235, 88, 21, 89, 39, 89, 115, 89, 80, 91, 81, 91, 83, 91, 248, 91, 15, 92, 34, 92, 56, 92, 113, 92, 221, 93, 229, 93, 241, 93, 242, 93, 243, 93, 254, 93, 114, 94, 254, 94, 11, 95, 19, 95, 77, 98, 17, 78, 16, 78, 13, 78, 45, 78, 48, 78, 57, 78, 75, 78, 57, 92, 136, 78, 145, 78, 149, 78, 146, 78, 148, 78, 162, 78, 193, 78, 192, 78, 195, 78, 198, 78, 199, 78, 205, 78, 202, 78, 203, 78, 196, 78, 67, 81, 65, 81, 103, 81, 109, 81, 110, 81, 108, 81, 151, 81, 246, 81, 6, 82, 7, 82, 8, 82, 251, 82, 254, 82, 255, 82, 22, 83, 57, 83, 72, 83, 71, 83, 69, 83, 94, 83, 132, 83, 203, 83, 202, 83, 205, 83, 236, 88, 41, 89, 43, 89, 42, 89, 45, 89, 84, 91, 17, 92, 36, 92, 58, 92, 111, 92, 244, 93, 123, 94, 255, 94, 20, 95, 21, 95, 195, 95, 8, 98, 54, 98, 75, 98, 78, 98, 47, 101, 135, 101, 151, 101, 164, 101, 185, 101, 229, 101, 240, 102, 8, 103, 40, 103, 32, 107, 98, 107, 121, 107, 203, 107, 212, 107, 219, 107, 15, 108, 52, 108, 107, 112, 42, 114, 54, 114, 59, 114, 71, 114, 89, 114, 91, 114, 172, 114, 139, 115, 25, 78, 22, 78, 21, 78, 20, 78, 24, 78, 59, 78, 77, 78, 79, 78, 78, 78, 229, 78, 216, 78, 212, 78, 213, 78, 214, 78, 215, 78, 227, 78, 228, 78, 217, 78, 222, 78, 69, 81, 68, 81, 137, 81, 138, 81, 172, 81, 249, 81, 250, 81, 248, 81, 10, 82, 160, 82, 159, 82, 5, 83, 6, 83, 23, 83, 29, 83, 223, 78, 74, 83, 73, 83, 97, 83, 96, 83, 111, 83, 110, 83, 187, 83, 239, 83, 228, 83, 243, 83, 236, 83, 238, 83, 233, 83, 232, 83, 252, 83, 248, 83, 245, 83, 235, 83, 230, 83, 234, 83, 242, 83, 241, 83, 240, 83, 229, 83, 237, 83, 251, 83, 219, 86, 218, 86, 22, 89, 46, 89, 49, 89, 116, 89, 118, 89, 85, 91, 131, 91, 60, 92, 232, 93, 231, 93, 230, 93, 2, 94, 3, 94, 115, 94, 124, 94, 1, 95, 24, 95, 23, 95, 197, 95, 10, 98, 83, 98, 84, 98, 82, 98, 81, 98, 165, 101, 230, 101, 46, 103, 44, 103, 42, 103, 43, 103, 45, 103, 99, 107, 205, 107, 17, 108, 16, 108, 56, 108, 65, 108, 64, 108, 62, 108, 175, 114, 132, 115, 137, 115, 220, 116, 230, 116, 24, 117, 31, 117, 40, 117, 41, 117, 48, 117, 49, 117, 50, 117, 51, 117, 139, 117, 125, 118, 174, 118, 191, 118, 238, 118, 219, 119, 226, 119, 243, 119, 58, 121, 190, 121, 116, 122, 203, 122, 30, 78, 31, 78, 82, 78, 83, 78, 105, 78, 153, 78, 164, 78, 166, 78, 165, 78, 255, 78, 9, 79, 25, 79, 10, 79, 21, 79, 13, 79, 16, 79, 17, 79, 15, 79, 242, 78, 246, 78, 251, 78, 240, 78, 243, 78, 253, 78, 1, 79, 11, 79, 73, 81, 71, 81, 70, 81, 72, 81, 104, 81, 113, 81, 141, 81, 176, 81, 23, 82, 17, 82, 18, 82, 14, 82, 22, 82, 163, 82, 8, 83, 33, 83, 32, 83, 112, 83, 113, 83, 9, 84, 15, 84, 12, 84, 10, 84, 16, 84, 1, 84, 11, 84, 4, 84, 17, 84, 13, 84, 8, 84, 3, 84, 14, 84, 6, 84, 18, 84, 224, 86, 222, 86, 221, 86, 51, 87, 48, 87, 40, 87, 45, 87, 44, 87, 47, 87, 41, 87, 25, 89, 26, 89, 55, 89, 56, 89, 132, 89, 120, 89, 131, 89, 125, 89, 121, 89, 130, 89, 129, 89, 87, 91, 88, 91, 135, 91, 136, 91, 133, 91, 137, 91, 250, 91, 22, 92, 121, 92, 222, 93, 6, 94, 118, 94, 116, 94, 15, 95, 27, 95, 217, 95, 214, 95, 14, 98, 12, 98, 13, 98, 16, 98, 99, 98, 91, 98, 88, 98, 54, 101, 233, 101, 232, 101, 236, 101, 237, 101, 242, 102, 243, 102, 9, 103, 61, 103, 52, 103, 49, 103, 53, 103, 33, 107, 100, 107, 123, 107, 22, 108, 93, 108, 87, 108, 89, 108, 95, 108, 96, 108, 80, 108, 85, 108, 97, 108, 91, 108, 77, 108, 78, 108, 112, 112, 95, 114, 93, 114, 126, 118, 249, 122, 115, 124, 248, 124, 54, 127, 138, 127, 189, 127, 1, 128, 3, 128, 12, 128, 18, 128, 51, 128, 127, 128, 137, 128, 139, 128, 140, 128, 227, 129, 234, 129, 243, 129, 252, 129, 12, 130, 27, 130, 31, 130, 110, 130, 114, 130, 126, 130, 107, 134, 64, 136, 76, 136, 99, 136, 127, 137, 33, 150, 50, 78, 168, 78, 77, 79, 79, 79, 71, 79, 87, 79, 94, 79, 52, 79, 91, 79, 85, 79, 48, 79, 80, 79, 81, 79, 61, 79, 58, 79, 56, 79, 67, 79, 84, 79, 60, 79, 70, 79, 99, 79, 92, 79, 96, 79, 47, 79, 78, 79, 54, 79, 89, 79, 93, 79, 72, 79, 90, 79, 76, 81, 75, 81, 77, 81, 117, 81, 182, 81, 183, 81, 37, 82, 36, 82, 41, 82, 42, 82, 40, 82, 171, 82, 169, 82, 170, 82, 172, 82, 35, 83, 115, 83, 117, 83, 29, 84, 45, 84, 30, 84, 62, 84, 38, 84, 78, 84, 39, 84, 70, 84, 67, 84, 51, 84, 72, 84, 66, 84, 27, 84, 41, 84, 74, 84, 57, 84, 59, 84, 56, 84, 46, 84, 53, 84, 54, 84, 32, 84, 60, 84, 64, 84, 49, 84, 43, 84, 31, 84, 44, 84, 234, 86, 240, 86, 228, 86, 235, 86, 74, 87, 81, 87, 64, 87, 77, 87, 71, 87, 78, 87, 62, 87, 80, 87, 79, 87, 59, 87, 239, 88, 62, 89, 157, 89, 146, 89, 168, 89, 158, 89, 163, 89, 153, 89, 150, 89, 141, 89, 164, 89, 147, 89, 138, 89, 165, 89, 93, 91, 92, 91, 90, 91, 91, 91, 140, 91, 139, 91, 143, 91, 44, 92, 64, 92, 65, 92, 63, 92, 62, 92, 144, 92, 145, 92, 148, 92, 140, 92, 235, 93, 12, 94, 143, 94, 135, 94, 138, 94, 247, 94, 4, 95, 31, 95, 100, 95, 98, 95, 119, 95, 121, 95, 216, 95, 204, 95, 215, 95, 205, 95, 241, 95, 235, 95, 248, 95, 234, 95, 18, 98, 17, 98, 132, 98, 151, 98, 150, 98, 128, 98, 118, 98, 137, 98, 109, 98, 138, 98, 124, 98, 126, 98, 121, 98, 115, 98, 146, 98, 111, 98, 152, 98, 110, 98, 149, 98, 147, 98, 145, 98, 134, 98, 57, 101, 59, 101, 56, 101, 241, 101, 244, 102, 95, 103, 78, 103, 79, 103, 80, 103, 81, 103, 92, 103, 86, 103, 94, 103, 73, 103, 70, 103, 96, 103, 83, 103, 87, 103, 101, 107, 207, 107, 66, 108, 94, 108, 153, 108, 129, 108, 136, 108, 137, 108, 133, 108, 155, 108, 106, 108, 122, 108, 144, 108, 112, 108, 140, 108, 104, 108, 150, 108, 146, 108, 125, 108, 131, 108, 114, 108, 126, 108, 116, 108, 134, 108, 118, 108, 141, 108, 148, 108, 152, 108, 130, 108, 118, 112, 124, 112, 125, 112, 120, 112, 98, 114, 97, 114, 96, 114, 196, 114, 194, 114, 150, 115, 44, 117, 43, 117, 55, 117, 56, 117, 130, 118, 239, 118, 227, 119, 193, 121, 192, 121, 191, 121, 118, 122, 251, 124, 85, 127, 150, 128, 147, 128, 157, 128, 152, 128, 155, 128, 154, 128, 178, 128, 111, 130, 146, 130, 139, 130, 141, 130, 139, 137, 210, 137, 0, 138, 55, 140, 70, 140, 85, 140, 157, 140, 100, 141, 112, 141, 179, 141, 171, 142, 202, 142, 155, 143, 176, 143, 194, 143, 198, 143, 197, 143, 196, 143, 225, 93, 145, 144, 162, 144, 170, 144, 166, 144, 163, 144, 73, 145, 198, 145, 204, 145, 50, 150, 46, 150, 49, 150, 42, 150, 44, 150, 38, 78, 86, 78, 115, 78, 139, 78, 155, 78, 158, 78, 171, 78, 172, 78, 111, 79, 157, 79, 141, 79, 115, 79, 127, 79, 108, 79, 155, 79, 139, 79, 134, 79, 131, 79, 112, 79, 117, 79, 136, 79, 105, 79, 123, 79, 150, 79, 126, 79, 143, 79, 145, 79, 122, 79, 84, 81, 82, 81, 85, 81, 105, 81, 119, 81, 118, 81, 120, 81, 189, 81, 253, 81, 59, 82, 56, 82, 55, 82, 58, 82, 48, 82, 46, 82, 54, 82, 65, 82, 190, 82, 187, 82, 82, 83, 84, 83, 83, 83, 81, 83, 102, 83, 119, 83, 120, 83, 121, 83, 214, 83, 212, 83, 215, 83, 115, 84, 117, 84, 150, 84, 120, 84, 149, 84, 128, 84, 123, 84, 119, 84, 132, 84, 146, 84, 134, 84, 124, 84, 144, 84, 113, 84, 118, 84, 140, 84, 154, 84, 98, 84, 104, 84, 139, 84, 125, 84, 142, 84, 250, 86, 131, 87, 119, 87, 106, 87, 105, 87, 97, 87, 102, 87, 100, 87, 124, 87, 28, 89, 73, 89, 71, 89, 72, 89, 68, 89, 84, 89, 190, 89, 187, 89, 212, 89, 185, 89, 174, 89, 209, 89, 198, 89, 208, 89, 205, 89, 203, 89, 211, 89, 202, 89, 175, 89, 179, 89, 210, 89, 197, 89, 95, 91, 100, 91, 99, 91, 151, 91, 154, 91, 152, 91, 156, 91, 153, 91, 155, 91, 26, 92, 72, 92, 69, 92, 70, 92, 183, 92, 161, 92, 184, 92, 169, 92, 171, 92, 177, 92, 179, 92, 24, 94, 26, 94, 22, 94, 21, 94, 27, 94, 17, 94, 120, 94, 154, 94, 151, 94, 156, 94, 149, 94, 150, 94, 246, 94, 38, 95, 39, 95, 41, 95, 128, 95, 129, 95, 127, 95, 124, 95, 221, 95, 224, 95, 253, 95, 245, 95, 255, 95, 15, 96, 20, 96, 47, 96, 53, 96, 22, 96, 42, 96, 21, 96, 33, 96, 39, 96, 41, 96, 43, 96, 27, 96, 22, 98, 21, 98, 63, 98, 62, 98, 64, 98, 127, 98, 201, 98, 204, 98, 196, 98, 191, 98, 194, 98, 185, 98, 210, 98, 219, 98, 171, 98, 211, 98, 212, 98, 203, 98, 200, 98, 168, 98, 189, 98, 188, 98, 208, 98, 217, 98, 199, 98, 205, 98, 181, 98, 218, 98, 177, 98, 216, 98, 214, 98, 215, 98, 198, 98, 172, 98, 206, 98, 62, 101, 167, 101, 188, 101, 250, 101, 20, 102, 19, 102, 12, 102, 6, 102, 2, 102, 14, 102, 0, 102, 15, 102, 21, 102, 10, 102, 7, 102, 13, 103, 11, 103, 109, 103, 139, 103, 149, 103, 113, 103, 156, 103, 115, 103, 119, 103, 135, 103, 157, 103, 151, 103, 111, 103, 112, 103, 127, 103, 137, 103, 126, 103, 144, 103, 117, 103, 154, 103, 147, 103, 124, 103, 106, 103, 114, 103, 35, 107, 102, 107, 103, 107, 127, 107, 19, 108, 27, 108, 227, 108, 232, 108, 243, 108, 177, 108, 204, 108, 229, 108, 179, 108, 189, 108, 190, 108, 188, 108, 226, 108, 171, 108, 213, 108, 211, 108, 184, 108, 196, 108, 185, 108, 193, 108, 174, 108, 215, 108, 197, 108, 241, 108, 191, 108, 187, 108, 225, 108, 219, 108, 202, 108, 172, 108, 239, 108, 220, 108, 214, 108, 224, 108, 149, 112, 142, 112, 146, 112, 138, 112, 153, 112, 44, 114, 45, 114, 56, 114, 72, 114, 103, 114, 105, 114, 192, 114, 206, 114, 217, 114, 215, 114, 208, 114, 169, 115, 168, 115, 159, 115, 171, 115, 165, 115, 61, 117, 157, 117, 153, 117, 154, 117, 132, 118, 194, 118, 242, 118, 244, 118, 229, 119, 253, 119, 62, 121, 64, 121, 65, 121, 201, 121, 200, 121, 122, 122, 121, 122, 250, 122, 254, 124, 84, 127, 140, 127, 139, 127, 5, 128, 186, 128, 165, 128, 162, 128, 177, 128, 161, 128, 171, 128, 169, 128, 180, 128, 170, 128, 175, 128, 229, 129, 254, 129, 13, 130, 179, 130, 157, 130, 153, 130, 173, 130, 189, 130, 159, 130, 185, 130, 177, 130, 172, 130, 165, 130, 175, 130, 184, 130, 163, 130, 176, 130, 190, 130, 183, 130, 78, 134, 113, 134, 29, 82, 104, 136, 203, 142, 206, 143, 212, 143, 209, 143, 181, 144, 184, 144, 177, 144, 182, 144, 199, 145, 209, 145, 119, 149, 128, 149, 28, 150, 64, 150, 63, 150, 59, 150, 68, 150, 66, 150, 185, 150, 232, 150, 82, 151, 94, 151, 159, 78, 173, 78, 174, 78, 225, 79, 181, 79, 175, 79, 191, 79, 224, 79, 209, 79, 207, 79, 221, 79, 195, 79, 182, 79, 216, 79, 223, 79, 202, 79, 215, 79, 174, 79, 208, 79, 196, 79, 194, 79, 218, 79, 206, 79, 222, 79, 183, 79, 87, 81, 146, 81, 145, 81, 160, 81, 78, 82, 67, 82, 74, 82, 77, 82, 76, 82, 75, 82, 71, 82, 199, 82, 201, 82, 195, 82, 193, 82, 13, 83, 87, 83, 123, 83, 154, 83, 219, 83, 172, 84, 192, 84, 168, 84, 206, 84, 201, 84, 184, 84, 166, 84, 179, 84, 199, 84, 194, 84, 189, 84, 170, 84, 193, 84, 196, 84, 200, 84, 175, 84, 171, 84, 177, 84, 187, 84, 169, 84, 167, 84, 191, 84, 255, 86, 130, 87, 139, 87, 160, 87, 163, 87, 162, 87, 206, 87, 174, 87, 147, 87, 85, 89, 81, 89, 79, 89, 78, 89, 80, 89, 220, 89, 216, 89, 255, 89, 227, 89, 232, 89, 3, 90, 229, 89, 234, 89, 218, 89, 230, 89, 1, 90, 251, 89, 105, 91, 163, 91, 166, 91, 164, 91, 162, 91, 165, 91, 1, 92, 78, 92, 79, 92, 77, 92, 75, 92, 217, 92, 210, 92, 247, 93, 29, 94, 37, 94, 31, 94, 125, 94, 160, 94, 166, 94, 250, 94, 8, 95, 45, 95, 101, 95, 136, 95, 133, 95, 138, 95, 139, 95, 135, 95, 140, 95, 137, 95, 18, 96, 29, 96, 32, 96, 37, 96, 14, 96, 40, 96, 77, 96, 112, 96, 104, 96, 98, 96, 70, 96, 67, 96, 108, 96, 107, 96, 106, 96, 100, 96, 65, 98, 220, 98, 22, 99, 9, 99, 252, 98, 237, 98, 1, 99, 238, 98, 253, 98, 7, 99, 241, 98, 247, 98, 239, 98, 236, 98, 254, 98, 244, 98, 17, 99, 2, 99, 63, 101, 69, 101, 171, 101, 189, 101, 226, 101, 37, 102, 45, 102, 32, 102, 39, 102, 47, 102, 31, 102, 40, 102, 49, 102, 36, 102, 247, 102, 255, 103, 211, 103, 241, 103, 212, 103, 208, 103, 236, 103, 182, 103, 175, 103, 245, 103, 233, 103, 239, 103, 196, 103, 209, 103, 180, 103, 218, 103, 229, 103, 184, 103, 207, 103, 222, 103, 243, 103, 176, 103, 217, 103, 226, 103, 221, 103, 210, 103, 106, 107, 131, 107, 134, 107, 181, 107, 210, 107, 215, 107, 31, 108, 201, 108, 11, 109, 50, 109, 42, 109, 65, 109, 37, 109, 12, 109, 49, 109, 30, 109, 23, 109, 59, 109, 61, 109, 62, 109, 54, 109, 27, 109, 245, 108, 57, 109, 39, 109, 56, 109, 41, 109, 46, 109, 53, 109, 14, 109, 43, 109, 171, 112, 186, 112, 179, 112, 172, 112, 175, 112, 173, 112, 184, 112, 174, 112, 164, 112, 48, 114, 114, 114, 111, 114, 116, 114, 233, 114, 224, 114, 225, 114, 183, 115, 202, 115, 187, 115, 178, 115, 205, 115, 192, 115, 179, 115, 26, 117, 45, 117, 79, 117, 76, 117, 78, 117, 75, 117, 171, 117, 164, 117, 165, 117, 162, 117, 163, 117, 120, 118, 134, 118, 135, 118, 136, 118, 200, 118, 198, 118, 195, 118, 197, 118, 1, 119, 249, 118, 248, 118, 9, 119, 11, 119, 254, 118, 252, 118, 7, 119, 220, 119, 2, 120, 20, 120, 12, 120, 13, 120, 70, 121, 73, 121, 72, 121, 71, 121, 185, 121, 186, 121, 209, 121, 210, 121, 203, 121, 127, 122, 129, 122, 255, 122, 253, 122, 125, 124, 2, 125, 5, 125, 0, 125, 9, 125, 7, 125, 4, 125, 6, 125, 56, 127, 142, 127, 191, 127, 4, 128, 16, 128, 13, 128, 17, 128, 54, 128, 214, 128, 229, 128, 218, 128, 195, 128, 196, 128, 204, 128, 225, 128, 219, 128, 206, 128, 222, 128, 228, 128, 221, 128, 244, 129, 34, 130, 231, 130, 3, 131, 5, 131, 227, 130, 219, 130, 230, 130, 4, 131, 229, 130, 2, 131, 9, 131, 210, 130, 215, 130, 241, 130, 1, 131, 220, 130, 212, 130, 209, 130, 222, 130, 211, 130, 223, 130, 239, 130, 6, 131, 80, 134, 121, 134, 123, 134, 122, 134, 77, 136, 107, 136, 129, 137, 212, 137, 8, 138, 2, 138, 3, 138, 158, 140, 160, 140, 116, 141, 115, 141, 180, 141, 205, 142, 204, 142, 240, 143, 230, 143, 226, 143, 234, 143, 229, 143, 237, 143, 235, 143, 228, 143, 232, 143, 202, 144, 206, 144, 193, 144, 195, 144, 75, 145, 74, 145, 205, 145, 130, 149, 80, 150, 75, 150, 76, 150, 77, 150, 98, 151, 105, 151, 203, 151, 237, 151, 243, 151, 1, 152, 168, 152, 219, 152, 223, 152, 150, 153, 153, 153, 88, 78, 179, 78, 12, 80, 13, 80, 35, 80, 239, 79, 38, 80, 37, 80, 248, 79, 41, 80, 22, 80, 6, 80, 60, 80, 31, 80, 26, 80, 18, 80, 17, 80, 250, 79, 0, 80, 20, 80, 40, 80, 241, 79, 33, 80, 11, 80, 25, 80, 24, 80, 243, 79, 238, 79, 45, 80, 42, 80, 254, 79, 43, 80, 9, 80, 124, 81, 164, 81, 165, 81, 162, 81, 205, 81, 204, 81, 198, 81, 203, 81, 86, 82, 92, 82, 84, 82, 91, 82, 93, 82, 42, 83, 127, 83, 159, 83, 157, 83, 223, 83, 232, 84, 16, 85, 1, 85, 55, 85, 252, 84, 229, 84, 242, 84, 6, 85, 250, 84, 20, 85, 233, 84, 237, 84, 225, 84, 9, 85, 238, 84, 234, 84, 230, 84, 39, 85, 7, 85, 253, 84, 15, 85, 3, 87, 4, 87, 194, 87, 212, 87, 203, 87, 195, 87, 9, 88, 15, 89, 87, 89, 88, 89, 90, 89, 17, 90, 24, 90, 28, 90, 31, 90, 27, 90, 19, 90, 236, 89, 32, 90, 35, 90, 41, 90, 37, 90, 12, 90, 9, 90, 107, 91, 88, 92, 176, 91, 179, 91, 182, 91, 180, 91, 174, 91, 181, 91, 185, 91, 184, 91, 4, 92, 81, 92, 85, 92, 80, 92, 237, 92, 253, 92, 251, 92, 234, 92, 232, 92, 240, 92, 246, 92, 1, 93, 244, 92, 238, 93, 45, 94, 43, 94, 171, 94, 173, 94, 167, 94, 49, 95, 146, 95, 145, 95, 144, 95, 89, 96, 99, 96, 101, 96, 80, 96, 85, 96, 109, 96, 105, 96, 111, 96, 132, 96, 159, 96, 154, 96, 141, 96, 148, 96, 140, 96, 133, 96, 150, 96, 71, 98, 243, 98, 8, 99, 255, 98, 78, 99, 62, 99, 47, 99, 85, 99, 66, 99, 70, 99, 79, 99, 73, 99, 58, 99, 80, 99, 61, 99, 42, 99, 43, 99, 40, 99, 77, 99, 76, 99, 72, 101, 73, 101, 153, 101, 193, 101, 197, 101, 66, 102, 73, 102, 79, 102, 67, 102, 82, 102, 76, 102, 69, 102, 65, 102, 248, 102, 20, 103, 21, 103, 23, 103, 33, 104, 56, 104, 72, 104, 70, 104, 83, 104, 57, 104, 66, 104, 84, 104, 41, 104, 179, 104, 23, 104, 76, 104, 81, 104, 61, 104, 244, 103, 80, 104, 64, 104, 60, 104, 67, 104, 42, 104, 69, 104, 19, 104, 24, 104, 65, 104, 138, 107, 137, 107, 183, 107, 35, 108, 39, 108, 40, 108, 38, 108, 36, 108, 240, 108, 106, 109, 149, 109, 136, 109, 135, 109, 102, 109, 120, 109, 119, 109, 89, 109, 147, 109, 108, 109, 137, 109, 110, 109, 90, 109, 116, 109, 105, 109, 140, 109, 138, 109, 121, 109, 133, 109, 101, 109, 148, 109, 202, 112, 216, 112, 228, 112, 217, 112, 200, 112, 207, 112, 57, 114, 121, 114, 252, 114, 249, 114, 253, 114, 248, 114, 247, 114, 134, 115, 237, 115, 9, 116, 238, 115, 224, 115, 234, 115, 222, 115, 84, 117, 93, 117, 92, 117, 90, 117, 89, 117, 190, 117, 197, 117, 199, 117, 178, 117, 179, 117, 189, 117, 188, 117, 185, 117, 194, 117, 184, 117, 139, 118, 176, 118, 202, 118, 205, 118, 206, 118, 41, 119, 31, 119, 32, 119, 40, 119, 233, 119, 48, 120, 39, 120, 56, 120, 29, 120, 52, 120, 55, 120, 37, 120, 45, 120, 32, 120, 31, 120, 50, 120, 85, 121, 80, 121, 96, 121, 95, 121, 86, 121, 94, 121, 93, 121, 87, 121, 90, 121, 228, 121, 227, 121, 231, 121, 223, 121, 230, 121, 233, 121, 216, 121, 132, 122, 136, 122, 217, 122, 6, 123, 17, 123, 137, 124, 33, 125, 23, 125, 11, 125, 10, 125, 32, 125, 34, 125, 20, 125, 16, 125, 21, 125, 26, 125, 28, 125, 13, 125, 25, 125, 27, 125, 58, 127, 95, 127, 148, 127, 197, 127, 193, 127, 6, 128, 24, 128, 21, 128, 25, 128, 23, 128, 61, 128, 63, 128, 241, 128, 2, 129, 240, 128, 5, 129, 237, 128, 244, 128, 6, 129, 248, 128, 243, 128, 8, 129, 253, 128, 10, 129, 252, 128, 239, 128, 237, 129, 236, 129, 0, 130, 16, 130, 42, 130, 43, 130, 40, 130, 44, 130, 187, 130, 43, 131, 82, 131, 84, 131, 74, 131, 56, 131, 80, 131, 73, 131, 53, 131, 52, 131, 79, 131, 50, 131, 57, 131, 54, 131, 23, 131, 64, 131, 49, 131, 40, 131, 67, 131, 84, 134, 138, 134, 170, 134, 147, 134, 164, 134, 169, 134, 140, 134, 163, 134, 156, 134, 112, 136, 119, 136, 129, 136, 130, 136, 125, 136, 121, 136, 24, 138, 16, 138, 14, 138, 12, 138, 21, 138, 10, 138, 23, 138, 19, 138, 22, 138, 15, 138, 17, 138, 72, 140, 122, 140, 121, 140, 161, 140, 162, 140, 119, 141, 172, 142, 210, 142, 212, 142, 207, 142, 177, 143, 1, 144, 6, 144, 247, 143, 0, 144, 250, 143, 244, 143, 3, 144, 253, 143, 5, 144, 248, 143, 149, 144, 225, 144, 221, 144, 226, 144, 82, 145, 77, 145, 76, 145, 216, 145, 221, 145, 215, 145, 220, 145, 217, 145, 131, 149, 98, 150, 99, 150, 97, 150, 91, 150, 93, 150, 100, 150, 88, 150, 94, 150, 187, 150, 226, 152, 172, 153, 168, 154, 216, 154, 37, 155, 50, 155, 60, 155, 126, 78, 122, 80, 125, 80, 92, 80, 71, 80, 67, 80, 76, 80, 90, 80, 73, 80, 101, 80, 118, 80, 78, 80, 85, 80, 117, 80, 116, 80, 119, 80, 79, 80, 15, 80, 111, 80, 109, 80, 92, 81, 149, 81, 240, 81, 106, 82, 111, 82, 210, 82, 217, 82, 216, 82, 213, 82, 16, 83, 15, 83, 25, 83, 63, 83, 64, 83, 62, 83, 195, 83, 252, 102, 70, 85, 106, 85, 102, 85, 68, 85, 94, 85, 97, 85, 67, 85, 74, 85, 49, 85, 86, 85, 79, 85, 85, 85, 47, 85, 100, 85, 56, 85, 46, 85, 92, 85, 44, 85, 99, 85, 51, 85, 65, 85, 87, 85, 8, 87, 11, 87, 9, 87, 223, 87, 5, 88, 10, 88, 6, 88, 224, 87, 228, 87, 250, 87, 2, 88, 53, 88, 247, 87, 249, 87, 32, 89, 98, 89, 54, 90, 65, 90, 73, 90, 102, 90, 106, 90, 64, 90, 60, 90, 98, 90, 90, 90, 70, 90, 74, 90, 112, 91, 199, 91, 197, 91, 196, 91, 194, 91, 191, 91, 198, 91, 9, 92, 8, 92, 7, 92, 96, 92, 92, 92, 93, 92, 7, 93, 6, 93, 14, 93, 27, 93, 22, 93, 34, 93, 17, 93, 41, 93, 20, 93, 25, 93, 36, 93, 39, 93, 23, 93, 226, 93, 56, 94, 54, 94, 51, 94, 55, 94, 183, 94, 184, 94, 182, 94, 181, 94, 190, 94, 53, 95, 55, 95, 87, 95, 108, 95, 105, 95, 107, 95, 151, 95, 153, 95, 158, 95, 152, 95, 161, 95, 160, 95, 156, 95, 127, 96, 163, 96, 137, 96, 160, 96, 168, 96, 203, 96, 180, 96, 230, 96, 189, 96, 197, 96, 187, 96, 181, 96, 220, 96, 188, 96, 216, 96, 213, 96, 198, 96, 223, 96, 184, 96, 218, 96, 199, 96, 26, 98, 27, 98, 72, 98, 160, 99, 167, 99, 114, 99, 150, 99, 162, 99, 165, 99, 119, 99, 103, 99, 152, 99, 170, 99, 113, 99, 169, 99, 137, 99, 131, 99, 155, 99, 107, 99, 168, 99, 132, 99, 136, 99, 153, 99, 161, 99, 172, 99, 146, 99, 143, 99, 128, 99, 123, 99, 105, 99, 104, 99, 122, 99, 93, 101, 86, 101, 81, 101, 89, 101, 87, 101, 95, 85, 79, 101, 88, 101, 85, 101, 84, 101, 156, 101, 155, 101, 172, 101, 207, 101, 203, 101, 204, 101, 206, 101, 93, 102, 90, 102, 100, 102, 104, 102, 102, 102, 94, 102, 249, 102, 215, 82, 27, 103, 129, 104, 175, 104, 162, 104, 147, 104, 181, 104, 127, 104, 118, 104, 177, 104, 167, 104, 151, 104, 176, 104, 131, 104, 196, 104, 173, 104, 134, 104, 133, 104, 148, 104, 157, 104, 168, 104, 159, 104, 161, 104, 130, 104, 50, 107, 186, 107, 235, 107, 236, 107, 43, 108, 142, 109, 188, 109, 243, 109, 217, 109, 178, 109, 225, 109, 204, 109, 228, 109, 251, 109, 250, 109, 5, 110, 199, 109, 203, 109, 175, 109, 209, 109, 174, 109, 222, 109, 249, 109, 184, 109, 247, 109, 245, 109, 197, 109, 210, 109, 26, 110, 181, 109, 218, 109, 235, 109, 216, 109, 234, 109, 241, 109, 238, 109, 232, 109, 198, 109, 196, 109, 170, 109, 236, 109, 191, 109, 230, 109, 249, 112, 9, 113, 10, 113, 253, 112, 239, 112, 61, 114, 125, 114, 129, 114, 28, 115, 27, 115, 22, 115, 19, 115, 25, 115, 135, 115, 5, 116, 10, 116, 3, 116, 6, 116, 254, 115, 13, 116, 224, 116, 246, 116, 247, 116, 28, 117, 34, 117, 101, 117, 102, 117, 98, 117, 112, 117, 143, 117, 212, 117, 213, 117, 181, 117, 202, 117, 205, 117, 142, 118, 212, 118, 210, 118, 219, 118, 55, 119, 62, 119, 60, 119, 54, 119, 56, 119, 58, 119, 107, 120, 67, 120, 78, 120, 101, 121, 104, 121, 109, 121, 251, 121, 146, 122, 149, 122, 32, 123, 40, 123, 27, 123, 44, 123, 38, 123, 25, 123, 30, 123, 46, 123, 146, 124, 151, 124, 149, 124, 70, 125, 67, 125, 113, 125, 46, 125, 57, 125, 60, 125, 64, 125, 48, 125, 51, 125, 68, 125, 47, 125, 66, 125, 50, 125, 49, 125, 61, 127, 158, 127, 154, 127, 204, 127, 206, 127, 210, 127, 28, 128, 74, 128, 70, 128, 47, 129, 22, 129, 35, 129, 43, 129, 41, 129, 48, 129, 36, 129, 2, 130, 53, 130, 55, 130, 54, 130, 57, 130, 142, 131, 158, 131, 152, 131, 120, 131, 162, 131, 150, 131, 189, 131, 171, 131, 146, 131, 138, 131, 147, 131, 137, 131, 160, 131, 119, 131, 123, 131, 124, 131, 134, 131, 167, 131, 85, 134, 106, 95, 199, 134, 192, 134, 182, 134, 196, 134, 181, 134, 198, 134, 203, 134, 177, 134, 175, 134, 201, 134, 83, 136, 158, 136, 136, 136, 171, 136, 146, 136, 150, 136, 141, 136, 139, 136, 147, 137, 143, 137, 42, 138, 29, 138, 35, 138, 37, 138, 49, 138, 45, 138, 31, 138, 27, 138, 34, 138, 73, 140, 90, 140, 169, 140, 172, 140, 171, 140, 168, 140, 170, 140, 167, 140, 103, 141, 102, 141, 190, 141, 186, 141, 219, 142, 223, 142, 25, 144, 13, 144, 26, 144, 23, 144, 35, 144, 31, 144, 29, 144, 16, 144, 21, 144, 30, 144, 32, 144, 15, 144, 34, 144, 22, 144, 27, 144, 20, 144, 232, 144, 237, 144, 253, 144, 87, 145, 206, 145, 245, 145, 230, 145, 227, 145, 231, 145, 237, 145, 233, 145, 137, 149, 106, 150, 117, 150, 115, 150, 120, 150, 112, 150, 116, 150, 118, 150, 119, 150, 108, 150, 192, 150, 234, 150, 233, 150, 224, 122, 223, 122, 2, 152, 3, 152, 90, 155, 229, 156, 117, 158, 127, 158, 165, 158, 187, 158, 162, 80, 141, 80, 133, 80, 153, 80, 145, 80, 128, 80, 150, 80, 152, 80, 154, 80, 0, 103, 241, 81, 114, 82, 116, 82, 117, 82, 105, 82, 222, 82, 221, 82, 219, 82, 90, 83, 165, 83, 123, 85, 128, 85, 167, 85, 124, 85, 138, 85, 157, 85, 152, 85, 130, 85, 156, 85, 170, 85, 148, 85, 135, 85, 139, 85, 131, 85, 179, 85, 174, 85, 159, 85, 62, 85, 178, 85, 154, 85, 187, 85, 172, 85, 177, 85, 126, 85, 137, 85, 171, 85, 153, 85, 13, 87, 47, 88, 42, 88, 52, 88, 36, 88, 48, 88, 49, 88, 33, 88, 29, 88, 32, 88, 249, 88, 250, 88, 96, 89, 119, 90, 154, 90, 127, 90, 146, 90, 155, 90, 167, 90, 115, 91, 113, 91, 210, 91, 204, 91, 211, 91, 208, 91, 10, 92, 11, 92, 49, 92, 76, 93, 80, 93, 52, 93, 71, 93, 253, 93, 69, 94, 61, 94, 64, 94, 67, 94, 126, 94, 202, 94, 193, 94, 194, 94, 196, 94, 60, 95, 109, 95, 169, 95, 170, 95, 168, 95, 209, 96, 225, 96, 178, 96, 182, 96, 224, 96, 28, 97, 35, 97, 250, 96, 21, 97, 240, 96, 251, 96, 244, 96, 104, 97, 241, 96, 14, 97, 246, 96, 9, 97, 0, 97, 18, 97, 31, 98, 73, 98, 163, 99, 140, 99, 207, 99, 192, 99, 233, 99, 201, 99, 198, 99, 205, 99, 210, 99, 227, 99, 208, 99, 225, 99, 214, 99, 237, 99, 238, 99, 118, 99, 244, 99, 234, 99, 219, 99, 82, 100, 218, 99, 249, 99, 94, 101, 102, 101, 98, 101, 99, 101, 145, 101, 144, 101, 175, 101, 110, 102, 112, 102, 116, 102, 118, 102, 111, 102, 145, 102, 122, 102, 126, 102, 119, 102, 254, 102, 255, 102, 31, 103, 29, 103, 250, 104, 213, 104, 224, 104, 216, 104, 215, 104, 5, 105, 223, 104, 245, 104, 238, 104, 231, 104, 249, 104, 210, 104, 242, 104, 227, 104, 203, 104, 205, 104, 13, 105, 18, 105, 14, 105, 201, 104, 218, 104, 110, 105, 251, 104, 62, 107, 58, 107, 61, 107, 152, 107, 150, 107, 188, 107, 239, 107, 46, 108, 47, 108, 44, 108, 47, 110, 56, 110, 84, 110, 33, 110, 50, 110, 103, 110, 74, 110, 32, 110, 37, 110, 35, 110, 27, 110, 91, 110, 88, 110, 36, 110, 86, 110, 110, 110, 45, 110, 38, 110, 111, 110, 52, 110, 77, 110, 58, 110, 44, 110, 67, 110, 29, 110, 62, 110, 203, 110, 137, 110, 25, 110, 78, 110, 99, 110, 68, 110, 114, 110, 105, 110, 95, 110, 25, 113, 26, 113, 38, 113, 48, 113, 33, 113, 54, 113, 110, 113, 28, 113, 76, 114, 132, 114, 128, 114, 54, 115, 37, 115, 52, 115, 41, 115, 58, 116, 42, 116, 51, 116, 34, 116, 37, 116, 53, 116, 54, 116, 52, 116, 47, 116, 27, 116, 38, 116, 40, 116, 37, 117, 38, 117, 107, 117, 106, 117, 226, 117, 219, 117, 227, 117, 217, 117, 216, 117, 222, 117, 224, 117, 123, 118, 124, 118, 150, 118, 147, 118, 180, 118, 220, 118, 79, 119, 237, 119, 93, 120, 108, 120, 111, 120, 13, 122, 8, 122, 11, 122, 5, 122, 0, 122, 152, 122, 151, 122, 150, 122, 229, 122, 227, 122, 73, 123, 86, 123, 70, 123, 80, 123, 82, 123, 84, 123, 77, 123, 75, 123, 79, 123, 81, 123, 159, 124, 165, 124, 94, 125, 80, 125, 104, 125, 85, 125, 43, 125, 110, 125, 114, 125, 97, 125, 102, 125, 98, 125, 112, 125, 115, 125, 132, 85, 212, 127, 213, 127, 11, 128, 82, 128, 133, 128, 85, 129, 84, 129, 75, 129, 81, 129, 78, 129, 57, 129, 70, 129, 62, 129, 76, 129, 83, 129, 116, 129, 18, 130, 28, 130, 233, 131, 3, 132, 248, 131, 13, 132, 224, 131, 197, 131, 11, 132, 193, 131, 239, 131, 241, 131, 244, 131, 87, 132, 10, 132, 240, 131, 12, 132, 204, 131, 253, 131, 242, 131, 202, 131, 56, 132, 14, 132, 4, 132, 220, 131, 7, 132, 212, 131, 223, 131, 91, 134, 223, 134, 217, 134, 237, 134, 212, 134, 219, 134, 228, 134, 208, 134, 222, 134, 87, 136, 193, 136, 194, 136, 177, 136, 131, 137, 150, 137, 59, 138, 96, 138, 85, 138, 94, 138, 60, 138, 65, 138, 84, 138, 91, 138, 80, 138, 70, 138, 52, 138, 58, 138, 54, 138, 86, 138, 97, 140, 130, 140, 175, 140, 188, 140, 179, 140, 189, 140, 193, 140, 187, 140, 192, 140, 180, 140, 183, 140, 182, 140, 191, 140, 184, 140, 138, 141, 133, 141, 129, 141, 206, 141, 221, 141, 203, 141, 218, 141, 209, 141, 204, 141, 219, 141, 198, 141, 251, 142, 248, 142, 252, 142, 156, 143, 46, 144, 53, 144, 49, 144, 56, 144, 50, 144, 54, 144, 2, 145, 245, 144, 9, 145, 254, 144, 99, 145, 101, 145, 207, 145, 20, 146, 21, 146, 35, 146, 9, 146, 30, 146, 13, 146, 16, 146, 7, 146, 17, 146, 148, 149, 143, 149, 139, 149, 145, 149, 147, 149, 146, 149, 142, 149, 138, 150, 142, 150, 139, 150, 125, 150, 133, 150, 134, 150, 141, 150, 114, 150, 132, 150, 193, 150, 197, 150, 196, 150, 198, 150, 199, 150, 239, 150, 242, 150, 204, 151, 5, 152, 6, 152, 8, 152, 231, 152, 234, 152, 239, 152, 233, 152, 242, 152, 237, 152, 174, 153, 173, 153, 195, 158, 205, 158, 209, 158, 130, 78, 173, 80, 181, 80, 178, 80, 179, 80, 197, 80, 190, 80, 172, 80, 183, 80, 187, 80, 175, 80, 199, 80, 127, 82, 119, 82, 125, 82, 223, 82, 230, 82, 228, 82, 226, 82, 227, 82, 47, 83, 223, 85, 232, 85, 211, 85, 230, 85, 206, 85, 220, 85, 199, 85, 209, 85, 227, 85, 228, 85, 239, 85, 218, 85, 225, 85, 197, 85, 198, 85, 229, 85, 201, 85, 18, 87, 19, 87, 94, 88, 81, 88, 88, 88, 87, 88, 90, 88, 84, 88, 107, 88, 76, 88, 109, 88, 74, 88, 98, 88, 82, 88, 75, 88, 103, 89, 193, 90, 201, 90, 204, 90, 190, 90, 189, 90, 188, 90, 179, 90, 194, 90, 178, 90, 105, 93, 111, 93, 76, 94, 121, 94, 201, 94, 200, 94, 18, 95, 89, 95, 172, 95, 174, 95, 26, 97, 15, 97, 72, 97, 31, 97, 243, 96, 27, 97, 249, 96, 1, 97, 8, 97, 78, 97, 76, 97, 68, 97, 77, 97, 62, 97, 52, 97, 39, 97, 13, 97, 6, 97, 55, 97, 33, 98, 34, 98, 19, 100, 62, 100, 30, 100, 42, 100, 45, 100, 61, 100, 44, 100, 15, 100, 28, 100, 20, 100, 13, 100, 54, 100, 22, 100, 23, 100, 6, 100, 108, 101, 159, 101, 176, 101, 151, 102, 137, 102, 135, 102, 136, 102, 150, 102, 132, 102, 152, 102, 141, 102, 3, 103, 148, 105, 109, 105, 90, 105, 119, 105, 96, 105, 84, 105, 117, 105, 48, 105, 130, 105, 74, 105, 104, 105, 107, 105, 94, 105, 83, 105, 121, 105, 134, 105, 93, 105, 99, 105, 91, 105, 71, 107, 114, 107, 192, 107, 191, 107, 211, 107, 253, 107, 162, 110, 175, 110, 211, 110, 182, 110, 194, 110, 144, 110, 157, 110, 199, 110, 197, 110, 165, 110, 152, 110, 188, 110, 186, 110, 171, 110, 209, 110, 150, 110, 156, 110, 196, 110, 212, 110, 170, 110, 167, 110, 180, 110, 78, 113, 89, 113, 105, 113, 100, 113, 73, 113, 103, 113, 92, 113, 108, 113, 102, 113, 76, 113, 101, 113, 94, 113, 70, 113, 104, 113, 86, 113, 58, 114, 82, 114, 55, 115, 69, 115, 63, 115, 62, 115, 111, 116, 90, 116, 85, 116, 95, 116, 94, 116, 65, 116, 63, 116, 89, 116, 91, 116, 92, 116, 118, 117, 120, 117, 0, 118, 240, 117, 1, 118, 242, 117, 241, 117, 250, 117, 255, 117, 244, 117, 243, 117, 222, 118, 223, 118, 91, 119, 107, 119, 102, 119, 94, 119, 99, 119, 121, 119, 106, 119, 108, 119, 92, 119, 101, 119, 104, 119, 98, 119, 238, 119, 142, 120, 176, 120, 151, 120, 152, 120, 140, 120, 137, 120, 124, 120, 145, 120, 147, 120, 127, 120, 122, 121, 127, 121, 129, 121, 44, 132, 189, 121, 28, 122, 26, 122, 32, 122, 20, 122, 31, 122, 30, 122, 159, 122, 160, 122, 119, 123, 192, 123, 96, 123, 110, 123, 103, 123, 177, 124, 179, 124, 181, 124, 147, 125, 121, 125, 145, 125, 129, 125, 143, 125, 91, 125, 110, 127, 105, 127, 106, 127, 114, 127, 169, 127, 168, 127, 164, 127, 86, 128, 88, 128, 134, 128, 132, 128, 113, 129, 112, 129, 120, 129, 101, 129, 110, 129, 115, 129, 107, 129, 121, 129, 122, 129, 102, 129, 5, 130, 71, 130, 130, 132, 119, 132, 61, 132, 49, 132, 117, 132, 102, 132, 107, 132, 73, 132, 108, 132, 91, 132, 60, 132, 53, 132, 97, 132, 99, 132, 105, 132, 109, 132, 70, 132, 94, 134, 92, 134, 95, 134, 249, 134, 19, 135, 8, 135, 7, 135, 0, 135, 254, 134, 251, 134, 2, 135, 3, 135, 6, 135, 10, 135, 89, 136, 223, 136, 212, 136, 217, 136, 220, 136, 216, 136, 221, 136, 225, 136, 202, 136, 213, 136, 210, 136, 156, 137, 227, 137, 107, 138, 114, 138, 115, 138, 102, 138, 105, 138, 112, 138, 135, 138, 124, 138, 99, 138, 160, 138, 113, 138, 133, 138, 109, 138, 98, 138, 110, 138, 108, 138, 121, 138, 123, 138, 62, 138, 104, 138, 98, 140, 138, 140, 137, 140, 202, 140, 199, 140, 200, 140, 196, 140, 178, 140, 195, 140, 194, 140, 197, 140, 225, 141, 223, 141, 232, 141, 239, 141, 243, 141, 250, 141, 234, 141, 228, 141, 230, 141, 178, 142, 3, 143, 9, 143, 254, 142, 10, 143, 159, 143, 178, 143, 75, 144, 74, 144, 83, 144, 66, 144, 84, 144, 60, 144, 85, 144, 80, 144, 71, 144, 79, 144, 78, 144, 77, 144, 81, 144, 62, 144, 65, 144, 18, 145, 23, 145, 108, 145, 106, 145, 105, 145, 201, 145, 55, 146, 87, 146, 56, 146, 61, 146, 64, 146, 62, 146, 91, 146, 75, 146, 100, 146, 81, 146, 52, 146, 73, 146, 77, 146, 69, 146, 57, 146, 63, 146, 90, 146, 152, 149, 152, 150, 148, 150, 149, 150, 205, 150, 203, 150, 201, 150, 202, 150, 247, 150, 251, 150, 249, 150, 246, 150, 86, 151, 116, 151, 118, 151, 16, 152, 17, 152, 19, 152, 10, 152, 18, 152, 12, 152, 252, 152, 244, 152, 253, 152, 254, 152, 179, 153, 177, 153, 180, 153, 225, 154, 233, 156, 130, 158, 14, 159, 19, 159, 32, 159, 231, 80, 238, 80, 229, 80, 214, 80, 237, 80, 218, 80, 213, 80, 207, 80, 209, 80, 241, 80, 206, 80, 233, 80, 98, 81, 243, 81, 131, 82, 130, 82, 49, 83, 173, 83, 254, 85, 0, 86, 27, 86, 23, 86, 253, 85, 20, 86, 6, 86, 9, 86, 13, 86, 14, 86, 247, 85, 22, 86, 31, 86, 8, 86, 16, 86, 246, 85, 24, 87, 22, 87, 117, 88, 126, 88, 131, 88, 147, 88, 138, 88, 121, 88, 133, 88, 125, 88, 253, 88, 37, 89, 34, 89, 36, 89, 106, 89, 105, 89, 225, 90, 230, 90, 233, 90, 215, 90, 214, 90, 216, 90, 227, 90, 117, 91, 222, 91, 231, 91, 225, 91, 229, 91, 230, 91, 232, 91, 226, 91, 228, 91, 223, 91, 13, 92, 98, 92, 132, 93, 135, 93, 91, 94, 99, 94, 85, 94, 87, 94, 84, 94, 211, 94, 214, 94, 10, 95, 70, 95, 112, 95, 185, 95, 71, 97, 63, 97, 75, 97, 119, 97, 98, 97, 99, 97, 95, 97, 90, 97, 88, 97, 117, 97, 42, 98, 135, 100, 88, 100, 84, 100, 164, 100, 120, 100, 95, 100, 122, 100, 81, 100, 103, 100, 52, 100, 109, 100, 123, 100, 114, 101, 161, 101, 215, 101, 214, 101, 162, 102, 168, 102, 157, 102, 156, 105, 168, 105, 149, 105, 193, 105, 174, 105, 211, 105, 203, 105, 155, 105, 183, 105, 187, 105, 171, 105, 180, 105, 208, 105, 205, 105, 173, 105, 204, 105, 166, 105, 195, 105, 163, 105, 73, 107, 76, 107, 51, 108, 51, 111, 20, 111, 254, 110, 19, 111, 244, 110, 41, 111, 62, 111, 32, 111, 44, 111, 15, 111, 2, 111, 34, 111, 255, 110, 239, 110, 6, 111, 49, 111, 56, 111, 50, 111, 35, 111, 21, 111, 43, 111, 47, 111, 136, 111, 42, 111, 236, 110, 1, 111, 242, 110, 204, 110, 247, 110, 148, 113, 153, 113, 125, 113, 138, 113, 132, 113, 146, 113, 62, 114, 146, 114, 150, 114, 68, 115, 80, 115, 100, 116, 99, 116, 106, 116, 112, 116, 109, 116, 4, 117, 145, 117, 39, 118, 13, 118, 11, 118, 9, 118, 19, 118, 225, 118, 227, 118, 132, 119, 125, 119, 127, 119, 97, 119, 193, 120, 159, 120, 167, 120, 179, 120, 169, 120, 163, 120, 142, 121, 143, 121, 141, 121, 46, 122, 49, 122, 170, 122, 169, 122, 237, 122, 239, 122, 161, 123, 149, 123, 139, 123, 117, 123, 151, 123, 157, 123, 148, 123, 143, 123, 184, 123, 135, 123, 132, 123, 185, 124, 189, 124, 190, 124, 187, 125, 176, 125, 156, 125, 189, 125, 190, 125, 160, 125, 202, 125, 180, 125, 178, 125, 177, 125, 186, 125, 162, 125, 191, 125, 181, 125, 184, 125, 173, 125, 210, 125, 199, 125, 172, 125, 112, 127, 224, 127, 225, 127, 223, 127, 94, 128, 90, 128, 135, 128, 80, 129, 128, 129, 143, 129, 136, 129, 138, 129, 127, 129, 130, 129, 231, 129, 250, 129, 7, 130, 20, 130, 30, 130, 75, 130, 201, 132, 191, 132, 198, 132, 196, 132, 153, 132, 158, 132, 178, 132, 156, 132, 203, 132, 184, 132, 192, 132, 211, 132, 144, 132, 188, 132, 209, 132, 202, 132, 63, 135, 28, 135, 59, 135, 34, 135, 37, 135, 52, 135, 24, 135, 85, 135, 55, 135, 41, 135, 243, 136, 2, 137, 244, 136, 249, 136, 248, 136, 253, 136, 232, 136, 26, 137, 239, 136, 166, 138, 140, 138, 158, 138, 163, 138, 141, 138, 161, 138, 147, 138, 164, 138, 170, 138, 165, 138, 168, 138, 152, 138, 145, 138, 154, 138, 167, 138, 106, 140, 141, 140, 140, 140, 211, 140, 209, 140, 210, 140, 107, 141, 153, 141, 149, 141, 252, 141, 20, 143, 18, 143, 21, 143, 19, 143, 163, 143, 96, 144, 88, 144, 92, 144, 99, 144, 89, 144, 94, 144, 98, 144, 93, 144, 91, 144, 25, 145, 24, 145, 30, 145, 117, 145, 120, 145, 119, 145, 116, 145, 120, 146, 128, 146, 133, 146, 152, 146, 150, 146, 123, 146, 147, 146, 156, 146, 168, 146, 124, 146, 145, 146, 161, 149, 168, 149, 169, 149, 163, 149, 165, 149, 164, 149, 153, 150, 156, 150, 155, 150, 204, 150, 210, 150, 0, 151, 124, 151, 133, 151, 246, 151, 23, 152, 24, 152, 175, 152, 177, 152, 3, 153, 5, 153, 12, 153, 9, 153, 193, 153, 175, 154, 176, 154, 230, 154, 65, 155, 66, 155, 244, 156, 246, 156, 243, 156, 188, 158, 59, 159, 74, 159, 4, 81, 0, 81, 251, 80, 245, 80, 249, 80, 2, 81, 8, 81, 9, 81, 5, 81, 220, 81, 135, 82, 136, 82, 137, 82, 141, 82, 138, 82, 240, 82, 178, 83, 46, 86, 59, 86, 57, 86, 50, 86, 63, 86, 52, 86, 41, 86, 83, 86, 78, 86, 87, 86, 116, 86, 54, 86, 47, 86, 48, 86, 128, 88, 159, 88, 158, 88, 179, 88, 156, 88, 174, 88, 169, 88, 166, 88, 109, 89, 9, 91, 251, 90, 11, 91, 245, 90, 12, 91, 8, 91, 238, 91, 236, 91, 233, 91, 235, 91, 100, 92, 101, 92, 157, 93, 148, 93, 98, 94, 95, 94, 97, 94, 226, 94, 218, 94, 223, 94, 221, 94, 227, 94, 224, 94, 72, 95, 113, 95, 183, 95, 181, 95, 118, 97, 103, 97, 110, 97, 93, 97, 85, 97, 130, 97, 124, 97, 112, 97, 107, 97, 126, 97, 167, 97, 144, 97, 171, 97, 142, 97, 172, 97, 154, 97, 164, 97, 148, 97, 174, 97, 46, 98, 105, 100, 111, 100, 121, 100, 158, 100, 178, 100, 136, 100, 144, 100, 176, 100, 165, 100, 147, 100, 149, 100, 169, 100, 146, 100, 174, 100, 173, 100, 171, 100, 154, 100, 172, 100, 153, 100, 162, 100, 179, 100, 117, 101, 119, 101, 120, 101, 174, 102, 171, 102, 180, 102, 177, 102, 35, 106, 31, 106, 232, 105, 1, 106, 30, 106, 25, 106, 253, 105, 33, 106, 19, 106, 10, 106, 243, 105, 2, 106, 5, 106, 237, 105, 17, 106, 80, 107, 78, 107, 164, 107, 197, 107, 198, 107, 63, 111, 124, 111, 132, 111, 81, 111, 102, 111, 84, 111, 134, 111, 109, 111, 91, 111, 120, 111, 110, 111, 142, 111, 122, 111, 112, 111, 100, 111, 151, 111, 88, 111, 213, 110, 111, 111, 96, 111, 95, 111, 159, 113, 172, 113, 177, 113, 168, 113, 86, 114, 155, 114, 78, 115, 87, 115, 105, 116, 139, 116, 131, 116, 126, 116, 128, 116, 127, 117, 32, 118, 41, 118, 31, 118, 36, 118, 38, 118, 33, 118, 34, 118, 154, 118, 186, 118, 228, 118, 142, 119, 135, 119, 140, 119, 145, 119, 139, 119, 203, 120, 197, 120, 186, 120, 202, 120, 190, 120, 213, 120, 188, 120, 208, 120, 63, 122, 60, 122, 64, 122, 61, 122, 55, 122, 59, 122, 175, 122, 174, 122, 173, 123, 177, 123, 196, 123, 180, 123, 198, 123, 199, 123, 193, 123, 160, 123, 204, 123, 202, 124, 224, 125, 244, 125, 239, 125, 251, 125, 216, 125, 236, 125, 221, 125, 232, 125, 227, 125, 218, 125, 222, 125, 233, 125, 158, 125, 217, 125, 242, 125, 249, 125, 117, 127, 119, 127, 175, 127, 233, 127, 38, 128, 155, 129, 156, 129, 157, 129, 160, 129, 154, 129, 152, 129, 23, 133, 61, 133, 26, 133, 238, 132, 44, 133, 45, 133, 19, 133, 17, 133, 35, 133, 33, 133, 20, 133, 236, 132, 37, 133, 255, 132, 6, 133, 130, 135, 116, 135, 118, 135, 96, 135, 102, 135, 120, 135, 104, 135, 89, 135, 87, 135, 76, 135, 83, 135, 91, 136, 93, 136, 16, 137, 7, 137, 18, 137, 19, 137, 21, 137, 10, 137, 188, 138, 210, 138, 199, 138, 196, 138, 149, 138, 203, 138, 248, 138, 178, 138, 201, 138, 194, 138, 191, 138, 176, 138, 214, 138, 205, 138, 182, 138, 185, 138, 219, 138, 76, 140, 78, 140, 108, 140, 224, 140, 222, 140, 230, 140, 228, 140, 236, 140, 237, 140, 226, 140, 227, 140, 220, 140, 234, 140, 225, 140, 109, 141, 159, 141, 163, 141, 43, 142, 16, 142, 29, 142, 34, 142, 15, 142, 41, 142, 31, 142, 33, 142, 30, 142, 186, 142, 29, 143, 27, 143, 31, 143, 41, 143, 38, 143, 42, 143, 28, 143, 30, 143, 37, 143, 105, 144, 110, 144, 104, 144, 109, 144, 119, 144, 48, 145, 45, 145, 39, 145, 49, 145, 135, 145, 137, 145, 139, 145, 131, 145, 197, 146, 187, 146, 183, 146, 234, 146, 172, 146, 228, 146, 193, 146, 179, 146, 188, 146, 210, 146, 199, 146, 240, 146, 178, 146, 173, 149, 177, 149, 4, 151, 6, 151, 7, 151, 9, 151, 96, 151, 141, 151, 139, 151, 143, 151, 33, 152, 43, 152, 28, 152, 179, 152, 10, 153, 19, 153, 18, 153, 24, 153, 221, 153, 208, 153, 223, 153, 219, 153, 209, 153, 213, 153, 210, 153, 217, 153, 183, 154, 238, 154, 239, 154, 39, 155, 69, 155, 68, 155, 119, 155, 111, 155, 6, 157, 9, 157, 3, 157, 169, 158, 190, 158, 206, 158, 168, 88, 82, 159, 18, 81, 24, 81, 20, 81, 16, 81, 21, 81, 128, 81, 170, 81, 221, 81, 145, 82, 147, 82, 243, 82, 89, 86, 107, 86, 121, 86, 105, 86, 100, 86, 120, 86, 106, 86, 104, 86, 101, 86, 113, 86, 111, 86, 108, 86, 98, 86, 118, 86, 193, 88, 190, 88, 199, 88, 197, 88, 110, 89, 29, 91, 52, 91, 120, 91, 240, 91, 14, 92, 74, 95, 178, 97, 145, 97, 169, 97, 138, 97, 205, 97, 182, 97, 190, 97, 202, 97, 200, 97, 48, 98, 197, 100, 193, 100, 203, 100, 187, 100, 188, 100, 218, 100, 196, 100, 199, 100, 194, 100, 205, 100, 191, 100, 210, 100, 212, 100, 190, 100, 116, 101, 198, 102, 201, 102, 185, 102, 196, 102, 199, 102, 184, 102, 61, 106, 56, 106, 58, 106, 89, 106, 107, 106, 88, 106, 57, 106, 68, 106, 98, 106, 97, 106, 75, 106, 71, 106, 53, 106, 95, 106, 72, 106, 89, 107, 119, 107, 5, 108, 194, 111, 177, 111, 161, 111, 195, 111, 164, 111, 193, 111, 167, 111, 179, 111, 192, 111, 185, 111, 182, 111, 166, 111, 160, 111, 180, 111, 190, 113, 201, 113, 208, 113, 210, 113, 200, 113, 213, 113, 185, 113, 206, 113, 217, 113, 220, 113, 195, 113, 196, 113, 104, 115, 156, 116, 163, 116, 152, 116, 159, 116, 158, 116, 226, 116, 12, 117, 13, 117, 52, 118, 56, 118, 58, 118, 231, 118, 229, 118, 160, 119, 158, 119, 159, 119, 165, 119, 232, 120, 218, 120, 236, 120, 231, 120, 166, 121, 77, 122, 78, 122, 70, 122, 76, 122, 75, 122, 186, 122, 217, 123, 17, 124, 201, 123, 228, 123, 219, 123, 225, 123, 233, 123, 230, 123, 213, 124, 214, 124, 10, 126, 17, 126, 8, 126, 27, 126, 35, 126, 30, 126, 29, 126, 9, 126, 16, 126, 121, 127, 178, 127, 240, 127, 241, 127, 238, 127, 40, 128, 179, 129, 169, 129, 168, 129, 251, 129, 8, 130, 88, 130, 89, 130, 74, 133, 89, 133, 72, 133, 104, 133, 105, 133, 67, 133, 73, 133, 109, 133, 106, 133, 94, 133, 131, 135, 159, 135, 158, 135, 162, 135, 141, 135, 97, 136, 42, 137, 50, 137, 37, 137, 43, 137, 33, 137, 170, 137, 166, 137, 230, 138, 250, 138, 235, 138, 241, 138, 0, 139, 220, 138, 231, 138, 238, 138, 254, 138, 1, 139, 2, 139, 247, 138, 237, 138, 243, 138, 246, 138, 252, 138, 107, 140, 109, 140, 147, 140, 244, 140, 68, 142, 49, 142, 52, 142, 66, 142, 57, 142, 53, 142, 59, 143, 47, 143, 56, 143, 51, 143, 168, 143, 166, 143, 117, 144, 116, 144, 120, 144, 114, 144, 124, 144, 122, 144, 52, 145, 146, 145, 32, 147, 54, 147, 248, 146, 51, 147, 47, 147, 34, 147, 252, 146, 43, 147, 4, 147, 26, 147, 16, 147, 38, 147, 33, 147, 21, 147, 46, 147, 25, 147, 187, 149, 167, 150, 168, 150, 170, 150, 213, 150, 14, 151, 17, 151, 22, 151, 13, 151, 19, 151, 15, 151, 91, 151, 92, 151, 102, 151, 152, 151, 48, 152, 56, 152, 59, 152, 55, 152, 45, 152, 57, 152, 36, 152, 16, 153, 40, 153, 30, 153, 27, 153, 33, 153, 26, 153, 237, 153, 226, 153, 241, 153, 184, 154, 188, 154, 251, 154, 237, 154, 40, 155, 145, 155, 21, 157, 35, 157, 38, 157, 40, 157, 18, 157, 27, 157, 216, 158, 212, 158, 141, 159, 156, 159, 42, 81, 31, 81, 33, 81, 50, 81, 245, 82, 142, 86, 128, 86, 144, 86, 133, 86, 135, 86, 143, 86, 213, 88, 211, 88, 209, 88, 206, 88, 48, 91, 42, 91, 36, 91, 122, 91, 55, 92, 104, 92, 188, 93, 186, 93, 189, 93, 184, 93, 107, 94, 76, 95, 189, 95, 201, 97, 194, 97, 199, 97, 230, 97, 203, 97, 50, 98, 52, 98, 206, 100, 202, 100, 216, 100, 224, 100, 240, 100, 230, 100, 236, 100, 241, 100, 226, 100, 237, 100, 130, 101, 131, 101, 217, 102, 214, 102, 128, 106, 148, 106, 132, 106, 162, 106, 156, 106, 219, 106, 163, 106, 126, 106, 151, 106, 144, 106, 160, 106, 92, 107, 174, 107, 218, 107, 8, 108, 216, 111, 241, 111, 223, 111, 224, 111, 219, 111, 228, 111, 235, 111, 239, 111, 128, 111, 236, 111, 225, 111, 233, 111, 213, 111, 238, 111, 240, 111, 231, 113, 223, 113, 238, 113, 230, 113, 229, 113, 237, 113, 236, 113, 244, 113, 224, 113, 53, 114, 70, 114, 112, 115, 114, 115, 169, 116, 176, 116, 166, 116, 168, 116, 70, 118, 66, 118, 76, 118, 234, 118, 179, 119, 170, 119, 176, 119, 172, 119, 167, 119, 173, 119, 239, 119, 247, 120, 250, 120, 244, 120, 239, 120, 1, 121, 167, 121, 170, 121, 87, 122, 191, 122, 7, 124, 13, 124, 254, 123, 247, 123, 12, 124, 224, 123, 224, 124, 220, 124, 222, 124, 226, 124, 223, 124, 217, 124, 221, 124, 46, 126, 62, 126, 70, 126, 55, 126, 50, 126, 67, 126, 43, 126, 61, 126, 49, 126, 69, 126, 65, 126, 52, 126, 57, 126, 72, 126, 53, 126, 63, 126, 47, 126, 68, 127, 243, 127, 252, 127, 113, 128, 114, 128, 112, 128, 111, 128, 115, 128, 198, 129, 195, 129, 186, 129, 194, 129, 192, 129, 191, 129, 189, 129, 201, 129, 190, 129, 232, 129, 9, 130, 113, 130, 170, 133, 132, 133, 126, 133, 156, 133, 145, 133, 148, 133, 175, 133, 155, 133, 135, 133, 168, 133, 138, 133, 103, 134, 192, 135, 209, 135, 179, 135, 210, 135, 198, 135, 171, 135, 187, 135, 186, 135, 200, 135, 203, 135, 59, 137, 54, 137, 68, 137, 56, 137, 61, 137, 172, 137, 14, 139, 23, 139, 25, 139, 27, 139, 10, 139, 32, 139, 29, 139, 4, 139, 16, 139, 65, 140, 63, 140, 115, 140, 250, 140, 253, 140, 252, 140, 248, 140, 251, 140, 168, 141, 73, 142, 75, 142, 72, 142, 74, 142, 68, 143, 62, 143, 66, 143, 69, 143, 63, 143, 127, 144, 125, 144, 132, 144, 129, 144, 130, 144, 128, 144, 57, 145, 163, 145, 158, 145, 156, 145, 77, 147, 130, 147, 40, 147, 117, 147, 74, 147, 101, 147, 75, 147, 24, 147, 126, 147, 108, 147, 91, 147, 112, 147, 90, 147, 84, 147, 202, 149, 203, 149, 204, 149, 200, 149, 198, 149, 177, 150, 184, 150, 214, 150, 28, 151, 30, 151, 160, 151, 211, 151, 70, 152, 182, 152, 53, 153, 1, 154, 255, 153, 174, 155, 171, 155, 170, 155, 173, 155, 59, 157, 63, 157, 139, 158, 207, 158, 222, 158, 220, 158, 221, 158, 219, 158, 62, 159, 75, 159, 226, 83, 149, 86, 174, 86, 217, 88, 216, 88, 56, 91, 93, 95, 227, 97, 51, 98, 244, 100, 242, 100, 254, 100, 6, 101, 250, 100, 251, 100, 247, 100, 183, 101, 220, 102, 38, 103, 179, 106, 172, 106, 195, 106, 187, 106, 184, 106, 194, 106, 174, 106, 175, 106, 95, 107, 120, 107, 175, 107, 9, 112, 11, 112, 254, 111, 6, 112, 250, 111, 17, 112, 15, 112, 251, 113, 252, 113, 254, 113, 248, 113, 119, 115, 117, 115, 167, 116, 191, 116, 21, 117, 86, 118, 88, 118, 82, 118, 189, 119, 191, 119, 187, 119, 188, 119, 14, 121, 174, 121, 97, 122, 98, 122, 96, 122, 196, 122, 197, 122, 43, 124, 39, 124, 42, 124, 30, 124, 35, 124, 33, 124, 231, 124, 84, 126, 85, 126, 94, 126, 90, 126, 97, 126, 82, 126, 89, 126, 72, 127, 249, 127, 251, 127, 119, 128, 118, 128, 205, 129, 207, 129, 10, 130, 207, 133, 169, 133, 205, 133, 208, 133, 201, 133, 176, 133, 186, 133, 185, 133, 166, 133, 239, 135, 236, 135, 242, 135, 224, 135, 134, 137, 178, 137, 244, 137, 40, 139, 57, 139, 44, 139, 43, 139, 80, 140, 5, 141, 89, 142, 99, 142, 102, 142, 100, 142, 95, 142, 85, 142, 192, 142, 73, 143, 77, 143, 135, 144, 131, 144, 136, 144, 171, 145, 172, 145, 208, 145, 148, 147, 138, 147, 150, 147, 162, 147, 179, 147, 174, 147, 172, 147, 176, 147, 152, 147, 154, 147, 151, 147, 212, 149, 214, 149, 208, 149, 213, 149, 226, 150, 220, 150, 217, 150, 219, 150, 222, 150, 36, 151, 163, 151, 166, 151, 173, 151, 249, 151, 77, 152, 79, 152, 76, 152, 78, 152, 83, 152, 186, 152, 62, 153, 63, 153, 61, 153, 46, 153, 165, 153, 14, 154, 193, 154, 3, 155, 6, 155, 79, 155, 78, 155, 77, 155, 202, 155, 201, 155, 253, 155, 200, 155 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 86812 ); /* memory initializer */ allocate( [ 192, 155, 81, 157, 93, 157, 96, 157, 224, 158, 21, 159, 44, 159, 51, 81, 165, 86, 222, 88, 223, 88, 226, 88, 245, 91, 144, 159, 236, 94, 242, 97, 247, 97, 246, 97, 245, 97, 0, 101, 15, 101, 224, 102, 221, 102, 229, 106, 221, 106, 218, 106, 211, 106, 27, 112, 31, 112, 40, 112, 26, 112, 29, 112, 21, 112, 24, 112, 6, 114, 13, 114, 88, 114, 162, 114, 120, 115, 122, 115, 189, 116, 202, 116, 227, 116, 135, 117, 134, 117, 95, 118, 97, 118, 199, 119, 25, 121, 177, 121, 107, 122, 105, 122, 62, 124, 63, 124, 56, 124, 61, 124, 55, 124, 64, 124, 107, 126, 109, 126, 121, 126, 105, 126, 106, 126, 133, 127, 115, 126, 182, 127, 185, 127, 184, 127, 216, 129, 233, 133, 221, 133, 234, 133, 213, 133, 228, 133, 229, 133, 247, 133, 251, 135, 5, 136, 13, 136, 249, 135, 254, 135, 96, 137, 95, 137, 86, 137, 94, 137, 65, 139, 92, 139, 88, 139, 73, 139, 90, 139, 78, 139, 79, 139, 70, 139, 89, 139, 8, 141, 10, 141, 124, 142, 114, 142, 135, 142, 118, 142, 108, 142, 122, 142, 116, 142, 84, 143, 78, 143, 173, 143, 138, 144, 139, 144, 177, 145, 174, 145, 225, 147, 209, 147, 223, 147, 195, 147, 200, 147, 220, 147, 221, 147, 214, 147, 226, 147, 205, 147, 216, 147, 228, 147, 215, 147, 232, 147, 220, 149, 180, 150, 227, 150, 42, 151, 39, 151, 97, 151, 220, 151, 251, 151, 94, 152, 88, 152, 91, 152, 188, 152, 69, 153, 73, 153, 22, 154, 25, 154, 13, 155, 232, 155, 231, 155, 214, 155, 219, 155, 137, 157, 97, 157, 114, 157, 106, 157, 108, 157, 146, 158, 151, 158, 147, 158, 180, 158, 248, 82, 168, 86, 183, 86, 182, 86, 180, 86, 188, 86, 228, 88, 64, 91, 67, 91, 125, 91, 246, 91, 201, 93, 248, 97, 250, 97, 24, 101, 20, 101, 25, 101, 230, 102, 39, 103, 236, 106, 62, 112, 48, 112, 50, 112, 16, 114, 123, 115, 207, 116, 98, 118, 101, 118, 38, 121, 42, 121, 44, 121, 43, 121, 199, 122, 246, 122, 76, 124, 67, 124, 77, 124, 239, 124, 240, 124, 174, 143, 125, 126, 124, 126, 130, 126, 76, 127, 0, 128, 218, 129, 102, 130, 251, 133, 249, 133, 17, 134, 250, 133, 6, 134, 11, 134, 7, 134, 10, 134, 20, 136, 21, 136, 100, 137, 186, 137, 248, 137, 112, 139, 108, 139, 102, 139, 111, 139, 95, 139, 107, 139, 15, 141, 13, 141, 137, 142, 129, 142, 133, 142, 130, 142, 180, 145, 203, 145, 24, 148, 3, 148, 253, 147, 225, 149, 48, 151, 196, 152, 82, 153, 81, 153, 168, 153, 43, 154, 48, 154, 55, 154, 53, 154, 19, 156, 13, 156, 121, 158, 181, 158, 232, 158, 47, 159, 95, 159, 99, 159, 97, 159, 55, 81, 56, 81, 193, 86, 192, 86, 194, 86, 20, 89, 108, 92, 205, 93, 252, 97, 254, 97, 29, 101, 28, 101, 149, 101, 233, 102, 251, 106, 4, 107, 250, 106, 178, 107, 76, 112, 27, 114, 167, 114, 214, 116, 212, 116, 105, 118, 211, 119, 80, 124, 143, 126, 140, 126, 188, 127, 23, 134, 45, 134, 26, 134, 35, 136, 34, 136, 33, 136, 31, 136, 106, 137, 108, 137, 189, 137, 116, 139, 119, 139, 125, 139, 19, 141, 138, 142, 141, 142, 139, 142, 95, 143, 175, 143, 186, 145, 46, 148, 51, 148, 53, 148, 58, 148, 56, 148, 50, 148, 43, 148, 226, 149, 56, 151, 57, 151, 50, 151, 255, 151, 103, 152, 101, 152, 87, 153, 69, 154, 67, 154, 64, 154, 62, 154, 207, 154, 84, 155, 81, 155, 45, 156, 37, 156, 175, 157, 180, 157, 194, 157, 184, 157, 157, 158, 239, 158, 25, 159, 92, 159, 102, 159, 103, 159, 60, 81, 59, 81, 200, 86, 202, 86, 201, 86, 127, 91, 212, 93, 210, 93, 78, 95, 255, 97, 36, 101, 10, 107, 97, 107, 81, 112, 88, 112, 128, 115, 228, 116, 138, 117, 110, 118, 108, 118, 179, 121, 96, 124, 95, 124, 126, 128, 125, 128, 223, 129, 114, 137, 111, 137, 252, 137, 128, 139, 22, 141, 23, 141, 145, 142, 147, 142, 97, 143, 72, 145, 68, 148, 81, 148, 82, 148, 61, 151, 62, 151, 195, 151, 193, 151, 107, 152, 85, 153, 85, 154, 77, 154, 210, 154, 26, 155, 73, 156, 49, 156, 62, 156, 59, 156, 211, 157, 215, 157, 52, 159, 108, 159, 106, 159, 148, 159, 204, 86, 214, 93, 0, 98, 35, 101, 43, 101, 42, 101, 236, 102, 16, 107, 218, 116, 202, 122, 100, 124, 99, 124, 101, 124, 147, 126, 150, 126, 148, 126, 226, 129, 56, 134, 63, 134, 49, 136, 138, 139, 144, 144, 143, 144, 99, 148, 96, 148, 100, 148, 104, 151, 111, 152, 92, 153, 90, 154, 91, 154, 87, 154, 211, 154, 212, 154, 209, 154, 84, 156, 87, 156, 86, 156, 229, 157, 159, 158, 244, 158, 209, 86, 233, 88, 44, 101, 94, 112, 113, 118, 114, 118, 215, 119, 80, 127, 136, 127, 54, 136, 57, 136, 98, 136, 147, 139, 146, 139, 150, 139, 119, 130, 27, 141, 192, 145, 106, 148, 66, 151, 72, 151, 68, 151, 198, 151, 112, 152, 95, 154, 34, 155, 88, 155, 95, 156, 249, 157, 250, 157, 124, 158, 125, 158, 7, 159, 119, 159, 114, 159, 243, 94, 22, 107, 99, 112, 108, 124, 110, 124, 59, 136, 192, 137, 161, 142, 193, 145, 114, 148, 112, 148, 113, 152, 94, 153, 214, 154, 35, 155, 204, 158, 100, 112, 218, 119, 154, 139, 119, 148, 201, 151, 98, 154, 101, 154, 156, 126, 156, 139, 170, 142, 197, 145, 125, 148, 126, 148, 124, 148, 119, 156, 120, 156, 247, 158, 84, 140, 127, 148, 26, 158, 40, 114, 106, 154, 49, 155, 27, 158, 30, 158, 114, 124, 96, 36, 97, 36, 98, 36, 99, 36, 100, 36, 101, 36, 102, 36, 103, 36, 104, 36, 105, 36, 116, 36, 117, 36, 118, 36, 119, 36, 120, 36, 121, 36, 122, 36, 123, 36, 124, 36, 125, 36, 112, 33, 113, 33, 114, 33, 115, 33, 116, 33, 117, 33, 118, 33, 119, 33, 120, 33, 121, 33, 54, 78, 63, 78, 133, 78, 160, 78, 130, 81, 150, 81, 171, 81, 249, 82, 56, 83, 105, 83, 182, 83, 10, 89, 128, 91, 219, 93, 122, 94, 127, 94, 244, 94, 80, 95, 97, 95, 52, 101, 224, 101, 146, 117, 118, 118, 181, 143, 182, 150, 168, 0, 198, 2, 253, 48, 254, 48, 157, 48, 158, 48, 0, 0, 0, 0, 5, 48, 6, 48, 7, 48, 252, 48, 59, 255, 61, 255, 61, 39, 65, 48, 66, 48, 67, 48, 68, 48, 69, 48, 70, 48, 71, 48, 72, 48, 73, 48, 74, 48, 75, 48, 76, 48, 77, 48, 78, 48, 79, 48, 80, 48, 81, 48, 82, 48, 83, 48, 84, 48, 85, 48, 86, 48, 87, 48, 88, 48, 89, 48, 90, 48, 91, 48, 92, 48, 93, 48, 94, 48, 95, 48, 96, 48, 97, 48, 98, 48, 99, 48, 100, 48, 101, 48, 102, 48, 103, 48, 104, 48, 105, 48, 106, 48, 107, 48, 108, 48, 109, 48, 110, 48, 111, 48, 112, 48, 113, 48, 114, 48, 115, 48, 116, 48, 117, 48, 118, 48, 119, 48, 120, 48, 121, 48, 122, 48, 123, 48, 124, 48, 125, 48, 126, 48, 127, 48, 128, 48, 129, 48, 130, 48, 131, 48, 132, 48, 133, 48, 134, 48, 135, 48, 136, 48, 137, 48, 138, 48, 139, 48, 140, 48, 141, 48, 142, 48, 143, 48, 144, 48, 145, 48, 146, 48, 147, 48, 161, 48, 162, 48, 163, 48, 164, 48, 165, 48, 166, 48, 167, 48, 168, 48, 169, 48, 170, 48, 171, 48, 172, 48, 173, 48, 174, 48, 175, 48, 176, 48, 177, 48, 178, 48, 179, 48, 180, 48, 181, 48, 182, 48, 183, 48, 184, 48, 185, 48, 186, 48, 187, 48, 188, 48, 189, 48, 190, 48, 191, 48, 192, 48, 193, 48, 194, 48, 195, 48, 196, 48, 197, 48, 198, 48, 199, 48, 200, 48, 201, 48, 202, 48, 203, 48, 204, 48, 205, 48, 206, 48, 207, 48, 208, 48, 209, 48, 210, 48, 211, 48, 212, 48, 213, 48, 214, 48, 215, 48, 216, 48, 217, 48, 218, 48, 219, 48, 220, 48, 221, 48, 222, 48, 223, 48, 224, 48, 225, 48, 226, 48, 227, 48, 228, 48, 229, 48, 230, 48, 231, 48, 232, 48, 233, 48, 234, 48, 235, 48, 236, 48, 237, 48, 238, 48, 239, 48, 240, 48, 241, 48, 242, 48, 243, 48, 244, 48, 245, 48, 246, 48, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 1, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 81, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 231, 33, 184, 33, 185, 33, 207, 49, 204, 0, 90, 78, 138, 0, 2, 82, 145, 68, 176, 159, 136, 81, 177, 159, 7, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 255, 228, 255, 7, 255, 2, 255, 49, 50, 22, 33, 33, 33, 155, 48, 156, 48, 128, 46, 132, 46, 134, 46, 135, 46, 136, 46, 138, 46, 140, 46, 141, 46, 149, 46, 156, 46, 157, 46, 165, 46, 167, 46, 170, 46, 172, 46, 174, 46, 182, 46, 188, 46, 190, 46, 198, 46, 202, 46, 204, 46, 205, 46, 207, 46, 214, 46, 215, 46, 222, 46, 227, 46, 0, 0, 0, 0, 0, 0, 131, 2, 80, 2, 91, 2, 84, 2, 117, 2, 83, 1, 248, 0, 75, 1, 138, 2, 106, 2, 66, 78, 92, 78, 245, 81, 26, 83, 130, 83, 7, 78, 12, 78, 71, 78, 141, 78, 215, 86, 12, 250, 110, 92, 115, 95, 15, 78, 135, 81, 14, 78, 46, 78, 147, 78, 194, 78, 201, 78, 200, 78, 152, 81, 252, 82, 108, 83, 185, 83, 32, 87, 3, 89, 44, 89, 16, 92, 255, 93, 225, 101, 179, 107, 204, 107, 20, 108, 63, 114, 49, 78, 60, 78, 232, 78, 220, 78, 233, 78, 225, 78, 221, 78, 218, 78, 12, 82, 28, 83, 76, 83, 34, 87, 35, 87, 23, 89, 47, 89, 129, 91, 132, 91, 18, 92, 59, 92, 116, 92, 115, 92, 4, 94, 128, 94, 130, 94, 201, 95, 9, 98, 80, 98, 21, 108, 54, 108, 67, 108, 63, 108, 59, 108, 174, 114, 176, 114, 138, 115, 184, 121, 138, 128, 30, 150, 14, 79, 24, 79, 44, 79, 245, 78, 20, 79, 241, 78, 0, 79, 247, 78, 8, 79, 29, 79, 2, 79, 5, 79, 34, 79, 19, 79, 4, 79, 244, 78, 18, 79, 177, 81, 19, 82, 9, 82, 16, 82, 166, 82, 34, 83, 31, 83, 77, 83, 138, 83, 7, 84, 225, 86, 223, 86, 46, 87, 42, 87, 52, 87, 60, 89, 128, 89, 124, 89, 133, 89, 123, 89, 126, 89, 119, 89, 127, 89, 86, 91, 21, 92, 37, 92, 124, 92, 122, 92, 123, 92, 126, 92, 223, 93, 117, 94, 132, 94, 2, 95, 26, 95, 116, 95, 213, 95, 212, 95, 207, 95, 92, 98, 94, 98, 100, 98, 97, 98, 102, 98, 98, 98, 89, 98, 96, 98, 90, 98, 101, 98, 239, 101, 238, 101, 62, 103, 57, 103, 56, 103, 59, 103, 58, 103, 63, 103, 60, 103, 51, 103, 24, 108, 70, 108, 82, 108, 92, 108, 79, 108, 74, 108, 84, 108, 75, 108, 76, 108, 113, 112, 94, 114, 180, 114, 181, 114, 142, 115, 42, 117, 127, 118, 117, 122, 81, 127, 120, 130, 124, 130, 128, 130, 125, 130, 127, 130, 77, 134, 126, 137, 153, 144, 151, 144, 152, 144, 155, 144, 148, 144, 34, 150, 36, 150, 32, 150, 35, 150, 86, 79, 59, 79, 98, 79, 73, 79, 83, 79, 100, 79, 62, 79, 103, 79, 82, 79, 95, 79, 65, 79, 88, 79, 45, 79, 51, 79, 63, 79, 97, 79, 143, 81, 185, 81, 28, 82, 30, 82, 33, 82, 173, 82, 174, 82, 9, 83, 99, 83, 114, 83, 142, 83, 143, 83, 48, 84, 55, 84, 42, 84, 84, 84, 69, 84, 25, 84, 28, 84, 37, 84, 24, 84, 61, 84, 79, 84, 65, 84, 40, 84, 36, 84, 71, 84, 238, 86, 231, 86, 229, 86, 65, 87, 69, 87, 76, 87, 73, 87, 75, 87, 82, 87, 6, 89, 64, 89, 166, 89, 152, 89, 160, 89, 151, 89, 142, 89, 162, 89, 144, 89, 143, 89, 167, 89, 161, 89, 142, 91, 146, 91, 40, 92, 42, 92, 141, 92, 143, 92, 136, 92, 139, 92, 137, 92, 146, 92, 138, 92, 134, 92, 147, 92, 149, 92, 224, 93, 10, 94, 14, 94, 139, 94, 137, 94, 140, 94, 136, 94, 141, 94, 5, 95, 29, 95, 120, 95, 118, 95, 210, 95, 209, 95, 208, 95, 237, 95, 232, 95, 238, 95, 243, 95, 225, 95, 228, 95, 227, 95, 250, 95, 239, 95, 247, 95, 251, 95, 0, 96, 244, 95, 58, 98, 131, 98, 140, 98, 142, 98, 143, 98, 148, 98, 135, 98, 113, 98, 123, 98, 122, 98, 112, 98, 129, 98, 136, 98, 119, 98, 125, 98, 114, 98, 116, 98, 55, 101, 240, 101, 244, 101, 243, 101, 242, 101, 245, 101, 69, 103, 71, 103, 89, 103, 85, 103, 76, 103, 72, 103, 93, 103, 77, 103, 90, 103, 75, 103, 208, 107, 25, 108, 26, 108, 120, 108, 103, 108, 107, 108, 132, 108, 139, 108, 143, 108, 113, 108, 111, 108, 105, 108, 154, 108, 109, 108, 135, 108, 149, 108, 156, 108, 102, 108, 115, 108, 101, 108, 123, 108, 142, 108, 116, 112, 122, 112, 99, 114, 191, 114, 189, 114, 195, 114, 198, 114, 193, 114, 186, 114, 197, 114, 149, 115, 151, 115, 147, 115, 148, 115, 146, 115, 58, 117, 57, 117, 148, 117, 149, 117, 129, 118, 61, 121, 52, 128, 149, 128, 153, 128, 144, 128, 146, 128, 156, 128, 144, 130, 143, 130, 133, 130, 142, 130, 145, 130, 147, 130, 138, 130, 131, 130, 132, 130, 120, 140, 201, 143, 191, 143, 159, 144, 161, 144, 165, 144, 158, 144, 167, 144, 160, 144, 48, 150, 40, 150, 47, 150, 45, 150, 51, 78, 152, 79, 124, 79, 133, 79, 125, 79, 128, 79, 135, 79, 118, 79, 116, 79, 137, 79, 132, 79, 119, 79, 76, 79, 151, 79, 106, 79, 154, 79, 121, 79, 129, 79, 120, 79, 144, 79, 156, 79, 148, 79, 158, 79, 146, 79, 130, 79, 149, 79, 107, 79, 110, 79, 158, 81, 188, 81, 190, 81, 53, 82, 50, 82, 51, 82, 70, 82, 49, 82, 188, 82, 10, 83, 11, 83, 60, 83, 146, 83, 148, 83, 135, 84, 127, 84, 129, 84, 145, 84, 130, 84, 136, 84, 107, 84, 122, 84, 126, 84, 101, 84, 108, 84, 116, 84, 102, 84, 141, 84, 111, 84, 97, 84, 96, 84, 152, 84, 99, 84, 103, 84, 100, 84, 247, 86, 249, 86, 111, 87, 114, 87, 109, 87, 107, 87, 113, 87, 112, 87, 118, 87, 128, 87, 117, 87, 123, 87, 115, 87, 116, 87, 98, 87, 104, 87, 125, 87, 12, 89, 69, 89, 181, 89, 186, 89, 207, 89, 206, 89, 178, 89, 204, 89, 193, 89, 182, 89, 188, 89, 195, 89, 214, 89, 177, 89, 189, 89, 192, 89, 200, 89, 180, 89, 199, 89, 98, 91, 101, 91, 147, 91, 149, 91, 68, 92, 71, 92, 174, 92, 164, 92, 160, 92, 181, 92, 175, 92, 168, 92, 172, 92, 159, 92, 163, 92, 173, 92, 162, 92, 170, 92, 167, 92, 157, 92, 165, 92, 182, 92, 176, 92, 166, 92, 23, 94, 20, 94, 25, 94, 40, 95, 34, 95, 35, 95, 36, 95, 84, 95, 130, 95, 126, 95, 125, 95, 222, 95, 229, 95, 45, 96, 38, 96, 25, 96, 50, 96, 11, 96, 52, 96, 10, 96, 23, 96, 51, 96, 26, 96, 30, 96, 44, 96, 34, 96, 13, 96, 16, 96, 46, 96, 19, 96, 17, 96, 12, 96, 9, 96, 28, 96, 20, 98, 61, 98, 173, 98, 180, 98, 209, 98, 190, 98, 170, 98, 182, 98, 202, 98, 174, 98, 179, 98, 175, 98, 187, 98, 169, 98, 176, 98, 184, 98, 61, 101, 168, 101, 187, 101, 9, 102, 252, 101, 4, 102, 18, 102, 8, 102, 251, 101, 3, 102, 11, 102, 13, 102, 5, 102, 253, 101, 17, 102, 16, 102, 246, 102, 10, 103, 133, 103, 108, 103, 142, 103, 146, 103, 118, 103, 123, 103, 152, 103, 134, 103, 132, 103, 116, 103, 141, 103, 140, 103, 122, 103, 159, 103, 145, 103, 153, 103, 131, 103, 125, 103, 129, 103, 120, 103, 121, 103, 148, 103, 37, 107, 128, 107, 126, 107, 222, 107, 29, 108, 147, 108, 236, 108, 235, 108, 238, 108, 217, 108, 182, 108, 212, 108, 173, 108, 231, 108, 183, 108, 208, 108, 194, 108, 186, 108, 195, 108, 198, 108, 237, 108, 242, 108, 210, 108, 221, 108, 180, 108, 138, 108, 157, 108, 128, 108, 222, 108, 192, 108, 48, 109, 205, 108, 199, 108, 176, 108, 249, 108, 207, 108, 233, 108, 209, 108, 148, 112, 152, 112, 133, 112, 147, 112, 134, 112, 132, 112, 145, 112, 150, 112, 130, 112, 154, 112, 131, 112, 106, 114, 214, 114, 203, 114, 216, 114, 201, 114, 220, 114, 210, 114, 212, 114, 218, 114, 204, 114, 209, 114, 164, 115, 161, 115, 173, 115, 166, 115, 162, 115, 160, 115, 172, 115, 157, 115, 221, 116, 232, 116, 63, 117, 64, 117, 62, 117, 140, 117, 152, 117, 175, 118, 243, 118, 241, 118, 240, 118, 245, 118, 248, 119, 252, 119, 249, 119, 251, 119, 250, 119, 247, 119, 66, 121, 63, 121, 197, 121, 120, 122, 123, 122, 251, 122, 117, 124, 253, 124, 53, 128, 143, 128, 174, 128, 163, 128, 184, 128, 181, 128, 173, 128, 32, 130, 160, 130, 192, 130, 171, 130, 154, 130, 152, 130, 155, 130, 181, 130, 167, 130, 174, 130, 188, 130, 158, 130, 186, 130, 180, 130, 168, 130, 161, 130, 169, 130, 194, 130, 164, 130, 195, 130, 182, 130, 162, 130, 112, 134, 111, 134, 109, 134, 110, 134, 86, 140, 210, 143, 203, 143, 211, 143, 205, 143, 214, 143, 213, 143, 215, 143, 178, 144, 180, 144, 175, 144, 179, 144, 176, 144, 57, 150, 61, 150, 60, 150, 58, 150, 67, 150, 205, 79, 197, 79, 211, 79, 178, 79, 201, 79, 203, 79, 193, 79, 212, 79, 220, 79, 217, 79, 187, 79, 179, 79, 219, 79, 199, 79, 214, 79, 186, 79, 192, 79, 185, 79, 236, 79, 68, 82, 73, 82, 192, 82, 194, 82, 61, 83, 124, 83, 151, 83, 150, 83, 153, 83, 152, 83, 186, 84, 161, 84, 173, 84, 165, 84, 207, 84, 195, 84, 13, 131, 183, 84, 174, 84, 214, 84, 182, 84, 197, 84, 198, 84, 160, 84, 112, 84, 188, 84, 162, 84, 190, 84, 114, 84, 222, 84, 176, 84, 181, 87, 158, 87, 159, 87, 164, 87, 140, 87, 151, 87, 157, 87, 155, 87, 148, 87, 152, 87, 143, 87, 153, 87, 165, 87, 154, 87, 149, 87, 244, 88, 13, 89, 83, 89, 225, 89, 222, 89, 238, 89, 0, 90, 241, 89, 221, 89, 250, 89, 253, 89, 252, 89, 246, 89, 228, 89, 242, 89, 247, 89, 219, 89, 233, 89, 243, 89, 245, 89, 224, 89, 254, 89, 244, 89, 237, 89, 168, 91, 76, 92, 208, 92, 216, 92, 204, 92, 215, 92, 203, 92, 219, 92, 222, 92, 218, 92, 201, 92, 199, 92, 202, 92, 214, 92, 211, 92, 212, 92, 207, 92, 200, 92, 198, 92, 206, 92, 223, 92, 248, 92, 249, 93, 33, 94, 34, 94, 35, 94, 32, 94, 36, 94, 176, 94, 164, 94, 162, 94, 155, 94, 163, 94, 165, 94, 7, 95, 46, 95, 86, 95, 134, 95, 55, 96, 57, 96, 84, 96, 114, 96, 94, 96, 69, 96, 83, 96, 71, 96, 73, 96, 91, 96, 76, 96, 64, 96, 66, 96, 95, 96, 36, 96, 68, 96, 88, 96, 102, 96, 110, 96, 66, 98, 67, 98, 207, 98, 13, 99, 11, 99, 245, 98, 14, 99, 3, 99, 235, 98, 249, 98, 15, 99, 12, 99, 248, 98, 246, 98, 0, 99, 19, 99, 20, 99, 250, 98, 21, 99, 251, 98, 240, 98, 65, 101, 67, 101, 170, 101, 191, 101, 54, 102, 33, 102, 50, 102, 53, 102, 28, 102, 38, 102, 34, 102, 51, 102, 43, 102, 58, 102, 29, 102, 52, 102, 57, 102, 46, 102, 15, 103, 16, 103, 193, 103, 242, 103, 200, 103, 186, 103, 220, 103, 187, 103, 248, 103, 216, 103, 192, 103, 183, 103, 197, 103, 235, 103, 228, 103, 223, 103, 181, 103, 205, 103, 179, 103, 247, 103, 246, 103, 238, 103, 227, 103, 194, 103, 185, 103, 206, 103, 231, 103, 240, 103, 178, 103, 252, 103, 198, 103, 237, 103, 204, 103, 174, 103, 230, 103, 219, 103, 250, 103, 201, 103, 202, 103, 195, 103, 234, 103, 203, 103, 40, 107, 130, 107, 132, 107, 182, 107, 214, 107, 216, 107, 224, 107, 32, 108, 33, 108, 40, 109, 52, 109, 45, 109, 31, 109, 60, 109, 63, 109, 18, 109, 10, 109, 218, 108, 51, 109, 4, 109, 25, 109, 58, 109, 26, 109, 17, 109, 0, 109, 29, 109, 66, 109, 1, 109, 24, 109, 55, 109, 3, 109, 15, 109, 64, 109, 7, 109, 32, 109, 44, 109, 8, 109, 34, 109, 9, 109, 16, 109, 183, 112, 159, 112, 190, 112, 177, 112, 176, 112, 161, 112, 180, 112, 181, 112, 169, 112, 65, 114, 73, 114, 74, 114, 108, 114, 112, 114, 115, 114, 110, 114, 202, 114, 228, 114, 232, 114, 235, 114, 223, 114, 234, 114, 230, 114, 227, 114, 133, 115, 204, 115, 194, 115, 200, 115, 197, 115, 185, 115, 182, 115, 181, 115, 180, 115, 235, 115, 191, 115, 199, 115, 190, 115, 195, 115, 198, 115, 184, 115, 203, 115, 236, 116, 238, 116, 46, 117, 71, 117, 72, 117, 167, 117, 170, 117, 121, 118, 196, 118, 8, 119, 3, 119, 4, 119, 5, 119, 10, 119, 247, 118, 251, 118, 250, 118, 231, 119, 232, 119, 6, 120, 17, 120, 18, 120, 5, 120, 16, 120, 15, 120, 14, 120, 9, 120, 3, 120, 19, 120, 74, 121, 76, 121, 75, 121, 69, 121, 68, 121, 213, 121, 205, 121, 207, 121, 214, 121, 206, 121, 128, 122, 126, 122, 209, 122, 0, 123, 1, 123, 122, 124, 120, 124, 121, 124, 127, 124, 128, 124, 129, 124, 3, 125, 8, 125, 1, 125, 88, 127, 145, 127, 141, 127, 190, 127, 7, 128, 14, 128, 15, 128, 20, 128, 55, 128, 216, 128, 199, 128, 224, 128, 209, 128, 200, 128, 194, 128, 208, 128, 197, 128, 227, 128, 217, 128, 220, 128, 202, 128, 213, 128, 201, 128, 207, 128, 215, 128, 230, 128, 205, 128, 255, 129, 33, 130, 148, 130, 217, 130, 254, 130, 249, 130, 7, 131, 232, 130, 0, 131, 213, 130, 58, 131, 235, 130, 214, 130, 244, 130, 236, 130, 225, 130, 242, 130, 245, 130, 12, 131, 251, 130, 246, 130, 240, 130, 234, 130, 228, 130, 224, 130, 250, 130, 243, 130, 237, 130, 119, 134, 116, 134, 124, 134, 115, 134, 65, 136, 78, 136, 103, 136, 106, 136, 105, 136, 211, 137, 4, 138, 7, 138, 114, 141, 227, 143, 225, 143, 238, 143, 224, 143, 241, 144, 189, 144, 191, 144, 213, 144, 197, 144, 190, 144, 199, 144, 203, 144, 200, 144, 212, 145, 211, 145, 84, 150, 79, 150, 81, 150, 83, 150, 74, 150, 78, 150, 30, 80, 5, 80, 7, 80, 19, 80, 34, 80, 48, 80, 27, 80, 245, 79, 244, 79, 51, 80, 55, 80, 44, 80, 246, 79, 247, 79, 23, 80, 28, 80, 32, 80, 39, 80, 53, 80, 47, 80, 49, 80, 14, 80, 90, 81, 148, 81, 147, 81, 202, 81, 196, 81, 197, 81, 200, 81, 206, 81, 97, 82, 90, 82, 82, 82, 94, 82, 95, 82, 85, 82, 98, 82, 205, 82, 14, 83, 158, 83, 38, 85, 226, 84, 23, 85, 18, 85, 231, 84, 243, 84, 228, 84, 26, 85, 255, 84, 4, 85, 8, 85, 235, 84, 17, 85, 5, 85, 241, 84, 10, 85, 251, 84, 247, 84, 248, 84, 224, 84, 14, 85, 3, 85, 11, 85, 1, 87, 2, 87, 204, 87, 50, 88, 213, 87, 210, 87, 186, 87, 198, 87, 189, 87, 188, 87, 184, 87, 182, 87, 191, 87, 199, 87, 208, 87, 185, 87, 193, 87, 14, 89, 74, 89, 25, 90, 22, 90, 45, 90, 46, 90, 21, 90, 15, 90, 23, 90, 10, 90, 30, 90, 51, 90, 108, 91, 167, 91, 173, 91, 172, 91, 3, 92, 86, 92, 84, 92, 236, 92, 255, 92, 238, 92, 241, 92, 247, 92, 0, 93, 249, 92, 41, 94, 40, 94, 168, 94, 174, 94, 170, 94, 172, 94, 51, 95, 48, 95, 103, 95, 93, 96, 90, 96, 103, 96, 65, 96, 162, 96, 136, 96, 128, 96, 146, 96, 129, 96, 157, 96, 131, 96, 149, 96, 155, 96, 151, 96, 135, 96, 156, 96, 142, 96, 25, 98, 70, 98, 242, 98, 16, 99, 86, 99, 44, 99, 68, 99, 69, 99, 54, 99, 67, 99, 228, 99, 57, 99, 75, 99, 74, 99, 60, 99, 41, 99, 65, 99, 52, 99, 88, 99, 84, 99, 89, 99, 45, 99, 71, 99, 51, 99, 90, 99, 81, 99, 56, 99, 87, 99, 64, 99, 72, 99, 74, 101, 70, 101, 198, 101, 195, 101, 196, 101, 194, 101, 74, 102, 95, 102, 71, 102, 81, 102, 18, 103, 19, 103, 31, 104, 26, 104, 73, 104, 50, 104, 51, 104, 59, 104, 75, 104, 79, 104, 22, 104, 49, 104, 28, 104, 53, 104, 43, 104, 45, 104, 47, 104, 78, 104, 68, 104, 52, 104, 29, 104, 18, 104, 20, 104, 38, 104, 40, 104, 46, 104, 77, 104, 58, 104, 37, 104, 32, 104, 44, 107, 47, 107, 45, 107, 49, 107, 52, 107, 109, 107, 130, 128, 136, 107, 230, 107, 228, 107, 232, 107, 227, 107, 226, 107, 231, 107, 37, 108, 122, 109, 99, 109, 100, 109, 118, 109, 13, 109, 97, 109, 146, 109, 88, 109, 98, 109, 109, 109, 111, 109, 145, 109, 141, 109, 239, 109, 127, 109, 134, 109, 94, 109, 103, 109, 96, 109, 151, 109, 112, 109, 124, 109, 95, 109, 130, 109, 152, 109, 47, 109, 104, 109, 139, 109, 126, 109, 128, 109, 132, 109, 22, 109, 131, 109, 123, 109, 125, 109, 117, 109, 144, 109, 220, 112, 211, 112, 209, 112, 221, 112, 203, 112, 57, 127, 226, 112, 215, 112, 210, 112, 222, 112, 224, 112, 212, 112, 205, 112, 197, 112, 198, 112, 199, 112, 218, 112, 206, 112, 225, 112, 66, 114, 120, 114, 119, 114, 118, 114, 0, 115, 250, 114, 244, 114, 254, 114, 246, 114, 243, 114, 251, 114, 1, 115, 211, 115, 217, 115, 229, 115, 214, 115, 188, 115, 231, 115, 227, 115, 233, 115, 220, 115, 210, 115, 219, 115, 212, 115, 221, 115, 218, 115, 215, 115, 216, 115, 232, 115, 222, 116, 223, 116, 244, 116, 245, 116, 33, 117, 91, 117, 95, 117, 176, 117, 193, 117, 187, 117, 196, 117, 192, 117, 191, 117, 182, 117, 186, 117, 138, 118, 201, 118, 29, 119, 27, 119, 16, 119, 19, 119, 18, 119, 35, 119, 17, 119, 21, 119, 25, 119, 26, 119, 34, 119, 39, 119, 35, 120, 44, 120, 34, 120, 53, 120, 47, 120, 40, 120, 46, 120, 43, 120, 33, 120, 41, 120, 51, 120, 42, 120, 49, 120, 84, 121, 91, 121, 79, 121, 92, 121, 83, 121, 82, 121, 81, 121, 235, 121, 236, 121, 224, 121, 238, 121, 237, 121, 234, 121, 220, 121, 222, 121, 221, 121, 134, 122, 137, 122, 133, 122, 139, 122, 140, 122, 138, 122, 135, 122, 216, 122, 16, 123, 4, 123, 19, 123, 5, 123, 15, 123, 8, 123, 10, 123, 14, 123, 9, 123, 18, 123, 132, 124, 145, 124, 138, 124, 140, 124, 136, 124, 141, 124, 133, 124, 30, 125, 29, 125, 17, 125, 14, 125, 24, 125, 22, 125, 19, 125, 31, 125, 18, 125, 15, 125, 12, 125, 92, 127, 97, 127, 94, 127, 96, 127, 93, 127, 91, 127, 150, 127, 146, 127, 195, 127, 194, 127, 192, 127, 22, 128, 62, 128, 57, 128, 250, 128, 242, 128, 249, 128, 245, 128, 1, 129, 251, 128, 0, 129, 1, 130, 47, 130, 37, 130, 51, 131, 45, 131, 68, 131, 25, 131, 81, 131, 37, 131, 86, 131, 63, 131, 65, 131, 38, 131, 28, 131, 34, 131, 66, 131, 78, 131, 27, 131, 42, 131, 8, 131, 60, 131, 77, 131, 22, 131, 36, 131, 32, 131, 55, 131, 47, 131, 41, 131, 71, 131, 69, 131, 76, 131, 83, 131, 30, 131, 44, 131, 75, 131, 39, 131, 72, 131, 83, 134, 82, 134, 162, 134, 168, 134, 150, 134, 141, 134, 145, 134, 158, 134, 135, 134, 151, 134, 134, 134, 139, 134, 154, 134, 133, 134, 165, 134, 153, 134, 161, 134, 167, 134, 149, 134, 152, 134, 142, 134, 157, 134, 144, 134, 148, 134, 67, 136, 68, 136, 109, 136, 117, 136, 118, 136, 114, 136, 128, 136, 113, 136, 127, 136, 111, 136, 131, 136, 126, 136, 116, 136, 124, 136, 18, 138, 71, 140, 87, 140, 123, 140, 164, 140, 163, 140, 118, 141, 120, 141, 181, 141, 183, 141, 182, 141, 209, 142, 211, 142, 254, 143, 245, 143, 2, 144, 255, 143, 251, 143, 4, 144, 252, 143, 246, 143, 214, 144, 224, 144, 217, 144, 218, 144, 227, 144, 223, 144, 229, 144, 216, 144, 219, 144, 215, 144, 220, 144, 228, 144, 80, 145, 78, 145, 79, 145, 213, 145, 226, 145, 218, 145, 92, 150, 95, 150, 188, 150, 227, 152, 223, 154, 47, 155, 127, 78, 112, 80, 106, 80, 97, 80, 94, 80, 96, 80, 83, 80, 75, 80, 93, 80, 114, 80, 72, 80, 77, 80, 65, 80, 91, 80, 74, 80, 98, 80, 21, 80, 69, 80, 95, 80, 105, 80, 107, 80, 99, 80, 100, 80, 70, 80, 64, 80, 110, 80, 115, 80, 87, 80, 81, 80, 208, 81, 107, 82, 109, 82, 108, 82, 110, 82, 214, 82, 211, 82, 45, 83, 156, 83, 117, 85, 118, 85, 60, 85, 77, 85, 80, 85, 52, 85, 42, 85, 81, 85, 98, 85, 54, 85, 53, 85, 48, 85, 82, 85, 69, 85, 12, 85, 50, 85, 101, 85, 78, 85, 57, 85, 72, 85, 45, 85, 59, 85, 64, 85, 75, 85, 10, 87, 7, 87, 251, 87, 20, 88, 226, 87, 246, 87, 220, 87, 244, 87, 0, 88, 237, 87, 253, 87, 8, 88, 248, 87, 11, 88, 243, 87, 207, 87, 7, 88, 238, 87, 227, 87, 242, 87, 229, 87, 236, 87, 225, 87, 14, 88, 252, 87, 16, 88, 231, 87, 1, 88, 12, 88, 241, 87, 233, 87, 240, 87, 13, 88, 4, 88, 92, 89, 96, 90, 88, 90, 85, 90, 103, 90, 94, 90, 56, 90, 53, 90, 109, 90, 80, 90, 95, 90, 101, 90, 108, 90, 83, 90, 100, 90, 87, 90, 67, 90, 93, 90, 82, 90, 68, 90, 91, 90, 72, 90, 142, 90, 62, 90, 77, 90, 57, 90, 76, 90, 112, 90, 105, 90, 71, 90, 81, 90, 86, 90, 66, 90, 92, 90, 114, 91, 110, 91, 193, 91, 192, 91, 89, 92, 30, 93, 11, 93, 29, 93, 26, 93, 32, 93, 12, 93, 40, 93, 13, 93, 38, 93, 37, 93, 15, 93, 48, 93, 18, 93, 35, 93, 31, 93, 46, 93, 62, 94, 52, 94, 177, 94, 180, 94, 185, 94, 178, 94, 179, 94, 54, 95, 56, 95, 155, 95, 150, 95, 159, 95, 138, 96, 144, 96, 134, 96, 190, 96, 176, 96, 186, 96, 211, 96, 212, 96, 207, 96, 228, 96, 217, 96, 221, 96, 200, 96, 177, 96, 219, 96, 183, 96, 202, 96, 191, 96, 195, 96, 205, 96, 192, 96, 50, 99, 101, 99, 138, 99, 130, 99, 125, 99, 189, 99, 158, 99, 173, 99, 157, 99, 151, 99, 171, 99, 142, 99, 111, 99, 135, 99, 144, 99, 110, 99, 175, 99, 117, 99, 156, 99, 109, 99, 174, 99, 124, 99, 164, 99, 59, 99, 159, 99, 120, 99, 133, 99, 129, 99, 145, 99, 141, 99, 112, 99, 83, 101, 205, 101, 101, 102, 97, 102, 91, 102, 89, 102, 92, 102, 98, 102, 24, 103, 121, 104, 135, 104, 144, 104, 156, 104, 109, 104, 110, 104, 174, 104, 171, 104, 86, 105, 111, 104, 163, 104, 172, 104, 169, 104, 117, 104, 116, 104, 178, 104, 143, 104, 119, 104, 146, 104, 124, 104, 107, 104, 114, 104, 170, 104, 128, 104, 113, 104, 126, 104, 155, 104, 150, 104, 139, 104, 160, 104, 137, 104, 164, 104, 120, 104, 123, 104, 145, 104, 140, 104, 138, 104, 125, 104, 54, 107, 51, 107, 55, 107, 56, 107, 145, 107, 143, 107, 141, 107, 142, 107, 140, 107, 42, 108, 192, 109, 171, 109, 180, 109, 179, 109, 116, 110, 172, 109, 233, 109, 226, 109, 183, 109, 246, 109, 212, 109, 0, 110, 200, 109, 224, 109, 223, 109, 214, 109, 190, 109, 229, 109, 220, 109, 221, 109, 219, 109, 244, 109, 202, 109, 189, 109, 237, 109, 240, 109, 186, 109, 213, 109, 194, 109, 207, 109, 201, 109, 208, 109, 242, 109, 211, 109, 253, 109, 215, 109, 205, 109, 227, 109, 187, 109, 250, 112, 13, 113, 247, 112, 23, 113, 244, 112, 12, 113, 240, 112, 4, 113, 243, 112, 16, 113, 252, 112, 255, 112, 6, 113, 19, 113, 0, 113, 248, 112, 246, 112, 11, 113, 2, 113, 14, 113, 126, 114, 123, 114, 124, 114, 127, 114, 29, 115, 23, 115, 7, 115, 17, 115, 24, 115, 10, 115, 8, 115, 255, 114, 15, 115, 30, 115, 136, 115, 246, 115, 248, 115, 245, 115, 4, 116, 1, 116, 253, 115, 7, 116, 0, 116, 250, 115, 252, 115, 255, 115, 12, 116, 11, 116, 244, 115, 8, 116, 100, 117, 99, 117, 206, 117, 210, 117, 207, 117, 203, 117, 204, 117, 209, 117, 208, 117, 143, 118, 137, 118, 211, 118, 57, 119, 47, 119, 45, 119, 49, 119, 50, 119, 52, 119, 51, 119, 61, 119, 37, 119, 59, 119, 53, 119, 72, 120, 82, 120, 73, 120, 77, 120, 74, 120, 76, 120, 38, 120, 69, 120, 80, 120, 100, 121, 103, 121, 105, 121, 106, 121, 99, 121, 107, 121, 97, 121, 187, 121, 250, 121, 248, 121, 246, 121, 247, 121, 143, 122, 148, 122, 144, 122, 53, 123, 71, 123, 52, 123, 37, 123, 48, 123, 34, 123, 36, 123, 51, 123, 24, 123, 42, 123, 29, 123, 49, 123, 43, 123, 45, 123, 47, 123, 50, 123, 56, 123, 26, 123, 35, 123, 148, 124, 152, 124, 150, 124, 163, 124, 53, 125, 61, 125, 56, 125, 54, 125, 58, 125, 69, 125, 44, 125, 41, 125, 65, 125, 71, 125, 62, 125, 63, 125, 74, 125, 59, 125, 40, 125, 99, 127, 149, 127, 156, 127, 157, 127, 155, 127, 202, 127, 203, 127, 205, 127, 208, 127, 209, 127, 199, 127, 207, 127, 201, 127, 31, 128, 30, 128, 27, 128, 71, 128, 67, 128, 72, 128, 24, 129, 37, 129, 25, 129, 27, 129, 45, 129, 31, 129, 44, 129, 30, 129, 33, 129, 21, 129, 39, 129, 29, 129, 34, 129, 17, 130, 56, 130, 51, 130, 58, 130, 52, 130, 50, 130, 116, 130, 144, 131, 163, 131, 168, 131, 141, 131, 122, 131, 115, 131, 164, 131, 116, 131, 143, 131, 129, 131, 149, 131, 153, 131, 117, 131, 148, 131, 169, 131, 125, 131, 131, 131, 140, 131, 157, 131, 155, 131, 170, 131, 139, 131, 126, 131, 165, 131, 175, 131, 136, 131, 151, 131, 176, 131, 127, 131, 166, 131, 135, 131, 174, 131, 118, 131, 154, 131, 89, 134, 86, 134, 191, 134, 183, 134, 194, 134, 193, 134, 197, 134, 186, 134, 176, 134, 200, 134, 185, 134, 179, 134, 184, 134, 204, 134, 180, 134, 187, 134, 188, 134, 195, 134, 189, 134, 190, 134, 82, 136, 137, 136, 149, 136, 168, 136, 162, 136, 170, 136, 154, 136, 145, 136, 161, 136, 159, 136, 152, 136, 167, 136, 153, 136, 155, 136, 151, 136, 164, 136, 172, 136, 140, 136, 147, 136, 142, 136, 130, 137, 214, 137, 217, 137, 213, 137, 48, 138, 39, 138, 44, 138, 30, 138, 57, 140, 59, 140, 92, 140, 93, 140, 125, 140, 165, 140, 125, 141, 123, 141, 121, 141, 188, 141, 194, 141, 185, 141, 191, 141, 193, 141, 216, 142, 222, 142, 221, 142, 220, 142, 215, 142, 224, 142, 225, 142, 36, 144, 11, 144, 17, 144, 28, 144, 12, 144, 33, 144, 239, 144, 234, 144, 240, 144, 244, 144, 242, 144, 243, 144, 212, 144, 235, 144, 236, 144, 233, 144, 86, 145, 88, 145, 90, 145, 83, 145, 85, 145, 236, 145, 244, 145, 241, 145, 243, 145, 248, 145, 228, 145, 249, 145, 234, 145, 235, 145, 247, 145, 232, 145, 238, 145, 122, 149, 134, 149, 136, 149, 124, 150, 109, 150, 107, 150, 113, 150, 111, 150, 191, 150, 106, 151, 4, 152, 229, 152, 151, 153, 155, 80, 149, 80, 148, 80, 158, 80, 139, 80, 163, 80, 131, 80, 140, 80, 142, 80, 157, 80, 104, 80, 156, 80, 146, 80, 130, 80, 135, 80, 95, 81, 212, 81, 18, 83, 17, 83, 164, 83, 167, 83, 145, 85, 168, 85, 165, 85, 173, 85, 119, 85, 69, 86, 162, 85, 147, 85, 136, 85, 143, 85, 181, 85, 129, 85, 163, 85, 146, 85, 164, 85, 125, 85, 140, 85, 166, 85, 127, 85, 149, 85, 161, 85, 142, 85, 12, 87, 41, 88, 55, 88, 25, 88, 30, 88, 39, 88, 35, 88, 40, 88, 245, 87, 72, 88, 37, 88, 28, 88, 27, 88, 51, 88, 63, 88, 54, 88, 46, 88, 57, 88, 56, 88, 45, 88, 44, 88, 59, 88, 97, 89, 175, 90, 148, 90, 159, 90, 122, 90, 162, 90, 158, 90, 120, 90, 166, 90, 124, 90, 165, 90, 172, 90, 149, 90, 174, 90, 55, 90, 132, 90, 138, 90, 151, 90, 131, 90, 139, 90, 169, 90, 123, 90, 125, 90, 140, 90, 156, 90, 143, 90, 147, 90, 157, 90, 234, 91, 205, 91, 203, 91, 212, 91, 209, 91, 202, 91, 206, 91, 12, 92, 48, 92, 55, 93, 67, 93, 107, 93, 65, 93, 75, 93, 63, 93, 53, 93, 81, 93, 78, 93, 85, 93, 51, 93, 58, 93, 82, 93, 61, 93, 49, 93, 89, 93, 66, 93, 57, 93, 73, 93, 56, 93, 60, 93, 50, 93, 54, 93, 64, 93, 69, 93, 68, 94, 65, 94, 88, 95, 166, 95, 165, 95, 171, 95, 201, 96, 185, 96, 204, 96, 226, 96, 206, 96, 196, 96, 20, 97, 242, 96, 10, 97, 22, 97, 5, 97, 245, 96, 19, 97, 248, 96, 252, 96, 254, 96, 193, 96, 3, 97, 24, 97, 29, 97, 16, 97, 255, 96, 4, 97, 11, 97, 74, 98, 148, 99, 177, 99, 176, 99, 206, 99, 229, 99, 232, 99, 239, 99, 195, 99, 157, 100, 243, 99, 202, 99, 224, 99, 246, 99, 213, 99, 242, 99, 245, 99, 97, 100, 223, 99, 190, 99, 221, 99, 220, 99, 196, 99, 216, 99, 211, 99, 194, 99, 199, 99, 204, 99, 203, 99, 200, 99, 240, 99, 215, 99, 217, 99, 50, 101, 103, 101, 106, 101, 100, 101, 92, 101, 104, 101, 101, 101, 140, 101, 157, 101, 158, 101, 174, 101, 208, 101, 210, 101, 124, 102, 108, 102, 123, 102, 128, 102, 113, 102, 121, 102, 106, 102, 114, 102, 1, 103, 12, 105, 211, 104, 4, 105, 220, 104, 42, 105, 236, 104, 234, 104, 241, 104, 15, 105, 214, 104, 247, 104, 235, 104, 228, 104, 246, 104, 19, 105, 16, 105, 243, 104, 225, 104, 7, 105, 204, 104, 8, 105, 112, 105, 180, 104, 17, 105, 239, 104, 198, 104, 20, 105, 248, 104, 208, 104, 253, 104, 252, 104, 232, 104, 11, 105, 10, 105, 23, 105, 206, 104, 200, 104, 221, 104, 222, 104, 230, 104, 244, 104, 209, 104, 6, 105, 212, 104, 233, 104, 21, 105, 37, 105, 199, 104, 57, 107, 59, 107, 63, 107, 60, 107, 148, 107, 151, 107, 153, 107, 149, 107, 189, 107, 240, 107, 242, 107, 243, 107, 48, 108, 252, 109, 70, 110, 71, 110, 31, 110, 73, 110, 136, 110, 60, 110, 61, 110, 69, 110, 98, 110, 43, 110, 63, 110, 65, 110, 93, 110, 115, 110, 28, 110, 51, 110, 75, 110, 64, 110, 81, 110, 59, 110, 3, 110, 46, 110, 94, 110, 104, 110, 92, 110, 97, 110, 49, 110, 40, 110, 96, 110, 113, 110, 107, 110, 57, 110, 34, 110, 48, 110, 83, 110, 101, 110, 39, 110, 120, 110, 100, 110, 119, 110, 85, 110, 121, 110, 82, 110, 102, 110, 53, 110, 54, 110, 90, 110, 32, 113, 30, 113, 47, 113, 251, 112, 46, 113, 49, 113, 35, 113, 37, 113, 34, 113, 50, 113, 31, 113, 40, 113, 58, 113, 27, 113, 75, 114, 90, 114, 136, 114, 137, 114, 134, 114, 133, 114, 139, 114, 18, 115, 11, 115, 48, 115, 34, 115, 49, 115, 51, 115, 39, 115, 50, 115, 45, 115, 38, 115, 35, 115, 53, 115, 12, 115, 46, 116, 44, 116, 48, 116, 43, 116, 22, 116, 26, 116, 33, 116, 45, 116, 49, 116, 36, 116, 35, 116, 29, 116, 41, 116, 32, 116, 50, 116, 251, 116, 47, 117, 111, 117, 108, 117, 231, 117, 218, 117, 225, 117, 230, 117, 221, 117, 223, 117, 228, 117, 215, 117, 149, 118, 146, 118, 218, 118, 70, 119, 71, 119, 68, 119, 77, 119, 69, 119, 74, 119, 78, 119, 75, 119, 76, 119, 222, 119, 236, 119, 96, 120, 100, 120, 101, 120, 92, 120, 109, 120, 113, 120, 106, 120, 110, 120, 112, 120, 105, 120, 104, 120, 94, 120, 98, 120, 116, 121, 115, 121, 114, 121, 112, 121, 2, 122, 10, 122, 3, 122, 12, 122, 4, 122, 153, 122, 230, 122, 228, 122, 74, 123, 59, 123, 68, 123, 72, 123, 76, 123, 78, 123, 64, 123, 88, 123, 69, 123, 162, 124, 158, 124, 168, 124, 161, 124, 88, 125, 111, 125, 99, 125, 83, 125, 86, 125, 103, 125, 106, 125, 79, 125, 109, 125, 92, 125, 107, 125, 82, 125, 84, 125, 105, 125, 81, 125, 95, 125, 78, 125, 62, 127, 63, 127, 101, 127, 102, 127, 162, 127, 160, 127, 161, 127, 215, 127, 81, 128, 79, 128, 80, 128, 254, 128, 212, 128, 67, 129, 74, 129, 82, 129, 79, 129, 71, 129, 61, 129, 77, 129, 58, 129, 230, 129, 238, 129, 247, 129, 248, 129, 249, 129, 4, 130, 60, 130, 61, 130, 63, 130, 117, 130, 59, 131, 207, 131, 249, 131, 35, 132, 192, 131, 232, 131, 18, 132, 231, 131, 228, 131, 252, 131, 246, 131, 16, 132, 198, 131, 200, 131, 235, 131, 227, 131, 191, 131, 1, 132, 221, 131, 229, 131, 216, 131, 255, 131, 225, 131, 203, 131, 206, 131, 214, 131, 245, 131, 201, 131, 9, 132, 15, 132, 222, 131, 17, 132, 6, 132, 194, 131, 243, 131, 213, 131, 250, 131, 199, 131, 209, 131, 234, 131, 19, 132, 195, 131, 236, 131, 238, 131, 196, 131, 251, 131, 215, 131, 226, 131, 27, 132, 219, 131, 254, 131, 216, 134, 226, 134, 230, 134, 211, 134, 227, 134, 218, 134, 234, 134, 221, 134, 235, 134, 220, 134, 236, 134, 233, 134, 215, 134, 232, 134, 209, 134, 72, 136, 86, 136, 85, 136, 186, 136, 215, 136, 185, 136, 184, 136, 192, 136, 190, 136, 182, 136, 188, 136, 183, 136, 189, 136, 178, 136, 1, 137, 201, 136, 149, 137, 152, 137, 151, 137, 221, 137, 218, 137, 219, 137, 78, 138, 77, 138, 57, 138, 89, 138, 64, 138, 87, 138, 88, 138, 68, 138, 69, 138, 82, 138, 72, 138, 81, 138, 74, 138, 76, 138, 79, 138, 95, 140, 129, 140, 128, 140, 186, 140, 190, 140, 176, 140, 185, 140, 181, 140, 132, 141, 128, 141, 137, 141, 216, 141, 211, 141, 205, 141, 199, 141, 214, 141, 220, 141, 207, 141, 213, 141, 217, 141, 200, 141, 215, 141, 197, 141, 239, 142, 247, 142, 250, 142, 249, 142, 230, 142, 238, 142, 229, 142, 245, 142, 231, 142, 232, 142, 246, 142, 235, 142, 241, 142, 236, 142, 244, 142, 233, 142, 45, 144, 52, 144, 47, 144, 6, 145, 44, 145, 4, 145, 255, 144, 252, 144, 8, 145, 249, 144, 251, 144, 1, 145, 0, 145, 7, 145, 5, 145, 3, 145, 97, 145, 100, 145, 95, 145, 98, 145, 96, 145, 1, 146, 10, 146, 37, 146, 3, 146, 26, 146, 38, 146, 15, 146, 12, 146, 0, 146, 18, 146, 255, 145, 253, 145, 6, 146, 4, 146, 39, 146, 2, 146, 28, 146, 36, 146, 25, 146, 23, 146, 5, 146, 22, 146, 123, 149, 141, 149, 140, 149, 144, 149, 135, 150, 126, 150, 136, 150, 137, 150, 131, 150, 128, 150, 194, 150, 200, 150, 195, 150, 241, 150, 240, 150, 108, 151, 112, 151, 110, 151, 7, 152, 169, 152, 235, 152, 230, 156, 249, 158, 131, 78, 132, 78, 182, 78, 189, 80, 191, 80, 198, 80, 174, 80, 196, 80, 202, 80, 180, 80, 200, 80, 194, 80, 176, 80, 193, 80, 186, 80, 177, 80, 203, 80, 201, 80, 182, 80, 184, 80, 215, 81, 122, 82, 120, 82, 123, 82, 124, 82, 195, 85, 219, 85, 204, 85, 208, 85, 203, 85, 202, 85, 221, 85, 192, 85, 212, 85, 196, 85, 233, 85, 191, 85, 210, 85, 141, 85, 207, 85, 213, 85, 226, 85, 214, 85, 200, 85, 242, 85, 205, 85, 217, 85, 194, 85, 20, 87, 83, 88, 104, 88, 100, 88, 79, 88, 77, 88, 73, 88, 111, 88, 85, 88, 78, 88, 93, 88, 89, 88, 101, 88, 91, 88, 61, 88, 99, 88, 113, 88, 252, 88, 199, 90, 196, 90, 203, 90, 186, 90, 184, 90, 177, 90, 181, 90, 176, 90, 191, 90, 200, 90, 187, 90, 198, 90, 183, 90, 192, 90, 202, 90, 180, 90, 182, 90, 205, 90, 185, 90, 144, 90, 214, 91, 216, 91, 217, 91, 31, 92, 51, 92, 113, 93, 99, 93, 74, 93, 101, 93, 114, 93, 108, 93, 94, 93, 104, 93, 103, 93, 98, 93, 240, 93, 79, 94, 78, 94, 74, 94, 77, 94, 75, 94, 197, 94, 204, 94, 198, 94, 203, 94, 199, 94, 64, 95, 175, 95, 173, 95, 247, 96, 73, 97, 74, 97, 43, 97, 69, 97, 54, 97, 50, 97, 46, 97, 70, 97, 47, 97, 79, 97, 41, 97, 64, 97, 32, 98, 104, 145, 35, 98, 37, 98, 36, 98, 197, 99, 241, 99, 235, 99, 16, 100, 18, 100, 9, 100, 32, 100, 36, 100, 51, 100, 67, 100, 31, 100, 21, 100, 24, 100, 57, 100, 55, 100, 34, 100, 35, 100, 12, 100, 38, 100, 48, 100, 40, 100, 65, 100, 53, 100, 47, 100, 10, 100, 26, 100, 64, 100, 37, 100, 39, 100, 11, 100, 231, 99, 27, 100, 46, 100, 33, 100, 14, 100, 111, 101, 146, 101, 211, 101, 134, 102, 140, 102, 149, 102, 144, 102, 139, 102, 138, 102, 153, 102, 148, 102, 120, 102, 32, 103, 102, 105, 95, 105, 56, 105, 78, 105, 98, 105, 113, 105, 63, 105, 69, 105, 106, 105, 57, 105, 66, 105, 87, 105, 89, 105, 122, 105, 72, 105, 73, 105, 53, 105, 108, 105, 51, 105, 61, 105, 101, 105, 240, 104, 120, 105, 52, 105, 105, 105, 64, 105, 111, 105, 68, 105, 118, 105, 88, 105, 65, 105, 116, 105, 76, 105, 59, 105, 75, 105, 55, 105, 92, 105, 79, 105, 81, 105, 50, 105, 82, 105, 47, 105, 123, 105, 60, 105, 70, 107, 69, 107, 67, 107, 66, 107, 72, 107, 65, 107, 155, 107, 13, 250, 251, 107, 252, 107, 249, 107, 247, 107, 248, 107, 155, 110, 214, 110, 200, 110, 143, 110, 192, 110, 159, 110, 147, 110, 148, 110, 160, 110, 177, 110, 185, 110, 198, 110, 210, 110, 189, 110, 193, 110, 158, 110, 201, 110, 183, 110, 176, 110, 205, 110, 166, 110, 207, 110, 178, 110, 190, 110, 195, 110, 220, 110, 216, 110, 153, 110, 146, 110, 142, 110, 141, 110, 164, 110, 161, 110, 191, 110, 179, 110, 208, 110, 202, 110, 151, 110, 174, 110, 163, 110, 71, 113, 84, 113, 82, 113, 99, 113, 96, 113, 65, 113, 93, 113, 98, 113, 114, 113, 120, 113, 106, 113, 97, 113, 66, 113, 88, 113, 67, 113, 75, 113, 112, 113, 95, 113, 80, 113, 83, 113, 68, 113, 77, 113, 90, 113, 79, 114, 141, 114, 140, 114, 145, 114, 144, 114, 142, 114, 60, 115, 66, 115, 59, 115, 58, 115, 64, 115, 74, 115, 73, 115, 68, 116, 74, 116, 75, 116, 82, 116, 81, 116, 87, 116, 64, 116, 79, 116, 80, 116, 78, 116, 66, 116, 70, 116, 77, 116, 84, 116, 225, 116, 255, 116, 254, 116, 253, 116, 29, 117, 121, 117, 119, 117, 131, 105, 239, 117, 15, 118, 3, 118, 247, 117, 254, 117, 252, 117, 249, 117, 248, 117, 16, 118, 251, 117, 246, 117, 237, 117, 245, 117, 253, 117, 153, 118, 181, 118, 221, 118, 85, 119, 95, 119, 96, 119, 82, 119, 86, 119, 90, 119, 105, 119, 103, 119, 84, 119, 89, 119, 109, 119, 224, 119, 135, 120, 154, 120, 148, 120, 143, 120, 132, 120, 149, 120, 133, 120, 134, 120, 161, 120, 131, 120, 121, 120, 153, 120, 128, 120, 150, 120, 123, 120, 124, 121, 130, 121, 125, 121, 121, 121, 17, 122, 24, 122, 25, 122, 18, 122, 23, 122, 21, 122, 34, 122, 19, 122, 27, 122, 16, 122, 163, 122, 162, 122, 158, 122, 235, 122, 102, 123, 100, 123, 109, 123, 116, 123, 105, 123, 114, 123, 101, 123, 115, 123, 113, 123, 112, 123, 97, 123, 120, 123, 118, 123, 99, 123, 178, 124, 180, 124, 175, 124, 136, 125, 134, 125, 128, 125, 141, 125, 127, 125, 133, 125, 122, 125, 142, 125, 123, 125, 131, 125, 124, 125, 140, 125, 148, 125, 132, 125, 125, 125, 146, 125, 109, 127, 107, 127, 103, 127, 104, 127, 108, 127, 166, 127, 165, 127, 167, 127, 219, 127, 220, 127, 33, 128, 100, 129, 96, 129, 119, 129, 92, 129, 105, 129, 91, 129, 98, 129, 114, 129, 33, 103, 94, 129, 118, 129, 103, 129, 111, 129, 68, 129, 97, 129, 29, 130, 73, 130, 68, 130, 64, 130, 66, 130, 69, 130, 241, 132, 63, 132, 86, 132, 118, 132, 121, 132, 143, 132, 141, 132, 101, 132, 81, 132, 64, 132, 134, 132, 103, 132, 48, 132, 77, 132, 125, 132, 90, 132, 89, 132, 116, 132, 115, 132, 93, 132, 7, 133, 94, 132, 55, 132, 58, 132, 52, 132, 122, 132, 67, 132, 120, 132, 50, 132, 69, 132, 41, 132, 217, 131, 75, 132, 47, 132, 66, 132, 45, 132, 95, 132, 112, 132, 57, 132, 78, 132, 76, 132, 82, 132, 111, 132, 197, 132, 142, 132, 59, 132, 71, 132, 54, 132, 51, 132, 104, 132, 126, 132, 68, 132, 43, 132, 96, 132, 84, 132, 110, 132, 80, 132, 11, 135, 4, 135, 247, 134, 12, 135, 250, 134, 214, 134, 245, 134, 77, 135, 248, 134, 14, 135, 9, 135, 1, 135, 246, 134, 13, 135, 5, 135, 214, 136, 203, 136, 205, 136, 206, 136, 222, 136, 219, 136, 218, 136, 204, 136, 208, 136, 133, 137, 155, 137, 223, 137, 229, 137, 228, 137, 225, 137, 224, 137, 226, 137, 220, 137, 230, 137, 118, 138, 134, 138, 127, 138, 97, 138, 63, 138, 119, 138, 130, 138, 132, 138, 117, 138, 131, 138, 129, 138, 116, 138, 122, 138, 60, 140, 75, 140, 74, 140, 101, 140, 100, 140, 102, 140, 134, 140, 132, 140, 133, 140, 204, 140, 104, 141, 105, 141, 145, 141, 140, 141, 142, 141, 143, 141, 141, 141, 147, 141, 148, 141, 144, 141, 146, 141, 240, 141, 224, 141, 236, 141, 241, 141, 238, 141, 208, 141, 233, 141, 227, 141, 226, 141, 231, 141, 242, 141, 235, 141, 244, 141, 6, 143, 255, 142, 1, 143, 0, 143, 5, 143, 7, 143, 8, 143, 2, 143, 11, 143, 82, 144, 63, 144, 68, 144, 73, 144, 61, 144, 16, 145, 13, 145, 15, 145, 17, 145, 22, 145, 20, 145, 11, 145, 14, 145, 110, 145, 111, 145, 72, 146, 82, 146, 48, 146, 58, 146, 102, 146, 51, 146, 101, 146, 94, 146, 131, 146, 46, 146, 74, 146, 70, 146, 109, 146, 108, 146, 79, 146, 96, 146, 103, 146, 111, 146, 54, 146, 97, 146, 112, 146, 49, 146, 84, 146, 99, 146, 80, 146, 114, 146, 78, 146, 83, 146, 76, 146, 86, 146, 50, 146, 159, 149, 156, 149, 158, 149, 155, 149, 146, 150, 147, 150, 145, 150, 151, 150, 206, 150, 250, 150, 253, 150, 248, 150, 245, 150, 115, 151, 119, 151, 120, 151, 114, 151, 15, 152, 13, 152, 14, 152, 172, 152, 246, 152, 249, 152, 175, 153, 178, 153, 176, 153, 181, 153, 173, 154, 171, 154, 91, 155, 234, 156, 237, 156, 231, 156, 128, 158, 253, 158, 230, 80, 212, 80, 215, 80, 232, 80, 243, 80, 219, 80, 234, 80, 221, 80, 228, 80, 211, 80, 236, 80, 240, 80, 239, 80, 227, 80, 224, 80, 216, 81, 128, 82, 129, 82, 233, 82, 235, 82, 48, 83, 172, 83, 39, 86, 21, 86, 12, 86, 18, 86, 252, 85, 15, 86, 28, 86, 1, 86, 19, 86, 2, 86, 250, 85, 29, 86, 4, 86, 255, 85, 249, 85, 137, 88, 124, 88, 144, 88, 152, 88, 134, 88, 129, 88, 127, 88, 116, 88, 139, 88, 122, 88, 135, 88, 145, 88, 142, 88, 118, 88, 130, 88, 136, 88, 123, 88, 148, 88, 143, 88, 254, 88, 107, 89, 220, 90, 238, 90, 229, 90, 213, 90, 234, 90, 218, 90, 237, 90, 235, 90, 243, 90, 226, 90, 224, 90, 219, 90, 236, 90, 222, 90, 221, 90, 217, 90, 232, 90, 223, 90, 119, 91, 224, 91, 227, 91, 99, 92, 130, 93, 128, 93, 125, 93, 134, 93, 122, 93, 129, 93, 119, 93, 138, 93, 137, 93, 136, 93, 126, 93, 124, 93, 141, 93, 121, 93, 127, 93, 88, 94, 89, 94, 83, 94, 216, 94, 209, 94, 215, 94, 206, 94, 220, 94, 213, 94, 217, 94, 210, 94, 212, 94, 68, 95, 67, 95, 111, 95, 182, 95, 44, 97, 40, 97, 65, 97, 94, 97, 113, 97, 115, 97, 82, 97, 83, 97, 114, 97, 108, 97, 128, 97, 116, 97, 84, 97, 122, 97, 91, 97, 101, 97, 59, 97, 106, 97, 97, 97, 86, 97, 41, 98, 39, 98, 43, 98, 43, 100, 77, 100, 91, 100, 93, 100, 116, 100, 118, 100, 114, 100, 115, 100, 125, 100, 117, 100, 102, 100, 166, 100, 78, 100, 130, 100, 94, 100, 92, 100, 75, 100, 83, 100, 96, 100, 80, 100, 127, 100, 63, 100, 108, 100, 107, 100, 89, 100, 101, 100, 119, 100, 115, 101, 160, 101, 161, 102, 160, 102, 159, 102, 5, 103, 4, 103, 34, 103, 177, 105, 182, 105, 201, 105, 160, 105, 206, 105, 150, 105, 176, 105, 172, 105, 188, 105, 145, 105, 153, 105, 142, 105, 167, 105, 141, 105, 169, 105, 190, 105, 175, 105, 191, 105, 196, 105, 189, 105, 164, 105, 212, 105, 185, 105, 202, 105, 154, 105, 207, 105, 179, 105, 147, 105, 170, 105, 161, 105, 158, 105, 217, 105, 151, 105, 144, 105, 194, 105, 181, 105, 165, 105, 198, 105, 74, 107, 77, 107, 75, 107, 158, 107, 159, 107, 160, 107, 195, 107, 196, 107, 254, 107, 206, 110, 245, 110, 241, 110, 3, 111, 37, 111, 248, 110, 55, 111, 251, 110, 46, 111, 9, 111, 78, 111, 25, 111, 26, 111, 39, 111, 24, 111, 59, 111, 18, 111, 237, 110, 10, 111, 54, 111, 115, 111, 249, 110, 238, 110, 45, 111, 64, 111, 48, 111, 60, 111, 53, 111, 235, 110, 7, 111, 14, 111, 67, 111, 5, 111, 253, 110, 246, 110, 57, 111, 28, 111, 252, 110, 58, 111, 31, 111, 13, 111, 30, 111, 8, 111, 33, 111, 135, 113, 144, 113, 137, 113, 128, 113, 133, 113, 130, 113, 143, 113, 123, 113, 134, 113, 129, 113, 151, 113, 68, 114, 83, 114, 151, 114, 149, 114, 147, 114, 67, 115, 77, 115, 81, 115, 76, 115, 98, 116, 115, 116, 113, 116, 117, 116, 114, 116, 103, 116, 110, 116, 0, 117, 2, 117, 3, 117, 125, 117, 144, 117, 22, 118, 8, 118, 12, 118, 21, 118, 17, 118, 10, 118, 20, 118, 184, 118, 129, 119, 124, 119, 133, 119, 130, 119, 110, 119, 128, 119, 111, 119, 126, 119, 131, 119, 178, 120, 170, 120, 180, 120, 173, 120, 168, 120, 126, 120, 171, 120, 158, 120, 165, 120, 160, 120, 172, 120, 162, 120, 164, 120, 152, 121, 138, 121, 139, 121, 150, 121, 149, 121, 148, 121, 147, 121, 151, 121, 136, 121, 146, 121, 144, 121, 43, 122, 74, 122, 48, 122, 47, 122, 40, 122, 38, 122, 168, 122, 171, 122, 172, 122, 238, 122, 136, 123, 156, 123, 138, 123, 145, 123, 144, 123, 150, 123, 141, 123, 140, 123, 155, 123, 142, 123, 133, 123, 152, 123, 132, 82, 153, 123, 164, 123, 130, 123, 187, 124, 191, 124, 188, 124, 186, 124, 167, 125, 183, 125, 194, 125, 163, 125, 170, 125, 193, 125, 192, 125, 197, 125, 157, 125, 206, 125, 196, 125, 198, 125, 203, 125, 204, 125, 175, 125, 185, 125, 150, 125, 188, 125, 159, 125, 166, 125, 174, 125, 169, 125, 161, 125, 201, 125, 115, 127, 226, 127, 227, 127, 229, 127, 222, 127, 36, 128, 93, 128, 92, 128, 137, 129, 134, 129, 131, 129, 135, 129, 141, 129, 140, 129, 139, 129, 21, 130, 151, 132, 164, 132, 161, 132, 159, 132, 186, 132, 206, 132, 194, 132, 172, 132, 174, 132, 171, 132, 185, 132, 180, 132, 193, 132, 205, 132, 170, 132, 154, 132, 177, 132, 208, 132, 157, 132, 167, 132, 187, 132, 162, 132, 148, 132, 199, 132, 204, 132, 155, 132, 169, 132, 175, 132, 168, 132, 214, 132, 152, 132, 182, 132, 207, 132, 160, 132, 215, 132, 212, 132, 210, 132, 219, 132, 176, 132, 145, 132, 97, 134, 51, 135, 35, 135, 40, 135, 107, 135, 64, 135 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 97052 ); /* memory initializer */ allocate( [ 46, 135, 30, 135, 33, 135, 25, 135, 27, 135, 67, 135, 44, 135, 65, 135, 62, 135, 70, 135, 32, 135, 50, 135, 42, 135, 45, 135, 60, 135, 18, 135, 58, 135, 49, 135, 53, 135, 66, 135, 38, 135, 39, 135, 56, 135, 36, 135, 26, 135, 48, 135, 17, 135, 247, 136, 231, 136, 241, 136, 242, 136, 250, 136, 254, 136, 238, 136, 252, 136, 246, 136, 251, 136, 240, 136, 236, 136, 235, 136, 157, 137, 161, 137, 159, 137, 158, 137, 233, 137, 235, 137, 232, 137, 171, 138, 153, 138, 139, 138, 146, 138, 143, 138, 150, 138, 61, 140, 104, 140, 105, 140, 213, 140, 207, 140, 215, 140, 150, 141, 9, 142, 2, 142, 255, 141, 13, 142, 253, 141, 10, 142, 3, 142, 7, 142, 6, 142, 5, 142, 254, 141, 0, 142, 4, 142, 16, 143, 17, 143, 14, 143, 13, 143, 35, 145, 28, 145, 32, 145, 34, 145, 31, 145, 29, 145, 26, 145, 36, 145, 33, 145, 27, 145, 122, 145, 114, 145, 121, 145, 115, 145, 165, 146, 164, 146, 118, 146, 155, 146, 122, 146, 160, 146, 148, 146, 170, 146, 141, 146, 166, 146, 154, 146, 171, 146, 121, 146, 151, 146, 127, 146, 163, 146, 238, 146, 142, 146, 130, 146, 149, 146, 162, 146, 125, 146, 136, 146, 161, 146, 138, 146, 134, 146, 140, 146, 153, 146, 167, 146, 126, 146, 135, 146, 169, 146, 157, 146, 139, 146, 45, 146, 158, 150, 161, 150, 255, 150, 88, 151, 125, 151, 122, 151, 126, 151, 131, 151, 128, 151, 130, 151, 123, 151, 132, 151, 129, 151, 127, 151, 206, 151, 205, 151, 22, 152, 173, 152, 174, 152, 2, 153, 0, 153, 7, 153, 157, 153, 156, 153, 195, 153, 185, 153, 187, 153, 186, 153, 194, 153, 189, 153, 199, 153, 177, 154, 227, 154, 231, 154, 62, 155, 63, 155, 96, 155, 97, 155, 95, 155, 241, 156, 242, 156, 245, 156, 167, 158, 255, 80, 3, 81, 48, 81, 248, 80, 6, 81, 7, 81, 246, 80, 254, 80, 11, 81, 12, 81, 253, 80, 10, 81, 139, 82, 140, 82, 241, 82, 239, 82, 72, 86, 66, 86, 76, 86, 53, 86, 65, 86, 74, 86, 73, 86, 70, 86, 88, 86, 90, 86, 64, 86, 51, 86, 61, 86, 44, 86, 62, 86, 56, 86, 42, 86, 58, 86, 26, 87, 171, 88, 157, 88, 177, 88, 160, 88, 163, 88, 175, 88, 172, 88, 165, 88, 161, 88, 255, 88, 255, 90, 244, 90, 253, 90, 247, 90, 246, 90, 3, 91, 248, 90, 2, 91, 249, 90, 1, 91, 7, 91, 5, 91, 15, 91, 103, 92, 153, 93, 151, 93, 159, 93, 146, 93, 162, 93, 147, 93, 149, 93, 160, 93, 156, 93, 161, 93, 154, 93, 158, 93, 105, 94, 93, 94, 96, 94, 92, 94, 243, 125, 219, 94, 222, 94, 225, 94, 73, 95, 178, 95, 139, 97, 131, 97, 121, 97, 177, 97, 176, 97, 162, 97, 137, 97, 155, 97, 147, 97, 175, 97, 173, 97, 159, 97, 146, 97, 170, 97, 161, 97, 141, 97, 102, 97, 179, 97, 45, 98, 110, 100, 112, 100, 150, 100, 160, 100, 133, 100, 151, 100, 156, 100, 143, 100, 139, 100, 138, 100, 140, 100, 163, 100, 159, 100, 104, 100, 177, 100, 152, 100, 118, 101, 122, 101, 121, 101, 123, 101, 178, 101, 179, 101, 181, 102, 176, 102, 169, 102, 178, 102, 183, 102, 170, 102, 175, 102, 0, 106, 6, 106, 23, 106, 229, 105, 248, 105, 21, 106, 241, 105, 228, 105, 32, 106, 255, 105, 236, 105, 226, 105, 27, 106, 29, 106, 254, 105, 39, 106, 242, 105, 238, 105, 20, 106, 247, 105, 231, 105, 64, 106, 8, 106, 230, 105, 251, 105, 13, 106, 252, 105, 235, 105, 9, 106, 4, 106, 24, 106, 37, 106, 15, 106, 246, 105, 38, 106, 7, 106, 244, 105, 22, 106, 81, 107, 165, 107, 163, 107, 162, 107, 166, 107, 1, 108, 0, 108, 255, 107, 2, 108, 65, 111, 38, 111, 126, 111, 135, 111, 198, 111, 146, 111, 141, 111, 137, 111, 140, 111, 98, 111, 79, 111, 133, 111, 90, 111, 150, 111, 118, 111, 108, 111, 130, 111, 85, 111, 114, 111, 82, 111, 80, 111, 87, 111, 148, 111, 147, 111, 93, 111, 0, 111, 97, 111, 107, 111, 125, 111, 103, 111, 144, 111, 83, 111, 139, 111, 105, 111, 127, 111, 149, 111, 99, 111, 119, 111, 106, 111, 123, 111, 178, 113, 175, 113, 155, 113, 176, 113, 160, 113, 154, 113, 169, 113, 181, 113, 157, 113, 165, 113, 158, 113, 164, 113, 161, 113, 170, 113, 156, 113, 167, 113, 179, 113, 152, 114, 154, 114, 88, 115, 82, 115, 94, 115, 95, 115, 96, 115, 93, 115, 91, 115, 97, 115, 90, 115, 89, 115, 98, 115, 135, 116, 137, 116, 138, 116, 134, 116, 129, 116, 125, 116, 133, 116, 136, 116, 124, 116, 121, 116, 8, 117, 7, 117, 126, 117, 37, 118, 30, 118, 25, 118, 29, 118, 28, 118, 35, 118, 26, 118, 40, 118, 27, 118, 156, 118, 157, 118, 158, 118, 155, 118, 141, 119, 143, 119, 137, 119, 136, 119, 205, 120, 187, 120, 207, 120, 204, 120, 209, 120, 206, 120, 212, 120, 200, 120, 195, 120, 196, 120, 201, 120, 154, 121, 161, 121, 160, 121, 156, 121, 162, 121, 155, 121, 118, 107, 57, 122, 178, 122, 180, 122, 179, 122, 183, 123, 203, 123, 190, 123, 172, 123, 206, 123, 175, 123, 185, 123, 202, 123, 181, 123, 197, 124, 200, 124, 204, 124, 203, 124, 247, 125, 219, 125, 234, 125, 231, 125, 215, 125, 225, 125, 3, 126, 250, 125, 230, 125, 246, 125, 241, 125, 240, 125, 238, 125, 223, 125, 118, 127, 172, 127, 176, 127, 173, 127, 237, 127, 235, 127, 234, 127, 236, 127, 230, 127, 232, 127, 100, 128, 103, 128, 163, 129, 159, 129, 158, 129, 149, 129, 162, 129, 153, 129, 151, 129, 22, 130, 79, 130, 83, 130, 82, 130, 80, 130, 78, 130, 81, 130, 36, 133, 59, 133, 15, 133, 0, 133, 41, 133, 14, 133, 9, 133, 13, 133, 31, 133, 10, 133, 39, 133, 28, 133, 251, 132, 43, 133, 250, 132, 8, 133, 12, 133, 244, 132, 42, 133, 242, 132, 21, 133, 247, 132, 235, 132, 243, 132, 252, 132, 18, 133, 234, 132, 233, 132, 22, 133, 254, 132, 40, 133, 29, 133, 46, 133, 2, 133, 253, 132, 30, 133, 246, 132, 49, 133, 38, 133, 231, 132, 232, 132, 240, 132, 239, 132, 249, 132, 24, 133, 32, 133, 48, 133, 11, 133, 25, 133, 47, 133, 98, 134, 86, 135, 99, 135, 100, 135, 119, 135, 225, 135, 115, 135, 88, 135, 84, 135, 91, 135, 82, 135, 97, 135, 90, 135, 81, 135, 94, 135, 109, 135, 106, 135, 80, 135, 78, 135, 95, 135, 93, 135, 111, 135, 108, 135, 122, 135, 110, 135, 92, 135, 101, 135, 79, 135, 123, 135, 117, 135, 98, 135, 103, 135, 105, 135, 90, 136, 5, 137, 12, 137, 20, 137, 11, 137, 23, 137, 24, 137, 25, 137, 6, 137, 22, 137, 17, 137, 14, 137, 9, 137, 162, 137, 164, 137, 163, 137, 237, 137, 240, 137, 236, 137, 207, 138, 198, 138, 184, 138, 211, 138, 209, 138, 212, 138, 213, 138, 187, 138, 215, 138, 190, 138, 192, 138, 197, 138, 216, 138, 195, 138, 186, 138, 189, 138, 217, 138, 62, 140, 77, 140, 143, 140, 229, 140, 223, 140, 217, 140, 232, 140, 218, 140, 221, 140, 231, 140, 160, 141, 156, 141, 161, 141, 155, 141, 32, 142, 35, 142, 37, 142, 36, 142, 46, 142, 21, 142, 27, 142, 22, 142, 17, 142, 25, 142, 38, 142, 39, 142, 20, 142, 18, 142, 24, 142, 19, 142, 28, 142, 23, 142, 26, 142, 44, 143, 36, 143, 24, 143, 26, 143, 32, 143, 35, 143, 22, 143, 23, 143, 115, 144, 112, 144, 111, 144, 103, 144, 107, 144, 47, 145, 43, 145, 41, 145, 42, 145, 50, 145, 38, 145, 46, 145, 133, 145, 134, 145, 138, 145, 129, 145, 130, 145, 132, 145, 128, 145, 208, 146, 195, 146, 196, 146, 192, 146, 217, 146, 182, 146, 207, 146, 241, 146, 223, 146, 216, 146, 233, 146, 215, 146, 221, 146, 204, 146, 239, 146, 194, 146, 232, 146, 202, 146, 200, 146, 206, 146, 230, 146, 205, 146, 213, 146, 201, 146, 224, 146, 222, 146, 231, 146, 209, 146, 211, 146, 181, 146, 225, 146, 198, 146, 180, 146, 124, 149, 172, 149, 171, 149, 174, 149, 176, 149, 164, 150, 162, 150, 211, 150, 5, 151, 8, 151, 2, 151, 90, 151, 138, 151, 142, 151, 136, 151, 208, 151, 207, 151, 30, 152, 29, 152, 38, 152, 41, 152, 40, 152, 32, 152, 27, 152, 39, 152, 178, 152, 8, 153, 250, 152, 17, 153, 20, 153, 22, 153, 23, 153, 21, 153, 220, 153, 205, 153, 207, 153, 211, 153, 212, 153, 206, 153, 201, 153, 214, 153, 216, 153, 203, 153, 215, 153, 204, 153, 179, 154, 236, 154, 235, 154, 243, 154, 242, 154, 241, 154, 70, 155, 67, 155, 103, 155, 116, 155, 113, 155, 102, 155, 118, 155, 117, 155, 112, 155, 104, 155, 100, 155, 108, 155, 252, 156, 250, 156, 253, 156, 255, 156, 247, 156, 7, 157, 0, 157, 249, 156, 251, 156, 8, 157, 5, 157, 4, 157, 131, 158, 211, 158, 15, 159, 16, 159, 28, 81, 19, 81, 23, 81, 26, 81, 17, 81, 222, 81, 52, 83, 225, 83, 112, 86, 96, 86, 110, 86, 115, 86, 102, 86, 99, 86, 109, 86, 114, 86, 94, 86, 119, 86, 28, 87, 27, 87, 200, 88, 189, 88, 201, 88, 191, 88, 186, 88, 194, 88, 188, 88, 198, 88, 23, 91, 25, 91, 27, 91, 33, 91, 20, 91, 19, 91, 16, 91, 22, 91, 40, 91, 26, 91, 32, 91, 30, 91, 239, 91, 172, 93, 177, 93, 169, 93, 167, 93, 181, 93, 176, 93, 174, 93, 170, 93, 168, 93, 178, 93, 173, 93, 175, 93, 180, 93, 103, 94, 104, 94, 102, 94, 111, 94, 233, 94, 231, 94, 230, 94, 232, 94, 229, 94, 75, 95, 188, 95, 157, 97, 168, 97, 150, 97, 197, 97, 180, 97, 198, 97, 193, 97, 204, 97, 186, 97, 191, 97, 184, 97, 140, 97, 215, 100, 214, 100, 208, 100, 207, 100, 201, 100, 189, 100, 137, 100, 195, 100, 219, 100, 243, 100, 217, 100, 51, 101, 127, 101, 124, 101, 162, 101, 200, 102, 190, 102, 192, 102, 202, 102, 203, 102, 207, 102, 189, 102, 187, 102, 186, 102, 204, 102, 35, 103, 52, 106, 102, 106, 73, 106, 103, 106, 50, 106, 104, 106, 62, 106, 93, 106, 109, 106, 118, 106, 91, 106, 81, 106, 40, 106, 90, 106, 59, 106, 63, 106, 65, 106, 106, 106, 100, 106, 80, 106, 79, 106, 84, 106, 111, 106, 105, 106, 96, 106, 60, 106, 94, 106, 86, 106, 85, 106, 77, 106, 78, 106, 70, 106, 85, 107, 84, 107, 86, 107, 167, 107, 170, 107, 171, 107, 200, 107, 199, 107, 4, 108, 3, 108, 6, 108, 173, 111, 203, 111, 163, 111, 199, 111, 188, 111, 206, 111, 200, 111, 94, 111, 196, 111, 189, 111, 158, 111, 202, 111, 168, 111, 4, 112, 165, 111, 174, 111, 186, 111, 172, 111, 170, 111, 207, 111, 191, 111, 184, 111, 162, 111, 201, 111, 171, 111, 205, 111, 175, 111, 178, 111, 176, 111, 197, 113, 194, 113, 191, 113, 184, 113, 214, 113, 192, 113, 193, 113, 203, 113, 212, 113, 202, 113, 199, 113, 207, 113, 189, 113, 216, 113, 188, 113, 198, 113, 218, 113, 219, 113, 157, 114, 158, 114, 105, 115, 102, 115, 103, 115, 108, 115, 101, 115, 107, 115, 106, 115, 127, 116, 154, 116, 160, 116, 148, 116, 146, 116, 149, 116, 161, 116, 11, 117, 128, 117, 47, 118, 45, 118, 49, 118, 61, 118, 51, 118, 60, 118, 53, 118, 50, 118, 48, 118, 187, 118, 230, 118, 154, 119, 157, 119, 161, 119, 156, 119, 155, 119, 162, 119, 163, 119, 149, 119, 153, 119, 151, 119, 221, 120, 233, 120, 229, 120, 234, 120, 222, 120, 227, 120, 219, 120, 225, 120, 226, 120, 237, 120, 223, 120, 224, 120, 164, 121, 68, 122, 72, 122, 71, 122, 182, 122, 184, 122, 181, 122, 177, 122, 183, 122, 222, 123, 227, 123, 231, 123, 221, 123, 213, 123, 229, 123, 218, 123, 232, 123, 249, 123, 212, 123, 234, 123, 226, 123, 220, 123, 235, 123, 216, 123, 223, 123, 210, 124, 212, 124, 215, 124, 208, 124, 209, 124, 18, 126, 33, 126, 23, 126, 12, 126, 31, 126, 32, 126, 19, 126, 14, 126, 28, 126, 21, 126, 26, 126, 34, 126, 11, 126, 15, 126, 22, 126, 13, 126, 20, 126, 37, 126, 36, 126, 67, 127, 123, 127, 124, 127, 122, 127, 177, 127, 239, 127, 42, 128, 41, 128, 108, 128, 177, 129, 166, 129, 174, 129, 185, 129, 181, 129, 171, 129, 176, 129, 172, 129, 180, 129, 178, 129, 183, 129, 167, 129, 242, 129, 85, 130, 86, 130, 87, 130, 86, 133, 69, 133, 107, 133, 77, 133, 83, 133, 97, 133, 88, 133, 64, 133, 70, 133, 100, 133, 65, 133, 98, 133, 68, 133, 81, 133, 71, 133, 99, 133, 62, 133, 91, 133, 113, 133, 78, 133, 110, 133, 117, 133, 85, 133, 103, 133, 96, 133, 140, 133, 102, 133, 93, 133, 84, 133, 101, 133, 108, 133, 99, 134, 101, 134, 100, 134, 155, 135, 143, 135, 151, 135, 147, 135, 146, 135, 136, 135, 129, 135, 150, 135, 152, 135, 121, 135, 135, 135, 163, 135, 133, 135, 144, 135, 145, 135, 157, 135, 132, 135, 148, 135, 156, 135, 154, 135, 137, 135, 30, 137, 38, 137, 48, 137, 45, 137, 46, 137, 39, 137, 49, 137, 34, 137, 41, 137, 35, 137, 47, 137, 44, 137, 31, 137, 241, 137, 224, 138, 226, 138, 242, 138, 244, 138, 245, 138, 221, 138, 20, 139, 228, 138, 223, 138, 240, 138, 200, 138, 222, 138, 225, 138, 232, 138, 255, 138, 239, 138, 251, 138, 145, 140, 146, 140, 144, 140, 245, 140, 238, 140, 241, 140, 240, 140, 243, 140, 108, 141, 110, 141, 165, 141, 167, 141, 51, 142, 62, 142, 56, 142, 64, 142, 69, 142, 54, 142, 60, 142, 61, 142, 65, 142, 48, 142, 63, 142, 189, 142, 54, 143, 46, 143, 53, 143, 50, 143, 57, 143, 55, 143, 52, 143, 118, 144, 121, 144, 123, 144, 134, 144, 250, 144, 51, 145, 53, 145, 54, 145, 147, 145, 144, 145, 145, 145, 141, 145, 143, 145, 39, 147, 30, 147, 8, 147, 31, 147, 6, 147, 15, 147, 122, 147, 56, 147, 60, 147, 27, 147, 35, 147, 18, 147, 1, 147, 70, 147, 45, 147, 14, 147, 13, 147, 203, 146, 29, 147, 250, 146, 37, 147, 19, 147, 249, 146, 247, 146, 52, 147, 2, 147, 36, 147, 255, 146, 41, 147, 57, 147, 53, 147, 42, 147, 20, 147, 12, 147, 11, 147, 254, 146, 9, 147, 0, 147, 251, 146, 22, 147, 188, 149, 205, 149, 190, 149, 185, 149, 186, 149, 182, 149, 191, 149, 181, 149, 189, 149, 169, 150, 212, 150, 11, 151, 18, 151, 16, 151, 153, 151, 151, 151, 148, 151, 240, 151, 248, 151, 53, 152, 47, 152, 50, 152, 36, 153, 31, 153, 39, 153, 41, 153, 158, 153, 238, 153, 236, 153, 229, 153, 228, 153, 240, 153, 227, 153, 234, 153, 233, 153, 231, 153, 185, 154, 191, 154, 180, 154, 187, 154, 246, 154, 250, 154, 249, 154, 247, 154, 51, 155, 128, 155, 133, 155, 135, 155, 124, 155, 126, 155, 123, 155, 130, 155, 147, 155, 146, 155, 144, 155, 122, 155, 149, 155, 125, 155, 136, 155, 37, 157, 23, 157, 32, 157, 30, 157, 20, 157, 41, 157, 29, 157, 24, 157, 34, 157, 16, 157, 25, 157, 31, 157, 136, 158, 134, 158, 135, 158, 174, 158, 173, 158, 213, 158, 214, 158, 250, 158, 18, 159, 61, 159, 38, 81, 37, 81, 34, 81, 36, 81, 32, 81, 41, 81, 244, 82, 147, 86, 140, 86, 141, 86, 134, 86, 132, 86, 131, 86, 126, 86, 130, 86, 127, 86, 129, 86, 214, 88, 212, 88, 207, 88, 210, 88, 45, 91, 37, 91, 50, 91, 35, 91, 44, 91, 39, 91, 38, 91, 47, 91, 46, 91, 123, 91, 241, 91, 242, 91, 183, 93, 108, 94, 106, 94, 190, 95, 187, 95, 195, 97, 181, 97, 188, 97, 231, 97, 224, 97, 229, 97, 228, 97, 232, 97, 222, 97, 239, 100, 233, 100, 227, 100, 235, 100, 228, 100, 232, 100, 129, 101, 128, 101, 182, 101, 218, 101, 210, 102, 141, 106, 150, 106, 129, 106, 165, 106, 137, 106, 159, 106, 155, 106, 161, 106, 158, 106, 135, 106, 147, 106, 142, 106, 149, 106, 131, 106, 168, 106, 164, 106, 145, 106, 127, 106, 166, 106, 154, 106, 133, 106, 140, 106, 146, 106, 91, 107, 173, 107, 9, 108, 204, 111, 169, 111, 244, 111, 212, 111, 227, 111, 220, 111, 237, 111, 231, 111, 230, 111, 222, 111, 242, 111, 221, 111, 226, 111, 232, 111, 225, 113, 241, 113, 232, 113, 242, 113, 228, 113, 240, 113, 226, 113, 115, 115, 110, 115, 111, 115, 151, 116, 178, 116, 171, 116, 144, 116, 170, 116, 173, 116, 177, 116, 165, 116, 175, 116, 16, 117, 17, 117, 18, 117, 15, 117, 132, 117, 67, 118, 72, 118, 73, 118, 71, 118, 164, 118, 233, 118, 181, 119, 171, 119, 178, 119, 183, 119, 182, 119, 180, 119, 177, 119, 168, 119, 240, 119, 243, 120, 253, 120, 2, 121, 251, 120, 252, 120, 242, 120, 5, 121, 249, 120, 254, 120, 4, 121, 171, 121, 168, 121, 92, 122, 91, 122, 86, 122, 88, 122, 84, 122, 90, 122, 190, 122, 192, 122, 193, 122, 5, 124, 15, 124, 242, 123, 0, 124, 255, 123, 251, 123, 14, 124, 244, 123, 11, 124, 243, 123, 2, 124, 9, 124, 3, 124, 1, 124, 248, 123, 253, 123, 6, 124, 240, 123, 241, 123, 16, 124, 10, 124, 232, 124, 45, 126, 60, 126, 66, 126, 51, 126, 72, 152, 56, 126, 42, 126, 73, 126, 64, 126, 71, 126, 41, 126, 76, 126, 48, 126, 59, 126, 54, 126, 68, 126, 58, 126, 69, 127, 127, 127, 126, 127, 125, 127, 244, 127, 242, 127, 44, 128, 187, 129, 196, 129, 204, 129, 202, 129, 197, 129, 199, 129, 188, 129, 233, 129, 91, 130, 90, 130, 92, 130, 131, 133, 128, 133, 143, 133, 167, 133, 149, 133, 160, 133, 139, 133, 163, 133, 123, 133, 164, 133, 154, 133, 158, 133, 119, 133, 124, 133, 137, 133, 161, 133, 122, 133, 120, 133, 87, 133, 142, 133, 150, 133, 134, 133, 141, 133, 153, 133, 157, 133, 129, 133, 162, 133, 130, 133, 136, 133, 133, 133, 121, 133, 118, 133, 152, 133, 144, 133, 159, 133, 104, 134, 190, 135, 170, 135, 173, 135, 197, 135, 176, 135, 172, 135, 185, 135, 181, 135, 188, 135, 174, 135, 201, 135, 195, 135, 194, 135, 204, 135, 183, 135, 175, 135, 196, 135, 202, 135, 180, 135, 182, 135, 191, 135, 184, 135, 189, 135, 222, 135, 178, 135, 53, 137, 51, 137, 60, 137, 62, 137, 65, 137, 82, 137, 55, 137, 66, 137, 173, 137, 175, 137, 174, 137, 242, 137, 243, 137, 30, 139, 24, 139, 22, 139, 17, 139, 5, 139, 11, 139, 34, 139, 15, 139, 18, 139, 21, 139, 7, 139, 13, 139, 8, 139, 6, 139, 28, 139, 19, 139, 26, 139, 79, 140, 112, 140, 114, 140, 113, 140, 111, 140, 149, 140, 148, 140, 249, 140, 111, 141, 78, 142, 77, 142, 83, 142, 80, 142, 76, 142, 71, 142, 67, 143, 64, 143, 133, 144, 126, 144, 56, 145, 154, 145, 162, 145, 155, 145, 153, 145, 159, 145, 161, 145, 157, 145, 160, 145, 161, 147, 131, 147, 175, 147, 100, 147, 86, 147, 71, 147, 124, 147, 88, 147, 92, 147, 118, 147, 73, 147, 80, 147, 81, 147, 96, 147, 109, 147, 143, 147, 76, 147, 106, 147, 121, 147, 87, 147, 85, 147, 82, 147, 79, 147, 113, 147, 119, 147, 123, 147, 97, 147, 94, 147, 99, 147, 103, 147, 128, 147, 78, 147, 89, 147, 199, 149, 192, 149, 201, 149, 195, 149, 197, 149, 183, 149, 174, 150, 176, 150, 172, 150, 32, 151, 31, 151, 24, 151, 29, 151, 25, 151, 154, 151, 161, 151, 156, 151, 158, 151, 157, 151, 213, 151, 212, 151, 241, 151, 65, 152, 68, 152, 74, 152, 73, 152, 69, 152, 67, 152, 37, 153, 43, 153, 44, 153, 42, 153, 51, 153, 50, 153, 47, 153, 45, 153, 49, 153, 48, 153, 152, 153, 163, 153, 161, 153, 2, 154, 250, 153, 244, 153, 247, 153, 249, 153, 248, 153, 246, 153, 251, 153, 253, 153, 254, 153, 252, 153, 3, 154, 190, 154, 254, 154, 253, 154, 1, 155, 252, 154, 72, 155, 154, 155, 168, 155, 158, 155, 155, 155, 166, 155, 161, 155, 165, 155, 164, 155, 134, 155, 162, 155, 160, 155, 175, 155, 51, 157, 65, 157, 103, 157, 54, 157, 46, 157, 47, 157, 49, 157, 56, 157, 48, 157, 69, 157, 66, 157, 67, 157, 62, 157, 55, 157, 64, 157, 61, 157, 245, 127, 45, 157, 138, 158, 137, 158, 141, 158, 176, 158, 200, 158, 218, 158, 251, 158, 255, 158, 36, 159, 35, 159, 34, 159, 84, 159, 160, 159, 49, 81, 45, 81, 46, 81, 152, 86, 156, 86, 151, 86, 154, 86, 157, 86, 153, 86, 112, 89, 60, 91, 105, 92, 106, 92, 192, 93, 109, 94, 110, 94, 216, 97, 223, 97, 237, 97, 238, 97, 241, 97, 234, 97, 240, 97, 235, 97, 214, 97, 233, 97, 255, 100, 4, 101, 253, 100, 248, 100, 1, 101, 3, 101, 252, 100, 148, 101, 219, 101, 218, 102, 219, 102, 216, 102, 197, 106, 185, 106, 189, 106, 225, 106, 198, 106, 186, 106, 182, 106, 183, 106, 199, 106, 180, 106, 173, 106, 94, 107, 201, 107, 11, 108, 7, 112, 12, 112, 13, 112, 1, 112, 5, 112, 20, 112, 14, 112, 255, 111, 0, 112, 251, 111, 38, 112, 252, 111, 247, 111, 10, 112, 1, 114, 255, 113, 249, 113, 3, 114, 253, 113, 118, 115, 184, 116, 192, 116, 181, 116, 193, 116, 190, 116, 182, 116, 187, 116, 194, 116, 20, 117, 19, 117, 92, 118, 100, 118, 89, 118, 80, 118, 83, 118, 87, 118, 90, 118, 166, 118, 189, 118, 236, 118, 194, 119, 186, 119, 255, 120, 12, 121, 19, 121, 20, 121, 9, 121, 16, 121, 18, 121, 17, 121, 173, 121, 172, 121, 95, 122, 28, 124, 41, 124, 25, 124, 32, 124, 31, 124, 45, 124, 29, 124, 38, 124, 40, 124, 34, 124, 37, 124, 48, 124, 92, 126, 80, 126, 86, 126, 99, 126, 88, 126, 98, 126, 95, 126, 81, 126, 96, 126, 87, 126, 83, 126, 181, 127, 179, 127, 247, 127, 248, 127, 117, 128, 209, 129, 210, 129, 208, 129, 95, 130, 94, 130, 180, 133, 198, 133, 192, 133, 195, 133, 194, 133, 179, 133, 181, 133, 189, 133, 199, 133, 196, 133, 191, 133, 203, 133, 206, 133, 200, 133, 197, 133, 177, 133, 182, 133, 210, 133, 36, 134, 184, 133, 183, 133, 190, 133, 105, 134, 231, 135, 230, 135, 226, 135, 219, 135, 235, 135, 234, 135, 229, 135, 223, 135, 243, 135, 228, 135, 212, 135, 220, 135, 211, 135, 237, 135, 216, 135, 227, 135, 164, 135, 215, 135, 217, 135, 1, 136, 244, 135, 232, 135, 221, 135, 83, 137, 75, 137, 79, 137, 76, 137, 70, 137, 80, 137, 81, 137, 73, 137, 42, 139, 39, 139, 35, 139, 51, 139, 48, 139, 53, 139, 71, 139, 47, 139, 60, 139, 62, 139, 49, 139, 37, 139, 55, 139, 38, 139, 54, 139, 46, 139, 36, 139, 59, 139, 61, 139, 58, 139, 66, 140, 117, 140, 153, 140, 152, 140, 151, 140, 254, 140, 4, 141, 2, 141, 0, 141, 92, 142, 98, 142, 96, 142, 87, 142, 86, 142, 94, 142, 101, 142, 103, 142, 91, 142, 90, 142, 97, 142, 93, 142, 105, 142, 84, 142, 70, 143, 71, 143, 72, 143, 75, 143, 40, 145, 58, 145, 59, 145, 62, 145, 168, 145, 165, 145, 167, 145, 175, 145, 170, 145, 181, 147, 140, 147, 146, 147, 183, 147, 155, 147, 157, 147, 137, 147, 167, 147, 142, 147, 170, 147, 158, 147, 166, 147, 149, 147, 136, 147, 153, 147, 159, 147, 141, 147, 177, 147, 145, 147, 178, 147, 164, 147, 168, 147, 180, 147, 163, 147, 165, 147, 210, 149, 211, 149, 209, 149, 179, 150, 215, 150, 218, 150, 194, 93, 223, 150, 216, 150, 221, 150, 35, 151, 34, 151, 37, 151, 172, 151, 174, 151, 168, 151, 171, 151, 164, 151, 170, 151, 162, 151, 165, 151, 215, 151, 217, 151, 214, 151, 216, 151, 250, 151, 80, 152, 81, 152, 82, 152, 184, 152, 65, 153, 60, 153, 58, 153, 15, 154, 11, 154, 9, 154, 13, 154, 4, 154, 17, 154, 10, 154, 5, 154, 7, 154, 6, 154, 192, 154, 220, 154, 8, 155, 4, 155, 5, 155, 41, 155, 53, 155, 74, 155, 76, 155, 75, 155, 199, 155, 198, 155, 195, 155, 191, 155, 193, 155, 181, 155, 184, 155, 211, 155, 182, 155, 196, 155, 185, 155, 189, 155, 92, 157, 83, 157, 79, 157, 74, 157, 91, 157, 75, 157, 89, 157, 86, 157, 76, 157, 87, 157, 82, 157, 84, 157, 95, 157, 88, 157, 90, 157, 142, 158, 140, 158, 223, 158, 1, 159, 0, 159, 22, 159, 37, 159, 43, 159, 42, 159, 41, 159, 40, 159, 76, 159, 85, 159, 52, 81, 53, 81, 150, 82, 247, 82, 180, 83, 171, 86, 173, 86, 166, 86, 167, 86, 170, 86, 172, 86, 218, 88, 221, 88, 219, 88, 18, 89, 61, 91, 62, 91, 63, 91, 195, 93, 112, 94, 191, 95, 251, 97, 7, 101, 16, 101, 13, 101, 9, 101, 12, 101, 14, 101, 132, 101, 222, 101, 221, 101, 222, 102, 231, 106, 224, 106, 204, 106, 209, 106, 217, 106, 203, 106, 223, 106, 220, 106, 208, 106, 235, 106, 207, 106, 205, 106, 222, 106, 96, 107, 176, 107, 12, 108, 25, 112, 39, 112, 32, 112, 22, 112, 43, 112, 33, 112, 34, 112, 35, 112, 41, 112, 23, 112, 36, 112, 28, 112, 42, 112, 12, 114, 10, 114, 7, 114, 2, 114, 5, 114, 165, 114, 166, 114, 164, 114, 163, 114, 161, 114, 203, 116, 197, 116, 183, 116, 195, 116, 22, 117, 96, 118, 201, 119, 202, 119, 196, 119, 241, 119, 29, 121, 27, 121, 33, 121, 28, 121, 23, 121, 30, 121, 176, 121, 103, 122, 104, 122, 51, 124, 60, 124, 57, 124, 44, 124, 59, 124, 236, 124, 234, 124, 118, 126, 117, 126, 120, 126, 112, 126, 119, 126, 111, 126, 122, 126, 114, 126, 116, 126, 104, 126, 75, 127, 74, 127, 131, 127, 134, 127, 183, 127, 253, 127, 254, 127, 120, 128, 215, 129, 213, 129, 100, 130, 97, 130, 99, 130, 235, 133, 241, 133, 237, 133, 217, 133, 225, 133, 232, 133, 218, 133, 215, 133, 236, 133, 242, 133, 248, 133, 216, 133, 223, 133, 227, 133, 220, 133, 209, 133, 240, 133, 230, 133, 239, 133, 222, 133, 226, 133, 0, 136, 250, 135, 3, 136, 246, 135, 247, 135, 9, 136, 12, 136, 11, 136, 6, 136, 252, 135, 8, 136, 255, 135, 10, 136, 2, 136, 98, 137, 90, 137, 91, 137, 87, 137, 97, 137, 92, 137, 88, 137, 93, 137, 89, 137, 136, 137, 183, 137, 182, 137, 246, 137, 80, 139, 72, 139, 74, 139, 64, 139, 83, 139, 86, 139, 84, 139, 75, 139, 85, 139, 81, 139, 66, 139, 82, 139, 87, 139, 67, 140, 119, 140, 118, 140, 154, 140, 6, 141, 7, 141, 9, 141, 172, 141, 170, 141, 173, 141, 171, 141, 109, 142, 120, 142, 115, 142, 106, 142, 111, 142, 123, 142, 194, 142, 82, 143, 81, 143, 79, 143, 80, 143, 83, 143, 180, 143, 64, 145, 63, 145, 176, 145, 173, 145, 222, 147, 199, 147, 207, 147, 194, 147, 218, 147, 208, 147, 249, 147, 236, 147, 204, 147, 217, 147, 169, 147, 230, 147, 202, 147, 212, 147, 238, 147, 227, 147, 213, 147, 196, 147, 206, 147, 192, 147, 210, 147, 231, 147, 125, 149, 218, 149, 219, 149, 225, 150, 41, 151, 43, 151, 44, 151, 40, 151, 38, 151, 179, 151, 183, 151, 182, 151, 221, 151, 222, 151, 223, 151, 92, 152, 89, 152, 93, 152, 87, 152, 191, 152, 189, 152, 187, 152, 190, 152, 72, 153, 71, 153, 67, 153, 166, 153, 167, 153, 26, 154, 21, 154, 37, 154, 29, 154, 36, 154, 27, 154, 34, 154, 32, 154, 39, 154, 35, 154, 30, 154, 28, 154, 20, 154, 194, 154, 11, 155, 10, 155, 14, 155, 12, 155, 55, 155, 234, 155, 235, 155, 224, 155, 222, 155, 228, 155, 230, 155, 226, 155, 240, 155, 212, 155, 215, 155, 236, 155, 220, 155, 217, 155, 229, 155, 213, 155, 225, 155, 218, 155, 119, 157, 129, 157, 138, 157, 132, 157, 136, 157, 113, 157, 128, 157, 120, 157, 134, 157, 139, 157, 140, 157, 125, 157, 107, 157, 116, 157, 117, 157, 112, 157, 105, 157, 133, 157, 115, 157, 123, 157, 130, 157, 111, 157, 121, 157, 127, 157, 135, 157, 104, 157, 148, 158, 145, 158, 192, 158, 252, 158, 45, 159, 64, 159, 65, 159, 77, 159, 86, 159, 87, 159, 88, 159, 55, 83, 178, 86, 181, 86, 179, 86, 227, 88, 69, 91, 198, 93, 199, 93, 238, 94, 239, 94, 192, 95, 193, 95, 249, 97, 23, 101, 22, 101, 21, 101, 19, 101, 223, 101, 232, 102, 227, 102, 228, 102, 243, 106, 240, 106, 234, 106, 232, 106, 249, 106, 241, 106, 238, 106, 239, 106, 60, 112, 53, 112, 47, 112, 55, 112, 52, 112, 49, 112, 66, 112, 56, 112, 63, 112, 58, 112, 57, 112, 64, 112, 59, 112, 51, 112, 65, 112, 19, 114, 20, 114, 168, 114, 125, 115, 124, 115, 186, 116, 171, 118, 170, 118, 190, 118, 237, 118, 204, 119, 206, 119, 207, 119, 205, 119, 242, 119, 37, 121, 35, 121, 39, 121, 40, 121, 36, 121, 41, 121, 178, 121, 110, 122, 108, 122, 109, 122, 247, 122, 73, 124, 72, 124, 74, 124, 71, 124, 69, 124, 238, 124, 123, 126, 126, 126, 129, 126, 128, 126, 186, 127, 255, 127, 121, 128, 219, 129, 217, 129, 11, 130, 104, 130, 105, 130, 34, 134, 255, 133, 1, 134, 254, 133, 27, 134, 0, 134, 246, 133, 4, 134, 9, 134, 5, 134, 12, 134, 253, 133, 25, 136, 16, 136, 17, 136, 23, 136, 19, 136, 22, 136, 99, 137, 102, 137, 185, 137, 247, 137, 96, 139, 106, 139, 93, 139, 104, 139, 99, 139, 101, 139, 103, 139, 109, 139, 174, 141, 134, 142, 136, 142, 132, 142, 89, 143, 86, 143, 87, 143, 85, 143, 88, 143, 90, 143, 141, 144, 67, 145, 65, 145, 183, 145, 181, 145, 178, 145, 179, 145, 11, 148, 19, 148, 251, 147, 32, 148, 15, 148, 20, 148, 254, 147, 21, 148, 16, 148, 40, 148, 25, 148, 13, 148, 245, 147, 0, 148, 247, 147, 7, 148, 14, 148, 22, 148, 18, 148, 250, 147, 9, 148, 248, 147, 10, 148, 255, 147, 252, 147, 12, 148, 246, 147, 17, 148, 6, 148, 222, 149, 224, 149, 223, 149, 46, 151, 47, 151, 185, 151, 187, 151, 253, 151, 254, 151, 96, 152, 98, 152, 99, 152, 95, 152, 193, 152, 194, 152, 80, 153, 78, 153, 89, 153, 76, 153, 75, 153, 83, 153, 50, 154, 52, 154, 49, 154, 44, 154, 42, 154, 54, 154, 41, 154, 46, 154, 56, 154, 45, 154, 199, 154, 202, 154, 198, 154, 16, 155, 18, 155, 17, 155, 11, 156, 8, 156, 247, 155, 5, 156, 18, 156, 248, 155, 64, 156, 7, 156, 14, 156, 6, 156, 23, 156, 20, 156, 9, 156, 159, 157, 153, 157, 164, 157, 157, 157, 146, 157, 152, 157, 144, 157, 155, 157, 160, 157, 148, 157, 156, 157, 170, 157, 151, 157, 161, 157, 154, 157, 162, 157, 168, 157, 158, 157, 163, 157, 191, 157, 169, 157, 150, 157, 166, 157, 167, 157, 153, 158, 155, 158, 154, 158, 229, 158, 228, 158, 231, 158, 230, 158, 48, 159, 46, 159, 91, 159, 96, 159, 94, 159, 93, 159, 89, 159, 145, 159, 58, 81, 57, 81, 152, 82, 151, 82, 195, 86, 189, 86, 190, 86, 72, 91, 71, 91, 203, 93, 207, 93, 241, 94, 253, 97, 27, 101, 2, 107, 252, 106, 3, 107, 248, 106, 0, 107, 67, 112, 68, 112, 74, 112, 72, 112, 73, 112, 69, 112, 70, 112, 29, 114, 26, 114, 25, 114, 126, 115, 23, 117, 106, 118, 208, 119, 45, 121, 49, 121, 47, 121, 84, 124, 83, 124, 242, 124, 138, 126, 135, 126, 136, 126, 139, 126, 134, 126, 141, 126, 77, 127, 187, 127, 48, 128, 221, 129, 24, 134, 42, 134, 38, 134, 31, 134, 35, 134, 28, 134, 25, 134, 39, 134, 46, 134, 33, 134, 32, 134, 41, 134, 30, 134, 37, 134, 41, 136, 29, 136, 27, 136, 32, 136, 36, 136, 28, 136, 43, 136, 74, 136, 109, 137, 105, 137, 110, 137, 107, 137, 250, 137, 121, 139, 120, 139, 69, 139, 122, 139, 123, 139, 16, 141, 20, 141, 175, 141, 142, 142, 140, 142, 94, 143, 91, 143, 93, 143, 70, 145, 68, 145, 69, 145, 185, 145, 63, 148, 59, 148, 54, 148, 41, 148, 61, 148, 60, 148, 48, 148, 57, 148, 42, 148, 55, 148, 44, 148, 64, 148, 49, 148, 229, 149, 228, 149, 227, 149, 53, 151, 58, 151, 191, 151, 225, 151, 100, 152, 201, 152, 198, 152, 192, 152, 88, 153, 86, 153, 57, 154, 61, 154, 70, 154, 68, 154, 66, 154, 65, 154, 58, 154, 63, 154, 205, 154, 21, 155, 23, 155, 24, 155, 22, 155, 58, 155, 82, 155, 43, 156, 29, 156, 28, 156, 44, 156, 35, 156, 40, 156, 41, 156, 36, 156, 33, 156, 183, 157, 182, 157, 188, 157, 193, 157, 199, 157, 202, 157, 207, 157, 190, 157, 197, 157, 195, 157, 187, 157, 181, 157, 206, 157, 185, 157, 186, 157, 172, 157, 200, 157, 177, 157, 173, 157, 204, 157, 179, 157, 205, 157, 178, 157, 122, 158, 156, 158, 235, 158, 238, 158, 237, 158, 27, 159, 24, 159, 26, 159, 49, 159, 78, 159, 101, 159, 100, 159, 146, 159, 185, 78, 198, 86, 197, 86, 203, 86, 113, 89, 75, 91, 76, 91, 213, 93, 209, 93, 242, 94, 33, 101, 32, 101, 38, 101, 34, 101, 11, 107, 8, 107, 9, 107, 13, 108, 85, 112, 86, 112, 87, 112, 82, 112, 30, 114, 31, 114, 169, 114, 127, 115, 216, 116, 213, 116, 217, 116, 215, 116, 109, 118, 173, 118, 53, 121, 180, 121, 112, 122, 113, 122, 87, 124, 92, 124, 89, 124, 91, 124, 90, 124, 244, 124, 241, 124, 145, 126, 79, 127, 135, 127, 222, 129, 107, 130, 52, 134, 53, 134, 51, 134, 44, 134, 50, 134, 54, 134, 44, 136, 40, 136, 38, 136, 42, 136, 37, 136, 113, 137, 191, 137, 190, 137, 251, 137, 126, 139, 132, 139, 130, 139, 134, 139, 133, 139, 127, 139, 21, 141, 149, 142, 148, 142, 154, 142, 146, 142, 144, 142, 150, 142, 151, 142, 96, 143, 98, 143, 71, 145, 76, 148, 80, 148, 74, 148, 75, 148, 79, 148, 71, 148, 69, 148, 72, 148, 73, 148, 70, 148, 63, 151, 227, 151, 106, 152, 105, 152, 203, 152, 84, 153, 91, 153, 78, 154, 83, 154, 84, 154, 76, 154, 79, 154, 72, 154, 74, 154, 73, 154, 82, 154, 80, 154, 208, 154, 25, 155, 43, 155, 59, 155, 86, 155, 85, 155, 70, 156, 72, 156, 63, 156, 68, 156, 57, 156, 51, 156, 65, 156, 60, 156, 55, 156, 52, 156, 50, 156, 61, 156, 54, 156, 219, 157, 210, 157, 222, 157, 218, 157, 203, 157, 208, 157, 220, 157, 209, 157, 223, 157, 233, 157, 217, 157, 216, 157, 214, 157, 245, 157, 213, 157, 221, 157, 182, 158, 240, 158, 53, 159, 51, 159, 50, 159, 66, 159, 107, 159, 149, 159, 162, 159, 61, 81, 153, 82, 232, 88, 231, 88, 114, 89, 77, 91, 216, 93, 47, 136, 79, 95, 1, 98, 3, 98, 4, 98, 41, 101, 37, 101, 150, 101, 235, 102, 17, 107, 18, 107, 15, 107, 202, 107, 91, 112, 90, 112, 34, 114, 130, 115, 129, 115, 131, 115, 112, 118, 212, 119, 103, 124, 102, 124, 149, 126, 108, 130, 58, 134, 64, 134, 57, 134, 60, 134, 49, 134, 59, 134, 62, 134, 48, 136, 50, 136, 46, 136, 51, 136, 118, 137, 116, 137, 115, 137, 254, 137, 140, 139, 142, 139, 139, 139, 136, 139, 69, 140, 25, 141, 152, 142, 100, 143, 99, 143, 188, 145, 98, 148, 85, 148, 93, 148, 87, 148, 94, 148, 196, 151, 197, 151, 0, 152, 86, 154, 89, 154, 30, 155, 31, 155, 32, 155, 82, 156, 88, 156, 80, 156, 74, 156, 77, 156, 75, 156, 85, 156, 89, 156, 76, 156, 78, 156, 251, 157, 247, 157, 239, 157, 227, 157, 235, 157, 248, 157, 228, 157, 246, 157, 225, 157, 238, 157, 230, 157, 242, 157, 240, 157, 226, 157, 236, 157, 244, 157, 243, 157, 232, 157, 237, 157, 194, 158, 208, 158, 242, 158, 243, 158, 6, 159, 28, 159, 56, 159, 55, 159, 54, 159, 67, 159, 79, 159, 113, 159, 112, 159, 110, 159, 111, 159, 211, 86, 205, 86, 78, 91, 109, 92, 45, 101, 237, 102, 238, 102, 19, 107, 95, 112, 97, 112, 93, 112, 96, 112, 35, 114, 219, 116, 229, 116, 213, 119, 56, 121, 183, 121, 182, 121, 106, 124, 151, 126, 137, 127, 109, 130, 67, 134, 56, 136, 55, 136, 53, 136, 75, 136, 148, 139, 149, 139, 158, 142, 159, 142, 160, 142, 157, 142, 190, 145, 189, 145, 194, 145, 107, 148, 104, 148, 105, 148, 229, 150, 70, 151, 67, 151, 71, 151, 199, 151, 229, 151, 94, 154, 213, 154, 89, 155, 99, 156, 103, 156, 102, 156, 98, 156, 94, 156, 96, 156, 2, 158, 254, 157, 7, 158, 3, 158, 6, 158, 5, 158, 0, 158, 1, 158, 9, 158, 255, 157, 253, 157, 4, 158, 160, 158, 30, 159, 70, 159, 116, 159, 117, 159, 118, 159, 212, 86, 46, 101, 184, 101, 24, 107, 25, 107, 23, 107, 26, 107, 98, 112, 38, 114, 170, 114, 216, 119, 217, 119, 57, 121, 105, 124, 107, 124, 246, 124, 154, 126, 152, 126, 155, 126, 153, 126, 224, 129, 225, 129, 70, 134, 71, 134, 72, 134, 121, 137, 122, 137, 124, 137, 123, 137, 255, 137, 152, 139, 153, 139, 165, 142, 164, 142, 163, 142, 110, 148, 109, 148, 111, 148, 113, 148, 115, 148, 73, 151, 114, 152, 95, 153, 104, 156, 110, 156, 109, 156, 11, 158, 13, 158, 16, 158, 15, 158, 18, 158, 17, 158, 161, 158, 245, 158, 9, 159, 71, 159, 120, 159, 123, 159, 122, 159, 121, 159, 30, 87, 102, 112, 111, 124, 60, 136, 178, 141, 166, 142, 195, 145, 116, 148, 120, 148, 118, 148, 117, 148, 96, 154, 116, 156, 115, 156, 113, 156, 117, 156, 20, 158, 19, 158, 246, 158, 10, 159, 164, 159, 104, 112, 101, 112, 247, 124, 106, 134, 62, 136, 61, 136, 63, 136, 158, 139, 156, 140, 169, 142, 201, 142, 75, 151, 115, 152, 116, 152, 204, 152, 97, 153, 171, 153, 100, 154, 102, 154, 103, 154, 36, 155, 21, 158, 23, 158, 72, 159, 7, 98, 30, 107, 39, 114, 76, 134, 168, 142, 130, 148, 128, 148, 129, 148, 105, 154, 104, 154, 46, 155, 25, 158, 41, 114, 75, 134, 159, 139, 131, 148, 121, 156, 183, 158, 117, 118, 107, 154, 122, 156, 29, 158, 105, 112, 106, 112, 164, 158, 126, 159, 73, 159, 152, 159, 129, 120, 185, 146, 207, 136, 187, 88, 82, 96, 167, 124, 250, 90, 84, 37, 102, 37, 87, 37, 96, 37, 108, 37, 99, 37, 90, 37, 105, 37, 93, 37, 82, 37, 100, 37, 85, 37, 94, 37, 106, 37, 97, 37, 88, 37, 103, 37, 91, 37, 83, 37, 101, 37, 86, 37, 95, 37, 107, 37, 98, 37, 89, 37, 104, 37, 92, 37, 81, 37, 80, 37, 109, 37, 110, 37, 112, 37, 111, 37, 147, 37, 0, 0, 0, 0, 0, 0, 0, 48, 1, 48, 2, 48, 183, 0, 37, 32, 38, 32, 168, 0, 3, 48, 173, 0, 21, 32, 37, 34, 60, 255, 60, 34, 24, 32, 25, 32, 28, 32, 29, 32, 20, 48, 21, 48, 8, 48, 9, 48, 10, 48, 11, 48, 12, 48, 13, 48, 14, 48, 15, 48, 16, 48, 17, 48, 177, 0, 215, 0, 247, 0, 96, 34, 100, 34, 101, 34, 30, 34, 52, 34, 176, 0, 50, 32, 51, 32, 3, 33, 43, 33, 224, 255, 225, 255, 229, 255, 66, 38, 64, 38, 32, 34, 165, 34, 18, 35, 2, 34, 7, 34, 97, 34, 82, 34, 167, 0, 59, 32, 6, 38, 5, 38, 203, 37, 207, 37, 206, 37, 199, 37, 198, 37, 161, 37, 160, 37, 179, 37, 178, 37, 189, 37, 188, 37, 146, 33, 144, 33, 145, 33, 147, 33, 148, 33, 19, 48, 106, 34, 107, 34, 26, 34, 61, 34, 29, 34, 53, 34, 43, 34, 44, 34, 8, 34, 11, 34, 134, 34, 135, 34, 130, 34, 131, 34, 42, 34, 41, 34, 39, 34, 40, 34, 226, 255, 210, 33, 212, 33, 0, 34, 3, 34, 180, 0, 94, 255, 199, 2, 216, 2, 221, 2, 218, 2, 217, 2, 184, 0, 219, 2, 161, 0, 191, 0, 208, 2, 46, 34, 17, 34, 15, 34, 164, 0, 9, 33, 48, 32, 193, 37, 192, 37, 183, 37, 182, 37, 100, 38, 96, 38, 97, 38, 101, 38, 103, 38, 99, 38, 153, 34, 200, 37, 163, 37, 208, 37, 209, 37, 146, 37, 164, 37, 165, 37, 168, 37, 167, 37, 166, 37, 169, 37, 104, 38, 15, 38, 14, 38, 28, 38, 30, 38, 182, 0, 32, 32, 33, 32, 149, 33, 151, 33, 153, 33, 150, 33, 152, 33, 109, 38, 105, 38, 106, 38, 108, 38, 127, 50, 28, 50, 22, 33, 199, 51, 34, 33, 194, 51, 216, 51, 33, 33, 172, 32, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 2, 255, 3, 255, 4, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255, 11, 255, 12, 255, 13, 255, 14, 255, 15, 255, 16, 255, 17, 255, 18, 255, 19, 255, 20, 255, 21, 255, 22, 255, 23, 255, 24, 255, 25, 255, 26, 255, 27, 255, 28, 255, 29, 255, 30, 255, 31, 255, 32, 255, 33, 255, 34, 255, 35, 255, 36, 255, 37, 255, 38, 255, 39, 255, 40, 255, 41, 255, 42, 255, 43, 255, 44, 255, 45, 255, 46, 255, 47, 255, 48, 255, 49, 255, 50, 255, 51, 255, 52, 255, 53, 255, 54, 255, 55, 255, 56, 255, 57, 255, 58, 255, 59, 255, 230, 255, 61, 255, 62, 255, 63, 255, 64, 255, 65, 255, 66, 255, 67, 255, 68, 255, 69, 255, 70, 255, 71, 255, 72, 255, 73, 255, 74, 255, 75, 255, 76, 255, 77, 255, 78, 255, 79, 255, 80, 255, 81, 255, 82, 255, 83, 255, 84, 255, 85, 255, 86, 255, 87, 255, 88, 255, 89, 255, 90, 255, 91, 255, 92, 255, 93, 255, 227, 255, 49, 49, 50, 49, 51, 49, 52, 49, 53, 49, 54, 49, 55, 49, 56, 49, 57, 49, 58, 49, 59, 49, 60, 49, 61, 49, 62, 49, 63, 49, 64, 49, 65, 49, 66, 49, 67, 49, 68, 49, 69, 49, 70, 49, 71, 49, 72, 49, 73, 49, 74, 49, 75, 49, 76, 49, 77, 49, 78, 49, 79, 49, 80, 49, 81, 49, 82, 49, 83, 49, 84, 49, 85, 49, 86, 49, 87, 49, 88, 49, 89, 49, 90, 49, 91, 49, 92, 49, 93, 49, 94, 49, 95, 49, 96, 49, 97, 49, 98, 49, 99, 49, 100, 49, 101, 49, 102, 49, 103, 49, 104, 49, 105, 49, 106, 49, 107, 49, 108, 49, 109, 49, 110, 49, 111, 49, 112, 49, 113, 49, 114, 49, 115, 49, 116, 49, 117, 49, 118, 49, 119, 49, 120, 49, 121, 49, 122, 49, 123, 49, 124, 49, 125, 49, 126, 49, 127, 49, 128, 49, 129, 49, 130, 49, 131, 49, 132, 49, 133, 49, 134, 49, 135, 49, 136, 49, 137, 49, 138, 49, 139, 49, 140, 49, 141, 49, 142, 49, 112, 33, 113, 33, 114, 33, 115, 33, 116, 33, 117, 33, 118, 33, 119, 33, 120, 33, 121, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 33, 97, 33, 98, 33, 99, 33, 100, 33, 101, 33, 102, 33, 103, 33, 104, 33, 105, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 2, 37, 12, 37, 16, 37, 24, 37, 20, 37, 28, 37, 44, 37, 36, 37, 52, 37, 60, 37, 1, 37, 3, 37, 15, 37, 19, 37, 27, 37, 23, 37, 35, 37, 51, 37, 43, 37, 59, 37, 75, 37, 32, 37, 47, 37, 40, 37, 55, 37, 63, 37, 29, 37, 48, 37, 37, 37, 56, 37, 66, 37, 18, 37, 17, 37, 26, 37, 25, 37, 22, 37, 21, 37, 14, 37, 13, 37, 30, 37, 31, 37, 33, 37, 34, 37, 38, 37, 39, 37, 41, 37, 42, 37, 45, 37, 46, 37, 49, 37, 50, 37, 53, 37, 54, 37, 57, 37, 58, 37, 61, 37, 62, 37, 64, 37, 65, 37, 67, 37, 68, 37, 69, 37, 70, 37, 71, 37, 72, 37, 73, 37, 74, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 51, 150, 51, 151, 51, 19, 33, 152, 51, 196, 51, 163, 51, 164, 51, 165, 51, 166, 51, 153, 51, 154, 51, 155, 51, 156, 51, 157, 51, 158, 51, 159, 51, 160, 51, 161, 51, 162, 51, 202, 51, 141, 51, 142, 51, 143, 51, 207, 51, 136, 51, 137, 51, 200, 51, 167, 51, 168, 51, 176, 51, 177, 51, 178, 51, 179, 51, 180, 51, 181, 51, 182, 51, 183, 51, 184, 51, 185, 51, 128, 51, 129, 51, 130, 51, 131, 51, 132, 51, 186, 51, 187, 51, 188, 51, 189, 51, 190, 51, 191, 51, 144, 51, 145, 51, 146, 51, 147, 51, 148, 51, 38, 33, 192, 51, 193, 51, 138, 51, 139, 51, 140, 51, 214, 51, 197, 51, 173, 51, 174, 51, 175, 51, 219, 51, 169, 51, 170, 51, 171, 51, 172, 51, 221, 51, 208, 51, 211, 51, 195, 51, 201, 51, 220, 51, 198, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 208, 0, 170, 0, 38, 1, 0, 0, 50, 1, 0, 0, 63, 1, 65, 1, 216, 0, 82, 1, 186, 0, 222, 0, 102, 1, 74, 1, 0, 0, 96, 50, 97, 50, 98, 50, 99, 50, 100, 50, 101, 50, 102, 50, 103, 50, 104, 50, 105, 50, 106, 50, 107, 50, 108, 50, 109, 50, 110, 50, 111, 50, 112, 50, 113, 50, 114, 50, 115, 50, 116, 50, 117, 50, 118, 50, 119, 50, 120, 50, 121, 50, 122, 50, 123, 50, 208, 36, 209, 36, 210, 36, 211, 36, 212, 36, 213, 36, 214, 36, 215, 36, 216, 36, 217, 36, 218, 36, 219, 36, 220, 36, 221, 36, 222, 36, 223, 36, 224, 36, 225, 36, 226, 36, 227, 36, 228, 36, 229, 36, 230, 36, 231, 36, 232, 36, 233, 36, 96, 36, 97, 36, 98, 36, 99, 36, 100, 36, 101, 36, 102, 36, 103, 36, 104, 36, 105, 36, 106, 36, 107, 36, 108, 36, 109, 36, 110, 36, 189, 0, 83, 33, 84, 33, 188, 0, 190, 0, 91, 33, 92, 33, 93, 33, 94, 33, 230, 0, 17, 1, 240, 0, 39, 1, 49, 1, 51, 1, 56, 1, 64, 1, 66, 1, 248, 0, 83, 1, 223, 0, 254, 0, 103, 1, 75, 1, 73, 1, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9, 50, 10, 50, 11, 50, 12, 50, 13, 50, 14, 50, 15, 50, 16, 50, 17, 50, 18, 50, 19, 50, 20, 50, 21, 50, 22, 50, 23, 50, 24, 50, 25, 50, 26, 50, 27, 50, 156, 36, 157, 36, 158, 36, 159, 36, 160, 36, 161, 36, 162, 36, 163, 36, 164, 36, 165, 36, 166, 36, 167, 36, 168, 36, 169, 36, 170, 36, 171, 36, 172, 36, 173, 36, 174, 36, 175, 36, 176, 36, 177, 36, 178, 36, 179, 36, 180, 36, 181, 36, 116, 36, 117, 36, 118, 36, 119, 36, 120, 36, 121, 36, 122, 36, 123, 36, 124, 36, 125, 36, 126, 36, 127, 36, 128, 36, 129, 36, 130, 36, 185, 0, 178, 0, 179, 0, 116, 32, 127, 32, 129, 32, 130, 32, 131, 32, 132, 32, 65, 48, 66, 48, 67, 48, 68, 48, 69, 48, 70, 48, 71, 48, 72, 48, 73, 48, 74, 48, 75, 48, 76, 48, 77, 48, 78, 48, 79, 48, 80, 48, 81, 48, 82, 48, 83, 48, 84, 48, 85, 48, 86, 48, 87, 48, 88, 48, 89, 48, 90, 48, 91, 48, 92, 48, 93, 48, 94, 48, 95, 48, 96, 48, 97, 48, 98, 48, 99, 48, 100, 48, 101, 48, 102, 48, 103, 48, 104, 48, 105, 48, 106, 48, 107, 48, 108, 48, 109, 48, 110, 48, 111, 48, 112, 48, 113, 48, 114, 48, 115, 48, 116, 48, 117, 48, 118, 48, 119, 48, 120, 48, 121, 48, 122, 48, 123, 48, 124, 48, 125, 48, 126, 48, 127, 48, 128, 48, 129, 48, 130, 48, 131, 48, 132, 48, 133, 48, 134, 48, 135, 48, 136, 48, 137, 48, 138, 48, 139, 48, 140, 48, 141, 48, 142, 48, 143, 48, 144, 48, 145, 48, 146, 48, 147, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 48, 162, 48, 163, 48, 164, 48, 165, 48, 166, 48, 167, 48, 168, 48, 169, 48, 170, 48, 171, 48, 172, 48, 173, 48, 174, 48, 175, 48, 176, 48, 177, 48, 178, 48, 179, 48, 180, 48, 181, 48, 182, 48, 183, 48, 184, 48, 185, 48, 186, 48, 187, 48, 188, 48, 189, 48, 190, 48, 191, 48, 192, 48, 193, 48, 194, 48, 195, 48, 196, 48, 197, 48, 198, 48, 199, 48, 200, 48, 201, 48, 202, 48, 203, 48, 204, 48, 205, 48, 206, 48, 207, 48, 208, 48, 209, 48, 210, 48, 211, 48, 212, 48, 213, 48, 214, 48, 215, 48, 216, 48, 217, 48, 218, 48, 219, 48, 220, 48, 221, 48, 222, 48, 223, 48, 224, 48, 225, 48, 226, 48, 227, 48, 228, 48, 229, 48, 230, 48, 231, 48, 232, 48, 233, 48, 234, 48, 235, 48, 236, 48, 237, 48, 238, 48, 239, 48, 240, 48, 241, 48, 242, 48, 243, 48, 244, 48, 245, 48, 246, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 1, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 81, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 1, 172, 4, 172, 7, 172, 8, 172, 9, 172, 10, 172, 16, 172, 17, 172, 18, 172, 19, 172, 20, 172, 21, 172, 22, 172, 23, 172, 25, 172, 26, 172, 27, 172, 28, 172, 29, 172, 32, 172, 36, 172, 44, 172, 45, 172, 47, 172, 48, 172, 49, 172, 56, 172, 57, 172, 60, 172, 64, 172, 75, 172, 77, 172, 84, 172, 88, 172, 92, 172, 112, 172, 113, 172, 116, 172, 119, 172, 120, 172, 122, 172, 128, 172, 129, 172, 131, 172, 132, 172, 133, 172, 134, 172, 137, 172, 138, 172, 139, 172, 140, 172, 144, 172, 148, 172, 156, 172, 157, 172, 159, 172, 160, 172, 161, 172, 168, 172, 169, 172, 170, 172, 172, 172, 175, 172, 176, 172, 184, 172, 185, 172, 187, 172, 188, 172, 189, 172, 193, 172, 196, 172, 200, 172, 204, 172, 213, 172, 215, 172, 224, 172, 225, 172, 228, 172, 231, 172, 232, 172, 234, 172, 236, 172, 239, 172, 240, 172, 241, 172, 243, 172, 245, 172, 246, 172, 252, 172, 253, 172, 0, 173, 4, 173, 6, 173, 12, 173, 13, 173, 15, 173, 17, 173, 24, 173, 28, 173, 32, 173, 41, 173, 44, 173, 45, 173, 52, 173, 53, 173, 56, 173, 60, 173, 68, 173, 69, 173, 71, 173, 73, 173, 80, 173, 84, 173, 88, 173, 97, 173, 99, 173, 108, 173, 109, 173, 112, 173, 115, 173, 116, 173, 117, 173, 118, 173, 123, 173, 124, 173, 125, 173, 127, 173, 129, 173, 130, 173, 136, 173, 137, 173, 140, 173, 144, 173, 156, 173, 157, 173, 164, 173, 183, 173, 192, 173, 193, 173, 196, 173, 200, 173, 208, 173, 209, 173, 211, 173, 220, 173, 224, 173, 228, 173, 248, 173, 249, 173, 252, 173, 255, 173, 0, 174, 1, 174, 8, 174, 9, 174, 11, 174, 13, 174, 20, 174, 48, 174, 49, 174, 52, 174, 55, 174, 56, 174, 58, 174, 64, 174, 65, 174, 67, 174, 69, 174, 70, 174, 74, 174, 76, 174, 77, 174, 78, 174, 80, 174, 84, 174, 86, 174, 92, 174, 93, 174, 95, 174, 96, 174, 97, 174, 101, 174, 104, 174, 105, 174, 108, 174, 112, 174, 120, 174, 121, 174, 123, 174, 124, 174, 125, 174, 132, 174, 133, 174, 140, 174, 188, 174, 189, 174, 190, 174, 192, 174, 196, 174, 204, 174, 205, 174, 207, 174, 208, 174, 209, 174, 216, 174, 217, 174, 220, 174, 232, 174, 235, 174, 237, 174, 244, 174, 248, 174, 252, 174, 7, 175, 8, 175 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 107292 ); /* memory initializer */ allocate( [ 13, 175, 16, 175, 44, 175, 45, 175, 48, 175, 50, 175, 52, 175, 60, 175, 61, 175, 63, 175, 65, 175, 66, 175, 67, 175, 72, 175, 73, 175, 80, 175, 92, 175, 93, 175, 100, 175, 101, 175, 121, 175, 128, 175, 132, 175, 136, 175, 144, 175, 145, 175, 149, 175, 156, 175, 184, 175, 185, 175, 188, 175, 192, 175, 199, 175, 200, 175, 201, 175, 203, 175, 205, 175, 206, 175, 212, 175, 220, 175, 232, 175, 233, 175, 240, 175, 241, 175, 244, 175, 248, 175, 0, 176, 1, 176, 4, 176, 12, 176, 16, 176, 20, 176, 28, 176, 29, 176, 40, 176, 68, 176, 69, 176, 72, 176, 74, 176, 76, 176, 78, 176, 83, 176, 84, 176, 85, 176, 87, 176, 89, 176, 93, 176, 124, 176, 125, 176, 128, 176, 132, 176, 140, 176, 141, 176, 143, 176, 145, 176, 152, 176, 153, 176, 154, 176, 156, 176, 159, 176, 160, 176, 161, 176, 162, 176, 168, 176, 169, 176, 171, 176, 172, 176, 173, 176, 174, 176, 175, 176, 177, 176, 179, 176, 180, 176, 181, 176, 184, 176, 188, 176, 196, 176, 197, 176, 199, 176, 200, 176, 201, 176, 208, 176, 209, 176, 212, 176, 216, 176, 224, 176, 229, 176, 8, 177, 9, 177, 11, 177, 12, 177, 16, 177, 18, 177, 19, 177, 24, 177, 25, 177, 27, 177, 28, 177, 29, 177, 35, 177, 36, 177, 37, 177, 40, 177, 44, 177, 52, 177, 53, 177, 55, 177, 56, 177, 57, 177, 64, 177, 65, 177, 68, 177, 72, 177, 80, 177, 81, 177, 84, 177, 85, 177, 88, 177, 92, 177, 96, 177, 120, 177, 121, 177, 124, 177, 128, 177, 130, 177, 136, 177, 137, 177, 139, 177, 141, 177, 146, 177, 147, 177, 148, 177, 152, 177, 156, 177, 168, 177, 204, 177, 208, 177, 212, 177, 220, 177, 221, 177, 223, 177, 232, 177, 233, 177, 236, 177, 240, 177, 249, 177, 251, 177, 253, 177, 4, 178, 5, 178, 8, 178, 11, 178, 12, 178, 20, 178, 21, 178, 23, 178, 25, 178, 32, 178, 52, 178, 60, 178, 88, 178, 92, 178, 96, 178, 104, 178, 105, 178, 116, 178, 117, 178, 124, 178, 132, 178, 133, 178, 137, 178, 144, 178, 145, 178, 148, 178, 152, 178, 153, 178, 154, 178, 160, 178, 161, 178, 163, 178, 165, 178, 166, 178, 170, 178, 172, 178, 176, 178, 180, 178, 200, 178, 201, 178, 204, 178, 208, 178, 210, 178, 216, 178, 217, 178, 219, 178, 221, 178, 226, 178, 228, 178, 229, 178, 230, 178, 232, 178, 235, 178, 236, 178, 237, 178, 238, 178, 239, 178, 243, 178, 244, 178, 245, 178, 247, 178, 248, 178, 249, 178, 250, 178, 251, 178, 255, 178, 0, 179, 1, 179, 4, 179, 8, 179, 16, 179, 17, 179, 19, 179, 20, 179, 21, 179, 28, 179, 84, 179, 85, 179, 86, 179, 88, 179, 91, 179, 92, 179, 94, 179, 95, 179, 100, 179, 101, 179, 103, 179, 105, 179, 107, 179, 110, 179, 112, 179, 113, 179, 116, 179, 120, 179, 128, 179, 129, 179, 131, 179, 132, 179, 133, 179, 140, 179, 144, 179, 148, 179, 160, 179, 161, 179, 168, 179, 172, 179, 196, 179, 197, 179, 200, 179, 203, 179, 204, 179, 206, 179, 208, 179, 212, 179, 213, 179, 215, 179, 217, 179, 219, 179, 221, 179, 224, 179, 228, 179, 232, 179, 252, 179, 16, 180, 24, 180, 28, 180, 32, 180, 40, 180, 41, 180, 43, 180, 52, 180, 80, 180, 81, 180, 84, 180, 88, 180, 96, 180, 97, 180, 99, 180, 101, 180, 108, 180, 128, 180, 136, 180, 157, 180, 164, 180, 168, 180, 172, 180, 181, 180, 183, 180, 185, 180, 192, 180, 196, 180, 200, 180, 208, 180, 213, 180, 220, 180, 221, 180, 224, 180, 227, 180, 228, 180, 230, 180, 236, 180, 237, 180, 239, 180, 241, 180, 248, 180, 20, 181, 21, 181, 24, 181, 27, 181, 28, 181, 36, 181, 37, 181, 39, 181, 40, 181, 41, 181, 42, 181, 48, 181, 49, 181, 52, 181, 56, 181, 64, 181, 65, 181, 67, 181, 68, 181, 69, 181, 75, 181, 76, 181, 77, 181, 80, 181, 84, 181, 92, 181, 93, 181, 95, 181, 96, 181, 97, 181, 160, 181, 161, 181, 164, 181, 168, 181, 170, 181, 171, 181, 176, 181, 177, 181, 179, 181, 180, 181, 181, 181, 187, 181, 188, 181, 189, 181, 192, 181, 196, 181, 204, 181, 205, 181, 207, 181, 208, 181, 209, 181, 216, 181, 236, 181, 16, 182, 17, 182, 20, 182, 24, 182, 37, 182, 44, 182, 52, 182, 72, 182, 100, 182, 104, 182, 156, 182, 157, 182, 160, 182, 164, 182, 171, 182, 172, 182, 177, 182, 212, 182, 240, 182, 244, 182, 248, 182, 0, 183, 1, 183, 5, 183, 40, 183, 41, 183, 44, 183, 47, 183, 48, 183, 56, 183, 57, 183, 59, 183, 68, 183, 72, 183, 76, 183, 84, 183, 85, 183, 96, 183, 100, 183, 104, 183, 112, 183, 113, 183, 115, 183, 117, 183, 124, 183, 125, 183, 128, 183, 132, 183, 140, 183, 141, 183, 143, 183, 144, 183, 145, 183, 146, 183, 150, 183, 151, 183, 152, 183, 153, 183, 156, 183, 160, 183, 168, 183, 169, 183, 171, 183, 172, 183, 173, 183, 180, 183, 181, 183, 184, 183, 199, 183, 201, 183, 236, 183, 237, 183, 240, 183, 244, 183, 252, 183, 253, 183, 255, 183, 0, 184, 1, 184, 7, 184, 8, 184, 9, 184, 12, 184, 16, 184, 24, 184, 25, 184, 27, 184, 29, 184, 36, 184, 37, 184, 40, 184, 44, 184, 52, 184, 53, 184, 55, 184, 56, 184, 57, 184, 64, 184, 68, 184, 81, 184, 83, 184, 92, 184, 93, 184, 96, 184, 100, 184, 108, 184, 109, 184, 111, 184, 113, 184, 120, 184, 124, 184, 141, 184, 168, 184, 176, 184, 180, 184, 184, 184, 192, 184, 193, 184, 195, 184, 197, 184, 204, 184, 208, 184, 212, 184, 221, 184, 223, 184, 225, 184, 232, 184, 233, 184, 236, 184, 240, 184, 248, 184, 249, 184, 251, 184, 253, 184, 4, 185, 24, 185, 32, 185, 60, 185, 61, 185, 64, 185, 68, 185, 76, 185, 79, 185, 81, 185, 88, 185, 89, 185, 92, 185, 96, 185, 104, 185, 105, 185, 107, 185, 109, 185, 116, 185, 117, 185, 120, 185, 124, 185, 132, 185, 133, 185, 135, 185, 137, 185, 138, 185, 141, 185, 142, 185, 172, 185, 173, 185, 176, 185, 180, 185, 188, 185, 189, 185, 191, 185, 193, 185, 200, 185, 201, 185, 204, 185, 206, 185, 207, 185, 208, 185, 209, 185, 210, 185, 216, 185, 217, 185, 219, 185, 221, 185, 222, 185, 225, 185, 227, 185, 228, 185, 229, 185, 232, 185, 236, 185, 244, 185, 245, 185, 247, 185, 248, 185, 249, 185, 250, 185, 0, 186, 1, 186, 8, 186, 21, 186, 56, 186, 57, 186, 60, 186, 64, 186, 66, 186, 72, 186, 73, 186, 75, 186, 77, 186, 78, 186, 83, 186, 84, 186, 85, 186, 88, 186, 92, 186, 100, 186, 101, 186, 103, 186, 104, 186, 105, 186, 112, 186, 113, 186, 116, 186, 120, 186, 131, 186, 132, 186, 133, 186, 135, 186, 140, 186, 168, 186, 169, 186, 171, 186, 172, 186, 176, 186, 178, 186, 184, 186, 185, 186, 187, 186, 189, 186, 196, 186, 200, 186, 216, 186, 217, 186, 252, 186, 0, 187, 4, 187, 13, 187, 15, 187, 17, 187, 24, 187, 28, 187, 32, 187, 41, 187, 43, 187, 52, 187, 53, 187, 54, 187, 56, 187, 59, 187, 60, 187, 61, 187, 62, 187, 68, 187, 69, 187, 71, 187, 73, 187, 77, 187, 79, 187, 80, 187, 84, 187, 88, 187, 97, 187, 99, 187, 108, 187, 136, 187, 140, 187, 144, 187, 164, 187, 168, 187, 172, 187, 180, 187, 183, 187, 192, 187, 196, 187, 200, 187, 208, 187, 211, 187, 248, 187, 249, 187, 252, 187, 255, 187, 0, 188, 2, 188, 8, 188, 9, 188, 11, 188, 12, 188, 13, 188, 15, 188, 17, 188, 20, 188, 21, 188, 22, 188, 23, 188, 24, 188, 27, 188, 28, 188, 29, 188, 30, 188, 31, 188, 36, 188, 37, 188, 39, 188, 41, 188, 45, 188, 48, 188, 49, 188, 52, 188, 56, 188, 64, 188, 65, 188, 67, 188, 68, 188, 69, 188, 73, 188, 76, 188, 77, 188, 80, 188, 93, 188, 132, 188, 133, 188, 136, 188, 139, 188, 140, 188, 142, 188, 148, 188, 149, 188, 151, 188, 153, 188, 154, 188, 160, 188, 161, 188, 164, 188, 167, 188, 168, 188, 176, 188, 177, 188, 179, 188, 180, 188, 181, 188, 188, 188, 189, 188, 192, 188, 196, 188, 205, 188, 207, 188, 208, 188, 209, 188, 213, 188, 216, 188, 220, 188, 244, 188, 245, 188, 246, 188, 248, 188, 252, 188, 4, 189, 5, 189, 7, 189, 9, 189, 16, 189, 20, 189, 36, 189, 44, 189, 64, 189, 72, 189, 73, 189, 76, 189, 80, 189, 88, 189, 89, 189, 100, 189, 104, 189, 128, 189, 129, 189, 132, 189, 135, 189, 136, 189, 137, 189, 138, 189, 144, 189, 145, 189, 147, 189, 149, 189, 153, 189, 154, 189, 156, 189, 164, 189, 176, 189, 184, 189, 212, 189, 213, 189, 216, 189, 220, 189, 233, 189, 240, 189, 244, 189, 248, 189, 0, 190, 3, 190, 5, 190, 12, 190, 13, 190, 16, 190, 20, 190, 28, 190, 29, 190, 31, 190, 68, 190, 69, 190, 72, 190, 76, 190, 78, 190, 84, 190, 85, 190, 87, 190, 89, 190, 90, 190, 91, 190, 96, 190, 97, 190, 100, 190, 104, 190, 106, 190, 112, 190, 113, 190, 115, 190, 116, 190, 117, 190, 123, 190, 124, 190, 125, 190, 128, 190, 132, 190, 140, 190, 141, 190, 143, 190, 144, 190, 145, 190, 152, 190, 153, 190, 168, 190, 208, 190, 209, 190, 212, 190, 215, 190, 216, 190, 224, 190, 227, 190, 228, 190, 229, 190, 236, 190, 1, 191, 8, 191, 9, 191, 24, 191, 25, 191, 27, 191, 28, 191, 29, 191, 64, 191, 65, 191, 68, 191, 72, 191, 80, 191, 81, 191, 85, 191, 148, 191, 176, 191, 197, 191, 204, 191, 205, 191, 208, 191, 212, 191, 220, 191, 223, 191, 225, 191, 60, 192, 81, 192, 88, 192, 92, 192, 96, 192, 104, 192, 105, 192, 144, 192, 145, 192, 148, 192, 152, 192, 160, 192, 161, 192, 163, 192, 165, 192, 172, 192, 173, 192, 175, 192, 176, 192, 179, 192, 180, 192, 181, 192, 182, 192, 188, 192, 189, 192, 191, 192, 192, 192, 193, 192, 197, 192, 200, 192, 201, 192, 204, 192, 208, 192, 216, 192, 217, 192, 219, 192, 220, 192, 221, 192, 228, 192, 229, 192, 232, 192, 236, 192, 244, 192, 245, 192, 247, 192, 249, 192, 0, 193, 4, 193, 8, 193, 16, 193, 21, 193, 28, 193, 29, 193, 30, 193, 31, 193, 32, 193, 35, 193, 36, 193, 38, 193, 39, 193, 44, 193, 45, 193, 47, 193, 48, 193, 49, 193, 54, 193, 56, 193, 57, 193, 60, 193, 64, 193, 72, 193, 73, 193, 75, 193, 76, 193, 77, 193, 84, 193, 85, 193, 88, 193, 92, 193, 100, 193, 101, 193, 103, 193, 104, 193, 105, 193, 112, 193, 116, 193, 120, 193, 133, 193, 140, 193, 141, 193, 142, 193, 144, 193, 148, 193, 150, 193, 156, 193, 157, 193, 159, 193, 161, 193, 165, 193, 168, 193, 169, 193, 172, 193, 176, 193, 189, 193, 196, 193, 200, 193, 204, 193, 212, 193, 215, 193, 216, 193, 224, 193, 228, 193, 232, 193, 240, 193, 241, 193, 243, 193, 252, 193, 253, 193, 0, 194, 4, 194, 12, 194, 13, 194, 15, 194, 17, 194, 24, 194, 25, 194, 28, 194, 31, 194, 32, 194, 40, 194, 41, 194, 43, 194, 45, 194, 47, 194, 49, 194, 50, 194, 52, 194, 72, 194, 80, 194, 81, 194, 84, 194, 88, 194, 96, 194, 101, 194, 108, 194, 109, 194, 112, 194, 116, 194, 124, 194, 125, 194, 127, 194, 129, 194, 136, 194, 137, 194, 144, 194, 152, 194, 155, 194, 157, 194, 164, 194, 165, 194, 168, 194, 172, 194, 173, 194, 180, 194, 181, 194, 183, 194, 185, 194, 220, 194, 221, 194, 224, 194, 227, 194, 228, 194, 235, 194, 236, 194, 237, 194, 239, 194, 241, 194, 246, 194, 248, 194, 249, 194, 251, 194, 252, 194, 0, 195, 8, 195, 9, 195, 12, 195, 13, 195, 19, 195, 20, 195, 21, 195, 24, 195, 28, 195, 36, 195, 37, 195, 40, 195, 41, 195, 69, 195, 104, 195, 105, 195, 108, 195, 112, 195, 114, 195, 120, 195, 121, 195, 124, 195, 125, 195, 132, 195, 136, 195, 140, 195, 192, 195, 216, 195, 217, 195, 220, 195, 223, 195, 224, 195, 226, 195, 232, 195, 233, 195, 237, 195, 244, 195, 245, 195, 248, 195, 8, 196, 16, 196, 36, 196, 44, 196, 48, 196, 52, 196, 60, 196, 61, 196, 72, 196, 100, 196, 101, 196, 104, 196, 108, 196, 116, 196, 117, 196, 121, 196, 128, 196, 148, 196, 156, 196, 184, 196, 188, 196, 233, 196, 240, 196, 241, 196, 244, 196, 248, 196, 250, 196, 255, 196, 0, 197, 1, 197, 12, 197, 16, 197, 20, 197, 28, 197, 40, 197, 41, 197, 44, 197, 48, 197, 56, 197, 57, 197, 59, 197, 61, 197, 68, 197, 69, 197, 72, 197, 73, 197, 74, 197, 76, 197, 77, 197, 78, 197, 83, 197, 84, 197, 85, 197, 87, 197, 88, 197, 89, 197, 93, 197, 94, 197, 96, 197, 97, 197, 100, 197, 104, 197, 112, 197, 113, 197, 115, 197, 116, 197, 117, 197, 124, 197, 125, 197, 128, 197, 132, 197, 135, 197, 140, 197, 141, 197, 143, 197, 145, 197, 149, 197, 151, 197, 152, 197, 156, 197, 160, 197, 169, 197, 180, 197, 181, 197, 184, 197, 185, 197, 187, 197, 188, 197, 189, 197, 190, 197, 196, 197, 197, 197, 198, 197, 199, 197, 200, 197, 201, 197, 202, 197, 204, 197, 206, 197, 208, 197, 209, 197, 212, 197, 216, 197, 224, 197, 225, 197, 227, 197, 229, 197, 236, 197, 237, 197, 238, 197, 240, 197, 244, 197, 246, 197, 247, 197, 252, 197, 253, 197, 254, 197, 255, 197, 0, 198, 1, 198, 5, 198, 6, 198, 7, 198, 8, 198, 12, 198, 16, 198, 24, 198, 25, 198, 27, 198, 28, 198, 36, 198, 37, 198, 40, 198, 44, 198, 45, 198, 46, 198, 48, 198, 51, 198, 52, 198, 53, 198, 55, 198, 57, 198, 59, 198, 64, 198, 65, 198, 68, 198, 72, 198, 80, 198, 81, 198, 83, 198, 84, 198, 85, 198, 92, 198, 93, 198, 96, 198, 108, 198, 111, 198, 113, 198, 120, 198, 121, 198, 124, 198, 128, 198, 136, 198, 137, 198, 139, 198, 141, 198, 148, 198, 149, 198, 152, 198, 156, 198, 164, 198, 165, 198, 167, 198, 169, 198, 176, 198, 177, 198, 180, 198, 184, 198, 185, 198, 186, 198, 192, 198, 193, 198, 195, 198, 197, 198, 204, 198, 205, 198, 208, 198, 212, 198, 220, 198, 221, 198, 224, 198, 225, 198, 232, 198, 233, 198, 236, 198, 240, 198, 248, 198, 249, 198, 253, 198, 4, 199, 5, 199, 8, 199, 12, 199, 20, 199, 21, 199, 23, 199, 25, 199, 32, 199, 33, 199, 36, 199, 40, 199, 48, 199, 49, 199, 51, 199, 53, 199, 55, 199, 60, 199, 61, 199, 64, 199, 68, 199, 74, 199, 76, 199, 77, 199, 79, 199, 81, 199, 82, 199, 83, 199, 84, 199, 85, 199, 86, 199, 87, 199, 88, 199, 92, 199, 96, 199, 104, 199, 107, 199, 116, 199, 117, 199, 120, 199, 124, 199, 125, 199, 126, 199, 131, 199, 132, 199, 133, 199, 135, 199, 136, 199, 137, 199, 138, 199, 142, 199, 144, 199, 145, 199, 148, 199, 150, 199, 151, 199, 152, 199, 154, 199, 160, 199, 161, 199, 163, 199, 164, 199, 165, 199, 166, 199, 172, 199, 173, 199, 176, 199, 180, 199, 188, 199, 189, 199, 191, 199, 192, 199, 193, 199, 200, 199, 201, 199, 204, 199, 206, 199, 208, 199, 216, 199, 221, 199, 228, 199, 232, 199, 236, 199, 0, 200, 1, 200, 4, 200, 8, 200, 10, 200, 16, 200, 17, 200, 19, 200, 21, 200, 22, 200, 28, 200, 29, 200, 32, 200, 36, 200, 44, 200, 45, 200, 47, 200, 49, 200, 56, 200, 60, 200, 64, 200, 72, 200, 73, 200, 76, 200, 77, 200, 84, 200, 112, 200, 113, 200, 116, 200, 120, 200, 122, 200, 128, 200, 129, 200, 131, 200, 133, 200, 134, 200, 135, 200, 139, 200, 140, 200, 141, 200, 148, 200, 157, 200, 159, 200, 161, 200, 168, 200, 188, 200, 189, 200, 196, 200, 200, 200, 204, 200, 212, 200, 213, 200, 215, 200, 217, 200, 224, 200, 225, 200, 228, 200, 245, 200, 252, 200, 253, 200, 0, 201, 4, 201, 5, 201, 6, 201, 12, 201, 13, 201, 15, 201, 17, 201, 24, 201, 44, 201, 52, 201, 80, 201, 81, 201, 84, 201, 88, 201, 96, 201, 97, 201, 99, 201, 108, 201, 112, 201, 116, 201, 124, 201, 136, 201, 137, 201, 140, 201, 144, 201, 152, 201, 153, 201, 155, 201, 157, 201, 192, 201, 193, 201, 196, 201, 199, 201, 200, 201, 202, 201, 208, 201, 209, 201, 211, 201, 213, 201, 214, 201, 217, 201, 218, 201, 220, 201, 221, 201, 224, 201, 226, 201, 228, 201, 231, 201, 236, 201, 237, 201, 239, 201, 240, 201, 241, 201, 248, 201, 249, 201, 252, 201, 0, 202, 8, 202, 9, 202, 11, 202, 12, 202, 13, 202, 20, 202, 24, 202, 41, 202, 76, 202, 77, 202, 80, 202, 84, 202, 92, 202, 93, 202, 95, 202, 96, 202, 97, 202, 104, 202, 125, 202, 132, 202, 152, 202, 188, 202, 189, 202, 192, 202, 196, 202, 204, 202, 205, 202, 207, 202, 209, 202, 211, 202, 216, 202, 217, 202, 224, 202, 236, 202, 244, 202, 8, 203, 16, 203, 20, 203, 24, 203, 32, 203, 33, 203, 65, 203, 72, 203, 73, 203, 76, 203, 80, 203, 88, 203, 89, 203, 93, 203, 100, 203, 120, 203, 121, 203, 156, 203, 184, 203, 212, 203, 228, 203, 231, 203, 233, 203, 12, 204, 13, 204, 16, 204, 20, 204, 28, 204, 29, 204, 33, 204, 34, 204, 39, 204, 40, 204, 41, 204, 44, 204, 46, 204, 48, 204, 56, 204, 57, 204, 59, 204, 60, 204, 61, 204, 62, 204, 68, 204, 69, 204, 72, 204, 76, 204, 84, 204, 85, 204, 87, 204, 88, 204, 89, 204, 96, 204, 100, 204, 102, 204, 104, 204, 112, 204, 117, 204, 152, 204, 153, 204, 156, 204, 160, 204, 168, 204, 169, 204, 171, 204, 172, 204, 173, 204, 180, 204, 181, 204, 184, 204, 188, 204, 196, 204, 197, 204, 199, 204, 201, 204, 208, 204, 212, 204, 228, 204, 236, 204, 240, 204, 1, 205, 8, 205, 9, 205, 12, 205, 16, 205, 24, 205, 25, 205, 27, 205, 29, 205, 36, 205, 40, 205, 44, 205, 57, 205, 92, 205, 96, 205, 100, 205, 108, 205, 109, 205, 111, 205, 113, 205, 120, 205, 136, 205, 148, 205, 149, 205, 152, 205, 156, 205, 164, 205, 165, 205, 167, 205, 169, 205, 176, 205, 196, 205, 204, 205, 208, 205, 232, 205, 236, 205, 240, 205, 248, 205, 249, 205, 251, 205, 253, 205, 4, 206, 8, 206, 12, 206, 20, 206, 25, 206, 32, 206, 33, 206, 36, 206, 40, 206, 48, 206, 49, 206, 51, 206, 53, 206, 88, 206, 89, 206, 92, 206, 95, 206, 96, 206, 97, 206, 104, 206, 105, 206, 107, 206, 109, 206, 116, 206, 117, 206, 120, 206, 124, 206, 132, 206, 133, 206, 135, 206, 137, 206, 144, 206, 145, 206, 148, 206, 152, 206, 160, 206, 161, 206, 163, 206, 164, 206, 165, 206, 172, 206, 173, 206, 193, 206, 228, 206, 229, 206, 232, 206, 235, 206, 236, 206, 244, 206, 245, 206, 247, 206, 248, 206, 249, 206, 0, 207, 1, 207, 4, 207, 8, 207, 16, 207, 17, 207, 19, 207, 21, 207, 28, 207, 32, 207, 36, 207, 44, 207, 45, 207, 47, 207, 48, 207, 49, 207, 56, 207, 84, 207, 85, 207, 88, 207, 92, 207, 100, 207, 101, 207, 103, 207, 105, 207, 112, 207, 113, 207, 116, 207, 120, 207, 128, 207, 133, 207, 140, 207, 161, 207, 168, 207, 176, 207, 196, 207, 224, 207, 225, 207, 228, 207, 232, 207, 240, 207, 241, 207, 243, 207, 245, 207, 252, 207, 0, 208, 4, 208, 17, 208, 24, 208, 45, 208, 52, 208, 53, 208, 56, 208, 60, 208, 68, 208, 69, 208, 71, 208, 73, 208, 80, 208, 84, 208, 88, 208, 96, 208, 108, 208, 109, 208, 112, 208, 116, 208, 124, 208, 125, 208, 129, 208, 164, 208, 165, 208, 168, 208, 172, 208, 180, 208, 181, 208, 183, 208, 185, 208, 192, 208, 193, 208, 196, 208, 200, 208, 201, 208, 208, 208, 209, 208, 211, 208, 212, 208, 213, 208, 220, 208, 221, 208, 224, 208, 228, 208, 236, 208, 237, 208, 239, 208, 240, 208, 241, 208, 248, 208, 13, 209, 48, 209, 49, 209, 52, 209, 56, 209, 58, 209, 64, 209, 65, 209, 67, 209, 68, 209, 69, 209, 76, 209, 77, 209, 80, 209, 84, 209, 92, 209, 93, 209, 95, 209, 97, 209, 104, 209, 108, 209, 124, 209, 132, 209, 136, 209, 160, 209, 161, 209, 164, 209, 168, 209, 176, 209, 177, 209, 179, 209, 181, 209, 186, 209, 188, 209, 192, 209, 216, 209, 244, 209, 248, 209, 7, 210, 9, 210, 16, 210, 44, 210, 45, 210, 48, 210, 52, 210, 60, 210, 61, 210, 63, 210, 65, 210, 72, 210, 92, 210, 100, 210, 128, 210, 129, 210, 132, 210, 136, 210, 144, 210, 145, 210, 149, 210, 156, 210, 160, 210, 164, 210, 172, 210, 177, 210, 184, 210, 185, 210, 188, 210, 191, 210, 192, 210, 194, 210, 200, 210, 201, 210, 203, 210, 212, 210, 216, 210, 220, 210, 228, 210, 229, 210, 240, 210, 241, 210, 244, 210, 248, 210, 0, 211, 1, 211, 3, 211, 5, 211, 12, 211, 13, 211, 14, 211, 16, 211, 20, 211, 22, 211, 28, 211, 29, 211, 31, 211, 32, 211, 33, 211, 37, 211, 40, 211, 41, 211, 44, 211, 48, 211, 56, 211, 57, 211, 59, 211, 60, 211, 61, 211, 68, 211, 69, 211, 124, 211, 125, 211, 128, 211, 132, 211, 140, 211, 141, 211, 143, 211, 144, 211, 145, 211, 152, 211, 153, 211, 156, 211, 160, 211, 168, 211, 169, 211, 171, 211, 173, 211, 180, 211, 184, 211, 188, 211, 196, 211, 197, 211, 200, 211, 201, 211, 208, 211, 216, 211, 225, 211, 227, 211, 236, 211, 237, 211, 240, 211, 244, 211, 252, 211, 253, 211, 255, 211, 1, 212, 8, 212, 29, 212, 64, 212, 68, 212, 92, 212, 96, 212, 100, 212, 109, 212, 111, 212, 120, 212, 121, 212, 124, 212, 127, 212, 128, 212, 130, 212, 136, 212, 137, 212, 139, 212, 141, 212, 148, 212, 169, 212, 204, 212, 208, 212, 212, 212, 220, 212, 223, 212, 232, 212, 236, 212, 240, 212, 248, 212, 251, 212, 253, 212, 4, 213, 8, 213, 12, 213, 20, 213, 21, 213, 23, 213, 60, 213, 61, 213, 64, 213, 68, 213, 76, 213, 77, 213, 79, 213, 81, 213, 88, 213, 89, 213, 92, 213, 96, 213, 101, 213, 104, 213, 105, 213, 107, 213, 109, 213, 116, 213, 117, 213, 120, 213, 124, 213, 132, 213, 133, 213, 135, 213, 136, 213, 137, 213, 144, 213, 165, 213, 200, 213, 201, 213, 204, 213, 208, 213, 210, 213, 216, 213, 217, 213, 219, 213, 221, 213, 228, 213, 229, 213, 232, 213, 236, 213, 244, 213, 245, 213, 247, 213, 249, 213, 0, 214, 1, 214, 4, 214, 8, 214, 16, 214, 17, 214, 19, 214, 20, 214, 21, 214, 28, 214, 32, 214, 36, 214, 45, 214, 56, 214, 57, 214, 60, 214, 64, 214, 69, 214, 72, 214, 73, 214, 75, 214, 77, 214, 81, 214, 84, 214, 85, 214, 88, 214, 92, 214, 103, 214, 105, 214, 112, 214, 113, 214, 116, 214, 131, 214, 133, 214, 140, 214, 141, 214, 144, 214, 148, 214, 157, 214, 159, 214, 161, 214, 168, 214, 172, 214, 176, 214, 185, 214, 187, 214, 196, 214, 197, 214, 200, 214, 204, 214, 209, 214, 212, 214, 215, 214, 217, 214, 224, 214, 228, 214, 232, 214, 240, 214, 245, 214, 252, 214, 253, 214, 0, 215, 4, 215, 17, 215, 24, 215, 25, 215, 28, 215, 32, 215, 40, 215, 41, 215, 43, 215, 45, 215, 52, 215, 53, 215, 56, 215, 60, 215, 68, 215, 71, 215, 73, 215, 80, 215, 81, 215, 84, 215, 86, 215, 87, 215, 88, 215, 89, 215, 96, 215, 97, 215, 99, 215, 101, 215, 105, 215, 108, 215, 112, 215, 116, 215, 124, 215, 125, 215, 129, 215, 136, 215, 137, 215, 140, 215, 144, 215, 152, 215, 153, 215, 155, 215, 157, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 79, 115, 79, 71, 80, 249, 80, 160, 82, 239, 83, 117, 84, 229, 84, 9, 86, 193, 90, 182, 91, 135, 102, 182, 103, 183, 103, 239, 103, 76, 107, 194, 115, 194, 117, 60, 122, 219, 130, 4, 131, 87, 136, 136, 136, 54, 138, 200, 140, 207, 141, 251, 142, 230, 143, 213, 153, 59, 82, 116, 83, 4, 84, 106, 96, 100, 97, 188, 107, 207, 115, 26, 129, 186, 137, 210, 137, 163, 149, 131, 79, 10, 82, 190, 88, 120, 89, 230, 89, 114, 94, 121, 94, 199, 97, 192, 99, 70, 103, 236, 103, 127, 104, 151, 111, 78, 118, 11, 119, 245, 120, 8, 122, 255, 122, 33, 124, 157, 128, 110, 130, 113, 130, 235, 138, 147, 149, 107, 78, 157, 85, 247, 102, 52, 110, 163, 120, 237, 122, 91, 132, 16, 137, 78, 135, 168, 151, 216, 82, 78, 87, 42, 88, 76, 93, 31, 97, 190, 97, 33, 98, 98, 101, 209, 103, 68, 106, 27, 110, 24, 117, 179, 117, 227, 118, 176, 119, 58, 125, 175, 144, 81, 148, 82, 148, 149, 159, 35, 83, 172, 92, 50, 117, 219, 128, 64, 146, 152, 149, 91, 82, 8, 88, 220, 89, 161, 92, 23, 93, 183, 94, 58, 95, 74, 95, 119, 97, 95, 108, 122, 117, 134, 117, 224, 124, 115, 125, 177, 125, 140, 127, 84, 129, 33, 130, 145, 133, 65, 137, 27, 139, 252, 146, 77, 150, 71, 156, 203, 78, 247, 78, 11, 80, 241, 81, 79, 88, 55, 97, 62, 97, 104, 97, 57, 101, 234, 105, 17, 111, 165, 117, 134, 118, 214, 118, 135, 123, 165, 130, 203, 132, 0, 249, 167, 147, 139, 149, 128, 85, 162, 91, 81, 87, 1, 249, 179, 124, 185, 127, 181, 145, 40, 80, 187, 83, 69, 92, 232, 93, 210, 98, 110, 99, 218, 100, 231, 100, 32, 110, 172, 112, 91, 121, 221, 141, 30, 142, 2, 249, 125, 144, 69, 146, 248, 146, 126, 78, 246, 78, 101, 80, 254, 93, 250, 94, 6, 97, 87, 105, 113, 129, 84, 134, 71, 142, 117, 147, 43, 154, 94, 78, 145, 80, 112, 103, 64, 104, 9, 81, 141, 82, 146, 82, 162, 106, 188, 119, 16, 146, 212, 158, 171, 82, 47, 96, 242, 143, 72, 80, 169, 97, 237, 99, 202, 100, 60, 104, 132, 106, 192, 111, 136, 129, 161, 137, 148, 150, 5, 88, 125, 114, 172, 114, 4, 117, 121, 125, 109, 126, 169, 128, 139, 137, 116, 139, 99, 144, 81, 157, 137, 98, 122, 108, 84, 111, 80, 125, 58, 127, 35, 138, 124, 81, 74, 97, 157, 123, 25, 139, 87, 146, 140, 147, 172, 78, 211, 79, 30, 80, 190, 80, 6, 81, 193, 82, 205, 82, 127, 83, 112, 87, 131, 88, 154, 94, 145, 95, 118, 97, 172, 97, 206, 100, 108, 101, 111, 102, 187, 102, 244, 102, 151, 104, 135, 109, 133, 112, 241, 112, 159, 116, 165, 116, 202, 116, 217, 117, 108, 120, 236, 120, 223, 122, 246, 122, 69, 125, 147, 125, 21, 128, 63, 128, 27, 129, 150, 131, 102, 139, 21, 143, 21, 144, 225, 147, 3, 152, 56, 152, 90, 154, 232, 155, 194, 79, 83, 85, 58, 88, 81, 89, 99, 91, 70, 92, 184, 96, 18, 98, 66, 104, 176, 104, 232, 104, 170, 110, 76, 117, 120, 118, 206, 120, 61, 122, 251, 124, 107, 126, 124, 126, 8, 138, 161, 138, 63, 140, 142, 150, 196, 157, 228, 83, 233, 83, 74, 84, 113, 84, 250, 86, 209, 89, 100, 91, 59, 92, 171, 94, 247, 98, 55, 101, 69, 101, 114, 101, 160, 102, 175, 103, 193, 105, 189, 108, 252, 117, 144, 118, 126, 119, 63, 122, 148, 127, 3, 128, 161, 128, 143, 129, 230, 130, 253, 130, 240, 131, 193, 133, 49, 136, 180, 136, 165, 138, 3, 249, 156, 143, 46, 147, 199, 150, 103, 152, 216, 154, 19, 159, 237, 84, 155, 101, 242, 102, 143, 104, 64, 122, 55, 140, 96, 157, 240, 86, 100, 87, 17, 93, 6, 102, 177, 104, 205, 104, 254, 110, 40, 116, 158, 136, 228, 155, 104, 108, 4, 249, 168, 154, 155, 79, 108, 81, 113, 81, 159, 82, 84, 91, 229, 93, 80, 96, 109, 96, 241, 98, 167, 99, 59, 101, 217, 115, 122, 122, 163, 134, 162, 140, 143, 151, 50, 78, 225, 91, 8, 98, 156, 103, 220, 116, 209, 121, 211, 131, 135, 138, 178, 138, 232, 141, 78, 144, 75, 147, 70, 152, 211, 94, 232, 105, 255, 133, 237, 144, 5, 249, 160, 81, 152, 91, 236, 91, 99, 97, 250, 104, 62, 107, 76, 112, 47, 116, 216, 116, 161, 123, 80, 127, 197, 131, 192, 137, 171, 140, 220, 149, 40, 153, 46, 82, 93, 96, 236, 98, 2, 144, 138, 79, 73, 81, 33, 83, 217, 88, 227, 94, 224, 102, 56, 109, 154, 112, 194, 114, 214, 115, 80, 123, 241, 128, 91, 148, 102, 83, 155, 99, 107, 127, 86, 78, 128, 80, 74, 88, 222, 88, 42, 96, 39, 97, 208, 98, 208, 105, 65, 155, 143, 91, 24, 125, 177, 128, 95, 143, 164, 78, 209, 80, 172, 84, 172, 85, 12, 91, 160, 93, 231, 93, 42, 101, 78, 101, 33, 104, 75, 106, 225, 114, 142, 118, 239, 119, 94, 125, 249, 127, 160, 129, 78, 133, 223, 134, 3, 143, 78, 143, 202, 144, 3, 153, 85, 154, 171, 155, 24, 78, 69, 78, 93, 78, 199, 78, 241, 79, 119, 81, 254, 82, 64, 83, 227, 83, 229, 83, 142, 84, 20, 86, 117, 87, 162, 87, 199, 91, 135, 93, 208, 94, 252, 97, 216, 98, 81, 101, 184, 103, 233, 103, 203, 105, 80, 107, 198, 107, 236, 107, 66, 108, 157, 110, 120, 112, 215, 114, 150, 115, 3, 116, 191, 119, 233, 119, 118, 122, 127, 125, 9, 128, 252, 129, 5, 130, 10, 130, 223, 130, 98, 136, 51, 139, 252, 140, 192, 142, 17, 144, 177, 144, 100, 146, 182, 146, 210, 153, 69, 154, 233, 156, 215, 157, 156, 159, 11, 87, 64, 92, 202, 131, 160, 151, 171, 151, 180, 158, 27, 84, 152, 122, 164, 127, 217, 136, 205, 142, 225, 144, 0, 88, 72, 92, 152, 99, 159, 122, 174, 91, 19, 95, 121, 122, 174, 122, 142, 130, 172, 142, 38, 80, 56, 82, 248, 82, 119, 83, 8, 87, 243, 98, 114, 99, 10, 107, 195, 109, 55, 119, 165, 83, 87, 115, 104, 133, 118, 142, 213, 149, 58, 103, 195, 106, 112, 111, 109, 138, 204, 142, 75, 153, 6, 249, 119, 102, 120, 107, 180, 140, 60, 155, 7, 249, 235, 83, 45, 87, 78, 89, 198, 99, 251, 105, 234, 115, 69, 120, 186, 122, 197, 122, 254, 124, 117, 132, 143, 137, 115, 141, 53, 144, 168, 149, 251, 82, 71, 87, 71, 117, 96, 123, 204, 131, 30, 146, 8, 249, 88, 106, 75, 81, 75, 82, 135, 82, 31, 98, 216, 104, 117, 105, 153, 150, 197, 80, 164, 82, 228, 82, 195, 97, 164, 101, 57, 104, 255, 105, 126, 116, 75, 123, 185, 130, 235, 131, 178, 137, 57, 139, 209, 143, 73, 153, 9, 249, 202, 78, 151, 89, 210, 100, 17, 102, 142, 106, 52, 116, 129, 121, 189, 121, 169, 130, 126, 136, 127, 136, 95, 137, 10, 249, 38, 147, 11, 79, 202, 83, 37, 96, 113, 98, 114, 108, 26, 125, 102, 125, 152, 78, 98, 81, 220, 119, 175, 128, 1, 79, 14, 79, 118, 81, 128, 81, 220, 85, 104, 86, 59, 87, 250, 87, 252, 87, 20, 89, 71, 89, 147, 89, 196, 91, 144, 92, 14, 93, 241, 93, 126, 94, 204, 95, 128, 98, 215, 101, 227, 101, 30, 103, 31, 103, 94, 103, 203, 104, 196, 104, 95, 106, 58, 107, 35, 108, 125, 108, 130, 108, 199, 109, 152, 115, 38, 116, 42, 116, 130, 116, 163, 116, 120, 117, 127, 117, 129, 120, 239, 120, 65, 121, 71, 121, 72, 121, 122, 121, 149, 123, 0, 125, 186, 125, 136, 127, 6, 128, 45, 128, 140, 128, 24, 138, 79, 139, 72, 140, 119, 141, 33, 147, 36, 147, 226, 152, 81, 153, 14, 154, 15, 154, 101, 154, 146, 158, 202, 125, 118, 79, 9, 84, 238, 98, 84, 104, 209, 145, 171, 85, 58, 81, 11, 249, 12, 249, 28, 90, 230, 97, 13, 249, 207, 98, 255, 98, 14, 249, 15, 249, 16, 249, 17, 249, 18, 249, 19, 249, 163, 144, 20, 249, 21, 249, 22, 249, 23, 249, 24, 249, 254, 138, 25, 249, 26, 249, 27, 249, 28, 249, 150, 102, 29, 249, 86, 113, 30, 249, 31, 249, 227, 150, 32, 249, 79, 99, 122, 99, 87, 83, 33, 249, 143, 103, 96, 105, 115, 110, 34, 249, 55, 117, 35, 249, 36, 249, 37, 249, 13, 125, 38, 249, 39, 249, 114, 136, 202, 86, 24, 90, 40, 249, 41, 249, 42, 249, 43, 249, 44, 249, 67, 78, 45, 249, 103, 81, 72, 89, 240, 103, 16, 128, 46, 249, 115, 89, 116, 94, 154, 100, 202, 121, 245, 95, 108, 96, 200, 98, 123, 99, 231, 91, 215, 91, 170, 82, 47, 249, 116, 89, 41, 95, 18, 96, 48, 249, 49, 249, 50, 249, 89, 116, 51, 249, 52, 249, 53, 249, 54, 249, 55, 249, 56, 249, 209, 153, 57, 249, 58, 249, 59, 249, 60, 249, 61, 249, 62, 249, 63, 249, 64, 249, 65, 249, 66, 249, 67, 249, 195, 111, 68, 249, 69, 249, 191, 129, 178, 143, 241, 96, 70, 249, 71, 249, 102, 129, 72, 249, 73, 249, 63, 92, 74, 249, 75, 249, 76, 249, 77, 249, 78, 249, 79, 249, 80, 249, 81, 249, 233, 90, 37, 138, 123, 103, 16, 125, 82, 249, 83, 249, 84, 249, 85, 249, 86, 249, 87, 249, 253, 128, 88, 249, 89, 249, 60, 92, 229, 108, 63, 83, 186, 110, 26, 89, 54, 131, 57, 78, 182, 78, 70, 79, 174, 85, 24, 87, 199, 88, 86, 95, 183, 101, 230, 101, 128, 106, 181, 107, 77, 110, 237, 119, 239, 122, 30, 124, 222, 125, 203, 134, 146, 136, 50, 145, 91, 147, 187, 100, 190, 111, 122, 115, 184, 117, 84, 144, 86, 85, 77, 87, 186, 97, 212, 100, 199, 102, 225, 109, 91, 110, 109, 111, 185, 111, 240, 117, 67, 128, 189, 129, 65, 133, 131, 137, 199, 138, 90, 139, 31, 147, 147, 108, 83, 117, 84, 123, 15, 142, 93, 144, 16, 85, 2, 88, 88, 88, 98, 94, 7, 98, 158, 100, 224, 104, 118, 117, 214, 124, 179, 135, 232, 158, 227, 78, 136, 87, 110, 87, 39, 89, 13, 92, 177, 92, 54, 94, 133, 95, 52, 98, 225, 100, 179, 115, 250, 129, 139, 136, 184, 140, 138, 150, 219, 158, 133, 91, 183, 95, 179, 96, 18, 80, 0, 82, 48, 82, 22, 87, 53, 88, 87, 88, 14, 92, 96, 92, 246, 92, 139, 93, 166, 94, 146, 95, 188, 96, 17, 99, 137, 99, 23, 100, 67, 104, 249, 104, 194, 106, 216, 109, 33, 110, 212, 110, 228, 111, 254, 113, 220, 118, 121, 119, 177, 121, 59, 122, 4, 132, 169, 137, 237, 140, 243, 141, 72, 142, 3, 144, 20, 144, 83, 144, 253, 144, 77, 147, 118, 150, 220, 151, 210, 107, 6, 112, 88, 114, 162, 114, 104, 115, 99, 119, 191, 121, 228, 123, 155, 126, 128, 139, 169, 88, 199, 96, 102, 101, 253, 101, 190, 102, 140, 108, 30, 113, 201, 113, 90, 140, 19, 152, 109, 78, 129, 122, 221, 78, 172, 81, 205, 81, 213, 82, 12, 84, 167, 97, 113, 103, 80, 104, 223, 104, 30, 109, 124, 111, 188, 117, 179, 119, 229, 122, 244, 128, 99, 132, 133, 146, 92, 81, 151, 101, 92, 103, 147, 103, 216, 117, 199, 122, 115, 131, 90, 249, 70, 140, 23, 144, 45, 152, 111, 92, 192, 129, 154, 130, 65, 144, 111, 144, 13, 146, 151, 95, 157, 93, 89, 106, 200, 113, 123, 118, 73, 123, 228, 133, 4, 139, 39, 145, 48, 154, 135, 85, 246, 97, 91, 249, 105, 118, 133, 127, 63, 134, 186, 135, 248, 136, 143, 144, 92, 249, 27, 109, 217, 112, 222, 115, 97, 125, 61, 132, 93, 249, 106, 145, 241, 153, 94, 249, 130, 78, 117, 83, 4, 107, 18, 107, 62, 112, 27, 114, 45, 134, 30, 158, 76, 82, 163, 143, 80, 93, 229, 100, 44, 101, 22, 107, 235, 111, 67, 124, 156, 126, 205, 133, 100, 137, 189, 137, 201, 98, 216, 129, 31, 136, 202, 94, 23, 103, 106, 109, 252, 114, 5, 116, 111, 116, 130, 135, 222, 144, 134, 79, 13, 93, 160, 95, 10, 132, 183, 81, 160, 99, 101, 117, 174, 78, 6, 80, 105, 81, 201, 81, 129, 104, 17, 106, 174, 124, 177, 124, 231, 124, 111, 130, 210, 138, 27, 143, 207, 145, 182, 79, 55, 81, 245, 82, 66, 84, 236, 94, 110, 97, 62, 98, 197, 101, 218, 106, 254, 111, 42, 121, 220, 133, 35, 136, 173, 149, 98, 154, 106, 154, 151, 158, 206, 158, 155, 82, 198, 102, 119, 107, 29, 112, 43, 121, 98, 143, 66, 151, 144, 97, 0, 98, 35, 101, 35, 111, 73, 113, 137, 116, 244, 125, 111, 128, 238, 132, 38, 143, 35, 144, 74, 147, 189, 81, 23, 82, 163, 82, 12, 109, 200, 112, 194, 136, 201, 94, 130, 101, 174, 107, 194, 111, 62, 124, 117, 115, 228, 78, 54, 79, 249, 86, 95, 249, 186, 92, 186, 93, 28, 96, 178, 115, 45, 123, 154, 127, 206, 127, 70, 128, 30, 144, 52, 146, 246, 150, 72, 151, 24, 152, 97, 159, 139, 79, 167, 111, 174, 121, 180, 145, 183, 150, 222, 82, 96, 249, 136, 100, 196, 100, 211, 106, 94, 111, 24, 112, 16, 114, 231, 118, 1, 128, 6, 134, 92, 134, 239, 141, 5, 143, 50, 151, 111, 155, 250, 157, 117, 158, 140, 120, 127, 121, 160, 125, 201, 131, 4, 147, 127, 158, 147, 158, 214, 138, 223, 88, 4, 95, 39, 103, 39, 112, 207, 116, 96, 124, 126, 128, 33, 81, 40, 112, 98, 114, 202, 120, 194, 140, 218, 140, 244, 140, 247, 150, 134, 78, 218, 80, 238, 91, 214, 94, 153, 101, 206, 113, 66, 118, 173, 119, 74, 128, 252, 132, 124, 144, 39, 155, 141, 159, 216, 88, 65, 90, 98, 92, 19, 106, 218, 109, 15, 111, 59, 118, 47, 125, 55, 126, 30, 133, 56, 137, 228, 147, 75, 150, 137, 82, 210, 101, 243, 103, 180, 105, 65, 109, 156, 110, 15, 112, 9, 116, 96, 116, 89, 117, 36, 118, 107, 120, 44, 139, 94, 152, 109, 81, 46, 98, 120, 150, 150, 79, 43, 80, 25, 93, 234, 109, 184, 125, 42, 143, 139, 95, 68, 97, 23, 104, 97, 249, 134, 150, 210, 82, 139, 128, 220, 81, 204, 81, 94, 105, 28, 122, 190, 125, 241, 131, 117, 150, 218, 79, 41, 82, 152, 83, 15, 84, 14, 85, 101, 92, 167, 96, 78, 103, 168, 104, 108, 109, 129, 114, 248, 114, 6, 116, 131, 116, 98, 249, 226, 117, 108, 124, 121, 127, 184, 127, 137, 131, 207, 136, 225, 136, 204, 145, 208, 145, 226, 150, 201, 155, 29, 84, 126, 111, 208, 113, 152, 116, 250, 133, 170, 142, 163, 150, 87, 156, 159, 158, 151, 103, 203, 109, 51, 116, 232, 129, 22, 151, 44, 120, 203, 122, 32, 123, 146, 124, 105, 100, 106, 116, 242, 117, 188, 120, 232, 120, 172, 153, 84, 155, 187, 158, 222, 91, 85, 94, 32, 111, 156, 129, 171, 131, 136, 144, 7, 78, 77, 83, 41, 90, 210, 93, 78, 95, 98, 97, 61, 99, 105, 102, 252, 102, 255, 110, 43, 111, 99, 112, 158, 119, 44, 132, 19, 133, 59, 136, 19, 143, 69, 153, 59, 156, 28, 85, 185, 98, 43, 103, 171, 108, 9, 131, 106, 137, 122, 151, 161, 78, 132, 89, 216, 95, 217, 95, 27, 103, 178, 125, 84, 127, 146, 130, 43, 131, 189, 131, 30, 143, 153, 144, 203, 87, 185, 89, 146, 90, 208, 91, 39, 102, 154, 103, 133, 104, 207, 107, 100, 113, 117, 127, 183, 140, 227, 140, 129, 144, 69, 155, 8, 129, 138, 140, 76, 150, 64, 154, 165, 158, 95, 91, 19, 108, 27, 115, 242, 118, 223, 118, 12, 132, 170, 81, 147, 137, 77, 81, 149, 81, 201, 82, 201, 104, 148, 108, 4, 119, 32, 119, 191, 125, 236, 125, 98, 151, 181, 158, 197, 110, 17, 133, 165, 81, 13, 84, 125, 84, 14, 102, 157, 102, 39, 105, 159, 110, 191, 118, 145, 119, 23, 131, 194, 132, 159, 135, 105, 145, 152, 146, 244, 156, 130, 136, 174, 79, 146, 81, 223, 82, 198, 89, 61, 94, 85, 97, 120, 100, 121, 100, 174, 102, 208, 103, 33, 106, 205, 107, 219, 107, 95, 114, 97, 114, 65, 116, 56, 119, 219, 119, 23, 128, 188, 130, 5, 131, 0, 139, 40, 139, 140, 140, 40, 103, 144, 108, 103, 114, 238, 118, 102, 119, 70, 122, 169, 157, 127, 107, 146, 108, 34, 89, 38, 103, 153, 132, 111, 83, 147, 88, 153, 89, 223, 94, 207, 99, 52, 102, 115, 103, 58, 110, 43, 115, 215, 122, 215, 130, 40, 147, 217, 82, 235, 93, 174, 97, 203, 97, 10, 98, 199, 98, 171, 100, 224, 101, 89, 105, 102, 107, 203, 107, 33, 113, 247, 115, 93, 117, 70, 126, 30, 130, 2, 131, 106, 133, 163, 138, 191, 140, 39, 151, 97, 157, 168, 88, 216, 158, 17, 80, 14, 82, 59, 84, 79, 85, 135, 101, 118, 108, 10, 125, 11, 125, 94, 128, 138, 134, 128, 149, 239, 150, 255, 82, 149, 108, 105, 114, 115, 84, 154, 90, 62, 92, 75, 93, 76, 95, 174, 95, 42, 103, 182, 104, 99, 105, 60, 110, 68, 110, 9, 119, 115, 124, 142, 127, 135, 133, 14, 139, 247, 143, 97, 151, 244, 158, 183, 92, 182, 96, 13, 97, 171, 97, 79, 101, 251, 101, 252, 101, 17, 108, 239, 108, 159, 115, 201, 115, 225, 125, 148, 149, 198, 91, 28, 135, 16, 139, 93, 82, 90, 83, 205, 98, 15, 100, 178, 100, 52, 103, 56, 106, 202, 108, 192, 115, 158, 116, 148, 123, 149, 124, 27, 126, 138, 129, 54, 130, 132, 133, 235, 143, 249, 150, 193, 153, 52, 79, 74, 83, 205, 83, 219, 83, 204, 98, 44, 100, 0, 101, 145, 101, 195, 105, 238, 108, 88, 111, 237, 115, 84, 117, 34, 118, 228, 118, 252, 118, 208, 120, 251, 120, 44, 121, 70, 125, 44, 130, 224, 135, 212, 143, 18, 152, 239, 152, 195, 82, 212, 98, 165, 100, 36, 110, 81, 111, 124, 118, 203, 141, 177, 145, 98, 146, 238, 154, 67, 155, 35, 80, 141, 80, 74, 87, 168, 89, 40, 92, 71, 94, 119, 95, 63, 98, 62, 101, 185, 101, 193, 101, 9, 102, 139, 103, 156, 105, 194, 110, 197, 120, 33, 125, 170, 128, 128, 129, 43, 130, 179, 130, 161, 132, 140, 134, 42, 138, 23, 139, 166, 144, 50, 150, 144, 159, 13, 80, 243, 79, 99, 249, 249, 87, 152, 95, 220, 98, 146, 99, 111, 103, 67, 110, 25, 113, 195, 118, 204, 128, 218, 128, 244, 136, 245, 136, 25, 137, 224, 140, 41, 143, 77, 145, 106, 150, 47, 79, 112, 79, 27, 94, 207, 103, 34, 104, 125, 118, 126, 118, 68, 155, 97, 94, 10, 106, 105, 113, 212, 113, 106, 117, 100, 249, 65, 126, 67, 133, 233, 133, 220, 152, 16, 79, 79, 123, 112, 127, 165, 149, 225, 81, 6, 94, 181, 104, 62, 108, 78, 108, 219, 108, 175, 114, 196, 123, 3, 131, 213, 108, 58, 116, 251, 80, 136, 82, 193, 88, 216, 100, 151, 106, 167, 116, 86, 118, 167, 120, 23, 134, 226, 149, 57, 151, 101, 249, 94, 83, 1, 95, 138, 139, 168, 143, 175, 143, 138, 144, 37, 82, 165, 119, 73, 156, 8, 159, 25, 78, 2, 80, 117, 81, 91, 92, 119, 94, 30, 102, 58, 102, 196, 103, 197, 104, 179, 112, 1, 117, 197, 117, 201, 121, 221, 122, 39, 143, 32, 153, 8, 154, 221, 79, 33, 88, 49, 88, 246, 91, 110, 102, 101, 107, 17, 109, 122, 110, 125, 111, 228, 115, 43, 117, 233, 131, 220, 136, 19, 137, 92, 139, 20, 143, 15, 79, 213, 80, 16, 83, 92, 83, 147, 91, 169, 95, 13, 103, 143, 121, 121, 129, 47, 131, 20, 133, 7, 137, 134, 137, 57, 143, 59, 143, 165, 153, 18, 156, 44, 103, 118, 78, 248, 79, 73, 89, 1, 92, 239, 92, 240, 92, 103, 99, 210, 104, 253, 112, 162, 113, 43, 116, 43, 126, 236, 132, 2, 135, 34, 144, 210, 146, 243, 156, 13, 78, 216, 78, 239, 79, 133, 80, 86, 82, 111, 82, 38, 84, 144, 84, 224, 87, 43, 89, 102, 90, 90, 91, 117, 91, 204, 91, 156, 94, 102, 249, 118, 98, 119, 101, 167, 101, 110, 109, 165, 110, 54, 114, 38, 123, 63, 124, 54, 127, 80, 129, 81, 129, 154, 129, 64, 130, 153, 130, 169, 131, 3, 138, 160, 140, 230, 140, 251, 140, 116, 141, 186, 141, 232, 144, 220, 145, 28, 150, 68, 150, 217, 153, 231, 156, 23, 83, 6, 82, 41, 84, 116, 86, 179, 88, 84, 89, 110, 89, 255, 95, 164, 97, 110, 98, 16, 102, 126, 108, 26, 113, 198, 118, 137, 124, 222, 124, 27, 125, 172, 130, 193, 140, 240, 150, 103, 249, 91, 79, 23, 95, 127, 95, 194, 98, 41, 93, 11, 103, 218, 104, 124, 120, 67, 126, 108, 157, 21, 78, 153, 80, 21, 83, 42, 83, 81, 83, 131, 89, 98, 90, 135, 94, 178, 96, 138, 97, 73, 98, 121, 98, 144, 101, 135, 103, 167, 105, 212, 107, 214, 107, 215, 107, 216, 107, 184, 108, 104, 249, 53, 116, 250, 117, 18, 120, 145, 120, 213, 121, 216, 121, 131, 124, 203, 125, 225, 127, 165, 128, 62, 129, 194, 129, 242, 131, 26, 135, 232, 136, 185, 138, 108, 139, 187, 140, 25, 145, 94, 151, 219, 152, 59, 159, 172, 86, 42, 91, 108, 95, 140, 101, 179, 106, 175, 107, 92, 109, 241, 111, 21, 112, 93, 114, 173, 115, 167, 140, 211, 140, 59, 152, 145, 97, 55, 108, 88, 128, 1, 154, 77, 78, 139, 78, 155, 78, 213, 78, 58, 79, 60, 79, 127, 79, 223, 79, 255, 80, 242, 83, 248, 83, 6, 85, 227, 85, 219, 86, 235, 88, 98, 89, 17, 90, 235, 91, 250, 91, 4, 92, 243, 93, 43, 94, 153, 95, 29, 96, 104, 99, 156, 101, 175, 101, 246, 103, 251, 103, 173, 104, 123, 107, 153, 108, 215, 108, 35, 110, 9, 112, 69, 115, 2, 120, 62, 121, 64, 121, 96, 121, 193, 121, 233, 123, 23, 125, 114, 125, 134, 128, 13, 130, 142, 131, 209, 132, 199, 134, 223, 136, 80, 138, 94, 138, 29, 139, 220, 140, 102, 141, 173, 143, 170, 144, 252, 152, 223, 153, 157, 158, 74, 82, 105, 249, 20, 103, 106, 249, 152, 80, 42, 82, 113, 92, 99, 101, 85, 108, 202, 115, 35, 117, 157, 117, 151, 123, 156, 132, 120, 145, 48, 151, 119, 78, 146, 100, 186, 107, 94, 113, 169, 133, 9, 78, 107, 249, 73, 103, 238, 104, 23, 110, 159, 130, 24, 133, 107, 136, 247, 99, 129, 111, 18, 146, 175, 152, 10, 78, 183, 80, 207, 80, 31, 81, 70, 85, 170, 85, 23, 86, 64, 91, 25, 92, 224, 92, 56, 94, 138, 94, 160, 94, 194, 94, 243, 96, 81, 104, 97, 106, 88, 110, 61, 114, 64, 114, 192, 114, 248, 118, 101, 121, 177, 123, 212, 127, 243, 136, 244, 137, 115, 138, 97, 140, 222, 140, 28, 151, 94, 88, 189, 116, 253, 140, 199, 85, 108, 249, 97, 122, 34, 125, 114, 130, 114, 114, 31, 117, 37, 117, 109, 249, 25, 123, 133, 88, 251, 88, 188, 93, 143, 94, 182, 94, 144, 95, 85, 96, 146, 98, 127, 99, 77, 101, 145, 102, 217, 102, 248, 102, 22, 104, 242, 104, 128, 114, 94, 116, 110, 123, 110, 125, 214, 125, 114, 127, 229, 128, 18, 130, 175, 133, 127, 137, 147, 138, 29, 144, 228, 146, 205, 158, 32, 159, 21, 89, 109, 89, 45, 94, 220, 96, 20, 102, 115, 102, 144, 103, 80, 108, 197, 109, 95, 111, 243, 119, 169, 120, 198, 132, 203, 145, 43, 147, 217, 78, 202, 80, 72, 81, 132, 85, 11, 91, 163, 91, 71, 98, 126, 101, 203, 101, 50, 110, 125, 113, 1, 116, 68, 116, 135, 116, 191, 116, 108, 118, 170, 121, 218, 125, 85, 126, 168, 127, 122, 129, 179, 129, 57, 130, 26, 134, 236, 135, 117, 138, 227, 141, 120, 144, 145, 146, 37, 148, 77, 153, 174, 155, 104, 83, 81, 92, 84, 105, 196, 108, 41, 109, 43, 110, 12, 130, 155, 133, 59, 137, 45, 138, 170, 138, 234, 150, 103, 159, 97, 82, 185, 102, 178, 107, 150, 126, 254, 135, 13, 141, 131, 149, 93, 150, 29, 101, 137, 109, 238, 113, 110, 249, 206, 87, 211, 89, 172, 91, 39, 96, 250, 96, 16, 98, 31, 102, 95, 102, 41, 115, 249, 115, 219, 118, 1, 119, 108, 123, 86, 128, 114, 128, 101, 129, 160, 138, 146, 145, 22, 78, 226, 82, 114, 107, 23, 109, 5, 122, 57, 123, 48, 125, 111, 249, 176, 140, 236, 83, 47, 86, 81, 88, 181, 91, 15, 92, 17, 92, 226, 93, 64, 98, 131, 99, 20, 100, 45, 102, 179, 104, 188, 108, 136, 109, 175, 110, 31, 112, 164, 112, 210, 113, 38, 117, 143, 117, 142, 117, 25, 118, 17, 123, 224, 123, 43, 124, 32, 125, 57, 125, 44, 133, 109, 133, 7, 134, 52, 138, 13, 144, 97, 144, 181, 144, 183, 146, 246, 151, 55, 154, 215, 79, 108, 92, 95, 103, 145, 109, 159, 124, 140, 126, 22, 139, 22, 141, 31, 144, 107, 91, 253, 93, 13, 100, 192, 132, 92, 144, 225, 152, 135, 115, 139, 91, 154, 96, 126, 103, 222, 109, 31, 138, 166, 138, 1, 144, 12, 152, 55, 82, 112, 249, 81, 112, 142, 120, 150, 147, 112, 136, 215, 145, 238, 79, 215, 83, 253, 85, 218, 86, 130, 87, 253, 88, 194, 90, 136, 91, 171, 92, 192, 92, 37, 94, 1, 97, 13, 98, 75, 98, 136, 99, 28, 100, 54, 101, 120, 101, 57, 106, 138, 107, 52, 108, 25, 109, 49, 111, 231, 113, 233, 114, 120, 115, 7, 116, 178, 116, 38, 118, 97, 119, 192, 121, 87, 122, 234, 122, 185, 124, 143, 125, 172, 125, 97, 126, 158, 127, 41, 129, 49, 131, 144, 132, 218, 132, 234, 133, 150, 136, 176, 138, 144, 139, 56, 143, 66, 144, 131, 144, 108, 145, 150, 146, 185, 146, 139, 150, 167, 150, 168, 150, 214, 150, 0, 151, 8, 152, 150, 153, 211, 154, 26, 155, 212, 83, 126, 88, 25, 89, 112, 91, 191, 91, 209, 109, 90, 111, 159, 113, 33, 116, 185, 116, 133, 128, 253, 131, 225, 93, 135, 95, 170, 95, 66, 96, 236, 101, 18, 104, 111, 105, 83, 106, 137, 107, 53, 109, 243, 109, 227, 115, 254, 118, 172, 119, 77, 123, 20, 125, 35, 129, 28, 130, 64, 131, 244, 132, 99, 133, 98, 138, 196, 138, 135, 145, 30, 147, 6, 152, 180, 153, 12, 98, 83, 136, 240, 143, 101, 146, 7, 93, 39, 93, 105, 93, 95, 116, 157, 129, 104, 135, 213, 111, 254, 98, 210, 127, 54, 137, 114, 137, 30, 78, 88, 78, 231, 80, 221, 82, 71, 83, 127, 98, 7, 102, 105, 126, 5, 136, 94, 150, 141, 79, 25, 83, 54, 86, 203, 89, 164, 90, 56, 92, 78, 92, 77, 92, 2, 94, 17, 95, 67, 96, 189, 101, 47, 102, 66, 102, 190, 103, 244, 103, 28, 115, 226, 119, 58, 121, 197, 127, 148, 132, 205, 132, 150, 137, 102, 138, 105, 138, 225, 138, 85, 140, 122, 140, 244, 87, 212, 91, 15, 95, 111, 96, 237, 98, 13, 105, 150, 107, 92, 110, 132, 113, 210, 123, 85, 135, 88, 139, 254, 142, 223, 152, 254, 152, 56, 79, 129, 79, 225, 79, 123, 84, 32, 90, 184, 91, 60, 97, 176, 101, 104, 102, 252, 113, 51, 117, 94, 121, 51, 125, 78, 129, 227, 129, 152, 131, 170, 133, 206, 133, 3, 135, 10, 138, 171, 142, 155, 143, 113, 249, 197, 143, 49, 89, 164, 91, 230, 91, 137, 96, 233, 91, 11, 92, 195, 95, 129, 108, 114, 249, 241, 109, 11, 112, 26, 117, 175, 130, 246, 138, 192, 78, 65, 83, 115, 249, 217, 150, 15, 108, 158, 78, 196, 79, 82, 81, 94, 85, 37, 90, 232, 92, 17, 98, 89, 114, 189, 130, 170, 131, 254, 134, 89, 136, 29, 138, 63, 150, 197, 150, 19, 153, 9, 157, 93, 157, 10, 88, 179, 92, 189, 93, 68, 94, 225, 96, 21, 97, 225, 99, 2, 106, 37, 110, 2, 145, 84, 147, 78, 152, 16, 156, 119, 159, 137, 91, 184, 92, 9, 99, 79, 102, 72, 104, 60, 119, 193, 150, 141, 151, 84, 152, 159, 155, 161, 101, 1, 139, 203, 142, 188, 149, 53, 85, 169, 92, 214, 93, 181, 94, 151, 102, 76, 118, 244, 131, 199, 149, 211, 88, 188, 98, 206, 114, 40, 157, 240, 78, 46, 89, 15, 96, 59, 102, 131, 107, 231, 121, 38, 157, 147, 83, 192, 84, 195, 87, 22, 93, 27, 97, 214, 102, 175, 109, 141, 120, 126, 130, 152, 150, 68, 151, 132, 83, 124, 98, 150, 99, 178, 109, 10, 126, 75, 129, 77, 152, 251, 106, 76, 127, 175, 157, 26, 158, 95, 78, 59, 80, 182, 81, 28, 89, 249, 96, 246, 99, 48, 105, 58, 114, 54, 128, 116, 249, 206, 145, 49, 95, 117, 249, 118, 249, 4, 125, 229, 130, 111, 132, 187, 132, 229, 133, 141, 142, 119, 249, 111, 79, 120, 249, 121, 249, 228, 88, 67, 91, 89, 96, 218, 99, 24, 101, 109, 101, 152, 102, 122, 249, 74, 105, 35, 106, 11, 109, 1, 112, 108, 113, 210, 117, 13, 118, 179, 121, 112, 122, 123, 249, 138, 127, 124, 249, 68, 137, 125, 249, 147, 139, 192, 145, 125, 150, 126, 249, 10, 153, 4, 87, 161, 95, 188, 101, 1, 111, 0, 118, 166, 121, 158, 138, 173, 153, 90, 155, 108, 159, 4, 81, 182, 97, 145, 98, 141, 106, 198, 129, 67, 80, 48, 88, 102, 95, 9, 113, 0, 138, 250, 138, 124, 91, 22, 134, 250, 79, 60, 81, 180, 86, 68, 89, 169, 99, 249, 109, 170, 93, 109, 105, 134, 81, 136, 78, 89, 79, 127, 249, 128, 249, 129, 249, 130, 89, 130, 249, 131, 249, 95, 107, 93, 108, 132, 249, 181, 116, 22, 121, 133, 249, 7, 130, 69, 130, 57, 131, 63, 143, 93, 143, 134, 249, 24, 153, 135, 249, 136, 249, 137, 249, 166, 78, 138, 249, 223, 87, 121, 95, 19, 102, 139, 249, 140, 249, 171, 117, 121, 126, 111, 139, 141, 249, 6, 144, 91, 154, 165, 86, 39, 88, 248, 89, 31, 90, 180, 91, 142, 249, 246, 94, 143, 249, 144, 249, 80, 99, 59, 99, 145, 249, 61, 105, 135, 108, 191, 108, 142, 109, 147, 109, 245, 109, 20, 111, 146, 249, 223, 112, 54, 113, 89, 113, 147, 249, 195, 113, 213, 113, 148, 249, 79, 120, 111, 120, 149, 249, 117, 123, 227, 125, 150, 249, 47, 126, 151, 249, 77, 136, 223, 142, 152, 249, 153, 249, 154, 249, 91, 146, 155, 249, 246, 156, 156, 249, 157, 249, 158, 249, 133, 96, 133, 109, 159, 249, 177, 113, 160, 249, 161, 249, 177, 149, 173, 83, 162, 249, 163, 249, 164, 249, 211, 103, 165, 249, 142, 112, 48, 113, 48, 116, 118, 130, 210, 130, 166, 249, 187, 149, 229, 154, 125, 158, 196, 102, 167, 249, 193, 113, 73, 132, 168, 249, 169, 249, 75, 88, 170, 249, 171, 249, 184, 93, 113, 95, 172, 249, 32, 102, 142, 102, 121, 105, 174, 105, 56, 108, 243, 108, 54, 110, 65, 111, 218, 111, 27, 112, 47, 112, 80, 113, 223, 113, 112, 115, 173, 249, 91, 116, 174, 249, 212, 116, 200, 118, 78, 122, 147, 126, 175, 249, 176, 249, 241, 130, 96, 138, 206, 143, 177, 249, 72, 147, 178, 249, 25, 151, 179, 249, 180, 249, 66, 78, 42, 80, 181, 249, 8, 82, 225, 83, 243, 102, 109, 108, 202, 111, 10, 115, 127, 119, 98, 122, 174, 130, 221, 133, 2, 134, 182, 249, 212, 136, 99, 138, 125, 139, 107, 140, 183, 249, 179, 146, 184, 249, 19, 151, 16, 152, 148, 78, 13, 79, 201, 79, 178, 80, 72, 83, 62, 84, 51, 84, 218, 85, 98, 88, 186, 88, 103, 89, 27, 90, 228, 91, 159, 96, 185, 249, 202, 97, 86, 101, 255, 101, 100, 102, 167, 104, 90, 108, 179, 111, 207, 112, 172, 113, 82, 115, 125, 123, 8, 135, 164, 138, 50, 156, 7, 159, 75, 92, 131, 108, 68, 115, 137, 115, 58, 146, 171, 110, 101, 116, 31, 118, 105, 122, 21, 126, 10, 134, 64, 81, 197, 88, 193, 100, 238, 116, 21, 117, 112, 118, 193, 127, 149, 144, 205, 150, 84, 153, 38, 110, 230, 116, 169, 122, 170, 122, 229, 129, 217, 134, 120, 135, 27, 138, 73, 90, 140, 91, 155, 91, 161, 104, 0, 105, 99, 109, 169, 115, 19, 116, 44, 116, 151, 120, 233, 125, 235, 127, 24, 129, 85, 129, 158, 131, 76, 140, 46, 150, 17, 152, 240, 102, 128, 95, 250, 101, 137, 103, 106, 108, 139, 115, 45, 80, 3, 90, 106, 107, 238, 119, 22, 89, 108, 93, 205, 93, 37, 115, 79, 117, 186, 249, 187, 249 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 117532 ); /* memory initializer */ allocate( [ 229, 80, 249, 81, 47, 88, 45, 89, 150, 89, 218, 89, 229, 91, 188, 249, 189, 249, 162, 93, 215, 98, 22, 100, 147, 100, 254, 100, 190, 249, 220, 102, 191, 249, 72, 106, 192, 249, 255, 113, 100, 116, 193, 249, 136, 122, 175, 122, 71, 126, 94, 126, 0, 128, 112, 129, 194, 249, 239, 135, 129, 137, 32, 139, 89, 144, 195, 249, 128, 144, 82, 153, 126, 97, 50, 107, 116, 109, 31, 126, 37, 137, 177, 143, 209, 79, 173, 80, 151, 81, 199, 82, 199, 87, 137, 88, 185, 91, 184, 94, 66, 97, 149, 105, 140, 109, 103, 110, 182, 110, 148, 113, 98, 116, 40, 117, 44, 117, 115, 128, 56, 131, 201, 132, 10, 142, 148, 147, 222, 147, 196, 249, 142, 78, 81, 79, 118, 80, 42, 81, 200, 83, 203, 83, 243, 83, 135, 91, 211, 91, 36, 92, 26, 97, 130, 97, 244, 101, 91, 114, 151, 115, 64, 116, 194, 118, 80, 121, 145, 121, 185, 121, 6, 125, 189, 127, 139, 130, 213, 133, 94, 134, 194, 143, 71, 144, 245, 144, 234, 145, 133, 150, 232, 150, 233, 150, 214, 82, 103, 95, 237, 101, 49, 102, 47, 104, 92, 113, 54, 122, 193, 144, 10, 152, 145, 78, 197, 249, 82, 106, 158, 107, 144, 111, 137, 113, 24, 128, 184, 130, 83, 133, 75, 144, 149, 150, 242, 150, 251, 151, 26, 133, 49, 155, 144, 78, 138, 113, 196, 150, 67, 81, 159, 83, 225, 84, 19, 87, 18, 87, 163, 87, 155, 90, 196, 90, 195, 91, 40, 96, 63, 97, 244, 99, 133, 108, 57, 109, 114, 110, 144, 110, 48, 114, 63, 115, 87, 116, 209, 130, 129, 136, 69, 143, 96, 144, 198, 249, 98, 150, 88, 152, 27, 157, 8, 103, 138, 141, 94, 146, 77, 79, 73, 80, 222, 80, 113, 83, 13, 87, 212, 89, 1, 90, 9, 92, 112, 97, 144, 102, 45, 110, 50, 114, 75, 116, 239, 125, 195, 128, 14, 132, 102, 132, 63, 133, 95, 135, 91, 136, 24, 137, 2, 139, 85, 144, 203, 151, 79, 155, 115, 78, 145, 79, 18, 81, 106, 81, 199, 249, 47, 85, 169, 85, 122, 91, 165, 91, 124, 94, 125, 94, 190, 94, 160, 96, 223, 96, 8, 97, 9, 97, 196, 99, 56, 101, 9, 103, 200, 249, 212, 103, 218, 103, 201, 249, 97, 105, 98, 105, 185, 108, 39, 109, 202, 249, 56, 110, 203, 249, 225, 111, 54, 115, 55, 115, 204, 249, 92, 116, 49, 117, 205, 249, 82, 118, 206, 249, 207, 249, 173, 125, 254, 129, 56, 132, 213, 136, 152, 138, 219, 138, 237, 138, 48, 142, 66, 142, 74, 144, 62, 144, 122, 144, 73, 145, 201, 145, 110, 147, 208, 249, 209, 249, 9, 88, 210, 249, 211, 107, 137, 128, 178, 128, 211, 249, 212, 249, 65, 81, 107, 89, 57, 92, 213, 249, 214, 249, 100, 111, 167, 115, 228, 128, 7, 141, 215, 249, 23, 146, 143, 149, 216, 249, 217, 249, 218, 249, 219, 249, 127, 128, 14, 98, 28, 112, 104, 125, 141, 135, 220, 249, 160, 87, 105, 96, 71, 97, 183, 107, 190, 138, 128, 146, 177, 150, 89, 78, 31, 84, 235, 109, 45, 133, 112, 150, 243, 151, 238, 152, 214, 99, 227, 108, 145, 144, 221, 81, 201, 97, 186, 129, 249, 157, 157, 79, 26, 80, 0, 81, 156, 91, 15, 97, 255, 97, 236, 100, 5, 105, 197, 107, 145, 117, 227, 119, 169, 127, 100, 130, 143, 133, 251, 135, 99, 136, 188, 138, 112, 139, 171, 145, 140, 78, 229, 78, 10, 79, 221, 249, 222, 249, 55, 89, 232, 89, 223, 249, 242, 93, 27, 95, 91, 95, 33, 96, 224, 249, 225, 249, 226, 249, 227, 249, 62, 114, 229, 115, 228, 249, 112, 117, 205, 117, 229, 249, 251, 121, 230, 249, 12, 128, 51, 128, 132, 128, 225, 130, 81, 131, 231, 249, 232, 249, 189, 140, 179, 140, 135, 144, 233, 249, 234, 249, 244, 152, 12, 153, 235, 249, 236, 249, 55, 112, 202, 118, 202, 127, 204, 127, 252, 127, 26, 139, 186, 78, 193, 78, 3, 82, 112, 83, 237, 249, 189, 84, 224, 86, 251, 89, 197, 91, 21, 95, 205, 95, 110, 110, 238, 249, 239, 249, 106, 125, 53, 131, 240, 249, 147, 134, 141, 138, 241, 249, 109, 151, 119, 151, 242, 249, 243, 249, 0, 78, 90, 79, 126, 79, 249, 88, 229, 101, 162, 110, 56, 144, 176, 147, 185, 153, 251, 78, 236, 88, 138, 89, 217, 89, 65, 96, 244, 249, 245, 249, 20, 122, 246, 249, 79, 131, 195, 140, 101, 81, 68, 83, 247, 249, 248, 249, 249, 249, 205, 78, 105, 82, 85, 91, 191, 130, 212, 78, 58, 82, 168, 84, 201, 89, 255, 89, 80, 91, 87, 91, 92, 91, 99, 96, 72, 97, 203, 110, 153, 112, 110, 113, 134, 115, 247, 116, 181, 117, 193, 120, 43, 125, 5, 128, 234, 129, 40, 131, 23, 133, 201, 133, 238, 138, 199, 140, 204, 150, 92, 79, 250, 82, 188, 86, 171, 101, 40, 102, 124, 112, 184, 112, 53, 114, 189, 125, 141, 130, 76, 145, 192, 150, 114, 157, 113, 91, 231, 104, 152, 107, 122, 111, 222, 118, 145, 92, 171, 102, 91, 111, 180, 123, 42, 124, 54, 136, 220, 150, 8, 78, 215, 78, 32, 83, 52, 88, 187, 88, 239, 88, 108, 89, 7, 92, 51, 94, 132, 94, 53, 95, 140, 99, 178, 102, 86, 103, 31, 106, 163, 106, 12, 107, 63, 111, 70, 114, 250, 249, 80, 115, 139, 116, 224, 122, 167, 124, 120, 129, 223, 129, 231, 129, 138, 131, 108, 132, 35, 133, 148, 133, 207, 133, 221, 136, 19, 141, 172, 145, 119, 149, 156, 150, 141, 81, 201, 84, 40, 87, 176, 91, 77, 98, 80, 103, 61, 104, 147, 104, 61, 110, 211, 110, 125, 112, 33, 126, 193, 136, 161, 140, 9, 143, 75, 159, 78, 159, 45, 114, 143, 123, 205, 138, 26, 147, 71, 79, 78, 79, 50, 81, 128, 84, 208, 89, 149, 94, 181, 98, 117, 103, 110, 105, 23, 106, 174, 108, 26, 110, 217, 114, 42, 115, 189, 117, 184, 123, 53, 125, 231, 130, 249, 131, 87, 132, 247, 133, 91, 138, 175, 140, 135, 142, 25, 144, 184, 144, 206, 150, 95, 159, 227, 82, 10, 84, 225, 90, 194, 91, 88, 100, 117, 101, 244, 110, 196, 114, 251, 249, 132, 118, 77, 122, 27, 123, 77, 124, 62, 126, 223, 127, 123, 131, 43, 139, 202, 140, 100, 141, 225, 141, 95, 142, 234, 143, 249, 143, 105, 144, 209, 147, 67, 79, 122, 79, 179, 80, 104, 81, 120, 81, 77, 82, 106, 82, 97, 88, 124, 88, 96, 89, 8, 92, 85, 92, 219, 94, 155, 96, 48, 98, 19, 104, 191, 107, 8, 108, 177, 111, 78, 113, 32, 116, 48, 117, 56, 117, 81, 117, 114, 118, 76, 123, 139, 123, 173, 123, 198, 123, 143, 126, 110, 138, 62, 143, 73, 143, 63, 146, 147, 146, 34, 147, 43, 148, 251, 150, 90, 152, 107, 152, 30, 153, 7, 82, 42, 98, 152, 98, 89, 109, 100, 118, 202, 122, 192, 123, 118, 125, 96, 83, 190, 92, 151, 94, 56, 111, 185, 112, 152, 124, 17, 151, 142, 155, 222, 158, 165, 99, 122, 100, 118, 135, 1, 78, 149, 78, 173, 78, 92, 80, 117, 80, 72, 84, 195, 89, 154, 91, 64, 94, 173, 94, 247, 94, 129, 95, 197, 96, 58, 99, 63, 101, 116, 101, 204, 101, 118, 102, 120, 102, 254, 103, 104, 105, 137, 106, 99, 107, 64, 108, 192, 109, 232, 109, 31, 110, 94, 110, 30, 112, 161, 112, 142, 115, 253, 115, 58, 117, 91, 119, 135, 120, 142, 121, 11, 122, 125, 122, 190, 124, 142, 125, 71, 130, 2, 138, 234, 138, 158, 140, 45, 145, 74, 145, 216, 145, 102, 146, 204, 146, 32, 147, 6, 151, 86, 151, 92, 151, 2, 152, 14, 159, 54, 82, 145, 82, 124, 85, 36, 88, 29, 94, 31, 95, 140, 96, 208, 99, 175, 104, 223, 111, 109, 121, 44, 123, 205, 129, 186, 133, 253, 136, 248, 138, 68, 142, 141, 145, 100, 150, 155, 150, 61, 151, 76, 152, 74, 159, 206, 79, 70, 81, 203, 81, 169, 82, 50, 86, 20, 95, 107, 95, 170, 99, 205, 100, 233, 101, 65, 102, 250, 102, 249, 102, 29, 103, 157, 104, 215, 104, 253, 105, 21, 111, 110, 111, 103, 113, 229, 113, 42, 114, 170, 116, 58, 119, 86, 121, 90, 121, 223, 121, 32, 122, 149, 122, 151, 124, 223, 124, 68, 125, 112, 126, 135, 128, 251, 133, 164, 134, 84, 138, 191, 138, 153, 141, 129, 142, 32, 144, 109, 144, 227, 145, 59, 150, 213, 150, 229, 156, 207, 101, 7, 124, 179, 141, 195, 147, 88, 91, 10, 92, 82, 83, 217, 98, 29, 115, 39, 80, 151, 91, 158, 95, 176, 96, 107, 97, 213, 104, 217, 109, 46, 116, 46, 122, 66, 125, 156, 125, 49, 126, 107, 129, 42, 142, 53, 142, 126, 147, 24, 148, 80, 79, 80, 87, 230, 93, 167, 94, 43, 99, 106, 127, 59, 78, 79, 79, 143, 79, 90, 80, 221, 89, 196, 128, 106, 84, 104, 84, 254, 85, 79, 89, 153, 91, 222, 93, 218, 94, 93, 102, 49, 103, 241, 103, 42, 104, 232, 108, 50, 109, 74, 110, 141, 111, 183, 112, 224, 115, 135, 117, 76, 124, 2, 125, 44, 125, 162, 125, 31, 130, 219, 134, 59, 138, 133, 138, 112, 141, 138, 142, 51, 143, 49, 144, 78, 145, 82, 145, 68, 148, 208, 153, 249, 122, 165, 124, 202, 79, 1, 81, 198, 81, 200, 87, 239, 91, 251, 92, 89, 102, 61, 106, 90, 109, 150, 110, 236, 111, 12, 113, 111, 117, 227, 122, 34, 136, 33, 144, 117, 144, 203, 150, 255, 153, 1, 131, 45, 78, 242, 78, 70, 136, 205, 145, 125, 83, 219, 106, 107, 105, 65, 108, 122, 132, 158, 88, 142, 97, 254, 102, 239, 98, 221, 112, 17, 117, 199, 117, 82, 126, 184, 132, 73, 139, 8, 141, 75, 78, 234, 83, 171, 84, 48, 87, 64, 87, 215, 95, 1, 99, 7, 99, 111, 100, 47, 101, 232, 101, 122, 102, 157, 103, 179, 103, 98, 107, 96, 108, 154, 108, 44, 111, 229, 119, 37, 120, 73, 121, 87, 121, 25, 125, 162, 128, 2, 129, 243, 129, 157, 130, 183, 130, 24, 135, 140, 138, 252, 249, 4, 141, 190, 141, 114, 144, 244, 118, 25, 122, 55, 122, 84, 126, 119, 128, 7, 85, 212, 85, 117, 88, 47, 99, 34, 100, 73, 102, 75, 102, 109, 104, 155, 105, 132, 107, 37, 109, 177, 110, 205, 115, 104, 116, 161, 116, 91, 117, 185, 117, 225, 118, 30, 119, 139, 119, 230, 121, 9, 126, 29, 126, 251, 129, 47, 133, 151, 136, 58, 138, 209, 140, 235, 142, 176, 143, 50, 144, 173, 147, 99, 150, 115, 150, 7, 151, 132, 79, 241, 83, 234, 89, 201, 90, 25, 94, 78, 104, 198, 116, 190, 117, 233, 121, 146, 122, 163, 129, 237, 134, 234, 140, 204, 141, 237, 143, 159, 101, 21, 103, 253, 249, 247, 87, 87, 111, 221, 125, 47, 143, 246, 147, 198, 150, 181, 95, 242, 97, 132, 111, 20, 78, 152, 79, 31, 80, 201, 83, 223, 85, 111, 93, 238, 93, 33, 107, 100, 107, 203, 120, 154, 123, 254, 249, 73, 142, 202, 142, 110, 144, 73, 99, 62, 100, 64, 119, 132, 122, 47, 147, 127, 148, 106, 159, 176, 100, 175, 111, 230, 113, 168, 116, 218, 116, 196, 122, 18, 124, 130, 126, 178, 124, 152, 126, 154, 139, 10, 141, 125, 148, 16, 153, 76, 153, 57, 82, 223, 91, 230, 100, 45, 103, 46, 125, 237, 80, 195, 83, 121, 88, 88, 97, 89, 97, 250, 97, 172, 101, 217, 122, 146, 139, 150, 139, 9, 80, 33, 80, 117, 82, 49, 85, 60, 90, 224, 94, 112, 95, 52, 97, 94, 101, 12, 102, 54, 102, 162, 102, 205, 105, 196, 110, 50, 111, 22, 115, 33, 118, 147, 122, 57, 129, 89, 130, 214, 131, 188, 132, 181, 80, 240, 87, 192, 91, 232, 91, 105, 95, 161, 99, 38, 120, 181, 125, 220, 131, 33, 133, 199, 145, 245, 145, 138, 81, 245, 103, 86, 123, 172, 140, 196, 81, 187, 89, 189, 96, 85, 134, 28, 80, 255, 249, 84, 82, 58, 92, 125, 97, 26, 98, 211, 98, 242, 100, 165, 101, 204, 110, 32, 118, 10, 129, 96, 142, 95, 150, 187, 150, 223, 78, 67, 83, 152, 85, 41, 89, 221, 93, 197, 100, 201, 108, 250, 109, 148, 115, 127, 122, 27, 130, 166, 133, 228, 140, 16, 142, 119, 144, 231, 145, 225, 149, 33, 150, 198, 151, 248, 81, 242, 84, 134, 85, 185, 95, 164, 100, 136, 111, 180, 125, 31, 143, 77, 143, 53, 148, 201, 80, 22, 92, 190, 108, 251, 109, 27, 117, 187, 119, 61, 124, 100, 124, 121, 138, 194, 138, 30, 88, 190, 89, 22, 94, 119, 99, 82, 114, 138, 117, 107, 119, 220, 138, 188, 140, 18, 143, 243, 94, 116, 102, 248, 109, 125, 128, 193, 131, 203, 138, 81, 151, 214, 155, 0, 250, 67, 82, 255, 102, 149, 109, 239, 110, 224, 125, 230, 138, 46, 144, 94, 144, 212, 154, 29, 82, 127, 82, 232, 84, 148, 97, 132, 98, 219, 98, 162, 104, 18, 105, 90, 105, 53, 106, 146, 112, 38, 113, 93, 120, 1, 121, 14, 121, 210, 121, 13, 122, 150, 128, 120, 130, 213, 130, 73, 131, 73, 133, 130, 140, 133, 141, 98, 145, 139, 145, 174, 145, 195, 79, 209, 86, 237, 113, 215, 119, 0, 135, 248, 137, 248, 91, 214, 95, 81, 103, 168, 144, 226, 83, 90, 88, 245, 91, 164, 96, 129, 97, 96, 100, 61, 126, 112, 128, 37, 133, 131, 146, 174, 100, 172, 80, 20, 93, 0, 103, 156, 88, 189, 98, 168, 99, 14, 105, 120, 105, 30, 106, 107, 110, 186, 118, 203, 121, 187, 130, 41, 132, 207, 138, 168, 141, 253, 143, 18, 145, 75, 145, 156, 145, 16, 147, 24, 147, 154, 147, 219, 150, 54, 154, 13, 156, 17, 78, 92, 117, 93, 121, 250, 122, 81, 123, 201, 123, 46, 126, 196, 132, 89, 142, 116, 142, 248, 142, 16, 144, 37, 102, 63, 105, 67, 116, 250, 81, 46, 103, 220, 158, 69, 81, 224, 95, 150, 108, 242, 135, 93, 136, 119, 136, 180, 96, 181, 129, 3, 132, 5, 141, 214, 83, 57, 84, 52, 86, 54, 90, 49, 92, 138, 112, 224, 127, 90, 128, 6, 129, 237, 129, 163, 141, 137, 145, 95, 154, 242, 157, 116, 80, 196, 78, 160, 83, 251, 96, 44, 110, 100, 92, 136, 79, 36, 80, 228, 85, 217, 92, 95, 94, 101, 96, 148, 104, 187, 108, 196, 109, 190, 113, 212, 117, 244, 117, 97, 118, 26, 122, 73, 122, 199, 125, 251, 125, 110, 127, 244, 129, 169, 134, 28, 143, 201, 150, 179, 153, 82, 159, 71, 82, 197, 82, 237, 152, 170, 137, 3, 78, 210, 103, 6, 111, 181, 79, 226, 91, 149, 103, 136, 108, 120, 109, 27, 116, 39, 120, 221, 145, 124, 147, 196, 135, 228, 121, 49, 122, 235, 95, 214, 78, 164, 84, 62, 85, 174, 88, 165, 89, 240, 96, 83, 98, 214, 98, 54, 103, 85, 105, 53, 130, 64, 150, 177, 153, 221, 153, 44, 80, 83, 83, 68, 85, 124, 87, 1, 250, 88, 98, 2, 250, 226, 100, 107, 102, 221, 103, 193, 111, 239, 111, 34, 116, 56, 116, 23, 138, 56, 148, 81, 84, 6, 86, 102, 87, 72, 95, 154, 97, 78, 107, 88, 112, 173, 112, 187, 125, 149, 138, 106, 89, 43, 129, 162, 99, 8, 119, 61, 128, 170, 140, 84, 88, 45, 100, 187, 105, 149, 91, 17, 94, 111, 110, 3, 250, 105, 133, 76, 81, 240, 83, 42, 89, 32, 96, 75, 97, 134, 107, 112, 108, 240, 108, 30, 123, 206, 128, 212, 130, 198, 141, 176, 144, 177, 152, 4, 250, 199, 100, 164, 111, 145, 100, 4, 101, 78, 81, 16, 84, 31, 87, 14, 138, 95, 97, 118, 104, 5, 250, 219, 117, 82, 123, 113, 125, 26, 144, 6, 88, 204, 105, 127, 129, 42, 137, 0, 144, 57, 152, 120, 80, 87, 89, 172, 89, 149, 98, 15, 144, 42, 155, 93, 97, 121, 114, 214, 149, 97, 87, 70, 90, 244, 93, 138, 98, 173, 100, 250, 100, 119, 103, 226, 108, 62, 109, 44, 114, 54, 116, 52, 120, 119, 127, 173, 130, 219, 141, 23, 152, 36, 82, 66, 87, 127, 103, 72, 114, 227, 116, 169, 140, 166, 143, 17, 146, 42, 150, 107, 81, 237, 83, 76, 99, 105, 79, 4, 85, 150, 96, 87, 101, 155, 108, 127, 109, 76, 114, 253, 114, 23, 122, 135, 137, 157, 140, 109, 95, 142, 111, 249, 112, 168, 129, 14, 97, 191, 79, 79, 80, 65, 98, 71, 114, 199, 123, 232, 125, 233, 127, 77, 144, 173, 151, 25, 154, 182, 140, 106, 87, 115, 94, 176, 103, 13, 132, 85, 138, 32, 84, 22, 91, 99, 94, 226, 94, 10, 95, 131, 101, 186, 128, 61, 133, 137, 149, 91, 150, 72, 79, 5, 83, 13, 83, 15, 83, 134, 84, 250, 84, 3, 87, 3, 94, 22, 96, 155, 98, 177, 98, 85, 99, 6, 250, 225, 108, 102, 109, 177, 117, 50, 120, 222, 128, 47, 129, 222, 130, 97, 132, 178, 132, 141, 136, 18, 137, 11, 144, 234, 146, 253, 152, 145, 155, 69, 94, 180, 102, 221, 102, 17, 112, 6, 114, 7, 250, 245, 79, 125, 82, 106, 95, 83, 97, 83, 103, 25, 106, 2, 111, 226, 116, 104, 121, 104, 136, 121, 140, 199, 152, 196, 152, 67, 154, 193, 84, 31, 122, 83, 105, 247, 138, 74, 140, 168, 152, 174, 153, 124, 95, 171, 98, 178, 117, 174, 118, 171, 136, 127, 144, 66, 150, 57, 83, 60, 95, 197, 95, 204, 108, 204, 115, 98, 117, 139, 117, 70, 123, 254, 130, 157, 153, 79, 78, 60, 144, 11, 78, 85, 79, 166, 83, 15, 89, 200, 94, 48, 102, 179, 108, 85, 116, 119, 131, 102, 135, 192, 140, 80, 144, 30, 151, 21, 156, 209, 88, 120, 91, 80, 134, 20, 139, 180, 157, 210, 91, 104, 96, 141, 96, 241, 101, 87, 108, 34, 111, 163, 111, 26, 112, 85, 127, 240, 127, 145, 149, 146, 149, 80, 150, 211, 151, 114, 82, 68, 143, 253, 81, 43, 84, 184, 84, 99, 85, 138, 85, 187, 106, 181, 109, 216, 125, 102, 130, 156, 146, 119, 150, 121, 158, 8, 84, 200, 84, 210, 118, 228, 134, 164, 149, 212, 149, 92, 150, 162, 78, 9, 79, 238, 89, 230, 90, 247, 93, 82, 96, 151, 98, 109, 103, 65, 104, 134, 108, 47, 110, 56, 127, 155, 128, 42, 130, 8, 250, 9, 250, 5, 152, 165, 78, 85, 80, 179, 84, 147, 87, 90, 89, 105, 91, 179, 91, 200, 97, 119, 105, 119, 109, 35, 112, 249, 135, 227, 137, 114, 138, 231, 138, 130, 144, 237, 153, 184, 154, 190, 82, 56, 104, 22, 80, 120, 94, 79, 103, 71, 131, 76, 136, 171, 78, 17, 84, 174, 86, 230, 115, 21, 145, 255, 151, 9, 153, 87, 153, 153, 153, 83, 86, 159, 88, 91, 134, 49, 138, 178, 97, 246, 106, 123, 115, 210, 142, 71, 107, 170, 150, 87, 154, 85, 89, 0, 114, 107, 141, 105, 151, 212, 79, 244, 92, 38, 95, 248, 97, 91, 102, 235, 108, 171, 112, 132, 115, 185, 115, 254, 115, 41, 119, 77, 119, 67, 125, 98, 125, 35, 126, 55, 130, 82, 136, 10, 250, 226, 140, 73, 146, 111, 152, 81, 91, 116, 122, 64, 136, 1, 152, 204, 90, 224, 79, 84, 83, 62, 89, 253, 92, 62, 99, 121, 109, 249, 114, 5, 129, 7, 129, 162, 131, 207, 146, 48, 152, 168, 78, 68, 81, 17, 82, 139, 87, 98, 95, 194, 108, 206, 110, 5, 112, 80, 112, 175, 112, 146, 113, 233, 115, 105, 116, 74, 131, 162, 135, 97, 136, 8, 144, 162, 144, 163, 147, 168, 153, 110, 81, 87, 95, 224, 96, 103, 97, 179, 102, 89, 133, 74, 142, 175, 145, 139, 151, 78, 78, 146, 78, 124, 84, 213, 88, 250, 88, 125, 89, 181, 92, 39, 95, 54, 98, 72, 98, 10, 102, 103, 102, 235, 107, 105, 109, 207, 109, 86, 110, 248, 110, 148, 111, 224, 111, 233, 111, 93, 112, 208, 114, 37, 116, 90, 116, 224, 116, 147, 118, 92, 121, 202, 124, 30, 126, 225, 128, 166, 130, 107, 132, 191, 132, 78, 134, 95, 134, 116, 135, 119, 139, 106, 140, 172, 147, 0, 152, 101, 152, 209, 96, 22, 98, 119, 145, 90, 90, 15, 102, 247, 109, 62, 110, 63, 116, 66, 155, 253, 95, 218, 96, 15, 123, 196, 84, 24, 95, 94, 108, 211, 108, 42, 109, 216, 112, 5, 125, 121, 134, 12, 138, 59, 157, 22, 83, 140, 84, 5, 91, 58, 106, 107, 112, 117, 117, 141, 121, 190, 121, 177, 130, 239, 131, 113, 138, 65, 139, 168, 140, 116, 151, 11, 250, 244, 100, 43, 101, 186, 120, 187, 120, 107, 122, 56, 78, 154, 85, 80, 89, 166, 91, 123, 94, 163, 96, 219, 99, 97, 107, 101, 102, 83, 104, 25, 110, 101, 113, 176, 116, 8, 125, 132, 144, 105, 154, 37, 156, 59, 109, 209, 110, 62, 115, 65, 140, 202, 149, 240, 81, 76, 94, 168, 95, 77, 96, 246, 96, 48, 97, 76, 97, 67, 102, 68, 102, 165, 105, 193, 108, 95, 110, 201, 110, 98, 111, 76, 113, 156, 116, 135, 118, 193, 123, 39, 124, 82, 131, 87, 135, 81, 144, 141, 150, 195, 158, 47, 83, 222, 86, 251, 94, 138, 95, 98, 96, 148, 96, 247, 97, 102, 102, 3, 103, 156, 106, 238, 109, 174, 111, 112, 112, 106, 115, 106, 126, 190, 129, 52, 131, 212, 134, 168, 138, 196, 140, 131, 82, 114, 115, 150, 91, 107, 106, 4, 148, 238, 84, 134, 86, 93, 91, 72, 101, 133, 101, 201, 102, 159, 104, 141, 109, 198, 109, 59, 114, 180, 128, 117, 145, 77, 154, 175, 79, 25, 80, 154, 83, 14, 84, 60, 84, 137, 85, 197, 85, 63, 94, 140, 95, 61, 103, 102, 113, 221, 115, 5, 144, 219, 82, 243, 82, 100, 88, 206, 88, 4, 113, 143, 113, 251, 113, 176, 133, 19, 138, 136, 102, 168, 133, 167, 85, 132, 102, 74, 113, 49, 132, 73, 83, 153, 85, 193, 107, 89, 95, 189, 95, 238, 99, 137, 102, 71, 113, 241, 138, 29, 143, 190, 158, 17, 79, 58, 100, 203, 112, 102, 117, 103, 134, 100, 96, 78, 139, 248, 157, 71, 81, 246, 81, 8, 83, 54, 109, 248, 128, 209, 158, 21, 102, 35, 107, 152, 112, 213, 117, 3, 84, 121, 92, 7, 125, 22, 138, 32, 107, 61, 107, 70, 107, 56, 84, 112, 96, 61, 109, 213, 127, 8, 130, 214, 80, 222, 81, 156, 85, 107, 86, 205, 86, 236, 89, 9, 91, 12, 94, 153, 97, 152, 97, 49, 98, 94, 102, 230, 102, 153, 113, 185, 113, 186, 113, 167, 114, 167, 121, 0, 122, 178, 127, 112, 138, 0, 0, 0, 0, 0, 0, 1, 0, 160, 0, 167, 0, 168, 0, 169, 0, 175, 0, 176, 0, 178, 0, 183, 0, 184, 0, 198, 0, 215, 0, 216, 0, 230, 0, 247, 0, 248, 0, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 1, 13, 1, 14, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 1, 46, 1, 47, 1, 48, 1, 49, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 74, 1, 75, 1, 76, 1, 77, 1, 80, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101, 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 1, 120, 1, 121, 1, 122, 1, 123, 1, 124, 1, 125, 1, 126, 1, 146, 1, 160, 1, 161, 1, 175, 1, 176, 1, 24, 2, 25, 2, 26, 2, 27, 2, 198, 2, 199, 2, 216, 2, 217, 2, 219, 2, 220, 2, 221, 2, 0, 3, 1, 3, 3, 3, 9, 3, 35, 3, 122, 3, 132, 3, 133, 3, 134, 3, 136, 3, 137, 3, 138, 3, 140, 3, 142, 3, 143, 3, 144, 3, 145, 3, 146, 3, 147, 3, 148, 3, 149, 3, 150, 3, 151, 3, 152, 3, 153, 3, 154, 3, 155, 3, 156, 3, 157, 3, 158, 3, 159, 3, 160, 3, 161, 3, 163, 3, 164, 3, 165, 3, 166, 3, 167, 3, 168, 3, 169, 3, 170, 3, 171, 3, 172, 3, 173, 3, 174, 3, 175, 3, 176, 3, 177, 3, 178, 3, 179, 3, 180, 3, 181, 3, 182, 3, 183, 3, 184, 3, 185, 3, 186, 3, 187, 3, 188, 3, 189, 3, 190, 3, 191, 3, 192, 3, 193, 3, 194, 3, 195, 3, 196, 3, 197, 3, 198, 3, 199, 3, 200, 3, 201, 3, 202, 3, 203, 3, 204, 3, 205, 3, 206, 3, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11, 4, 12, 4, 14, 4, 15, 4, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 81, 4, 82, 4, 83, 4, 84, 4, 85, 4, 86, 4, 87, 4, 88, 4, 89, 4, 90, 4, 91, 4, 92, 4, 94, 4, 95, 4, 144, 4, 145, 4, 176, 5, 177, 5, 178, 5, 179, 5, 180, 5, 181, 5, 182, 5, 183, 5, 184, 5, 185, 5, 187, 5, 188, 5, 189, 5, 190, 5, 191, 5, 192, 5, 193, 5, 194, 5, 195, 5, 208, 5, 209, 5, 210, 5, 211, 5, 212, 5, 213, 5, 214, 5, 215, 5, 216, 5, 217, 5, 218, 5, 219, 5, 220, 5, 221, 5, 222, 5, 223, 5, 224, 5, 225, 5, 226, 5, 227, 5, 228, 5, 229, 5, 230, 5, 231, 5, 232, 5, 233, 5, 234, 5, 240, 5, 241, 5, 242, 5, 243, 5, 244, 5, 12, 6, 27, 6, 31, 6, 33, 6, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40, 6, 41, 6, 42, 6, 43, 6, 44, 6, 45, 6, 46, 6, 47, 6, 48, 6, 49, 6, 50, 6, 51, 6, 52, 6, 53, 6, 54, 6, 55, 6, 56, 6, 57, 6, 58, 6, 64, 6, 65, 6, 66, 6, 67, 6, 68, 6, 69, 6, 70, 6, 71, 6, 72, 6, 73, 6, 74, 6, 75, 6, 76, 6, 77, 6, 78, 6, 79, 6, 80, 6, 81, 6, 82, 6, 121, 6, 126, 6, 134, 6, 136, 6, 145, 6, 152, 6, 169, 6, 175, 6, 186, 6, 190, 6, 193, 6, 210, 6, 1, 14, 2, 14, 3, 14, 4, 14, 5, 14, 6, 14, 7, 14, 8, 14, 9, 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, 14, 16, 14, 17, 14, 18, 14, 19, 14, 20, 14, 21, 14, 22, 14, 23, 14, 24, 14, 25, 14, 26, 14, 27, 14, 28, 14, 29, 14, 30, 14, 31, 14, 32, 14, 33, 14, 34, 14, 35, 14, 36, 14, 37, 14, 38, 14, 39, 14, 40, 14, 41, 14, 42, 14, 43, 14, 44, 14, 45, 14, 46, 14, 47, 14, 48, 14, 49, 14, 50, 14, 51, 14, 52, 14, 53, 14, 54, 14, 55, 14, 56, 14, 57, 14, 58, 14, 63, 14, 64, 14, 65, 14, 66, 14, 67, 14, 68, 14, 69, 14, 70, 14, 71, 14, 72, 14, 73, 14, 74, 14, 75, 14, 76, 14, 77, 14, 78, 14, 79, 14, 80, 14, 81, 14, 82, 14, 83, 14, 84, 14, 85, 14, 86, 14, 87, 14, 88, 14, 89, 14, 90, 14, 91, 14, 2, 30, 3, 30, 10, 30, 11, 30, 30, 30, 31, 30, 64, 30, 65, 30, 86, 30, 87, 30, 96, 30, 97, 30, 106, 30, 107, 30, 128, 30, 129, 30, 130, 30, 131, 30, 132, 30, 133, 30, 242, 30, 243, 30, 12, 32, 13, 32, 14, 32, 15, 32, 19, 32, 20, 32, 21, 32, 23, 32, 24, 32, 25, 32, 26, 32, 28, 32, 29, 32, 30, 32, 32, 32, 33, 32, 34, 32, 38, 32, 48, 32, 57, 32, 58, 32, 170, 32, 171, 32, 172, 32, 175, 32, 22, 33, 34, 33, 25, 34, 26, 34, 72, 34, 100, 34, 101, 34, 32, 35, 33, 35, 0, 37, 2, 37, 12, 37, 16, 37, 20, 37, 24, 37, 28, 37, 36, 37, 44, 37, 52, 37, 60, 37, 80, 37, 81, 37, 82, 37, 83, 37, 84, 37, 85, 37, 86, 37, 87, 37, 88, 37, 89, 37, 90, 37, 91, 37, 92, 37, 93, 37, 94, 37, 95, 37, 96, 37, 97, 37, 98, 37, 99, 37, 100, 37, 101, 37, 102, 37, 103, 37, 104, 37, 105, 37, 106, 37, 107, 37, 108, 37, 128, 37, 132, 37, 136, 37, 140, 37, 144, 37, 145, 37, 146, 37, 147, 37, 160, 37, 0, 0, 2, 0, 0, 192, 3, 0, 0, 192, 4, 0, 0, 192, 5, 0, 0, 192, 6, 0, 0, 192, 7, 0, 0, 192, 8, 0, 0, 192, 9, 0, 0, 192, 10, 0, 0, 192, 11, 0, 0, 192, 12, 0, 0, 192, 13, 0, 0, 192, 14, 0, 0, 192, 15, 0, 0, 192, 16, 0, 0, 192, 17, 0, 0, 192, 18, 0, 0, 192, 19, 0, 0, 192, 20, 0, 0, 192, 21, 0, 0, 192, 22, 0, 0, 192, 23, 0, 0, 192, 24, 0, 0, 192, 25, 0, 0, 192, 26, 0, 0, 192, 27, 0, 0, 192, 28, 0, 0, 192, 29, 0, 0, 192, 30, 0, 0, 192, 31, 0, 0, 192, 0, 0, 0, 179, 1, 0, 0, 195, 2, 0, 0, 195, 3, 0, 0, 195, 4, 0, 0, 195, 5, 0, 0, 195, 6, 0, 0, 195, 7, 0, 0, 195, 8, 0, 0, 195, 9, 0, 0, 195, 10, 0, 0, 195, 11, 0, 0, 195, 12, 0, 0, 195, 13, 0, 0, 211, 14, 0, 0, 195, 15, 0, 0, 195, 0, 0, 12, 187, 1, 0, 12, 195, 2, 0, 12, 195, 3, 0, 12, 195, 4, 0, 12, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 0, 0, 0, 0, 0, 0, 40, 110, 117, 108, 108, 41, 0, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 0, 0, 0, 0, 0, 105, 110, 102, 0, 0, 0, 0, 0, 73, 78, 70, 0, 0, 0, 0, 0, 110, 97, 110, 0, 0, 0, 0, 0, 78, 65, 78, 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 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, 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, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 'i8', ALLOC_NONE, Runtime.GLOBAL_BASE + 127772 ); 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 _emscripten_get_now() { if (!_emscripten_get_now.actual) { if (ENVIRONMENT_IS_NODE) { _emscripten_get_now.actual = function _emscripten_get_now_actual() { var t = process['hrtime'](); return t[0] * 1e3 + t[1] / 1e6; }; } else if (typeof dateNow !== 'undefined') { _emscripten_get_now.actual = dateNow; } else if (ENVIRONMENT_IS_WEB && window['performance'] && window['performance']['now']) { _emscripten_get_now.actual = function _emscripten_get_now_actual() { return window['performance']['now'](); }; } else { _emscripten_get_now.actual = Date.now; } } return _emscripten_get_now.actual(); } function _emscripten_get_now_is_monotonic() { // return whether emscripten_get_now is guaranteed monotonic; the Date.now // implementation is not :( return ( ENVIRONMENT_IS_NODE || typeof dateNow !== 'undefined' || (ENVIRONMENT_IS_WEB && window['performance'] && window['performance']['now']) ); } var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86 }; var ___errno_state = 0; function ___setErrNo(value) { // For convenient setting and returning of errno. HEAP32[___errno_state >> 2] = value; return value; } function _clock_gettime(clk_id, tp) { // int clock_gettime(clockid_t clk_id, struct timespec *tp); var now; if (clk_id === 0) { now = Date.now(); } else if (clk_id === 1 && _emscripten_get_now_is_monotonic()) { now = _emscripten_get_now(); } else { ___setErrNo(ERRNO_CODES.EINVAL); return -1; } HEAP32[tp >> 2] = (now / 1000) | 0; // seconds HEAP32[(tp + 4) >> 2] = ((now % 1000) * 1000 * 1000) | 0; // nanoseconds return 0; } Module['_i64Subtract'] = _i64Subtract; function ___assert_fail(condition, filename, line, func) { ABORT = true; throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); } Module['_memset'] = _memset; var ERRNO_MESSAGES = { 0: 'Success', 1: 'Not super-user', 2: 'No such file or directory', 3: 'No such process', 4: 'Interrupted system call', 5: 'I/O error', 6: 'No such device or address', 7: 'Arg list too long', 8: 'Exec format error', 9: 'Bad file number', 10: 'No children', 11: 'No more processes', 12: 'Not enough core', 13: 'Permission denied', 14: 'Bad address', 15: 'Block device required', 16: 'Mount device busy', 17: 'File exists', 18: 'Cross-device link', 19: 'No such device', 20: 'Not a directory', 21: 'Is a directory', 22: 'Invalid argument', 23: 'Too many open files in system', 24: 'Too many open files', 25: 'Not a typewriter', 26: 'Text file busy', 27: 'File too large', 28: 'No space left on device', 29: 'Illegal seek', 30: 'Read only file system', 31: 'Too many links', 32: 'Broken pipe', 33: 'Math arg out of domain of func', 34: 'Math result not representable', 35: 'File locking deadlock error', 36: 'File or path name too long', 37: 'No record locks available', 38: 'Function not implemented', 39: 'Directory not empty', 40: 'Too many symbolic links', 42: 'No message of desired type', 43: 'Identifier removed', 44: 'Channel number out of range', 45: 'Level 2 not synchronized', 46: 'Level 3 halted', 47: 'Level 3 reset', 48: 'Link number out of range', 49: 'Protocol driver not attached', 50: 'No CSI structure available', 51: 'Level 2 halted', 52: 'Invalid exchange', 53: 'Invalid request descriptor', 54: 'Exchange full', 55: 'No anode', 56: 'Invalid request code', 57: 'Invalid slot', 59: 'Bad font file fmt', 60: 'Device not a stream', 61: 'No data (for no delay io)', 62: 'Timer expired', 63: 'Out of streams resources', 64: 'Machine is not on the network', 65: 'Package not installed', 66: 'The object is remote', 67: 'The link has been severed', 68: 'Advertise error', 69: 'Srmount error', 70: 'Communication error on send', 71: 'Protocol error', 72: 'Multihop attempted', 73: 'Cross mount point (not really error)', 74: 'Trying to read unreadable message', 75: 'Value too large for defined data type', 76: 'Given log. name not unique', 77: 'f.d. invalid for this operation', 78: 'Remote address changed', 79: 'Can access a needed shared lib', 80: 'Accessing a corrupted shared lib', 81: '.lib section in a.out corrupted', 82: 'Attempting to link in too many libs', 83: 'Attempting to exec a shared library', 84: 'Illegal byte sequence', 86: 'Streams pipe error', 87: 'Too many users', 88: 'Socket operation on non-socket', 89: 'Destination address required', 90: 'Message too long', 91: 'Protocol wrong type for socket', 92: 'Protocol not available', 93: 'Unknown protocol', 94: 'Socket type not supported', 95: 'Not supported', 96: 'Protocol family not supported', 97: 'Address family not supported by protocol family', 98: 'Address already in use', 99: 'Address not available', 100: 'Network interface is not configured', 101: 'Network is unreachable', 102: 'Connection reset by network', 103: 'Connection aborted', 104: 'Connection reset by peer', 105: 'No buffer space available', 106: 'Socket is already connected', 107: 'Socket is not connected', 108: "Can't send after socket shutdown", 109: 'Too many references', 110: 'Connection timed out', 111: 'Connection refused', 112: 'Host is down', 113: 'Host is unreachable', 114: 'Socket already connected', 115: 'Connection already in progress', 116: 'Stale file handle', 122: 'Quota exceeded', 123: 'No medium (in tape drive)', 125: 'Operation canceled', 130: 'Previous owner died', 131: 'State not recoverable' }; var PATH = { splitPath: function(filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: function(parts, allowAboveRoot) { // if the path tries to go above the root, `up` ends up > 0 var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === '.') { parts.splice(i, 1); } else if (last === '..') { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } // if the path is allowed to go above the root, restore leading ..s if (allowAboveRoot) { for (; up--; up) { parts.unshift('..'); } } return parts; }, normalize: function(path) { var isAbsolute = path.charAt(0) === '/', trailingSlash = path.substr(-1) === '/'; // Normalize the path path = PATH.normalizeArray( path.split('/').filter(function(p) { return !!p; }), !isAbsolute ).join('/'); if (!path && !isAbsolute) { path = '.'; } if (path && trailingSlash) { path += '/'; } return (isAbsolute ? '/' : '') + path; }, dirname: function(path) { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { // No dirname whatsoever return '.'; } if (dir) { // It has a dirname, strip trailing slash dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: function(path) { // EMSCRIPTEN return '/'' for '/', not an empty string if (path === '/') return '/'; var lastSlash = path.lastIndexOf('/'); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, extname: function(path) { return PATH.splitPath(path)[3]; }, join: function() { var paths = Array.prototype.slice.call(arguments, 0); return PATH.normalize(paths.join('/')); }, join2: function(l, r) { return PATH.normalize(l + '/' + r); }, resolve: function() { var resolvedPath = '', resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : FS.cwd(); // Skip empty and invalid entries if (typeof path !== 'string') { throw new TypeError('Arguments to path.resolve must be strings'); } else if (!path) { return ''; // an invalid portion invalidates the whole thing } resolvedPath = path + '/' + resolvedPath; resolvedAbsolute = path.charAt(0) === '/'; } // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails) resolvedPath = PATH.normalizeArray( resolvedPath.split('/').filter(function(p) { return !!p; }), !resolvedAbsolute ).join('/'); return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'; }, relative: function(from, to) { from = PATH.resolve(from).substr(1); to = PATH.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== '') break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== '') break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split('/')); var toParts = trim(to.split('/')); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push('..'); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join('/'); } }; var TTY = { ttys: [], init: function() { // https://github.com/kripken/emscripten/pull/1555 // if (ENVIRONMENT_IS_NODE) { // // currently, FS.init does not distinguish if process.stdin is a file or TTY // // device, it always assumes it's a TTY device. because of this, we're forcing // // process.stdin to UTF8 encoding to at least make stdin reading compatible // // with text files until FS.init can be refactored. // process['stdin']['setEncoding']('utf8'); // } }, shutdown: function() { // https://github.com/kripken/emscripten/pull/1555 // if (ENVIRONMENT_IS_NODE) { // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call // process['stdin']['pause'](); // } }, register: function(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops: ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open: function(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } stream.tty = tty; stream.seekable = false; }, close: function(stream) { // flush any pending line data if (stream.tty.output.length) { stream.tty.ops.put_char(stream.tty, 10); } }, read: function(stream, buffer, offset, length, pos /* ignored */) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } for (var i = 0; i < length; i++) { try { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; } }, default_tty_ops: { get_char: function(tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { result = process['stdin']['read'](); if (!result) { if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) { return null; // EOF } return undefined; // no data available } } else if (typeof window != 'undefined' && typeof window.prompt == 'function') { // Browser. result = window.prompt('Input: '); // returns null on cancel if (result !== null) { result += '\n'; } } else if (typeof readline == 'function') { // Command line. result = readline(); if (result !== null) { result += '\n'; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); }, put_char: function(tty, val) { if (val === null || val === 10) { Module['print'](tty.output.join('')); tty.output = []; } else { tty.output.push(TTY.utf8.processCChar(val)); } } }, default_tty1_ops: { put_char: function(tty, val) { if (val === null || val === 10) { Module['printErr'](tty.output.join('')); tty.output = []; } else { tty.output.push(TTY.utf8.processCChar(val)); } } } }; var MEMFS = { ops_table: null, mount: function(mount) { return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); }, createNode: function(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { // no supported throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.buffer.byteLength which gives the whole capacity. // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); // add the new node to the parent if (parent) { parent.contents[name] = node; } return node; }, getFileDataAsRegularArray: function(node) { if (node.contents && node.contents.subarray) { var arr = []; for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); return arr; // Returns a copy of the original data. } return node.contents; // No-op, the file contents are already in a JS array. Return as-is. }, getFileDataAsTypedArray: function(node) { if (!node.contents) return new Uint8Array(); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. return new Uint8Array(node.contents); }, expandFileStorage: function(node, newCapacity) { // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to // increase the size. if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { node.contents = MEMFS.getFileDataAsRegularArray(node); node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. } if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. var prevCapacity = node.contents ? node.contents.buffer.byteLength : 0; if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to // avoid overshooting the allocation cap by a very large margin. var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); // Allocate new storage. if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. return; } // Not using a typed array to back the file storage. Use a standard JS array instead. if (!node.contents && newCapacity > 0) node.contents = []; while (node.contents.length < newCapacity) node.contents.push(0); }, resizeFileStorage: function(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; // Fully decommit when requesting a resize to zero. node.usedBytes = 0; return; } if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. var oldContents = node.contents; node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. if (oldContents) { node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. } node.usedBytes = newSize; return; } // Backing with a JS array. if (!node.contents) node.contents = []; if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0); node.usedBytes = newSize; }, node_ops: { getattr: function(node) { var attr = {}; // device numbers reuse inode numbers. attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), // but this is not required by the standard. attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr: function(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup: function(parent, name) { throw FS.genericErrors[ERRNO_CODES.ENOENT]; }, mknod: function(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename: function(old_node, new_dir, new_name) { // if we're overwriting a directory at new_name, make sure it's empty. if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } } } // do the internal rewiring delete old_node.parent.contents[old_node.name]; old_node.name = new_name; new_dir.contents[new_name] = old_node; old_node.parent = new_dir; }, unlink: function(parent, name) { delete parent.contents[name]; }, rmdir: function(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } delete parent.contents[name]; }, readdir: function(node) { var entries = ['.', '..']; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); node.link = oldpath; return node; }, readlink: function(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return node.link; } }, stream_ops: { read: function(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); assert(size >= 0); if (size > 8 && contents.subarray) { // non-trivial, and typed array buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size; }, write: function(stream, buffer, offset, length, position, canOwn) { if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? if (canOwn) { // Can we just reuse the buffer we are given? node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? node.contents.set(buffer.subarray(offset, offset + length), position); return length; } } // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. else for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. } node.usedBytes = Math.max(node.usedBytes, position + length); return length; }, llseek: function(stream, offset, whence) { var position = offset; if (whence === 1) { // SEEK_CUR. position += stream.position; } else if (whence === 2) { // SEEK_END. if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } stream.ungotten = []; stream.position = position; return position; }, allocate: function(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); }, mmap: function(stream, buffer, offset, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } var ptr; var allocated; var contents = stream.node.contents; // Only make a new copy when MAP_PRIVATE is specified. if (!(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer)) { // We can't emulate MAP_SHARED when the file is not backed by the buffer // we're mapping to (e.g. the HEAP buffer). allocated = false; ptr = contents.byteOffset; } else { // Try to avoid unnecessary slices. if (position > 0 || position + length < stream.node.usedBytes) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call(contents, position, position + length); } } allocated = true; ptr = _malloc(length); if (!ptr) { throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); } buffer.set(contents, ptr); } return { ptr: ptr, allocated: allocated }; } } }; var IDBFS = { dbs: {}, indexedDB: function() { if (typeof indexedDB !== 'undefined') return indexedDB; var ret = null; if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; assert(ret, 'IDBFS used, but indexedDB not supported'); return ret; }, DB_VERSION: 21, DB_STORE_NAME: 'FILE_DATA', mount: function(mount) { // reuse all of the core MEMFS functionality return MEMFS.mount.apply(null, arguments); }, syncfs: function(mount, populate, callback) { IDBFS.getLocalSet(mount, function(err, local) { if (err) return callback(err); IDBFS.getRemoteSet(mount, function(err, remote) { if (err) return callback(err); var src = populate ? remote : local; var dst = populate ? local : remote; IDBFS.reconcile(src, dst, callback); }); }); }, getDB: function(name, callback) { // check the cache first var db = IDBFS.dbs[name]; if (db) { return callback(null, db); } var req; try { req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); } catch (e) { return callback(e); } req.onupgradeneeded = function(e) { var db = e.target.result; var transaction = e.target.transaction; var fileStore; if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); } else { fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); } fileStore.createIndex('timestamp', 'timestamp', { unique: false }); }; req.onsuccess = function() { db = req.result; // add to the cache IDBFS.dbs[name] = db; callback(null, db); }; req.onerror = function() { callback(this.error); }; }, getLocalSet: function(mount, callback) { var entries = {}; function isRealDir(p) { return p !== '.' && p !== '..'; } function toAbsolute(root) { return function(p) { return PATH.join2(root, p); }; } var check = FS.readdir(mount.mountpoint) .filter(isRealDir) .map(toAbsolute(mount.mountpoint)); while (check.length) { var path = check.pop(); var stat; try { stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { check.push.apply( check, FS.readdir(path) .filter(isRealDir) .map(toAbsolute(path)) ); } entries[path] = { timestamp: stat.mtime }; } return callback(null, { type: 'local', entries: entries }); }, getRemoteSet: function(mount, callback) { var entries = {}; IDBFS.getDB(mount.mountpoint, function(err, db) { if (err) return callback(err); var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); transaction.onerror = function() { callback(this.error); }; var store = transaction.objectStore(IDBFS.DB_STORE_NAME); var index = store.index('timestamp'); index.openKeyCursor().onsuccess = function(event) { var cursor = event.target.result; if (!cursor) { return callback(null, { type: 'remote', db: db, entries: entries }); } entries[cursor.primaryKey] = { timestamp: cursor.key }; cursor.continue(); }; }); }, loadLocalEntry: function(path, callback) { var stat, node; try { var lookup = FS.lookupPath(path); node = lookup.node; stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { return callback(null, { timestamp: stat.mtime, mode: stat.mode }); } else if (FS.isFile(stat.mode)) { // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. node.contents = MEMFS.getFileDataAsTypedArray(node); return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); } else { return callback(new Error('node type not supported')); } }, storeLocalEntry: function(path, entry, callback) { try { if (FS.isDir(entry.mode)) { FS.mkdir(path, entry.mode); } else if (FS.isFile(entry.mode)) { FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); } else { return callback(new Error('node type not supported')); } FS.chmod(path, entry.mode); FS.utime(path, entry.timestamp, entry.timestamp); } catch (e) { return callback(e); } callback(null); }, removeLocalEntry: function(path, callback) { try { var lookup = FS.lookupPath(path); var stat = FS.stat(path); if (FS.isDir(stat.mode)) { FS.rmdir(path); } else if (FS.isFile(stat.mode)) { FS.unlink(path); } } catch (e) { return callback(e); } callback(null); }, loadRemoteEntry: function(store, path, callback) { var req = store.get(path); req.onsuccess = function(event) { callback(null, event.target.result); }; req.onerror = function() { callback(this.error); }; }, storeRemoteEntry: function(store, path, entry, callback) { var req = store.put(entry, path); req.onsuccess = function() { callback(null); }; req.onerror = function() { callback(this.error); }; }, removeRemoteEntry: function(store, path, callback) { var req = store.delete(path); req.onsuccess = function() { callback(null); }; req.onerror = function() { callback(this.error); }; }, reconcile: function(src, dst, callback) { var total = 0; var create = []; Object.keys(src.entries).forEach(function(key) { var e = src.entries[key]; var e2 = dst.entries[key]; if (!e2 || e.timestamp > e2.timestamp) { create.push(key); total++; } }); var remove = []; Object.keys(dst.entries).forEach(function(key) { var e = dst.entries[key]; var e2 = src.entries[key]; if (!e2) { remove.push(key); total++; } }); if (!total) { return callback(null); } var errored = false; var completed = 0; var db = src.type === 'remote' ? src.db : dst.db; var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= total) { return callback(null); } } transaction.onerror = function() { done(this.error); }; // sort paths in ascending order so directory entries are created // before the files inside them create.sort().forEach(function(path) { if (dst.type === 'local') { IDBFS.loadRemoteEntry(store, path, function(err, entry) { if (err) return done(err); IDBFS.storeLocalEntry(path, entry, done); }); } else { IDBFS.loadLocalEntry(path, function(err, entry) { if (err) return done(err); IDBFS.storeRemoteEntry(store, path, entry, done); }); } }); // sort paths in descending order so files are deleted before their // parent directories remove .sort() .reverse() .forEach(function(path) { if (dst.type === 'local') { IDBFS.removeLocalEntry(path, done); } else { IDBFS.removeRemoteEntry(store, path, done); } }); } }; var NODEFS = { isWindows: false, staticInit: function() { NODEFS.isWindows = !!process.platform.match(/^win/); }, mount: function(mount) { assert(ENVIRONMENT_IS_NODE); return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); }, createNode: function(parent, name, mode, dev) { if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = FS.createNode(parent, name, mode); node.node_ops = NODEFS.node_ops; node.stream_ops = NODEFS.stream_ops; return node; }, getMode: function(path) { var stat; try { stat = fs.lstatSync(path); if (NODEFS.isWindows) { // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so // propagate write bits to execute bits. stat.mode = stat.mode | ((stat.mode & 146) >> 1); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return stat.mode; }, realPath: function(node) { var parts = []; while (node.parent !== node) { parts.push(node.name); node = node.parent; } parts.push(node.mount.opts.root); parts.reverse(); return PATH.join.apply(null, parts); }, flagsToPermissionStringMap: { 0: 'r', 1: 'r+', 2: 'r+', 64: 'r', 65: 'r+', 66: 'r+', 129: 'rx+', 193: 'rx+', 514: 'w+', 577: 'w', 578: 'w+', 705: 'wx', 706: 'wx+', 1024: 'a', 1025: 'a', 1026: 'a+', 1089: 'a', 1090: 'a+', 1153: 'ax', 1154: 'ax+', 1217: 'ax', 1218: 'ax+', 4096: 'rs', 4098: 'rs+' }, flagsToPermissionString: function(flags) { if (flags in NODEFS.flagsToPermissionStringMap) { return NODEFS.flagsToPermissionStringMap[flags]; } else { return flags; } }, node_ops: { getattr: function(node) { var path = NODEFS.realPath(node); var stat; try { stat = fs.lstatSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. // See http://support.microsoft.com/kb/140365 if (NODEFS.isWindows && !stat.blksize) { stat.blksize = 4096; } if (NODEFS.isWindows && !stat.blocks) { stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0; } return { dev: stat.dev, ino: stat.ino, mode: stat.mode, nlink: stat.nlink, uid: stat.uid, gid: stat.gid, rdev: stat.rdev, size: stat.size, atime: stat.atime, mtime: stat.mtime, ctime: stat.ctime, blksize: stat.blksize, blocks: stat.blocks }; }, setattr: function(node, attr) { var path = NODEFS.realPath(node); try { if (attr.mode !== undefined) { fs.chmodSync(path, attr.mode); // update the common node structure mode as well node.mode = attr.mode; } if (attr.timestamp !== undefined) { var date = new Date(attr.timestamp); fs.utimesSync(path, date, date); } if (attr.size !== undefined) { fs.truncateSync(path, attr.size); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, lookup: function(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); var mode = NODEFS.getMode(path); return NODEFS.createNode(parent, name, mode); }, mknod: function(parent, name, mode, dev) { var node = NODEFS.createNode(parent, name, mode, dev); // create the backing node for this in the fs root as well var path = NODEFS.realPath(node); try { if (FS.isDir(node.mode)) { fs.mkdirSync(path, node.mode); } else { fs.writeFileSync(path, '', { mode: node.mode }); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return node; }, rename: function(oldNode, newDir, newName) { var oldPath = NODEFS.realPath(oldNode); var newPath = PATH.join2(NODEFS.realPath(newDir), newName); try { fs.renameSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, unlink: function(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.unlinkSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, rmdir: function(parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.rmdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readdir: function(node) { var path = NODEFS.realPath(node); try { return fs.readdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, symlink: function(parent, newName, oldPath) { var newPath = PATH.join2(NODEFS.realPath(parent), newName); try { fs.symlinkSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, readlink: function(node) { var path = NODEFS.realPath(node); try { return fs.readlinkSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } } }, stream_ops: { open: function(stream) { var path = NODEFS.realPath(stream.node); try { if (FS.isFile(stream.node.mode)) { stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, close: function(stream) { try { if (FS.isFile(stream.node.mode) && stream.nfd) { fs.closeSync(stream.nfd); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }, read: function(stream, buffer, offset, length, position) { // FIXME this is terrible. var nbuffer = new Buffer(length); var res; try { res = fs.readSync(stream.nfd, nbuffer, 0, length, position); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } if (res > 0) { for (var i = 0; i < res; i++) { buffer[offset + i] = nbuffer[i]; } } return res; }, write: function(stream, buffer, offset, length, position) { // FIXME this is terrible. var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); var res; try { res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return res; }, llseek: function(stream, offset, whence) { var position = offset; if (whence === 1) { // SEEK_CUR. position += stream.position; } else if (whence === 2) { // SEEK_END. if (FS.isFile(stream.node.mode)) { try { var stat = fs.fstatSync(stream.nfd); position += stat.size; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } stream.position = position; return position; } } }; var _stdin = allocate(1, 'i32*', ALLOC_STATIC); var _stdout = allocate(1, 'i32*', ALLOC_STATIC); var _stderr = allocate(1, 'i32*', ALLOC_STATIC); function _fflush(stream) { // int fflush(FILE *stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html // we don't currently perform any user-space buffering of data } var FS = { root: null, mounts: [], devices: [null], streams: [], nextInode: 1, nameTable: null, currentPath: '/', initialized: false, ignorePermissions: true, trackingDelegate: {}, tracking: { openFlags: { READ: 1, WRITE: 2 } }, ErrnoError: null, genericErrors: {}, handleFSError: function(e) { if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); return ___setErrNo(e.errno); }, lookupPath: function(path, opts) { path = PATH.resolve(FS.cwd(), path); opts = opts || {}; if (!path) return { path: '', node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; for (var key in defaults) { if (opts[key] === undefined) { opts[key] = defaults[key]; } } if (opts.recurse_count > 8) { // max recursive lookup of 8 throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } // split the path var parts = PATH.normalizeArray( path.split('/').filter(function(p) { return !!p; }), false ); // start at the root var current = FS.root; var current_path = '/'; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { // stop resolving break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); // jump to the mount's root node if this is a mountpoint if (FS.isMountpoint(current)) { if (!islast || (islast && opts.follow_mount)) { current = current.mounted.root; } } // by default, lookupPath will not follow a symlink if it is the final path component. // setting opts.follow = true will override this behavior. if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); current = lookup.node; if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } } } } return { path: current_path, node: current }; }, getPath: function(node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== '/' ? mount + '/' + path : mount + path; } path = path ? node.name + '/' + path : node.name; node = node.parent; } }, hashName: function(parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } return ((parentid + hash) >>> 0) % FS.nameTable.length; }, hashAddNode: function(node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode: function(node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode: function(parent, name) { var err = FS.mayLookup(parent); if (err) { throw new FS.ErrnoError(err, parent); } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } // if we failed to find it in the cache, call into the VFS return FS.lookup(parent, name); }, createNode: function(parent, name, mode, rdev) { if (!FS.FSNode) { FS.FSNode = function(parent, name, mode, rdev) { if (!parent) { parent = this; // root node sets parent to itself } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; FS.FSNode.prototype = {}; // compatibility var readMode = 292 | 73; var writeMode = 146; // NOTE we must use Object.defineProperties instead of individual calls to // Object.defineProperty in order to make closure compiler happy Object.defineProperties(FS.FSNode.prototype, { read: { get: function() { return (this.mode & readMode) === readMode; }, set: function(val) { val ? (this.mode |= readMode) : (this.mode &= ~readMode); } }, write: { get: function() { return (this.mode & writeMode) === writeMode; }, set: function(val) { val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); } }, isFolder: { get: function() { return FS.isDir(this.mode); } }, isDevice: { get: function() { return FS.isChrdev(this.mode); } } }); } var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode: function(node) { FS.hashRemoveNode(node); }, isRoot: function(node) { return node === node.parent; }, isMountpoint: function(node) { return !!node.mounted; }, isFile: function(mode) { return (mode & 61440) === 32768; }, isDir: function(mode) { return (mode & 61440) === 16384; }, isLink: function(mode) { return (mode & 61440) === 40960; }, isChrdev: function(mode) { return (mode & 61440) === 8192; }, isBlkdev: function(mode) { return (mode & 61440) === 24576; }, isFIFO: function(mode) { return (mode & 61440) === 4096; }, isSocket: function(mode) { return (mode & 49152) === 49152; }, flagModes: { r: 0, rs: 1052672, 'r+': 2, w: 577, wx: 705, xw: 705, 'w+': 578, 'wx+': 706, 'xw+': 706, a: 1089, ax: 1217, xa: 1217, 'a+': 1090, 'ax+': 1218, 'xa+': 1218 }, modeStringToFlags: function(str) { var flags = FS.flagModes[str]; if (typeof flags === 'undefined') { throw new Error('Unknown file open mode: ' + str); } return flags; }, flagsToPermissionString: function(flag) { var accmode = flag & 2097155; var perms = ['r', 'w', 'rw'][accmode]; if (flag & 512) { perms += 'w'; } return perms; }, nodePermissions: function(node, perms) { if (FS.ignorePermissions) { return 0; } // return 0 if any user, group or owner bits are set. if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { return ERRNO_CODES.EACCES; } return 0; }, mayLookup: function(dir) { var err = FS.nodePermissions(dir, 'x'); if (err) return err; if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; return 0; }, mayCreate: function(dir, name) { try { var node = FS.lookupNode(dir, name); return ERRNO_CODES.EEXIST; } catch (e) {} return FS.nodePermissions(dir, 'wx'); }, mayDelete: function(dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var err = FS.nodePermissions(dir, 'wx'); if (err) { return err; } if (isdir) { if (!FS.isDir(node.mode)) { return ERRNO_CODES.ENOTDIR; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return ERRNO_CODES.EBUSY; } } else { if (FS.isDir(node.mode)) { return ERRNO_CODES.EISDIR; } } return 0; }, mayOpen: function(node, flags) { if (!node) { return ERRNO_CODES.ENOENT; } if (FS.isLink(node.mode)) { return ERRNO_CODES.ELOOP; } else if (FS.isDir(node.mode)) { if ( (flags & 2097155) !== 0 || // opening for write flags & 512 ) { return ERRNO_CODES.EISDIR; } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); }, MAX_OPEN_FDS: 4096, nextfd: function(fd_start, fd_end) { fd_start = fd_start || 0; fd_end = fd_end || FS.MAX_OPEN_FDS; for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(ERRNO_CODES.EMFILE); }, getStream: function(fd) { return FS.streams[fd]; }, createStream: function(stream, fd_start, fd_end) { if (!FS.FSStream) { FS.FSStream = function() {}; FS.FSStream.prototype = {}; // compatibility Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { return this.node; }, set: function(val) { this.node = val; } }, isRead: { get: function() { return (this.flags & 2097155) !== 1; } }, isWrite: { get: function() { return (this.flags & 2097155) !== 0; } }, isAppend: { get: function() { return this.flags & 1024; } } }); } // clone it, so we can return an instance of FSStream var newStream = new FS.FSStream(); for (var p in stream) { newStream[p] = stream[p]; } stream = newStream; var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream: function(fd) { FS.streams[fd] = null; }, getStreamFromPtr: function(ptr) { return FS.streams[ptr - 1]; }, getPtrForStream: function(stream) { return stream ? stream.fd + 1 : 0; }, chrdev_stream_ops: { open: function(stream) { var device = FS.getDevice(stream.node.rdev); // override node's stream ops with the device's stream.stream_ops = device.stream_ops; // forward the open call if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek: function() { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } }, major: function(dev) { return dev >> 8; }, minor: function(dev) { return dev & 0xff; }, makedev: function(ma, mi) { return (ma << 8) | mi; }, registerDevice: function(dev, ops) { FS.devices[dev] = { stream_ops: ops }; }, getDevice: function(dev) { return FS.devices[dev]; }, getMounts: function(mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs: function(populate, callback) { if (typeof populate === 'function') { callback = populate; populate = false; } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= mounts.length) { callback(null); } } // sync all mounts mounts.forEach(function(mount) { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount: function(type, opts, mountpoint) { var root = mountpoint === '/'; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); mountpoint = lookup.path; // use the absolute path node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } } var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] }; // create a root node for the fs var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { // set as a mountpoint node.mounted = mount; // add the new mount to the current mount's children if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount: function(mountpoint) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } // destroy the nodes for this mount, and all its child mounts var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach(function(hash) { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.indexOf(current.mount) !== -1) { FS.destroyNode(current); } current = next; } }); // no longer a mountpoint node.mounted = null; // remove this mount from the child mounts var idx = node.mount.mounts.indexOf(mount); assert(idx !== -1); node.mount.mounts.splice(idx, 1); }, lookup: function(parent, name) { return parent.node_ops.lookup(parent, name); }, mknod: function(path, mode, dev) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === '.' || name === '..') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.mayCreate(parent, name); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.mknod(parent, name, mode, dev); }, create: function(path, mode) { mode = mode !== undefined ? mode : 438 /* 0666 */; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir: function(path, mode) { mode = mode !== undefined ? mode : 511 /* 0777 */; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdev: function(path, mode, dev) { if (typeof dev === 'undefined') { dev = mode; mode = 438 /* 0666 */; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink: function(oldpath, newpath) { if (!PATH.resolve(oldpath)) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var newname = PATH.basename(newpath); var err = FS.mayCreate(parent, newname); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename: function(old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); // parents must exist var lookup, old_dir, new_dir; try { lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); // need to be part of the same mount if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(ERRNO_CODES.EXDEV); } // source must exist var old_node = FS.lookupNode(old_dir, old_name); // old path should not be an ancestor of the new path var relative = PATH.relative(old_path, new_dirname); if (relative.charAt(0) !== '.') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } // new path should not be an ancestor of the old path relative = PATH.relative(new_path, old_dirname); if (relative.charAt(0) !== '.') { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } // see if the new path already exists var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { // not fatal } // early out if nothing needs to change if (old_node === new_node) { return; } // we'll need to delete the old entry var isdir = FS.isDir(old_node.mode); var err = FS.mayDelete(old_dir, old_name, isdir); if (err) { throw new FS.ErrnoError(err); } // need delete permissions if we'll be overwriting. // need create permissions if new doesn't already exist. err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (err) { throw new FS.ErrnoError(err); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } // if we are going to change the parent, check write permissions if (new_dir !== old_dir) { err = FS.nodePermissions(old_dir, 'w'); if (err) { throw new FS.ErrnoError(err); } } try { if (FS.trackingDelegate['willMovePath']) { FS.trackingDelegate['willMovePath'](old_path, new_path); } } catch (e) { console.log("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message); } // remove the node from the lookup hash FS.hashRemoveNode(old_node); // do the underlying fs rename try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { // add the node back to the hash (in case node_ops.rename // changed its name) FS.hashAddNode(old_node); } try { if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); } catch (e) { console.log("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message); } }, rmdir: function(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, true); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate['willDeletePath']) { FS.trackingDelegate['willDeletePath'](path); } } catch (e) { console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); } catch (e) { console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message); } }, readdir: function(path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } return node.node_ops.readdir(node); }, unlink: function(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, false); if (err) { // POSIX says unlink should set EPERM, not EISDIR if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM; throw new FS.ErrnoError(err); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate['willDeletePath']) { FS.trackingDelegate['willDeletePath'](path); } } catch (e) { console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); } catch (e) { console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message); } }, readlink: function(path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return link.node_ops.readlink(link); }, stat: function(path, dontFollow) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return node.node_ops.getattr(node); }, lstat: function(path) { return FS.stat(path, true); }, chmod: function(path, mode, dontFollow) { var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { mode: (mode & 4095) | (node.mode & ~4095), timestamp: Date.now() }); }, lchmod: function(path, mode) { FS.chmod(path, mode, true); }, fchmod: function(fd, mode) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chmod(stream.node, mode); }, chown: function(path, uid, gid, dontFollow) { var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { timestamp: Date.now() // we ignore the uid / gid for now }); }, lchown: function(path, uid, gid) { FS.chown(path, uid, gid, true); }, fchown: function(fd, uid, gid) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chown(stream.node, uid, gid); }, truncate: function(path, len) { if (len < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.nodePermissions(node, 'w'); if (err) { throw new FS.ErrnoError(err); } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate: function(fd, len) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } FS.truncate(stream.node, len); }, utime: function(path, atime, mtime) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); }, open: function(path, flags, mode, fd_start, fd_end) { if (path === '') { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; if (flags & 64) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; if (typeof path === 'object') { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); node = lookup.node; } catch (e) { // ignore } } // perhaps we need to create the node var created = false; if (flags & 64) { if (node) { // if O_CREAT and O_EXCL are set, error out if the node already exists if (flags & 128) { throw new FS.ErrnoError(ERRNO_CODES.EEXIST); } } else { // node doesn't exist, try to create it node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } // can't truncate a device if (FS.isChrdev(node.mode)) { flags &= ~512; } // check permissions, if this is not a file we just created now (it is ok to // create and write to a file with read-only permissions; it is read-only // for later use) if (!created) { var err = FS.mayOpen(node, flags); if (err) { throw new FS.ErrnoError(err); } } // do truncation if necessary if (flags & 512) { FS.truncate(node, 0); } // we've already handled these, don't pass down to the underlying vfs flags &= ~(128 | 512); // register the stream with the filesystem var stream = FS.createStream( { node: node, path: FS.getPath(node), // we want the absolute path to the node flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, // used by the file family libc calls (fopen, fwrite, ferror, etc.) ungotten: [], error: false }, fd_start, fd_end ); // call the new stream's open function if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module['logReadFiles'] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; Module['printErr']('read file: ' + path); } } try { if (FS.trackingDelegate['onOpenFile']) { var trackingFlags = 0; if ((flags & 2097155) !== 1) { trackingFlags |= FS.tracking.openFlags.READ; } if ((flags & 2097155) !== 0) { trackingFlags |= FS.tracking.openFlags.WRITE; } FS.trackingDelegate['onOpenFile'](path, trackingFlags); } } catch (e) { console.log("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message); } return stream; }, close: function(stream) { try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } }, llseek: function(stream, offset, whence) { if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } return stream.stream_ops.llseek(stream, offset, whence); }, read: function(stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var seeking = true; if (typeof position === 'undefined') { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); if (!seeking) stream.position += bytesRead; return bytesRead; }, write: function(stream, buffer, offset, length, position, canOwn) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (stream.flags & 1024) { // seek to the end before writing in append mode FS.llseek(stream, 0, 2); } var seeking = true; if (typeof position === 'undefined') { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); if (!seeking) stream.position += bytesWritten; try { if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); } catch (e) { console.log("FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + e.message); } return bytesWritten; }, allocate: function(stream, offset, length) { if (offset < 0 || length <= 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } stream.stream_ops.allocate(stream, offset, length); }, mmap: function(stream, buffer, offset, length, position, prot, flags) { // TODO if PROT is PROT_WRITE, make sure we have write access if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EACCES); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); }, ioctl: function(stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile: function(path, opts) { opts = opts || {}; opts.flags = opts.flags || 'r'; opts.encoding = opts.encoding || 'binary'; if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === 'utf8') { ret = ''; var utf8 = new Runtime.UTF8Processor(); for (var i = 0; i < length; i++) { ret += utf8.processCChar(buf[i]); } } else if (opts.encoding === 'binary') { ret = buf; } FS.close(stream); return ret; }, writeFile: function(path, data, opts) { opts = opts || {}; opts.flags = opts.flags || 'w'; opts.encoding = opts.encoding || 'utf8'; if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var stream = FS.open(path, opts.flags, opts.mode); if (opts.encoding === 'utf8') { var utf8 = new Runtime.UTF8Processor(); var buf = new Uint8Array(utf8.processJSString(data)); FS.write(stream, buf, 0, buf.length, 0, opts.canOwn); } else if (opts.encoding === 'binary') { FS.write(stream, data, 0, data.length, 0, opts.canOwn); } FS.close(stream); }, cwd: function() { return FS.currentPath; }, chdir: function(path) { var lookup = FS.lookupPath(path, { follow: true }); if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } var err = FS.nodePermissions(lookup.node, 'x'); if (err) { throw new FS.ErrnoError(err); } FS.currentPath = lookup.path; }, createDefaultDirectories: function() { FS.mkdir('/tmp'); FS.mkdir('/home'); FS.mkdir('/home/web_user'); }, createDefaultDevices: function() { // create /dev FS.mkdir('/dev'); // setup /dev/null FS.registerDevice(FS.makedev(1, 3), { read: function() { return 0; }, write: function() { return 0; } }); FS.mkdev('/dev/null', FS.makedev(1, 3)); // setup /dev/tty and /dev/tty1 // stderr needs to print output using Module['printErr'] // so we register a second tty just for it. TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev('/dev/tty', FS.makedev(5, 0)); FS.mkdev('/dev/tty1', FS.makedev(6, 0)); // setup /dev/[u]random var random_device; if (typeof crypto !== 'undefined') { // for modern web browsers var randomBuffer = new Uint8Array(1); random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { // for nodejs random_device = function() { return require('crypto').randomBytes(1)[0]; }; } else { // default for ES5 platforms random_device = function() { return (Math.random() * 256) | 0; }; } FS.createDevice('/dev', 'random', random_device); FS.createDevice('/dev', 'urandom', random_device); // we're not going to emulate the actual shm device, // just create the tmp dirs that reside in it commonly FS.mkdir('/dev/shm'); FS.mkdir('/dev/shm/tmp'); }, createStandardStreams: function() { // TODO deprecate the old functionality of a single // input / output callback and that utilizes FS.createDevice // and instead require a unique set of stream ops // by default, we symlink the standard streams to the // default tty devices. however, if the standard streams // have been overwritten we create a unique device for // them instead. if (Module['stdin']) { FS.createDevice('/dev', 'stdin', Module['stdin']); } else { FS.symlink('/dev/tty', '/dev/stdin'); } if (Module['stdout']) { FS.createDevice('/dev', 'stdout', null, Module['stdout']); } else { FS.symlink('/dev/tty', '/dev/stdout'); } if (Module['stderr']) { FS.createDevice('/dev', 'stderr', null, Module['stderr']); } else { FS.symlink('/dev/tty1', '/dev/stderr'); } // open default streams for the stdin, stdout and stderr devices var stdin = FS.open('/dev/stdin', 'r'); HEAP32[_stdin >> 2] = FS.getPtrForStream(stdin); assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); var stdout = FS.open('/dev/stdout', 'w'); HEAP32[_stdout >> 2] = FS.getPtrForStream(stdout); assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); var stderr = FS.open('/dev/stderr', 'w'); HEAP32[_stderr >> 2] = FS.getPtrForStream(stderr); assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); }, ensureErrnoError: function() { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function(errno) { this.errno = errno; for (var key in ERRNO_CODES) { if (ERRNO_CODES[key] === errno) { this.code = key; break; } } }; this.setErrno(errno); this.message = ERRNO_MESSAGES[errno]; }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) [ERRNO_CODES.ENOENT].forEach(function(code) { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ''; }); }, staticInit: function() { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, '/'); FS.createDefaultDirectories(); FS.createDefaultDevices(); }, init: function(input, output, error) { assert( !FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)' ); FS.init.initialized = true; FS.ensureErrnoError(); // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here Module['stdin'] = input || Module['stdin']; Module['stdout'] = output || Module['stdout']; Module['stderr'] = error || Module['stderr']; FS.createStandardStreams(); }, quit: function() { FS.init.initialized = false; for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, getMode: function(canRead, canWrite) { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }, joinPath: function(parts, forceRelative) { var path = PATH.join.apply(null, parts); if (forceRelative && path[0] == '/') path = path.substr(1); return path; }, absolutePath: function(relative, base) { return PATH.resolve(base, relative); }, standardizePath: function(path) { return PATH.normalize(path); }, findObject: function(path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (ret.exists) { return ret.object; } else { ___setErrNo(ret.error); return null; } }, analyzePath: function(path, dontResolveLastLink) { // operate from within the context of the symlink's target try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); path = lookup.path; } catch (e) {} var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === '/'; } catch (e) { ret.error = e.errno; } return ret; }, createFolder: function(parent, name, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.mkdir(path, mode); }, createPath: function(parent, path, canRead, canWrite) { parent = typeof parent === 'string' ? parent : FS.getPath(parent); var parts = path.split('/').reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) { // ignore EEXIST } parent = current; } return current; }, createFile: function(parent, name, properties, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: function(parent, name, data, canRead, canWrite, canOwn) { var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data === 'string') { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } // make sure we can write to the file FS.chmod(node, mode | 146); var stream = FS.open(node, 'w'); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice: function(parent, name, input, output) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); // Create a fake device that a set of stream ops to emulate // the old behavior. FS.registerDevice(dev, { open: function(stream) { stream.seekable = false; }, close: function(stream) { // flush any pending line data if (output && output.buffer && output.buffer.length) { output(10); } }, read: function(stream, buffer, offset, length, pos /* ignored */) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function(stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; } }); return FS.mkdev(path, mode, dev); }, createLink: function(parent, name, target, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); return FS.symlink(target, path); }, forceLoadFile: function(obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; var success = true; if (typeof XMLHttpRequest !== 'undefined') { throw new Error( 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.' ); } else if (Module['read']) { // Command-line. try { // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as // read() will try to parse UTF8. obj.contents = intArrayFromString(Module['read'](obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { success = false; } } else { throw new Error('Cannot load without read() or XMLHttpRequest.'); } if (!success) ___setErrNo(ERRNO_CODES.EIO); return success; }, createLazyFile: function(parent, name, url, canRead, canWrite) { // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; // Loaded chunks. Index is the chunk number } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length - 1 || idx < 0) { return undefined; } var chunkOffset = idx % this.chunkSize; var chunkNum = (idx / this.chunkSize) | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { // Find length var xhr = new XMLHttpRequest(); xhr.open('HEAD', url, false); xhr.send(null); if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) throw new Error("Couldn't load " + url + '. Status: ' + xhr.status); var datalength = Number(xhr.getResponseHeader('Content-length')); var header; var hasByteServing = (header = xhr.getResponseHeader('Accept-Ranges')) && header === 'bytes'; var chunkSize = 1024 * 1024; // Chunk size in bytes if (!hasByteServing) chunkSize = datalength; // Function to get a range from the remote URL. var doXHR = function(from, to) { if (from > to) throw new Error('invalid range (' + from + ', ' + to + ') or no bytes requested!'); if (to > datalength - 1) throw new Error('only ' + datalength + ' bytes available! programmer error!'); // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); if (datalength !== chunkSize) xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to); // Some hints to the browser that we want binary data. if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; if (xhr.overrideMimeType) { xhr.overrideMimeType('text/plain; charset=x-user-defined'); } xhr.send(null); if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) throw new Error("Couldn't load " + url + '. Status: ' + xhr.status); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []); } else { return intArrayFromString(xhr.responseText || '', true); } }; var lazyArray = this; lazyArray.setDataGetter(function(chunkNum) { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; // including this byte end = Math.min(end, datalength - 1); // if datalength-1 is selected, this is the last block if (typeof lazyArray.chunks[chunkNum] === 'undefined') { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray.chunks[chunkNum] === 'undefined') throw new Error('doXHR failed!'); return lazyArray.chunks[chunkNum]; }); this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest !== 'undefined') { if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; var lazyArray = new LazyUint8Array(); Object.defineProperty(lazyArray, 'length', { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._length; } }); Object.defineProperty(lazyArray, 'chunkSize', { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; } }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url: url }; } var node = FS.createFile(parent, name, properties, canRead, canWrite); // This is a total hack, but I want to get this lazy file code out of the // core of MEMFS. If we want to keep this lazy file concept I feel it should // be its own thin LAZYFS proxying calls to MEMFS. if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } // Add a function that defers querying the file size until it is asked the first time. Object.defineProperty(node, 'usedBytes', { get: function() { return this.contents.length; } }); // override each stream op with one that tries to force load the lazy file first var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach(function(key) { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } return fn.apply(null, arguments); }; }); // use a custom read function stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); assert(size >= 0); if (contents.slice) { // normal array for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR buffer[offset + i] = contents.get(position + i); } } return size; }; node.stream_ops = stream_ops; return node; }, createPreloadedFile: function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) { Browser.init(); // TODO we should allow people to just pass in a complete filename instead // of parent and name being that we just join them anyways var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; function processData(byteArray) { function finish(byteArray) { if (!dontCreateFile) { FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); } if (onload) onload(); removeRunDependency('cp ' + fullname); } var handled = false; Module['preloadPlugins'].forEach(function(plugin) { if (handled) return; if (plugin['canHandle'](fullname)) { plugin['handle'](byteArray, fullname, finish, function() { if (onerror) onerror(); removeRunDependency('cp ' + fullname); }); handled = true; } }); if (!handled) finish(byteArray); } addRunDependency('cp ' + fullname); if (typeof url == 'string') { Browser.asyncLoad( url, function(byteArray) { processData(byteArray); }, onerror ); } else { processData(url); } }, indexedDB: function() { return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; }, DB_NAME: function() { return 'EM_FS_' + window.location.pathname; }, DB_VERSION: 20, DB_STORE_NAME: 'FILE_DATA', saveFilesToDB: function(paths, onload, onerror) { onload = onload || function() {}; onerror = onerror || function() {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { console.log('creating db'); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function(path) { var putRequest = files.put(FS.analyzePath(path).object.contents, path); putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, loadFilesFromDB: function(paths, onload, onerror) { onload = onload || function() {}; onerror = onerror || function() {}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; // no database to load from openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; try { var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); } catch (e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function(path) { var getRequest = files.get(path); getRequest.onsuccess = function getRequest_onsuccess() { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; } }; function _close(fildes) { // int close(int fildes); // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html var stream = FS.getStream(fildes); if (!stream) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } try { FS.close(stream); return 0; } catch (e) { FS.handleFSError(e); return -1; } } function _fsync(fildes) { // int fsync(int fildes); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html var stream = FS.getStream(fildes); if (stream) { // We write directly to the file system, so there's nothing to do here. return 0; } else { ___setErrNo(ERRNO_CODES.EBADF); 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 _fclose(stream) { // int fclose(FILE *stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html var fd = _fileno(stream); _fsync(fd); return _close(fd); } function _strerror_r(errnum, strerrbuf, buflen) { if (errnum in ERRNO_MESSAGES) { if (ERRNO_MESSAGES[errnum].length > buflen - 1) { return ___setErrNo(ERRNO_CODES.ERANGE); } else { var msg = ERRNO_MESSAGES[errnum]; writeAsciiToMemory(msg, strerrbuf); return 0; } } else { return ___setErrNo(ERRNO_CODES.EINVAL); } } function _strerror(errnum) { if (!_strerror.buffer) _strerror.buffer = _malloc(256); _strerror_r(errnum, _strerror.buffer, 256); return _strerror.buffer; } Module['_bitshift64Shl'] = _bitshift64Shl; function _abort() { Module['abort'](); } function _mkport() { throw 'TODO'; } var SOCKFS = { mount: function(mount) { // If Module['websocket'] has already been defined (e.g. for configuring // the subprotocol/url) use that, if not initialise it to a new object. Module['websocket'] = Module['websocket'] && 'object' === typeof Module['websocket'] ? Module['websocket'] : {}; // Add the Event registration mechanism to the exported websocket configuration // object so we can register network callbacks from native JavaScript too. // For more documentation see system/include/emscripten/emscripten.h Module['websocket']._callbacks = {}; Module['websocket']['on'] = function(event, callback) { if ('function' === typeof callback) { this._callbacks[event] = callback; } return this; }; Module['websocket'].emit = function(event, param) { if ('function' === typeof this._callbacks[event]) { this._callbacks[event].call(this, param); } }; // If debug is enabled register simple default logging callbacks for each Event. return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); }, createSocket: function(family, type, protocol) { var streaming = type == 1; if (protocol) { assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp } // create our internal socket structure var sock = { family: family, type: type, protocol: protocol, server: null, error: null, // Used in getsockopt for SOL_SOCKET/SO_ERROR test peers: {}, pending: [], recv_queue: [], sock_ops: SOCKFS.websocket_sock_ops }; // create the filesystem node to store the socket structure var name = SOCKFS.nextname(); var node = FS.createNode(SOCKFS.root, name, 49152, 0); node.sock = sock; // and the wrapping stream that enables library functions such // as read and write to indirectly interact with the socket var stream = FS.createStream({ path: name, node: node, flags: FS.modeStringToFlags('r+'), seekable: false, stream_ops: SOCKFS.stream_ops }); // map the new stream to the socket structure (sockets have a 1:1 // relationship with a stream) sock.stream = stream; return sock; }, getSocket: function(fd) { var stream = FS.getStream(fd); if (!stream || !FS.isSocket(stream.node.mode)) { return null; } return stream.node.sock; }, stream_ops: { poll: function(stream) { var sock = stream.node.sock; return sock.sock_ops.poll(sock); }, ioctl: function(stream, request, varargs) { var sock = stream.node.sock; return sock.sock_ops.ioctl(sock, request, varargs); }, read: function(stream, buffer, offset, length, position /* ignored */) { var sock = stream.node.sock; var msg = sock.sock_ops.recvmsg(sock, length); if (!msg) { // socket is closed return 0; } buffer.set(msg.buffer, offset); return msg.buffer.length; }, write: function(stream, buffer, offset, length, position /* ignored */) { var sock = stream.node.sock; return sock.sock_ops.sendmsg(sock, buffer, offset, length); }, close: function(stream) { var sock = stream.node.sock; sock.sock_ops.close(sock); } }, nextname: function() { if (!SOCKFS.nextname.current) { SOCKFS.nextname.current = 0; } return 'socket[' + SOCKFS.nextname.current++ + ']'; }, websocket_sock_ops: { createPeer: function(sock, addr, port) { var ws; if (typeof addr === 'object') { ws = addr; addr = null; port = null; } if (ws) { // for sockets that've already connected (e.g. we're the server) // we can inspect the _socket property for the address if (ws._socket) { addr = ws._socket.remoteAddress; port = ws._socket.remotePort; } // if we're just now initializing a connection to the remote, // inspect the url property else { var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); if (!result) { throw new Error('WebSocket URL must be in the format ws(s)://address:port'); } addr = result[1]; port = parseInt(result[2], 10); } } else { // create the actual websocket object and connect try { // runtimeConfig gets set to true if WebSocket runtime configuration is available. var runtimeConfig = Module['websocket'] && 'object' === typeof Module['websocket']; // The default value is 'ws://' the replace is needed because the compiler replaces '//' comments with '#' // comments without checking context, so we'd end up with ws:#, the replace swaps the '#' for '//' again. var url = 'ws:#'.replace('#', '//'); if (runtimeConfig) { if ('string' === typeof Module['websocket']['url']) { url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. } } if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. var parts = addr.split('/'); url = url + parts[0] + ':' + port + '/' + parts.slice(1).join('/'); } // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. var subProtocols = 'binary'; // The default value is 'binary' if (runtimeConfig) { if ('string' === typeof Module['websocket']['subprotocol']) { subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. } } // The regex trims the string (removes spaces at the beginning and end, then splits the string by // , into an Array. Whitespace removal is important for Websockify and ws. subProtocols = subProtocols.replace(/^ +| +$/g, '').split(/ *, */); // The node ws library API for specifying optional subprotocol is slightly different than the browser's. var opts = ENVIRONMENT_IS_NODE ? { protocol: subProtocols.toString() } : subProtocols; // If node we use the ws library. var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket']; ws = new WebSocket(url, opts); ws.binaryType = 'arraybuffer'; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); } } var peer = { addr: addr, port: port, socket: ws, dgram_send_queue: [] }; SOCKFS.websocket_sock_ops.addPeer(sock, peer); SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); // if this is a bound dgram socket, send the port number first to allow // us to override the ephemeral port reported to us by remotePort on the // remote end. if (sock.type === 2 && typeof sock.sport !== 'undefined') { peer.dgram_send_queue.push( new Uint8Array([ 255, 255, 255, 255, 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), (sock.sport & 0xff00) >> 8, sock.sport & 0xff ]) ); } return peer; }, getPeer: function(sock, addr, port) { return sock.peers[addr + ':' + port]; }, addPeer: function(sock, peer) { sock.peers[peer.addr + ':' + peer.port] = peer; }, removePeer: function(sock, peer) { delete sock.peers[peer.addr + ':' + peer.port]; }, handlePeerEvents: function(sock, peer) { var first = true; var handleOpen = function() { Module['websocket'].emit('open', sock.stream.fd); try { var queued = peer.dgram_send_queue.shift(); while (queued) { peer.socket.send(queued); queued = peer.dgram_send_queue.shift(); } } catch (e) { // not much we can do here in the way of proper error handling as we've already // lied and said this data was sent. shut it down. peer.socket.close(); } }; function handleMessage(data) { assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer data = new Uint8Array(data); // make a typed array view on the array buffer // if this is the port message, override the peer's port with it var wasfirst = first; first = false; if ( wasfirst && data.length === 10 && data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0) ) { // update the peer's port and it's key in the peer map var newport = (data[8] << 8) | data[9]; SOCKFS.websocket_sock_ops.removePeer(sock, peer); peer.port = newport; SOCKFS.websocket_sock_ops.addPeer(sock, peer); return; } sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); Module['websocket'].emit('message', sock.stream.fd); } if (ENVIRONMENT_IS_NODE) { peer.socket.on('open', handleOpen); peer.socket.on('message', function(data, flags) { if (!flags.binary) { return; } handleMessage(new Uint8Array(data).buffer); // copy from node Buffer -> ArrayBuffer }); peer.socket.on('close', function() { Module['websocket'].emit('close', sock.stream.fd); }); peer.socket.on('error', function(error) { // Although the ws library may pass errors that may be more descriptive than // ECONNREFUSED they are not necessarily the expected error code e.g. // ENOTFOUND on getaddrinfo seems to be node.js specific, so using ECONNREFUSED // is still probably the most useful thing to do. sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); // don't throw }); } else { peer.socket.onopen = handleOpen; peer.socket.onclose = function() { Module['websocket'].emit('close', sock.stream.fd); }; peer.socket.onmessage = function peer_socket_onmessage(event) { handleMessage(event.data); }; peer.socket.onerror = function(error) { // The WebSocket spec only allows a 'simple event' to be thrown on error, // so we only really know as much as ECONNREFUSED. sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); }; } }, poll: function(sock) { if (sock.type === 1 && sock.server) { // listen sockets should only say they're available for reading // if there are pending clients. return sock.pending.length ? 64 | 1 : 0; } var mask = 0; var dest = sock.type === 1 // we only care about the socket state for connection-based sockets ? SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : null; if ( sock.recv_queue.length || !dest || // connection-less sockets are always ready to read (dest && dest.socket.readyState === dest.socket.CLOSING) || (dest && dest.socket.readyState === dest.socket.CLOSED) ) { // let recv return 0 once closed mask |= 64 | 1; } if ( !dest || // connection-less sockets are always ready to write (dest && dest.socket.readyState === dest.socket.OPEN) ) { mask |= 4; } if ((dest && dest.socket.readyState === dest.socket.CLOSING) || (dest && dest.socket.readyState === dest.socket.CLOSED)) { mask |= 16; } return mask; }, ioctl: function(sock, request, arg) { switch (request) { case 21531: var bytes = 0; if (sock.recv_queue.length) { bytes = sock.recv_queue[0].data.length; } HEAP32[arg >> 2] = bytes; return 0; default: return ERRNO_CODES.EINVAL; } }, close: function(sock) { // if we've spawned a listen server, close it if (sock.server) { try { sock.server.close(); } catch (e) {} sock.server = null; } // close any peer connections var peers = Object.keys(sock.peers); for (var i = 0; i < peers.length; i++) { var peer = sock.peers[peers[i]]; try { peer.socket.close(); } catch (e) {} SOCKFS.websocket_sock_ops.removePeer(sock, peer); } return 0; }, bind: function(sock, addr, port) { if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound } sock.saddr = addr; sock.sport = port || _mkport(); // in order to emulate dgram sockets, we need to launch a listen server when // binding on a connection-less socket // note: this is only required on the server side if (sock.type === 2) { // close the existing server if it exists if (sock.server) { sock.server.close(); sock.server = null; } // swallow error operation not supported error that occurs when binding in the // browser where this isn't supported try { sock.sock_ops.listen(sock, 0); } catch (e) { if (!(e instanceof FS.ErrnoError)) throw e; if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; } } }, connect: function(sock, addr, port) { if (sock.server) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } // TODO autobind // if (!sock.addr && sock.type == 2) { // } // early out if we're already connected / in the middle of connecting if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); if (dest) { if (dest.socket.readyState === dest.socket.CONNECTING) { throw new FS.ErrnoError(ERRNO_CODES.EALREADY); } else { throw new FS.ErrnoError(ERRNO_CODES.EISCONN); } } } // add the socket to our peer list and set our // destination address / port to match var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); sock.daddr = peer.addr; sock.dport = peer.port; // always "fail" in non-blocking mode throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); }, listen: function(sock, backlog) { if (!ENVIRONMENT_IS_NODE) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } if (sock.server) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening } var WebSocketServer = require('ws').Server; var host = sock.saddr; sock.server = new WebSocketServer({ host: host, port: sock.sport // TODO support backlog }); Module['websocket'].emit('listen', sock.stream.fd); // Send Event with listen fd. sock.server.on('connection', function(ws) { if (sock.type === 1) { var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); // create a peer on the new socket var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); newsock.daddr = peer.addr; newsock.dport = peer.port; // push to queue for accept to pick up sock.pending.push(newsock); Module['websocket'].emit('connection', newsock.stream.fd); } else { // create a peer on the listen socket so calling sendto // with the listen socket and an address will resolve // to the correct client SOCKFS.websocket_sock_ops.createPeer(sock, ws); Module['websocket'].emit('connection', sock.stream.fd); } }); sock.server.on('closed', function() { Module['websocket'].emit('close', sock.stream.fd); sock.server = null; }); sock.server.on('error', function(error) { // Although the ws library may pass errors that may be more descriptive than // ECONNREFUSED they are not necessarily the expected error code e.g. // ENOTFOUND on getaddrinfo seems to be node.js specific, so using EHOSTUNREACH // is still probably the most useful thing to do. This error shouldn't // occur in a well written app as errors should get trapped in the compiled // app's own getaddrinfo call. sock.error = ERRNO_CODES.EHOSTUNREACH; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'EHOSTUNREACH: Host is unreachable']); // don't throw }); }, accept: function(listensock) { if (!listensock.server) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var newsock = listensock.pending.shift(); newsock.stream.flags = listensock.stream.flags; return newsock; }, getname: function(sock, peer) { var addr, port; if (peer) { if (sock.daddr === undefined || sock.dport === undefined) { throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } addr = sock.daddr; port = sock.dport; } else { // TODO saddr and sport will be set for bind()'d UDP sockets, but what // should we be returning for TCP sockets that've been connect()'d? addr = sock.saddr || 0; port = sock.sport || 0; } return { addr: addr, port: port }; }, sendmsg: function(sock, buffer, offset, length, addr, port) { if (sock.type === 2) { // connection-less sockets will honor the message address, // and otherwise fall back to the bound destination address if (addr === undefined || port === undefined) { addr = sock.daddr; port = sock.dport; } // if there was no address to fall back to, error out if (addr === undefined || port === undefined) { throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); } } else { // connection-based sockets will only use the bound addr = sock.daddr; port = sock.dport; } // find the peer for the destination address var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); // early out if not connected with a connection-based socket if (sock.type === 1) { if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } else if (dest.socket.readyState === dest.socket.CONNECTING) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } // create a copy of the incoming data to send, as the WebSocket API // doesn't work entirely with an ArrayBufferView, it'll just send // the entire underlying buffer var data; if (buffer instanceof Array || buffer instanceof ArrayBuffer) { data = buffer.slice(offset, offset + length); } else { // ArrayBufferView data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length); } // if we're emulating a connection-less dgram socket and don't have // a cached connection, queue the buffer to send upon connect and // lie, saying the data was sent now. if (sock.type === 2) { if (!dest || dest.socket.readyState !== dest.socket.OPEN) { // if we're not connected, open a new connection if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); } dest.dgram_send_queue.push(data); return length; } } try { // send the actual data dest.socket.send(data); return length; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } }, recvmsg: function(sock, length) { // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html if (sock.type === 1 && sock.server) { // tcp servers should not be recv()'ing on the listen socket throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } var queued = sock.recv_queue.shift(); if (!queued) { if (sock.type === 1) { var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); if (!dest) { // if we have a destination address but are not connected, error out throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { // return null if the socket has closed return null; } else { // else, our socket is in a valid state but truly has nothing available throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } else { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } // queued.data will be an ArrayBuffer if it's unadulterated, but if it's // requeued TCP data it'll be an ArrayBufferView var queuedLength = queued.data.byteLength || queued.data.length; var queuedOffset = queued.data.byteOffset || 0; var queuedBuffer = queued.data.buffer || queued.data; var bytesRead = Math.min(length, queuedLength); var res = { buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), addr: queued.addr, port: queued.port }; // push back any unread data for TCP connections if (sock.type === 1 && bytesRead < queuedLength) { var bytesRemaining = queuedLength - bytesRead; queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); sock.recv_queue.unshift(queued); } return res; } } }; 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 _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 _open(path, oflag, varargs) { // int open(const char *path, int oflag, ...); // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html var mode = HEAP32[varargs >> 2]; path = Pointer_stringify(path); try { var stream = FS.open(path, oflag, mode); return stream.fd; } catch (e) { FS.handleFSError(e); return -1; } } function _fopen(filename, mode) { // FILE *fopen(const char *restrict filename, const char *restrict mode); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html var flags; mode = Pointer_stringify(mode); if (mode[0] == 'r') { if (mode.indexOf('+') != -1) { flags = 2; } else { flags = 0; } } else if (mode[0] == 'w') { if (mode.indexOf('+') != -1) { flags = 2; } else { flags = 1; } flags |= 64; flags |= 512; } else if (mode[0] == 'a') { if (mode.indexOf('+') != -1) { flags = 2; } else { flags = 1; } flags |= 64; flags |= 1024; } else { ___setErrNo(ERRNO_CODES.EINVAL); return 0; } var fd = _open(filename, flags, allocate([0x1ff, 0, 0, 0], 'i32', ALLOC_STACK)); // All creation permissions. return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd)); } 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 ___DEFAULT_POLLMASK = 5; function _poll(fds, nfds, timeout) { // int poll(struct pollfd fds[], nfds_t nfds, int timeout); // http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html var nonzero = 0; for (var i = 0; i < nfds; i++) { var pollfd = fds + 8 * i; var fd = HEAP32[pollfd >> 2]; var events = HEAP16[(pollfd + 4) >> 1]; var mask = 32; var stream = FS.getStream(fd); if (stream) { mask = ___DEFAULT_POLLMASK; if (stream.stream_ops.poll) { mask = stream.stream_ops.poll(stream); } } mask &= events | 8 | 16; if (mask) nonzero++; HEAP16[(pollfd + 6) >> 1] = mask; } return nonzero; } Module['_i64Add'] = _i64Add; function _js_read_image(dataPtr, len) { var HEAPU8 = Module['HEAPU8']; var array = HEAPU8.subarray(dataPtr, dataPtr + len); Module['getImageData'](array); return array.length; } function _usleep(useconds) { // int usleep(useconds_t useconds); // http://pubs.opengroup.org/onlinepubs/000095399/functions/usleep.html // We're single-threaded, so use a busy loop. Super-ugly. var msec = useconds / 1000; if (ENVIRONMENT_IS_WEB && window['performance'] && window['performance']['now']) { var start = window['performance']['now'](); while (window['performance']['now']() - start < msec) { // Do nothing. } } else { var start = Date.now(); while (Date.now() - start < msec) { // Do nothing. } } return 0; } function _nanosleep(rqtp, rmtp) { // int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); var seconds = HEAP32[rqtp >> 2]; var nanoseconds = HEAP32[(rqtp + 4) >> 2]; if (rmtp !== 0) { HEAP32[rmtp >> 2] = 0; HEAP32[(rmtp + 4) >> 2] = 0; } return _usleep(seconds * 1e6 + nanoseconds / 1000); } 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)); } function _emscripten_set_main_loop_timing(mode, value) { Browser.mainLoop.timingMode = mode; Browser.mainLoop.timingValue = value; if (!Browser.mainLoop.func) { return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. } if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { setTimeout(Browser.mainLoop.runner, value); // doing this each time means that on exception, we stop }; Browser.mainLoop.method = 'timeout'; } else if (mode == 1 /*EM_TIMING_RAF*/) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { Browser.requestAnimationFrame(Browser.mainLoop.runner); }; Browser.mainLoop.method = 'rAF'; } return 0; } function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg) { Module['noExitRuntime'] = true; assert( !Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.' ); Browser.mainLoop.func = func; Browser.mainLoop.arg = arg; var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; Browser.mainLoop.runner = function Browser_mainLoop_runner() { if (ABORT) return; if (Browser.mainLoop.queue.length > 0) { var start = Date.now(); var blocker = Browser.mainLoop.queue.shift(); blocker.func(blocker.arg); if (Browser.mainLoop.remainingBlockers) { var remaining = Browser.mainLoop.remainingBlockers; var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); if (blocker.counted) { Browser.mainLoop.remainingBlockers = next; } else { // not counted, but move the progress along a tiny bit next = next + 0.5; // do not steal all the next one's progress Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; } } console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); Browser.mainLoop.updateStatus(); setTimeout(Browser.mainLoop.runner, 0); return; } // catch pauses from non-main loop sources if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; // Implement very basic swap interval control Browser.mainLoop.currentFrameNumber = (Browser.mainLoop.currentFrameNumber + 1) | 0; if ( Browser.mainLoop.timingMode == 1 /*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0 ) { // Not the scheduled time to render this frame - skip. Browser.mainLoop.scheduler(); return; } // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize // VBO double-buffering and reduce GPU stalls. if (Browser.mainLoop.method === 'timeout' && Module.ctx) { Module.printErr( 'Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!' ); Browser.mainLoop.method = ''; // just warn once per call to set main loop } Browser.mainLoop.runIter(function() { if (typeof arg !== 'undefined') { Runtime.dynCall('vi', func, [arg]); } else { Runtime.dynCall('v', func); } }); // catch pauses from the main loop itself if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able // to queue the newest produced audio samples. // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() // do not need to be hardcoded into this function, but can be more generic. if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); Browser.mainLoop.scheduler(); }; if (fps && fps > 0) _emscripten_set_main_loop_timing(0 /*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); else _emscripten_set_main_loop_timing(1 /*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) Browser.mainLoop.scheduler(); if (simulateInfiniteLoop) { throw 'SimulateInfiniteLoop'; } } var Browser = { mainLoop: { scheduler: null, method: '', currentlyRunningMainloop: 0, func: null, arg: 0, timingMode: 0, timingValue: 0, currentFrameNumber: 0, queue: [], pause: function() { Browser.mainLoop.scheduler = null; Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. }, resume: function() { Browser.mainLoop.currentlyRunningMainloop++; var timingMode = Browser.mainLoop.timingMode; var timingValue = Browser.mainLoop.timingValue; var func = Browser.mainLoop.func; Browser.mainLoop.func = null; _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg); _emscripten_set_main_loop_timing(timingMode, timingValue); }, updateStatus: function() { if (Module['setStatus']) { var message = Module['statusMessage'] || 'Please wait...'; var remaining = Browser.mainLoop.remainingBlockers; var expected = Browser.mainLoop.expectedBlockers; if (remaining) { if (remaining < expected) { Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); } else { Module['setStatus'](message); } } else { Module['setStatus'](''); } } }, runIter: function(func) { if (ABORT) return; if (Module['preMainLoop']) { var preRet = Module['preMainLoop'](); if (preRet === false) { return; // |return false| skips a frame } } try { func(); } catch (e) { if (e instanceof ExitStatus) { return; } else { if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); throw e; } } if (Module['postMainLoop']) Module['postMainLoop'](); } }, isFullScreen: false, pointerLock: false, moduleContextCreatedCallbacks: [], workers: [], init: function() { if (!Module['preloadPlugins']) Module['preloadPlugins'] = []; // needs to exist even in workers if (Browser.initted) return; Browser.initted = true; try { new Blob(); Browser.hasBlobConstructor = true; } catch (e) { Browser.hasBlobConstructor = false; console.log('warning: no blob constructor, cannot create blobs with mimetypes'); } Browser.BlobBuilder = typeof MozBlobBuilder != 'undefined' ? MozBlobBuilder : typeof WebKitBlobBuilder != 'undefined' ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log('warning: no BlobBuilder') : null; Browser.URLObject = typeof window != 'undefined' ? (window.URL ? window.URL : window.webkitURL) : undefined; if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { console.log('warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.'); Module.noImageDecoding = true; } // Support for plugins that can process preloaded files. You can add more of these to // your app by creating and appending to Module.preloadPlugins. // // Each plugin is asked if it can handle a file based on the file's name. If it can, // it is given the file's raw data. When it is done, it calls a callback with the file's // (possibly modified) data. For example, a plugin might decompress a file, or it // might create some side data structure for use later (like an Image element, etc.). var imagePlugin = {}; imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); }; imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { var b = null; if (Browser.hasBlobConstructor) { try { b = new Blob([byteArray], { type: Browser.getMimetype(name) }); if (b.size !== byteArray.length) { // Safari bug #118630 // Safari's Blob can only take an ArrayBuffer b = new Blob([new Uint8Array(byteArray).buffer], { type: Browser.getMimetype(name) }); } } catch (e) { Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); } } if (!b) { var bb = new Browser.BlobBuilder(); bb.append(new Uint8Array(byteArray).buffer); // we need to pass a buffer, and must copy the array to get the right data range b = bb.getBlob(); } var url = Browser.URLObject.createObjectURL(b); var img = new Image(); img.onload = function img_onload() { assert(img.complete, 'Image ' + name + ' could not be decoded'); var canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); Module['preloadedImages'][name] = canvas; Browser.URLObject.revokeObjectURL(url); if (onload) onload(byteArray); }; img.onerror = function img_onerror(event) { console.log('Image ' + url + ' could not be decoded'); if (onerror) onerror(); }; img.src = url; }; Module['preloadPlugins'].push(imagePlugin); var audioPlugin = {}; audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; }; audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { var done = false; function finish(audio) { if (done) return; done = true; Module['preloadedAudios'][name] = audio; if (onload) onload(byteArray); } function fail() { if (done) return; done = true; Module['preloadedAudios'][name] = new Audio(); // empty shim if (onerror) onerror(); } if (Browser.hasBlobConstructor) { try { var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); } catch (e) { return fail(); } var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! var audio = new Audio(); audio.addEventListener( 'canplaythrough', function() { finish(audio); }, false ); // use addEventListener due to chromium bug 124926 audio.onerror = function audio_onerror(event) { if (done) return; console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); function encode64(data) { var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var PAD = '='; var ret = ''; var leftchar = 0; var leftbits = 0; for (var i = 0; i < data.length; i++) { leftchar = (leftchar << 8) | data[i]; leftbits += 8; while (leftbits >= 6) { var curr = (leftchar >> (leftbits - 6)) & 0x3f; leftbits -= 6; ret += BASE[curr]; } } if (leftbits == 2) { ret += BASE[(leftchar & 3) << 4]; ret += PAD + PAD; } else if (leftbits == 4) { ret += BASE[(leftchar & 0xf) << 2]; ret += PAD; } return ret; } audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); finish(audio); // we don't wait for confirmation this worked - but it's worth trying }; audio.src = url; // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror Browser.safeSetTimeout(function() { finish(audio); // try to use it even though it is not necessarily ready to play }, 10000); } else { return fail(); } }; Module['preloadPlugins'].push(audioPlugin); // Canvas event setup var canvas = Module['canvas']; function pointerLockChange() { Browser.pointerLock = document['pointerLockElement'] === canvas || document['mozPointerLockElement'] === canvas || document['webkitPointerLockElement'] === canvas || document['msPointerLockElement'] === canvas; } if (canvas) { // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module // Module['forcedAspectRatio'] = 4 / 3; canvas.requestPointerLock = canvas['requestPointerLock'] || canvas['mozRequestPointerLock'] || canvas['webkitRequestPointerLock'] || canvas['msRequestPointerLock'] || function() {}; canvas.exitPointerLock = document['exitPointerLock'] || document['mozExitPointerLock'] || document['webkitExitPointerLock'] || document['msExitPointerLock'] || function() {}; // no-op if function does not exist canvas.exitPointerLock = canvas.exitPointerLock.bind(document); document.addEventListener('pointerlockchange', pointerLockChange, false); document.addEventListener('mozpointerlockchange', pointerLockChange, false); document.addEventListener('webkitpointerlockchange', pointerLockChange, false); document.addEventListener('mspointerlockchange', pointerLockChange, false); if (Module['elementPointerLock']) { canvas.addEventListener( 'click', function(ev) { if (!Browser.pointerLock && canvas.requestPointerLock) { canvas.requestPointerLock(); ev.preventDefault(); } }, false ); } } }, createContext: function(canvas, useWebGL, setInModule, webGLContextAttributes) { if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. var ctx; var contextHandle; if (useWebGL) { // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. var contextAttributes = { antialias: false, alpha: false }; if (webGLContextAttributes) { for (var attribute in webGLContextAttributes) { contextAttributes[attribute] = webGLContextAttributes[attribute]; } } contextHandle = GL.createContext(canvas, contextAttributes); if (contextHandle) { ctx = GL.getContext(contextHandle).GLctx; } // Set the background of the WebGL canvas to black canvas.style.backgroundColor = 'black'; } else { ctx = canvas.getContext('2d'); } if (!ctx) return null; if (setInModule) { if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); Module.ctx = ctx; if (useWebGL) GL.makeContextCurrent(contextHandle); Module.useWebGL = useWebGL; Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback(); }); Browser.init(); } return ctx; }, destroyContext: function(canvas, useWebGL, setInModule) {}, fullScreenHandlersInstalled: false, lockPointer: undefined, resizeCanvas: undefined, requestFullScreen: function(lockPointer, resizeCanvas) { Browser.lockPointer = lockPointer; Browser.resizeCanvas = resizeCanvas; if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; var canvas = Module['canvas']; function fullScreenChange() { Browser.isFullScreen = false; var canvasContainer = canvas.parentNode; if ( (document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || document['mozFullScreenElement'] || document['mozFullscreenElement'] || document['fullScreenElement'] || document['fullscreenElement'] || document['msFullScreenElement'] || document['msFullscreenElement'] || document['webkitCurrentFullScreenElement']) === canvasContainer ) { canvas.cancelFullScreen = document['cancelFullScreen'] || document['mozCancelFullScreen'] || document['webkitCancelFullScreen'] || document['msExitFullscreen'] || document['exitFullscreen'] || function() {}; canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); if (Browser.lockPointer) canvas.requestPointerLock(); Browser.isFullScreen = true; if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize(); } else { // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen canvasContainer.parentNode.insertBefore(canvas, canvasContainer); canvasContainer.parentNode.removeChild(canvasContainer); if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); } if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen); Browser.updateCanvasDimensions(canvas); } if (!Browser.fullScreenHandlersInstalled) { Browser.fullScreenHandlersInstalled = true; document.addEventListener('fullscreenchange', fullScreenChange, false); document.addEventListener('mozfullscreenchange', fullScreenChange, false); document.addEventListener('webkitfullscreenchange', fullScreenChange, false); document.addEventListener('MSFullscreenChange', fullScreenChange, false); } // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root var canvasContainer = document.createElement('div'); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] || canvasContainer['mozRequestFullScreen'] || canvasContainer['msRequestFullscreen'] || (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']); } : null); canvasContainer.requestFullScreen(); }, nextRAF: 0, fakeRequestAnimationFrame: function(func) { // try to keep 60fps between calls to here var now = Date.now(); if (Browser.nextRAF === 0) { Browser.nextRAF = now + 1000 / 60; } else { while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 Browser.nextRAF += 1000 / 60; } } var delay = Math.max(Browser.nextRAF - now, 0); setTimeout(func, delay); }, requestAnimationFrame: function requestAnimationFrame(func) { if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) Browser.fakeRequestAnimationFrame(func); } else { if (!window.requestAnimationFrame) { window.requestAnimationFrame = window['requestAnimationFrame'] || window['mozRequestAnimationFrame'] || window['webkitRequestAnimationFrame'] || window['msRequestAnimationFrame'] || window['oRequestAnimationFrame'] || Browser.fakeRequestAnimationFrame; } window.requestAnimationFrame(func); } }, safeCallback: function(func) { return function() { if (!ABORT) return func.apply(null, arguments); }; }, safeRequestAnimationFrame: function(func) { return Browser.requestAnimationFrame(function() { if (!ABORT) func(); }); }, safeSetTimeout: function(func, timeout) { Module['noExitRuntime'] = true; return setTimeout(function() { if (!ABORT) func(); }, timeout); }, safeSetInterval: function(func, timeout) { Module['noExitRuntime'] = true; return setInterval(function() { if (!ABORT) func(); }, timeout); }, getMimetype: function(name) { return { jpg: 'image/jpeg', jpeg: 'image/jpeg', png: 'image/png', bmp: 'image/bmp', ogg: 'audio/ogg', wav: 'audio/wav', mp3: 'audio/mpeg' }[name.substr(name.lastIndexOf('.') + 1)]; }, getUserMedia: function(func) { if (!window.getUserMedia) { window.getUserMedia = navigator['getUserMedia'] || navigator['mozGetUserMedia']; } window.getUserMedia(func); }, getMovementX: function(event) { return event['movementX'] || event['mozMovementX'] || event['webkitMovementX'] || 0; }, getMovementY: function(event) { return event['movementY'] || event['mozMovementY'] || event['webkitMovementY'] || 0; }, getMouseWheelDelta: function(event) { var delta = 0; switch (event.type) { case 'DOMMouseScroll': delta = event.detail; break; case 'mousewheel': delta = event.wheelDelta; break; case 'wheel': delta = event['deltaY']; break; default: throw 'unrecognized mouse wheel event: ' + event.type; } return delta; }, mouseX: 0, mouseY: 0, mouseMovementX: 0, mouseMovementY: 0, touches: {}, lastTouches: {}, calculateMouseEvent: function(event) { // event should be mousemove, mousedown or mouseup if (Browser.pointerLock) { // When the pointer is locked, calculate the coordinates // based on the movement of the mouse. // Workaround for Firefox bug 764498 if (event.type != 'mousemove' && 'mozMovementX' in event) { Browser.mouseMovementX = Browser.mouseMovementY = 0; } else { Browser.mouseMovementX = Browser.getMovementX(event); Browser.mouseMovementY = Browser.getMovementY(event); } // check if SDL is available if (typeof SDL != 'undefined') { Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; } else { // just add the mouse delta to the current absolut mouse position // FIXME: ideally this should be clamped against the canvas size and zero Browser.mouseX += Browser.mouseMovementX; Browser.mouseY += Browser.mouseMovementY; } } else { // Otherwise, calculate the movement based on the changes // in the coordinates. var rect = Module['canvas'].getBoundingClientRect(); var cw = Module['canvas'].width; var ch = Module['canvas'].height; // Neither .scrollX or .pageXOffset are defined in a spec, but // we prefer .scrollX because it is currently in a spec draft. // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) var scrollX = typeof window.scrollX !== 'undefined' ? window.scrollX : window.pageXOffset; var scrollY = typeof window.scrollY !== 'undefined' ? window.scrollY : window.pageYOffset; if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { var touch = event.touch; if (touch === undefined) { return; // the "touch" property is only defined in SDL } var adjustedX = touch.pageX - (scrollX + rect.left); var adjustedY = touch.pageY - (scrollY + rect.top); adjustedX = adjustedX * (cw / rect.width); adjustedY = adjustedY * (ch / rect.height); var coords = { x: adjustedX, y: adjustedY }; if (event.type === 'touchstart') { Browser.lastTouches[touch.identifier] = coords; Browser.touches[touch.identifier] = coords; } else if (event.type === 'touchend' || event.type === 'touchmove') { Browser.lastTouches[touch.identifier] = Browser.touches[touch.identifier]; Browser.touches[touch.identifier] = { x: adjustedX, y: adjustedY }; } return; } var x = event.pageX - (scrollX + rect.left); var y = event.pageY - (scrollY + rect.top); // the canvas might be CSS-scaled compared to its backbuffer; // SDL-using content will want mouse coordinates in terms // of backbuffer units. x = x * (cw / rect.width); y = y * (ch / rect.height); Browser.mouseMovementX = x - Browser.mouseX; Browser.mouseMovementY = y - Browser.mouseY; Browser.mouseX = x; Browser.mouseY = y; } }, xhrLoad: function(url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function xhr_onload() { if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 onload(xhr.response); } else { onerror(); } }; xhr.onerror = onerror; xhr.send(null); }, asyncLoad: function(url, onload, onerror, noRunDep) { Browser.xhrLoad( url, function(arrayBuffer) { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (!noRunDep) removeRunDependency('al ' + url); }, function(event) { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.'; } } ); if (!noRunDep) addRunDependency('al ' + url); }, resizeListeners: [], updateResizeListeners: function() { var canvas = Module['canvas']; Browser.resizeListeners.forEach(function(listener) { listener(canvas.width, canvas.height); }); }, setCanvasSize: function(width, height, noUpdates) { var canvas = Module['canvas']; Browser.updateCanvasDimensions(canvas, width, height); if (!noUpdates) Browser.updateResizeListeners(); }, windowedWidth: 0, windowedHeight: 0, setFullScreenCanvasSize: function() { // check if SDL is available if (typeof SDL != 'undefined') { var flags = HEAPU32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2]; flags = flags | 0x00800000; // set SDL_FULLSCREEN flag HEAP32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2] = flags; } Browser.updateResizeListeners(); }, setWindowedCanvasSize: function() { // check if SDL is available if (typeof SDL != 'undefined') { var flags = HEAPU32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2]; flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag HEAP32[(SDL.screen + Runtime.QUANTUM_SIZE * 0) >> 2] = flags; } Browser.updateResizeListeners(); }, updateCanvasDimensions: function(canvas, wNative, hNative) { if (wNative && hNative) { canvas.widthNative = wNative; canvas.heightNative = hNative; } else { wNative = canvas.widthNative; hNative = canvas.heightNative; } var w = wNative; var h = hNative; if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { if (w / h < Module['forcedAspectRatio']) { w = Math.round(h * Module['forcedAspectRatio']); } else { h = Math.round(w / Module['forcedAspectRatio']); } } if ( (document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || document['mozFullScreenElement'] || document['mozFullscreenElement'] || document['fullScreenElement'] || document['fullscreenElement'] || document['msFullScreenElement'] || document['msFullscreenElement'] || document['webkitCurrentFullScreenElement']) === canvas.parentNode && typeof screen != 'undefined' ) { var factor = Math.min(screen.width / w, screen.height / h); w = Math.round(w * factor); h = Math.round(h * factor); } if (Browser.resizeCanvas) { if (canvas.width != w) canvas.width = w; if (canvas.height != h) canvas.height = h; if (typeof canvas.style != 'undefined') { canvas.style.removeProperty('width'); canvas.style.removeProperty('height'); } } else { if (canvas.width != wNative) canvas.width = wNative; if (canvas.height != hNative) canvas.height = hNative; if (typeof canvas.style != 'undefined') { if (w != wNative || h != hNative) { canvas.style.setProperty('width', w + 'px', 'important'); canvas.style.setProperty('height', h + 'px', 'important'); } else { canvas.style.removeProperty('width'); canvas.style.removeProperty('height'); } } } }, wgetRequests: {}, nextWgetRequestHandle: 0, getNextWgetRequestHandle: function() { var handle = Browser.nextWgetRequestHandle; Browser.nextWgetRequestHandle++; return handle; } }; function _time(ptr) { var ret = (Date.now() / 1000) | 0; if (ptr) { HEAP32[ptr >> 2] = ret; } return ret; } function _js_get_height() { return Module['imageHeight']; } Module['_bitshift64Ashr'] = _bitshift64Ashr; Module['_bitshift64Lshr'] = _bitshift64Lshr; function _recv(fd, buf, len, flags) { var sock = SOCKFS.getSocket(fd); if (!sock) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } // TODO honor flags return _read(fd, buf, len); } function _pread(fildes, buf, nbyte, offset) { // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset); // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html var stream = FS.getStream(fildes); if (!stream) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } try { var slab = HEAP8; return FS.read(stream, slab, buf, nbyte, offset); } catch (e) { FS.handleFSError(e); return -1; } } function _read(fildes, buf, nbyte) { // ssize_t read(int fildes, void *buf, size_t nbyte); // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html var stream = FS.getStream(fildes); if (!stream) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } try { var slab = HEAP8; return FS.read(stream, slab, buf, nbyte); } catch (e) { FS.handleFSError(e); return -1; } } var _BDtoILow = true; var _BDtoIHigh = true; function _js_output_result(symbol, addon, data) { var Pointer_stringify = Module['Pointer_stringify']; Module['outputResult'](Pointer_stringify(symbol), Pointer_stringify(addon), Pointer_stringify(data)); } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src + num), dest); return dest; } Module['_memcpy'] = _memcpy; function _js_get_width() { return Module['imageWidth']; } function _puts(s) { // int puts(const char *s); // http://pubs.opengroup.org/onlinepubs/000095399/functions/puts.html // NOTE: puts() always writes an extra newline. var stdout = HEAP32[_stdout >> 2]; var ret = _fputs(s, stdout); if (ret < 0) { return ret; } else { var newlineRet = _fputc(10, stdout); return newlineRet < 0 ? -1 : ret + 1; } } function ___errno_location() { return ___errno_state; } function _perror(s) { // void perror(const char *s); // http://pubs.opengroup.org/onlinepubs/000095399/functions/perror.html var stdout = HEAP32[_stdout >> 2]; if (s) { _fputs(s, stdout); _fputc(58, stdout); _fputc(32, stdout); } var errnum = HEAP32[___errno_location() >> 2]; _puts(_strerror(errnum)); } 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. } Module['_memmove'] = _memmove; var _BItoD = true; function _pipe(fildes) { // int pipe(int fildes[2]); // http://pubs.opengroup.org/onlinepubs/000095399/functions/pipe.html // It is possible to implement this using two device streams, but pipes make // little sense in a single-threaded environment, so we do not support them. ___setErrNo(ERRNO_CODES.ENOSYS); return -1; } Module['_strcpy'] = _strcpy; 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; } ___errno_state = Runtime.staticAlloc(4); HEAP32[___errno_state >> 2] = 0; FS.staticInit(); __ATINIT__.unshift({ func: function() { if (!Module['noFSInit'] && !FS.init.initialized) FS.init(); } }); __ATMAIN__.push({ func: function() { FS.ignorePermissions = false; } }); __ATEXIT__.push({ func: function() { FS.quit(); } }); Module['FS_createFolder'] = FS.createFolder; Module['FS_createPath'] = FS.createPath; Module['FS_createDataFile'] = FS.createDataFile; Module['FS_createPreloadedFile'] = FS.createPreloadedFile; Module['FS_createLazyFile'] = FS.createLazyFile; Module['FS_createLink'] = FS.createLink; Module['FS_createDevice'] = FS.createDevice; __ATINIT__.unshift({ func: function() { TTY.init(); } }); __ATEXIT__.push({ func: function() { TTY.shutdown(); } }); TTY.utf8 = new Runtime.UTF8Processor(); if (ENVIRONMENT_IS_NODE) { var fs = require('fs'); NODEFS.staticInit(); } __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } }); _fputc.ret = allocate([0], 'i8', ALLOC_STATIC); Module['requestFullScreen'] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas); }; Module['requestAnimationFrame'] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func); }; Module['setCanvasSize'] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates); }; Module['pauseMainLoop'] = function Module_pauseMainLoop() { Browser.mainLoop.pause(); }; Module['resumeMainLoop'] = function Module_resumeMainLoop() { Browser.mainLoop.resume(); }; Module['getUserMedia'] = function Module_getUserMedia() { Browser.getUserMedia(); }; 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_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_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_vi: invoke_vi, invoke_vii: invoke_vii, invoke_ii: invoke_ii, invoke_iii: invoke_iii, invoke_viiii: invoke_viiii, _emscripten_get_now_is_monotonic: _emscripten_get_now_is_monotonic, _send: _send, _pipe: _pipe, _emscripten_set_main_loop_timing: _emscripten_set_main_loop_timing, ___assert_fail: ___assert_fail, _js_get_height: _js_get_height, _usleep: _usleep, _fflush: _fflush, _clock_gettime: _clock_gettime, _pwrite: _pwrite, _strerror_r: _strerror_r, _open: _open, _sbrk: _sbrk, _strerror: _strerror, _emscripten_get_now: _emscripten_get_now, _emscripten_memcpy_big: _emscripten_memcpy_big, _fileno: _fileno, _perror: _perror, _sysconf: _sysconf, _close: _close, _nanosleep: _nanosleep, _js_read_image: _js_read_image, _pread: _pread, _puts: _puts, _mkport: _mkport, _fclose: _fclose, _poll: _poll, __reallyNegative: __reallyNegative, _write: _write, _fsync: _fsync, ___errno_location: ___errno_location, _js_get_width: _js_get_width, _recv: _recv, _fputc: _fputc, _read: _read, _emscripten_set_main_loop: _emscripten_set_main_loop, _abort: _abort, _fwrite: _fwrite, _time: _time, _fprintf: _fprintf, _js_output_result: _js_output_result, __formatString: __formatString, _fputs: _fputs, _fopen: _fopen, ___setErrNo: ___setErrNo, STACKTOP: STACKTOP, STACK_MAX: STACK_MAX, tempDoublePtr: tempDoublePtr, ABORT: ABORT, cttz_i8: cttz_i8, ctlz_i8: ctlz_i8, NaN: NaN, Infinity: Infinity, _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 _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_vi = env.invoke_vi; var invoke_vii = env.invoke_vii; var invoke_ii = env.invoke_ii; var invoke_iii = env.invoke_iii; var invoke_viiii = env.invoke_viiii; var _emscripten_get_now_is_monotonic = env._emscripten_get_now_is_monotonic; var _send = env._send; var _pipe = env._pipe; var _emscripten_set_main_loop_timing = env._emscripten_set_main_loop_timing; var ___assert_fail = env.___assert_fail; var _js_get_height = env._js_get_height; var _usleep = env._usleep; var _fflush = env._fflush; var _clock_gettime = env._clock_gettime; var _pwrite = env._pwrite; var _strerror_r = env._strerror_r; var _open = env._open; var _sbrk = env._sbrk; var _strerror = env._strerror; var _emscripten_get_now = env._emscripten_get_now; var _emscripten_memcpy_big = env._emscripten_memcpy_big; var _fileno = env._fileno; var _perror = env._perror; var _sysconf = env._sysconf; var _close = env._close; var _nanosleep = env._nanosleep; var _js_read_image = env._js_read_image; var _pread = env._pread; var _puts = env._puts; var _mkport = env._mkport; var _fclose = env._fclose; var _poll = env._poll; var __reallyNegative = env.__reallyNegative; var _write = env._write; var _fsync = env._fsync; var ___errno_location = env.___errno_location; var _js_get_width = env._js_get_width; var _recv = env._recv; var _fputc = env._fputc; var _read = env._read; var _emscripten_set_main_loop = env._emscripten_set_main_loop; var _abort = env._abort; var _fwrite = env._fwrite; var _time = env._time; var _fprintf = env._fprintf; var _js_output_result = env._js_output_result; var __formatString = env.__formatString; var _fputs = env._fputs; var _fopen = env._fopen; var ___setErrNo = env.___setErrNo; var tempFloat = 0.0; // EMSCRIPTEN_START_FUNCS function stackAlloc(size) { size = size | 0; var ret = 0; ret = STACKTOP; STACKTOP = (STACKTOP + size) | 0; STACKTOP = (STACKTOP + 15) & -16; return ret | 0; } function stackSave() { return STACKTOP | 0; } function stackRestore(top) { top = top | 0; STACKTOP = top; } function setThrew(threw, value) { threw = threw | 0; value = value | 0; if ((__THREW__ | 0) == 0) { __THREW__ = threw; threwValue = value; } } function copyTempFloat(ptr) { ptr = ptr | 0; HEAP8[tempDoublePtr >> 0] = HEAP8[ptr >> 0]; HEAP8[(tempDoublePtr + 1) >> 0] = HEAP8[(ptr + 1) >> 0]; HEAP8[(tempDoublePtr + 2) >> 0] = HEAP8[(ptr + 2) >> 0]; HEAP8[(tempDoublePtr + 3) >> 0] = HEAP8[(ptr + 3) >> 0]; } function copyTempDouble(ptr) { ptr = ptr | 0; HEAP8[tempDoublePtr >> 0] = HEAP8[ptr >> 0]; HEAP8[(tempDoublePtr + 1) >> 0] = HEAP8[(ptr + 1) >> 0]; HEAP8[(tempDoublePtr + 2) >> 0] = HEAP8[(ptr + 2) >> 0]; HEAP8[(tempDoublePtr + 3) >> 0] = HEAP8[(ptr + 3) >> 0]; HEAP8[(tempDoublePtr + 4) >> 0] = HEAP8[(ptr + 4) >> 0]; HEAP8[(tempDoublePtr + 5) >> 0] = HEAP8[(ptr + 5) >> 0]; HEAP8[(tempDoublePtr + 6) >> 0] = HEAP8[(ptr + 6) >> 0]; HEAP8[(tempDoublePtr + 7) >> 0] = HEAP8[(ptr + 7) >> 0]; } function setTempRet0(value) { value = value | 0; tempRet0 = value; } function getTempRet0() { return tempRet0 | 0; } function _main($argc, $argv) { $argc = $argc | 0; $argv = $argv | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sym$01 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _zbar_processor_create(0) | 0; HEAP32[8 >> 2] = $0; $1 = ($0 | 0) == (0 | 0); if ($1) { ___assert_fail(16 | 0, 32 | 0, 33, 64 | 0); // unreachable; } $2 = _zbar_processor_init($0, 0, 0) | 0; $3 = ($2 | 0) == 0; if (!$3) { $4 = HEAP32[8 >> 2] | 0; _zbar_processor_error_spew($4); $$0 = 1; STACKTOP = sp; return $$0 | 0; } $5 = _zbar_image_create() | 0; $6 = ($5 | 0) == (0 | 0); if ($6) { ___assert_fail(72 | 0, 32 | 0, 40, 64 | 0); // unreachable; } _zbar_image_set_format($5, 808466521); $7 = _js_get_width() | 0; $8 = _js_get_height() | 0; _zbar_image_set_size($5, $7, $8); $9 = Math_imul($8, $7) | 0; $10 = _malloc($9) | 0; _zbar_image_set_data($5, $10, $9, 1); _js_read_image($10 | 0, $9 | 0) | 0; $11 = HEAP32[8 >> 2] | 0; _zbar_process_image($11, $5) | 0; $12 = _zbar_image_first_symbol($5) | 0; $13 = ($12 | 0) == (0 | 0); if (!$13) { $sym$01 = $12; while (1) { $14 = _zbar_symbol_get_type($sym$01) | 0; $15 = ($14 | 0) == 1; if (!$15) { $16 = _zbar_get_symbol_name($14) | 0; $17 = _zbar_get_addon_name($14) | 0; $18 = _zbar_symbol_get_data($sym$01) | 0; _js_output_result($16 | 0, $17 | 0, $18 | 0); } $19 = _zbar_symbol_next($sym$01) | 0; $20 = ($19 | 0) == (0 | 0); if ($20) { break; } else { $sym$01 = $19; } } } _zbar_image_destroy($5); $21 = HEAP32[8 >> 2] | 0; $22 = _zbar_processor_is_visible($21) | 0; $23 = ($22 | 0) == 0; if (!$23) { $24 = HEAP32[8 >> 2] | 0; _zbar_processor_user_wait($24, -1) | 0; } $25 = HEAP32[8 >> 2] | 0; _zbar_processor_destroy($25); $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _zbar_processor_error_spew($processor) { $processor = $processor | 0; var label = 0, sp = 0; sp = STACKTOP; __zbar_error_spew($processor, 0) | 0; STACKTOP = sp; return; } function __zbar_error_spew($container, $verbosity) { $container = $container | 0; $verbosity = $verbosity | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$container >> 2] | 0; $1 = ($0 | 0) == 1381123450; if ($1) { $2 = HEAP32[_stderr >> 2] | 0; $3 = __zbar_error_string($container, 0) | 0; _fputs($3 | 0, $2 | 0) | 0; $4 = ($container + 16) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = (0 - $5) | 0; STACKTOP = sp; return $6 | 0; } else { ___assert_fail(88 | 0, 120 | 0, 83, 136 | 0); // unreachable; } return 0 | 0; } function __zbar_error_string($container, $verbosity) { $container = $container | 0; $verbosity = $verbosity | 0; var $$ = 0, $$0 = 0, $$off = 0, $$pn = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0, $len$0 = 0, $len$1 = 0, $leninc = 0, $mod$0 = 0, $sev$0 = 0, $strlen = 0, $type$0 = 0, $vararg_buffer10 = 0, $vararg_ptr1 = 0, $vararg_ptr13 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer10 = sp; $0 = HEAP32[$container >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(88 | 0, 120 | 0, 107, 200 | 0); // unreachable; } $2 = ($container + 16) | 0; $3 = HEAP32[$2 >> 2] | 0; $$off = ($3 + 2) | 0; $4 = $$off >>> 0 < 5; if ($4) { $5 = (224 + ($$off << 2)) | 0; $6 = HEAP32[$5 >> 2] | 0; $sev$0 = $6; } else { $sev$0 = 712; } $7 = ($container + 4) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = $8 >>> 0 < 4; if ($9) { $10 = (248 + ($8 << 2)) | 0; $11 = HEAP32[$10 >> 2] | 0; $mod$0 = $11; } else { $mod$0 = 272; } $12 = ($container + 24) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($13 | 0) == (0 | 0); $$ = $14 ? 272 : $13; $15 = ($container + 20) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = $16 >>> 0 < 12; if ($17) { $18 = (288 + ($16 << 2)) | 0; $19 = HEAP32[$18 >> 2] | 0; $type$0 = $19; } else { $type$0 = 632; } $20 = _strlen($$ | 0) | 0; $21 = ($20 + 77) | 0; $22 = ($container + 8) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = _realloc($23, $21) | 0; HEAP32[$22 >> 2] = $24; HEAP32[$vararg_buffer10 >> 2] = $sev$0; $vararg_ptr1 = ($vararg_buffer10 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $mod$0; $vararg_ptr2 = ($vararg_buffer10 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $$; $vararg_ptr3 = ($vararg_buffer10 + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $type$0; $25 = _sprintf($24, 168, $vararg_buffer10) | 0; $26 = ($25 | 0) < 1; if ($26) { $$0 = 272; STACKTOP = sp; return $$0 | 0; } $27 = ($container + 28) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = ($28 | 0) == (0 | 0); if ($29) { $len$1 = $25; } else { $30 = _strlen($28 | 0) | 0; $31 = ($30 + $25) | 0; $32 = ($31 + 1) | 0; $33 = _strstr($28, 160) | 0; $34 = ($33 | 0) == (0 | 0); do { if ($34) { $48 = _strstr($28, 352) | 0; $49 = ($48 | 0) == (0 | 0); if ($49) { $50 = _strstr($28, 360) | 0; $51 = ($50 | 0) == (0 | 0); if ($51) { $60 = HEAP32[$22 >> 2] | 0; $61 = _realloc($60, $32) | 0; HEAP32[$22 >> 2] = $61; $62 = ($61 + $25) | 0; $63 = HEAP32[$27 >> 2] | 0; $strlen = _strlen($63 | 0) | 0; $leninc = ($strlen + 1) | 0; _memcpy($62 | 0, $63 | 0, $leninc | 0) | 0; $$pn = $strlen; break; } } $52 = HEAP32[$22 >> 2] | 0; $53 = ($31 + 33) | 0; $54 = _realloc($52, $53) | 0; HEAP32[$22 >> 2] = $54; $55 = ($54 + $25) | 0; $56 = HEAP32[$27 >> 2] | 0; $57 = ($container + 36) | 0; $58 = HEAP32[$57 >> 2] | 0; HEAP32[$vararg_buffer10 >> 2] = $58; $59 = _sprintf($55, $56, $vararg_buffer10) | 0; $$pn = $59; } else { $35 = ($container + 32) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) == (0 | 0); if ($37) { $38 = ___strdup(344) | 0; HEAP32[$35 >> 2] = $38; $40 = $38; } else { $40 = $36; } $39 = HEAP32[$22 >> 2] | 0; $41 = _strlen($40 | 0) | 0; $42 = ($41 + $32) | 0; $43 = _realloc($39, $42) | 0; HEAP32[$22 >> 2] = $43; $44 = ($43 + $25) | 0; $45 = HEAP32[$27 >> 2] | 0; $46 = HEAP32[$35 >> 2] | 0; HEAP32[$vararg_buffer10 >> 2] = $46; $47 = _sprintf($44, $45, $vararg_buffer10) | 0; $$pn = $47; } } while (0); $len$0 = ($$pn + $25) | 0; $64 = ($len$0 | 0) < 1; if ($64) { $$0 = 272; STACKTOP = sp; return $$0 | 0; } else { $len$1 = $len$0; } } $65 = HEAP32[$15 >> 2] | 0; $66 = ($65 | 0) == 5; if ($66) { $67 = ($container + 12) | 0; $68 = HEAP32[$67 >> 2] | 0; $69 = _strerror($68 | 0) | 0; $70 = HEAP32[$22 >> 2] | 0; $71 = ($len$1 + 10) | 0; $72 = _strlen($69 | 0) | 0; $73 = ($71 + $72) | 0; $74 = _realloc($70, $73) | 0; HEAP32[$22 >> 2] = $74; $75 = ($74 + $len$1) | 0; $76 = HEAP32[$67 >> 2] | 0; HEAP32[$vararg_buffer10 >> 2] = $69; $vararg_ptr13 = ($vararg_buffer10 + 4) | 0; HEAP32[$vararg_ptr13 >> 2] = $76; _sprintf($75, 368, $vararg_buffer10) | 0; $$pre = HEAP32[$22 >> 2] | 0; $$0 = $$pre; STACKTOP = sp; return $$0 | 0; } else { $77 = HEAP32[$22 >> 2] | 0; $78 = ($len$1 + 2) | 0; $79 = _realloc($77, $78) | 0; HEAP32[$22 >> 2] = $79; $80 = ($79 + $len$1) | 0; HEAP8[$80 >> 0] = 10 & 255; HEAP8[($80 + 1) >> 0] = 10 >> 8; $$0 = $79; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _zbar_image_create() { var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 68) | 0; $1 = ($0 + 44) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 + 1) | 0; HEAP32[$1 >> 2] = $3; $4 = ($2 | 0) > -2; if ($4) { $5 = ($0 + 52) | 0; HEAP32[$5 >> 2] = -1; STACKTOP = sp; return $0 | 0; } else { ___assert_fail(984 | 0, 992 | 0, 87, 1008 | 0); // unreachable; } return 0 | 0; } function __zbar_image_free($img) { $img = $img | 0; var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 64) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { _zbar_symbol_set_ref($1, -1); } _free($img); STACKTOP = sp; return; } function _zbar_image_destroy($img) { $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 + -1) | 0; HEAP32[$0 >> 2] = $2; $3 = ($1 | 0) > 0; if (!$3) { ___assert_fail(984 | 0, 992 | 0, 87, 1008 | 0); // unreachable; } $4 = ($2 | 0) == 0; if (!$4) { STACKTOP = sp; return; } $5 = ($img + 40) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($6 | 0) == (0 | 0); if (!$7) { FUNCTION_TABLE_vi[$6 & 7]($img); } $8 = ($img + 48) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 | 0) == (0 | 0); if (!$10) { STACKTOP = sp; return; } $11 = ($img + 64) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 | 0) == (0 | 0); if (!$13) { _zbar_symbol_set_ref($12, -1); } _free($img); STACKTOP = sp; return; } function _zbar_image_get_format($img) { $img = $img | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$img >> 2] | 0; STACKTOP = sp; return $0 | 0; } function _zbar_image_get_width($img) { $img = $img | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_image_get_height($img) { $img = $img | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 8) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_image_get_data($img) { $img = $img | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 12) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_image_set_format($img, $fmt) { $img = $img | 0; $fmt = $fmt | 0; var label = 0, sp = 0; sp = STACKTOP; HEAP32[$img >> 2] = $fmt; STACKTOP = sp; return; } function _zbar_image_set_size($img, $w, $h) { $img = $img | 0; $w = $w | 0; $h = $h | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 24) | 0; HEAP32[$0 >> 2] = 0; $1 = ($img + 20) | 0; HEAP32[$1 >> 2] = 0; $2 = ($img + 28) | 0; HEAP32[$2 >> 2] = $w; $3 = ($img + 4) | 0; HEAP32[$3 >> 2] = $w; $4 = ($img + 32) | 0; HEAP32[$4 >> 2] = $h; $5 = ($img + 8) | 0; HEAP32[$5 >> 2] = $h; STACKTOP = sp; return; } function _zbar_image_set_crop($img, $x, $y, $w, $h) { $img = $img | 0; $x = $x | 0; $y = $y | 0; $w = $w | 0; $h = $h | 0; var $$02 = 0, $$03 = 0, $$x = 0, $$y = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; var label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = $1 >>> 0 < $x >>> 0; $$x = $2 ? $1 : $x; $3 = ($$x + $w) | 0; $4 = $3 >>> 0 > $1 >>> 0; $5 = ($1 - $$x) | 0; $$03 = $4 ? $5 : $w; $6 = ($img + 20) | 0; HEAP32[$6 >> 2] = $$x; $7 = ($img + 28) | 0; HEAP32[$7 >> 2] = $$03; $8 = ($img + 8) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = $9 >>> 0 < $y >>> 0; $$y = $10 ? $9 : $y; $11 = ($$y + $h) | 0; $12 = $11 >>> 0 > $9 >>> 0; $13 = ($9 - $$y) | 0; $$02 = $12 ? $13 : $h; $14 = ($img + 24) | 0; HEAP32[$14 >> 2] = $$y; $15 = ($img + 32) | 0; HEAP32[$15 >> 2] = $$02; STACKTOP = sp; return; } function _zbar_image_free_data($img) { $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0; var $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; sp = STACKTOP; $0 = ($img | 0) == (0 | 0); if ($0) { STACKTOP = sp; return; } $1 = ($img + 48) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 | 0) == (0 | 0); do { if ($3) { $16 = ($img + 40) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($17 | 0) == (0 | 0); if (!$18) { $19 = ($img + 12) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($20 | 0) == (0 | 0); if (!$21) { $22 = ($17 | 0) == (1 | 0); if ($22) { _free($20); break; } else { HEAP32[$16 >> 2] = 1; FUNCTION_TABLE_vi[$17 & 7]($img); break; } } } } else { $4 = ($img + 44) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 | 0) == 0; if ($6) { ___assert_fail(744 | 0, 760 | 0, 154, 776 | 0); // unreachable; } $7 = _calloc(1, 68) | 0; $8 = ($7 + 44) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 + 1) | 0; HEAP32[$8 >> 2] = $10; $11 = ($9 | 0) > -2; if ($11) { dest = ($7 + 0) | 0; src = ($img + 0) | 0; stop = (dest + 68) | 0; do { HEAP32[dest >> 2] = HEAP32[src >> 2] | 0; dest = (dest + 4) | 0; src = (src + 4) | 0; } while ((dest | 0) < (stop | 0)); $12 = ($7 + 40) | 0; $13 = HEAP32[$12 >> 2] | 0; FUNCTION_TABLE_vi[$13 & 7]($7); $14 = ($img + 40) | 0; HEAP32[$14 >> 2] = 0; HEAP32[$1 >> 2] = 0; $15 = ($img + 52) | 0; HEAP32[$15 >> 2] = -1; break; } else { ___assert_fail(984 | 0, 992 | 0, 87, 1008 | 0); // unreachable; } } } while (0); $23 = ($img + 12) | 0; HEAP32[$23 >> 2] = 0; STACKTOP = sp; return; } function _zbar_image_set_data($img, $data, $len, $cleanup) { $img = $img | 0; $data = $data | 0; $len = $len | 0; $cleanup = $cleanup | 0; var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; sp = STACKTOP; _zbar_image_free_data($img); $0 = ($img + 12) | 0; HEAP32[$0 >> 2] = $data; $1 = ($img + 16) | 0; HEAP32[$1 >> 2] = $len; $2 = ($img + 40) | 0; HEAP32[$2 >> 2] = $cleanup; STACKTOP = sp; return; } function _zbar_image_first_symbol($img) { $img = $img | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 64) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { $5 = 0; } else { $3 = ($1 + 8) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = $4; } STACKTOP = sp; return $5 | 0; } function _zbar_image_write($img, $filebase) { $img = $img | 0; $filebase = $filebase | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $hdr = 0, $n$0 = 0, $rc$0 = 0, $vararg_buffer17 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0; var $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer17 = sp; $hdr = (sp + 16) | 0; $0 = _strlen($filebase | 0) | 0; $1 = ($0 + 16) | 0; $2 = _malloc($1) | 0; _strcpy($2 | 0, $filebase | 0) | 0; $3 = HEAP32[$img >> 2] | 0; $4 = $3 & 224; $5 = $4 >>> 0 > 31; if ($5) { HEAP32[$vararg_buffer17 >> 2] = $filebase; $vararg_ptr1 = ($vararg_buffer17 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $img; $6 = _snprintf($2, $1, 800, $vararg_buffer17) | 0; $n$0 = $6; } else { HEAP32[$vararg_buffer17 >> 2] = $filebase; $vararg_ptr5 = ($vararg_buffer17 + 4) | 0; HEAP32[$vararg_ptr5 >> 2] = $3; $7 = _snprintf($2, $1, 816, $vararg_buffer17) | 0; $n$0 = $7; } $8 = ($0 + 15) | 0; $9 = ($n$0 | 0) < ($8 | 0); if (!$9) { ___assert_fail(832 | 0, 760 | 0, 256, 848 | 0); // unreachable; } $10 = ($2 + $8) | 0; HEAP8[$10 >> 0] = 0; $11 = HEAP32[80 >> 2] | 0; $12 = ($11 | 0) > 0; if ($12) { $13 = HEAP32[_stderr >> 2] | 0; $14 = HEAP32[$img >> 2] | 0; HEAP32[$vararg_buffer17 >> 2] = 848; $vararg_ptr9 = ($vararg_buffer17 + 4) | 0; HEAP32[$vararg_ptr9 >> 2] = $img; $vararg_ptr10 = ($vararg_buffer17 + 8) | 0; HEAP32[$vararg_ptr10 >> 2] = $14; $vararg_ptr11 = ($vararg_buffer17 + 12) | 0; HEAP32[$vararg_ptr11 >> 2] = $2; _fprintf($13 | 0, 872 | 0, $vararg_buffer17 | 0) | 0; } $15 = _fopen($2 | 0, 912 | 0) | 0; $16 = ($15 | 0) == (0 | 0); if ($16) { $17 = ___errno_location() | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = HEAP32[80 >> 2] | 0; $20 = ($19 | 0) > 0; if (!$20) { $rc$0 = $18; _free($2); STACKTOP = sp; return $rc$0 | 0; } $21 = HEAP32[_stderr >> 2] | 0; $22 = _strerror($18 | 0) | 0; HEAP32[$vararg_buffer17 >> 2] = 848; $vararg_ptr15 = ($vararg_buffer17 + 4) | 0; HEAP32[$vararg_ptr15 >> 2] = $2; $vararg_ptr16 = ($vararg_buffer17 + 8) | 0; HEAP32[$vararg_ptr16 >> 2] = $22; _fprintf($21 | 0, 920 | 0, $vararg_buffer17 | 0) | 0; $rc$0 = $18; _free($2); STACKTOP = sp; return $rc$0 | 0; } HEAP32[$hdr >> 2] = 1735223674; $23 = HEAP32[$img >> 2] | 0; $24 = ($hdr + 4) | 0; HEAP32[$24 >> 2] = $23; $25 = ($img + 4) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $26 & 65535; $28 = ($hdr + 8) | 0; HEAP16[$28 >> 1] = $27; $29 = ($img + 8) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = $30 & 65535; $32 = ($hdr + 10) | 0; HEAP16[$32 >> 1] = $31; $33 = ($img + 16) | 0; $34 = HEAP32[$33 >> 2] | 0; $35 = ($hdr + 12) | 0; HEAP32[$35 >> 2] = $34; $36 = _fwrite($hdr | 0, 16, 1, $15 | 0) | 0; $37 = ($36 | 0) == 1; if ($37) { $38 = ($img + 12) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = HEAP32[$33 >> 2] | 0; $41 = _fwrite($39 | 0, 1, $40 | 0, $15 | 0) | 0; $42 = HEAP32[$33 >> 2] | 0; $43 = ($41 | 0) == ($42 | 0); if ($43) { $50 = _fclose($15 | 0) | 0; $rc$0 = $50; _free($2); STACKTOP = sp; return $rc$0 | 0; } } $44 = ___errno_location() | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = HEAP32[80 >> 2] | 0; $47 = ($46 | 0) > 0; if ($47) { $48 = HEAP32[_stderr >> 2] | 0; $49 = _strerror($45 | 0) | 0; HEAP32[$vararg_buffer17 >> 2] = 848; $vararg_ptr20 = ($vararg_buffer17 + 4) | 0; HEAP32[$vararg_ptr20 >> 2] = $2; $vararg_ptr21 = ($vararg_buffer17 + 8) | 0; HEAP32[$vararg_ptr21 >> 2] = $49; _fprintf($48 | 0, 952 | 0, $vararg_buffer17 | 0) | 0; } _fclose($15 | 0) | 0; $rc$0 = $45; _free($2); STACKTOP = sp; return $rc$0 | 0; } function __zbar_process_image($proc, $img) { $proc = $proc | 0; $img = $img | 0; var $$0 = 0, $$01 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $format = 0, $or$cond = 0, $rc$0 = 0, $sym$02 = 0, $vararg_buffer6 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr12 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, $vararg_ptr2 = 0; var $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr9 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer6 = sp; $format = (sp + 28) | 0; $0 = ($proc + 80) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($img | 0) == (0 | 0); do { if ($2) { $$01 = 0; } else { $3 = ($proc + 100) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == 0; if (!$5) { $6 = ($proc + 48) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 + 40) | 0; $9 = HEAP32[$8 >> 2] | 0; _zbar_image_write($9, 1024) | 0; HEAP32[$3 >> 2] = 0; } $10 = _zbar_image_get_format($img) | 0; HEAP32[$format >> 2] = $10; $11 = HEAP32[80 >> 2] | 0; $12 = ($11 | 0) > 15; if ($12) { $13 = HEAP32[_stderr >> 2] | 0; $14 = _zbar_image_get_width($img) | 0; $15 = _zbar_image_get_height($img) | 0; $16 = _zbar_image_get_data($img) | 0; HEAP32[$vararg_buffer6 >> 2] = 1072; $vararg_ptr1 = ($vararg_buffer6 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $format; $vararg_ptr2 = ($vararg_buffer6 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $10; $vararg_ptr3 = ($vararg_buffer6 + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $14; $vararg_ptr4 = ($vararg_buffer6 + 16) | 0; HEAP32[$vararg_ptr4 >> 2] = $15; $vararg_ptr5 = ($vararg_buffer6 + 20) | 0; HEAP32[$vararg_ptr5 >> 2] = $16; _fprintf($13 | 0, 1032 | 0, $vararg_buffer6 | 0) | 0; } $17 = _zbar_image_convert($img, 808466521) | 0; $18 = ($17 | 0) == (0 | 0); if (!$18) { $19 = ($proc + 168) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($20 | 0) == (0 | 0); if (!$21) { _zbar_symbol_set_ref($20, -1); HEAP32[$19 >> 2] = 0; } $22 = ($proc + 52) | 0; $23 = HEAP32[$22 >> 2] | 0; _zbar_image_scanner_recycle_image($23, $img); $24 = HEAP32[$22 >> 2] | 0; $25 = _zbar_scan_image($24, $17) | 0; $26 = ($img + 64) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($17 + 64) | 0; $29 = HEAP32[$28 >> 2] | 0; HEAP32[$26 >> 2] = $29; HEAP32[$28 >> 2] = $27; _zbar_image_destroy($17); $30 = ($25 | 0) < 0; if (!$30) { $31 = HEAP32[$22 >> 2] | 0; $32 = _zbar_image_scanner_get_results($31) | 0; HEAP32[$19 >> 2] = $32; $33 = ($32 | 0) == (0 | 0); if (!$33) { _zbar_symbol_set_ref($32, 1); } $34 = HEAP32[80 >> 2] | 0; $35 = ($34 | 0) > 7; if ($35) { $36 = _zbar_image_first_symbol($img) | 0; $37 = ($36 | 0) == (0 | 0); if (!$37) { $38 = HEAP32[_stderr >> 2] | 0; $sym$02 = $36; while (1) { $39 = _zbar_symbol_get_type($sym$02) | 0; $40 = _zbar_symbol_get_count($sym$02) | 0; $41 = HEAP32[80 >> 2] | 0; $42 = ($41 | 0) > 7; if ($42) { $43 = _zbar_get_symbol_name($39) | 0; $44 = _zbar_symbol_get_data($sym$02) | 0; $45 = _zbar_symbol_get_loc_size($sym$02) | 0; $46 = _zbar_symbol_get_orientation($sym$02) | 0; $47 = _zbar_symbol_get_quality($sym$02) | 0; $48 = ($40 | 0) < 0; if ($48) { $51 = 1144; } else { $49 = ($40 | 0) > 0; $50 = $49 ? 1160 : 1176; $51 = $50; } HEAP32[$vararg_buffer6 >> 2] = 1072; $vararg_ptr9 = ($vararg_buffer6 + 4) | 0; HEAP32[$vararg_ptr9 >> 2] = $43; $vararg_ptr10 = ($vararg_buffer6 + 8) | 0; HEAP32[$vararg_ptr10 >> 2] = $44; $vararg_ptr11 = ($vararg_buffer6 + 12) | 0; HEAP32[$vararg_ptr11 >> 2] = $45; $vararg_ptr12 = ($vararg_buffer6 + 16) | 0; HEAP32[$vararg_ptr12 >> 2] = $46; $vararg_ptr13 = ($vararg_buffer6 + 20) | 0; HEAP32[$vararg_ptr13 >> 2] = $47; $vararg_ptr14 = ($vararg_buffer6 + 24) | 0; HEAP32[$vararg_ptr14 >> 2] = $51; _fprintf($38 | 0, 1096 | 0, $vararg_buffer6 | 0) | 0; } $52 = _zbar_symbol_next($sym$02) | 0; $53 = ($52 | 0) == (0 | 0); if ($53) { break; } else { $sym$02 = $52; } } } } $54 = ($25 | 0) == 0; if (!$54) { __zbar_processor_notify($proc, 2); $55 = ($proc + 56) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = ($56 | 0) == (0 | 0); if (!$57) { $58 = ($proc + 40) | 0; $59 = HEAP32[$58 >> 2] | 0; FUNCTION_TABLE_vii[$56 & 0]($img, $59); } } $60 = ($1 | 0) == 0; if ($60) { $$01 = $img; break; } $61 = HEAP32[$26 >> 2] | 0; $62 = _zbar_image_convert($img, $1) | 0; $63 = ($62 | 0) == (0 | 0); if (!$63) { $64 = ($62 + 64) | 0; HEAP32[$64 >> 2] = $61; _zbar_symbol_set_ref($61, 1); $$01 = $62; break; } } } $98 = HEAP32[$proc >> 2] | 0; $99 = ($98 | 0) == 1381123450; if (!$99) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $100 = ($proc + 16) | 0; HEAP32[$100 >> 2] = -1; $101 = ($proc + 20) | 0; HEAP32[$101 >> 2] = 3; $102 = ($proc + 24) | 0; HEAP32[$102 >> 2] = 1072; $103 = ($proc + 28) | 0; HEAP32[$103 >> 2] = 1184; $104 = HEAP32[80 >> 2] | 0; $105 = ($104 | 0) > 0; if (!$105) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($proc, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } } while (0); $65 = ($proc + 48) | 0; $66 = HEAP32[$65 >> 2] | 0; $67 = ($66 | 0) == (0 | 0); if ($67) { $rc$0 = 0; } else { $68 = _zbar_window_draw($66, $$01) | 0; $69 = ($68 | 0) == 0; do { if (!$69) { $70 = HEAP32[$65 >> 2] | 0; $71 = HEAP32[$proc >> 2] | 0; $72 = ($71 | 0) == 1381123450; if (!$72) { ___assert_fail(1896 | 0, 1848 | 0, 129, 1928 | 0); // unreachable; } $73 = HEAP32[$70 >> 2] | 0; $74 = ($73 | 0) == 1381123450; if ($74) { $75 = ($70 + 12) | 0; $76 = HEAP32[$75 >> 2] | 0; $77 = ($proc + 12) | 0; HEAP32[$77 >> 2] = $76; $78 = ($70 + 16) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ($proc + 16) | 0; HEAP32[$80 >> 2] = $79; $81 = ($70 + 20) | 0; $82 = HEAP32[$81 >> 2] | 0; $83 = ($proc + 20) | 0; HEAP32[$83 >> 2] = $82; $84 = ($70 + 24) | 0; $85 = HEAP32[$84 >> 2] | 0; $86 = ($proc + 24) | 0; HEAP32[$86 >> 2] = $85; $87 = ($70 + 28) | 0; $88 = HEAP32[$87 >> 2] | 0; $89 = ($proc + 28) | 0; HEAP32[$89 >> 2] = $88; $90 = ($70 + 32) | 0; $91 = HEAP32[$90 >> 2] | 0; $92 = ($proc + 32) | 0; HEAP32[$92 >> 2] = $91; HEAP32[$90 >> 2] = 0; $93 = ($70 + 36) | 0; $94 = HEAP32[$93 >> 2] | 0; $95 = ($proc + 36) | 0; HEAP32[$95 >> 2] = $94; break; } else { ___assert_fail(1944 | 0, 1848 | 0, 130, 1928 | 0); // unreachable; } } } while (0); __zbar_processor_invalidate($proc) | 0; $rc$0 = $68; } $96 = ($1 | 0) == 0; $97 = ($$01 | 0) == (0 | 0); $or$cond = $96 | $97; if ($or$cond) { $$0 = $rc$0; STACKTOP = sp; return $$0 | 0; } _zbar_image_destroy($$01); $$0 = $rc$0; STACKTOP = sp; return $$0 | 0; } function _zbar_processor_create($threaded) { $threaded = $threaded | 0; var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 200) | 0; $1 = ($0 | 0) == (0 | 0); if ($1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } HEAP32[$0 >> 2] = 1381123450; $2 = ($0 + 4) | 0; HEAP32[$2 >> 2] = 0; $3 = _zbar_image_scanner_create() | 0; $4 = ($0 + 52) | 0; HEAP32[$4 >> 2] = $3; $5 = ($3 | 0) == (0 | 0); if ($5) { _free($0); $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { $6 = ($0 + 88) | 0; HEAP32[$6 >> 2] = 0; __zbar_processor_init($0) | 0; $$0 = $0; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _zbar_processor_destroy($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $w$01 = 0, label = 0, sp = 0; sp = STACKTOP; _zbar_processor_init($proc, 0, 0) | 0; $0 = ($proc + 168) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { _zbar_symbol_set_ref($1, -1); HEAP32[$0 >> 2] = 0; } $3 = ($proc + 52) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == (0 | 0); if (!$5) { _zbar_image_scanner_destroy($4); HEAP32[$3 >> 2] = 0; } __zbar_processor_cleanup($proc) | 0; $6 = ($proc + 180) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 | 0) == (0 | 0); if (!$8) { ___assert_fail(1208 | 0, 1232 | 0, 303, 1256 | 0); // unreachable; } $9 = ($proc + 184) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == (0 | 0); if (!$11) { ___assert_fail(1280 | 0, 1232 | 0, 304, 1256 | 0); // unreachable; } $12 = ($proc + 188) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($13 | 0) == (0 | 0); if (!$14) { ___assert_fail(1304 | 0, 1232 | 0, 305, 1256 | 0); // unreachable; } $15 = ($proc + 192) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 | 0) == (0 | 0); if (!$17) { $w$01 = $16; while (1) { $18 = HEAP32[$w$01 >> 2] | 0; $19 = ($w$01 + 4) | 0; __zbar_event_destroy($19); _free($w$01); $20 = ($18 | 0) == (0 | 0); if ($20) { break; } else { $w$01 = $18; } } } $21 = HEAP32[$proc >> 2] | 0; $22 = ($21 | 0) == 1381123450; if (!$22) { ___assert_fail(1816 | 0, 1848 | 0, 218, 1864 | 0); // unreachable; } $23 = ($proc + 8) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($24 | 0) == (0 | 0); if (!$25) { _free($24); HEAP32[$23 >> 2] = 0; } $26 = ($proc + 32) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($27 | 0) == (0 | 0); if ($28) { _free($proc); STACKTOP = sp; return; } _free($27); _free($proc); STACKTOP = sp; return; } function _zbar_processor_init($proc, $dev, $enable_display) { $proc = $proc | 0; $dev = $dev | 0; $enable_display = $enable_display | 0; var $$not = 0, $$pr13$pre = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0; var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; var $height$0$i = 0, $not$ = 0, $or$cond = 0, $rc$1 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $width$0$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = ($proc + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { _zbar_processor_set_active($proc, 0) | 0; } $3 = ($proc + 48) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == (0 | 0); if (!$5) { $6 = ($proc + 116) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 | 0) == 0; if ($8) { __zbar_processor_close($proc) | 0; } } __zbar_processor_lock($proc) | 0; $9 = HEAP32[$3 >> 2] | 0; $10 = ($9 | 0) == (0 | 0); if (!$10) { _zbar_window_destroy($9); HEAP32[$3 >> 2] = 0; } $11 = HEAP32[$0 >> 2] | 0; $12 = ($11 | 0) == (0 | 0); if (!$12) { _zbar_video_destroy($11); HEAP32[$0 >> 2] = 0; } $13 = ($dev | 0) != (0 | 0); $$not = $13 ^ 1; $14 = ($enable_display | 0) == 0; $or$cond = $14 & $$not; if ($or$cond) { $rc$1 = 0; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } if (!$14) { $15 = _zbar_window_create() | 0; HEAP32[$3 >> 2] = $15; $16 = ($15 | 0) == (0 | 0); if ($16) { $17 = HEAP32[$proc >> 2] | 0; $18 = ($17 | 0) == 1381123450; if (!$18) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $19 = ($proc + 16) | 0; HEAP32[$19 >> 2] = -2; $20 = ($proc + 20) | 0; HEAP32[$20 >> 2] = 1; $21 = ($proc + 24) | 0; HEAP32[$21 >> 2] = 1328; $22 = ($proc + 28) | 0; HEAP32[$22 >> 2] = 1352; $23 = HEAP32[80 >> 2] | 0; $24 = ($23 | 0) > 0; if (!$24) { $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } } do { if ($13) { $25 = _zbar_video_create() | 0; HEAP32[$0 >> 2] = $25; $26 = ($25 | 0) == (0 | 0); if ($26) { $27 = HEAP32[$proc >> 2] | 0; $28 = ($27 | 0) == 1381123450; if (!$28) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $29 = ($proc + 16) | 0; HEAP32[$29 >> 2] = -2; $30 = ($proc + 20) | 0; HEAP32[$30 >> 2] = 1; $31 = ($proc + 24) | 0; HEAP32[$31 >> 2] = 1328; $32 = ($proc + 28) | 0; HEAP32[$32 >> 2] = 1384; $33 = HEAP32[80 >> 2] | 0; $34 = ($33 | 0) > 0; if (!$34) { $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } $35 = ($proc + 60) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($proc + 64) | 0; $38 = HEAP32[$37 >> 2] | 0; $39 = $36 | $38; $40 = ($39 | 0) == 0; if (!$40) { _zbar_video_request_size($25, $36, $38) | 0; } $41 = ($proc + 68) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($42 | 0) == 0; if (!$43) { $44 = HEAP32[$0 >> 2] | 0; _zbar_video_request_interface($44, $42) | 0; } $45 = ($proc + 72) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = ($46 | 0) == 0; if ($47) { label = 29; } else { $48 = HEAP32[$0 >> 2] | 0; $49 = _zbar_video_request_iomode($48, $46) | 0; $50 = ($49 | 0) == 0; if ($50) { label = 29; } } if ((label | 0) == 29) { $51 = HEAP32[$0 >> 2] | 0; $52 = _zbar_video_open($51, $dev) | 0; $53 = ($52 | 0) == 0; if ($53) { break; } } $54 = HEAP32[$0 >> 2] | 0; $55 = HEAP32[$proc >> 2] | 0; $56 = ($55 | 0) == 1381123450; if (!$56) { ___assert_fail(1896 | 0, 1848 | 0, 129, 1928 | 0); // unreachable; } $57 = HEAP32[$54 >> 2] | 0; $58 = ($57 | 0) == 1381123450; if (!$58) { ___assert_fail(1944 | 0, 1848 | 0, 130, 1928 | 0); // unreachable; } $59 = ($54 + 12) | 0; $60 = HEAP32[$59 >> 2] | 0; $61 = ($proc + 12) | 0; HEAP32[$61 >> 2] = $60; $62 = ($54 + 16) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = ($proc + 16) | 0; HEAP32[$64 >> 2] = $63; $65 = ($54 + 20) | 0; $66 = HEAP32[$65 >> 2] | 0; $67 = ($proc + 20) | 0; HEAP32[$67 >> 2] = $66; $68 = ($54 + 24) | 0; $69 = HEAP32[$68 >> 2] | 0; $70 = ($proc + 24) | 0; HEAP32[$70 >> 2] = $69; $71 = ($54 + 28) | 0; $72 = HEAP32[$71 >> 2] | 0; $73 = ($proc + 28) | 0; HEAP32[$73 >> 2] = $72; $74 = ($54 + 32) | 0; $75 = HEAP32[$74 >> 2] | 0; $76 = ($proc + 32) | 0; HEAP32[$76 >> 2] = $75; HEAP32[$74 >> 2] = 0; $77 = ($54 + 36) | 0; $78 = HEAP32[$77 >> 2] | 0; $79 = ($proc + 36) | 0; HEAP32[$79 >> 2] = $78; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } } while (0); $80 = ($proc + 88) | 0; $81 = HEAP32[$80 >> 2] | 0; $82 = ($81 | 0) == 0; L59: do { if (!$82) { $83 = HEAP32[$0 >> 2] | 0; $84 = ($83 | 0) == (0 | 0); do { if (!$84) { $85 = _zbar_video_get_fd($83) | 0; $86 = ($85 | 0) < 0; if (!$86) { $$pr13$pre = HEAP32[$80 >> 2] | 0; $98 = ($$pr13$pre | 0) == 0; if ($98) { break L59; } else { break; } } $87 = HEAP32[$proc >> 2] | 0; $88 = ($87 | 0) == 1381123450; if (!$88) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $89 = ___errno_location() | 0; $90 = HEAP32[$89 >> 2] | 0; $91 = ($proc + 12) | 0; HEAP32[$91 >> 2] = $90; $92 = ($proc + 16) | 0; HEAP32[$92 >> 2] = -1; $93 = ($proc + 20) | 0; HEAP32[$93 >> 2] = 5; $94 = ($proc + 24) | 0; HEAP32[$94 >> 2] = 1328; $95 = ($proc + 28) | 0; HEAP32[$95 >> 2] = 1416; $96 = HEAP32[80 >> 2] | 0; $97 = ($96 | 0) > 0; if (!$97) { $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } } while (0); $99 = HEAP32[$3 >> 2] | 0; $100 = ($99 | 0) == (0 | 0); if ($100) { $101 = HEAP32[$0 >> 2] | 0; $not$ = ($101 | 0) == (0 | 0); if ($not$) { break; } } $102 = HEAP32[$proc >> 2] | 0; $103 = ($102 | 0) == 1381123450; if (!$103) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $104 = ___errno_location() | 0; $105 = HEAP32[$104 >> 2] | 0; $106 = ($proc + 12) | 0; HEAP32[$106 >> 2] = $105; $107 = ($proc + 16) | 0; HEAP32[$107 >> 2] = -1; $108 = ($proc + 20) | 0; HEAP32[$108 >> 2] = 5; $109 = ($proc + 24) | 0; HEAP32[$109 >> 2] = 1328; $110 = ($proc + 28) | 0; HEAP32[$110 >> 2] = 1440; $111 = HEAP32[80 >> 2] | 0; $112 = ($111 | 0) > 0; if (!$112) { $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } } while (0); $113 = HEAP32[$3 >> 2] | 0; $114 = ($113 | 0) == (0 | 0); if (!$114) { $115 = HEAP32[$0 >> 2] | 0; $116 = ($115 | 0) == (0 | 0); if ($116) { $height$0$i = 480; $width$0$i = 640; } else { $117 = _zbar_video_get_width($115) | 0; $118 = HEAP32[$0 >> 2] | 0; $119 = _zbar_video_get_height($118) | 0; $height$0$i = $119; $width$0$i = $117; } $120 = __zbar_processor_open($proc, 1792, $width$0$i, $height$0$i) | 0; $121 = ($120 | 0) == 0; if (!$121) { $rc$1 = $120; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } } $122 = HEAP32[$0 >> 2] | 0; $123 = ($122 | 0) == (0 | 0); if ($123) { $rc$1 = 0; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } $124 = ($proc + 76) | 0; $125 = HEAP32[$124 >> 2] | 0; $126 = ($125 | 0) == 0; if (!$126) { $127 = _zbar_video_init($122, $125) | 0; $128 = ($127 | 0) == 0; if ($128) { $rc$1 = 0; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } $129 = HEAP32[$0 >> 2] | 0; $130 = HEAP32[$proc >> 2] | 0; $131 = ($130 | 0) == 1381123450; if (!$131) { ___assert_fail(1896 | 0, 1848 | 0, 129, 1928 | 0); // unreachable; } $132 = HEAP32[$129 >> 2] | 0; $133 = ($132 | 0) == 1381123450; if (!$133) { ___assert_fail(1944 | 0, 1848 | 0, 130, 1928 | 0); // unreachable; } $134 = ($129 + 12) | 0; $135 = HEAP32[$134 >> 2] | 0; $136 = ($proc + 12) | 0; HEAP32[$136 >> 2] = $135; $137 = ($129 + 16) | 0; $138 = HEAP32[$137 >> 2] | 0; $139 = ($proc + 16) | 0; HEAP32[$139 >> 2] = $138; $140 = ($129 + 20) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($proc + 20) | 0; HEAP32[$142 >> 2] = $141; $143 = ($129 + 24) | 0; $144 = HEAP32[$143 >> 2] | 0; $145 = ($proc + 24) | 0; HEAP32[$145 >> 2] = $144; $146 = ($129 + 28) | 0; $147 = HEAP32[$146 >> 2] | 0; $148 = ($proc + 28) | 0; HEAP32[$148 >> 2] = $147; $149 = ($129 + 32) | 0; $150 = HEAP32[$149 >> 2] | 0; $151 = ($proc + 32) | 0; HEAP32[$151 >> 2] = $150; HEAP32[$149 >> 2] = 0; $152 = ($129 + 36) | 0; $153 = HEAP32[$152 >> 2] | 0; $154 = ($proc + 36) | 0; HEAP32[$154 >> 2] = $153; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } $155 = HEAP32[$3 >> 2] | 0; $156 = ($155 | 0) == (0 | 0); do { if ($156) { $160 = $122; } else { $157 = _zbar_negotiate_format($122, $155) | 0; $158 = ($157 | 0) == 0; if ($158) { $rc$1 = 0; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } else { $159 = HEAP32[_stderr >> 2] | 0; _fwrite(1464 | 0, 83, 1, $159 | 0) | 0; $$pre = HEAP32[$0 >> 2] | 0; $160 = $$pre; break; } } } while (0); $161 = _zbar_negotiate_format($160, 0) | 0; $162 = ($161 | 0) == 0; if ($162) { $rc$1 = 0; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } $163 = HEAP32[80 >> 2] | 0; $164 = ($163 | 0) > 0; if ($164) { $165 = HEAP32[_stderr >> 2] | 0; $166 = HEAP32[$0 >> 2] | 0; $167 = ($166 | 0) != (0 | 0); $168 = $167 ? 1592 : 1608; HEAP32[$vararg_buffer >> 2] = 1328; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $168; _fprintf($165 | 0, 1552 | 0, $vararg_buffer | 0) | 0; } $169 = HEAP32[$proc >> 2] | 0; $170 = ($169 | 0) == 1381123450; if (!$170) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $171 = ($proc + 16) | 0; HEAP32[$171 >> 2] = -1; $172 = ($proc + 20) | 0; HEAP32[$172 >> 2] = 3; $173 = ($proc + 24) | 0; HEAP32[$173 >> 2] = 1328; $174 = ($proc + 28) | 0; HEAP32[$174 >> 2] = 1624; $175 = HEAP32[80 >> 2] | 0; $176 = ($175 | 0) > 0; if (!$176) { $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$1 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } function _zbar_processor_set_active($proc, $active) { $proc = $proc | 0; $active = $active | 0; var $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $9 = 0, $or$cond = 0, $rc$0 = 0, $rc$1 = 0, $rc$2 = 0, $rc$3 = 0, label = 0, sp = 0; sp = STACKTOP; __zbar_processor_lock($proc) | 0; $0 = ($proc + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { $3 = HEAP32[$proc >> 2] | 0; $4 = ($3 | 0) == 1381123450; if (!$4) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $5 = ($proc + 16) | 0; HEAP32[$5 >> 2] = -1; $6 = ($proc + 20) | 0; HEAP32[$6 >> 2] = 4; $7 = ($proc + 24) | 0; HEAP32[$7 >> 2] = 1728; $8 = ($proc + 28) | 0; HEAP32[$8 >> 2] = 1760; $9 = HEAP32[80 >> 2] | 0; $10 = ($9 | 0) > 0; if (!$10) { $rc$3 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$3 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$3 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$3 | 0; } $11 = ($proc + 52) | 0; $12 = HEAP32[$11 >> 2] | 0; _zbar_image_scanner_enable_cache($12, $active); $13 = HEAP32[$0 >> 2] | 0; $14 = _zbar_video_enable($13, $active) | 0; $15 = ($14 | 0) == 0; do { if ($15) { $16 = ($proc + 96) | 0; HEAP32[$16 >> 2] = $active; $17 = __zbar_processor_enable($proc) | 0; $$pre$phiZ2D = $16; $rc$0 = $17; } else { $18 = HEAP32[$0 >> 2] | 0; $19 = HEAP32[$proc >> 2] | 0; $20 = ($19 | 0) == 1381123450; if (!$20) { ___assert_fail(1896 | 0, 1848 | 0, 129, 1928 | 0); // unreachable; } $21 = HEAP32[$18 >> 2] | 0; $22 = ($21 | 0) == 1381123450; if ($22) { $23 = ($18 + 12) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($proc + 12) | 0; HEAP32[$25 >> 2] = $24; $26 = ($18 + 16) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($proc + 16) | 0; HEAP32[$28 >> 2] = $27; $29 = ($18 + 20) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = ($proc + 20) | 0; HEAP32[$31 >> 2] = $30; $32 = ($18 + 24) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = ($proc + 24) | 0; HEAP32[$34 >> 2] = $33; $35 = ($18 + 28) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($proc + 28) | 0; HEAP32[$37 >> 2] = $36; $38 = ($18 + 32) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($proc + 32) | 0; HEAP32[$40 >> 2] = $39; HEAP32[$38 >> 2] = 0; $41 = ($18 + 36) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($proc + 36) | 0; HEAP32[$43 >> 2] = $42; $$pre = ($proc + 96) | 0; $$pre$phiZ2D = $$pre; $rc$0 = $14; break; } else { ___assert_fail(1944 | 0, 1848 | 0, 130, 1928 | 0); // unreachable; } } } while (0); $44 = HEAP32[$$pre$phiZ2D >> 2] | 0; $45 = ($44 | 0) == 0; if ($45) { $46 = ($proc + 48) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) == (0 | 0); if ($48) { $rc$2 = $rc$0; } else { $49 = _zbar_window_draw($47, 0) | 0; $50 = ($49 | 0) != 0; $51 = ($rc$0 | 0) == 0; $or$cond = $50 & $51; do { if ($or$cond) { $52 = HEAP32[$46 >> 2] | 0; $53 = HEAP32[$proc >> 2] | 0; $54 = ($53 | 0) == 1381123450; if (!$54) { ___assert_fail(1896 | 0, 1848 | 0, 129, 1928 | 0); // unreachable; } $55 = HEAP32[$52 >> 2] | 0; $56 = ($55 | 0) == 1381123450; if ($56) { $57 = ($52 + 12) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = ($proc + 12) | 0; HEAP32[$59 >> 2] = $58; $60 = ($52 + 16) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = ($proc + 16) | 0; HEAP32[$62 >> 2] = $61; $63 = ($52 + 20) | 0; $64 = HEAP32[$63 >> 2] | 0; $65 = ($proc + 20) | 0; HEAP32[$65 >> 2] = $64; $66 = ($52 + 24) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = ($proc + 24) | 0; HEAP32[$68 >> 2] = $67; $69 = ($52 + 28) | 0; $70 = HEAP32[$69 >> 2] | 0; $71 = ($proc + 28) | 0; HEAP32[$71 >> 2] = $70; $72 = ($52 + 32) | 0; $73 = HEAP32[$72 >> 2] | 0; $74 = ($proc + 32) | 0; HEAP32[$74 >> 2] = $73; HEAP32[$72 >> 2] = 0; $75 = ($52 + 36) | 0; $76 = HEAP32[$75 >> 2] | 0; $77 = ($proc + 36) | 0; HEAP32[$77 >> 2] = $76; $rc$1 = -1; break; } else { ___assert_fail(1944 | 0, 1848 | 0, 130, 1928 | 0); // unreachable; } } else { $rc$1 = $rc$0; } } while (0); __zbar_processor_invalidate($proc) | 0; $rc$2 = $rc$1; } } else { $rc$2 = $rc$0; } $78 = ($proc + 144) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ($79 | 0) == 0; if ($80) { $rc$3 = $rc$2; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$3 | 0; } $81 = ($proc + 152) | 0; __zbar_event_trigger($81); $rc$3 = $rc$2; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$3 | 0; } function _zbar_processor_is_visible($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; __zbar_processor_lock($proc) | 0; $0 = ($proc + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { $7 = 0; } else { $3 = ($proc + 92) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) != 0; $7 = $5; } $6 = $7 & 1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $6 | 0; } function _zbar_processor_user_wait($proc, $timeout) { $proc = $proc | 0; $timeout = $timeout | 0; var $$0$i = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $phitmp = 0, $rc$2 = 0, $timer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $timer = sp; __zbar_processor_lock($proc) | 0; $0 = ($proc + 92) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($proc + 96) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) != 0; $6 = ($timeout | 0) > -1; $or$cond = $5 | $6; if ($or$cond) { label = 3; } } else { label = 3; } if ((label | 0) == 3) { $7 = ($timeout | 0) < 0; if ($7) { $$0$i = 0; } else { _clock_gettime(0, $timer | 0) | 0; $8 = ($timeout | 0) % 1000 & -1; $9 = ($8 * 1000000) | 0; $10 = ($timer + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 + $9) | 0; $13 = (($timeout | 0) / 1000) & -1; $14 = (($12 | 0) / 1000000000) & -1; $15 = ($14 + $13) | 0; $16 = HEAP32[$timer >> 2] | 0; $17 = ($15 + $16) | 0; HEAP32[$timer >> 2] = $17; $18 = ($12 | 0) % 1000000000 & -1; HEAP32[$10 >> 2] = $18; $$0$i = $timer; } $19 = __zbar_processor_wait($proc, 1, $$0$i) | 0; $$pre = HEAP32[$0 >> 2] | 0; $phitmp = ($$pre | 0) == 0; if (!$phitmp) { $28 = ($19 | 0) > 0; if (!$28) { $rc$2 = $19; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$2 | 0; } $29 = ($proc + 84) | 0; $30 = HEAP32[$29 >> 2] | 0; $rc$2 = $30; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$2 | 0; } } $20 = HEAP32[$proc >> 2] | 0; $21 = ($20 | 0) == 1381123450; if (!$21) { ___assert_fail(1816 | 0, 1848 | 0, 150, 1880 | 0); // unreachable; } $22 = ($proc + 16) | 0; HEAP32[$22 >> 2] = 1; $23 = ($proc + 20) | 0; HEAP32[$23 >> 2] = 10; $24 = ($proc + 24) | 0; HEAP32[$24 >> 2] = 1656; $25 = ($proc + 28) | 0; HEAP32[$25 >> 2] = 1688; $26 = HEAP32[80 >> 2] | 0; $27 = ($26 | 0) > 0; if (!$27) { $rc$2 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$2 | 0; } __zbar_error_spew($proc, 0) | 0; $rc$2 = -1; __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$2 | 0; } function _zbar_process_image($proc, $img) { $proc = $proc | 0; $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $rc$1 = 0, label = 0, sp = 0; sp = STACKTOP; __zbar_processor_lock($proc) | 0; $0 = ($img | 0) == (0 | 0); if ($0) { label = 4; } else { $1 = ($proc + 48) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 | 0) == (0 | 0); if ($3) { label = 4; } else { $4 = _zbar_image_get_width($img) | 0; $5 = _zbar_image_get_height($img) | 0; $6 = __zbar_processor_set_size($proc, $4, $5) | 0; $7 = ($6 | 0) == 0; if ($7) { label = 4; } else { $rc$1 = $6; } } } if ((label | 0) == 4) { $8 = ($proc + 52) | 0; $9 = HEAP32[$8 >> 2] | 0; _zbar_image_scanner_enable_cache($9, 0); $10 = __zbar_process_image($proc, $img) | 0; $11 = ($proc + 96) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 | 0) == 0; if ($13) { $rc$1 = $10; } else { $14 = HEAP32[$8 >> 2] | 0; _zbar_image_scanner_enable_cache($14, 1); $rc$1 = $10; } } __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return $rc$1 | 0; } function __zbar_refcnt_init() { var label = 0, sp = 0; sp = STACKTOP; STACKTOP = sp; return; } function _zbar_get_symbol_name($sym) { $sym = $sym | 0; var $$0 = 0, $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $sym & 255; do { switch ($0 | 0) { case 34: { $$0 = 2064; break; } case 10: { $$0 = 2008; break; } case 15: { $$0 = 2040; break; } case 5: { $$0 = 1984; break; } case 64: { $$0 = 2136; break; } case 8: { $$0 = 1992; break; } case 14: { $$0 = 2032; break; } case 38: { $$0 = 2088; break; } case 35: { $$0 = 2072; break; } case 25: { $$0 = 2056; break; } case 12: { $$0 = 2016; break; } case 9: { $$0 = 2000; break; } case 93: { $$0 = 2104; break; } case 13: { $$0 = 2024; break; } case 39: { $$0 = 2096; break; } case 2: { $$0 = 1976; break; } case 128: { $$0 = 2112; break; } case 57: { $$0 = 2128; break; } default: { $$0 = 2144; } } } while (0); STACKTOP = sp; return $$0 | 0; } function _zbar_get_addon_name($sym) { $sym = $sym | 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = sp; return 2152 | 0; } function __zbar_get_symbol_hash($sym) { $sym = $sym | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0; var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $sym & 31; $1 = (2160 + $0) | 0; $2 = HEAP8[$1 >> 0] | 0; $3 = $2 & 255; $4 = $sym >>> 4; $5 = $4 & 31; $6 = $5 ^ 31; $7 = (2160 + $6) | 0; $8 = HEAP8[$7 >> 0] | 0; $9 = $8 & 255; $10 = -25102353 >>> $0; $11 = $10 & 1; $12 = ($11 | 0) == 0; if ($12) { ___assert_fail(2192 | 0, 2216 | 0, 109, 2232 | 0); // unreachable; } $13 = -25102353 >>> $6; $14 = $13 & 1; $15 = ($14 | 0) == 0; if ($15) { ___assert_fail(2192 | 0, 2216 | 0, 109, 2232 | 0); // unreachable; } $16 = 25102352 >>> $0; $17 = $16 & 1; $18 = ($17 | 0) == 0; if (!$18) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $19 = 25102352 >>> $6; $20 = $19 & 1; $21 = ($20 | 0) == 0; if (!$21) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $22 = ($9 + $3) | 0; $23 = $22 & 31; $$0 = $23; STACKTOP = sp; return $$0 | 0; } function __zbar_symbol_free($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { _zbar_symbol_set_ref($1, -1); HEAP32[$0 >> 2] = 0; } $3 = ($sym + 32) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == (0 | 0); if (!$5) { _free($4); } $6 = ($sym + 12) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 | 0) == 0; if ($8) { _free($sym); STACKTOP = sp; return; } $9 = ($sym + 20) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == (0 | 0); if ($11) { _free($sym); STACKTOP = sp; return; } _free($10); _free($sym); STACKTOP = sp; return; } function _zbar_symbol_set_ref($syms, $delta) { $syms = $syms | 0; $delta = $delta | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $sym$0$i2 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$syms >> 2] | 0; $1 = ($0 + $delta) | 0; HEAP32[$syms >> 2] = $1; $2 = ($1 | 0) > -1; if (!$2) { ___assert_fail(2256 | 0, 2264 | 0, 87, 2280 | 0); // unreachable; } $3 = ($1 | 0) == 0; $4 = ($delta | 0) < 1; $or$cond = $3 & $4; if (!$or$cond) { STACKTOP = sp; return; } $5 = ($syms + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($6 | 0) == (0 | 0); L7: do { if (!$7) { $sym$0$i2 = $6; while (1) { $8 = ($sym$0$i2 + 44) | 0; $9 = HEAP32[$8 >> 2] | 0; HEAP32[$8 >> 2] = 0; $10 = ($sym$0$i2 + 40) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 + -1) | 0; HEAP32[$10 >> 2] = $12; $13 = ($11 | 0) > 0; if (!$13) { break; } $14 = ($12 | 0) == 0; if ($14) { $15 = ($sym$0$i2 + 48) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 | 0) == (0 | 0); if (!$17) { _zbar_symbol_set_ref($16, -1); HEAP32[$15 >> 2] = 0; } $18 = ($sym$0$i2 + 32) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($19 | 0) == (0 | 0); if (!$20) { _free($19); } $21 = ($sym$0$i2 + 12) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($22 | 0) == 0; if (!$23) { $24 = ($sym$0$i2 + 20) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($25 | 0) == (0 | 0); if (!$26) { _free($25); } } _free($sym$0$i2); } $27 = ($9 | 0) == (0 | 0); if ($27) { break L7; } else { $sym$0$i2 = $9; } } ___assert_fail(2256 | 0, 2264 | 0, 87, 2280 | 0); // unreachable; } } while (0); _free($syms); STACKTOP = sp; return; } function _zbar_symbol_get_type($sym) { $sym = $sym | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$sym >> 2] | 0; STACKTOP = sp; return $0 | 0; } function _zbar_symbol_get_data($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 20) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_symbol_get_count($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 56) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_symbol_get_quality($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 60) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_symbol_get_loc_size($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 28) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_symbol_get_orientation($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym + 36) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_symbol_next($sym) { $sym = $sym | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym | 0) == (0 | 0); if ($0) { $3 = 0; } else { $1 = ($sym + 44) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = $2; } STACKTOP = sp; return $3 | 0; } function __zbar_symbol_set_create() { var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 16) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 + 1) | 0; HEAP32[$0 >> 2] = $2; $3 = ($1 | 0) > -2; if ($3) { STACKTOP = sp; return $0 | 0; } else { ___assert_fail(2256 | 0, 2264 | 0, 87, 2280 | 0); // unreachable; } return 0 | 0; } function __zbar_symbol_set_free($syms) { $syms = $syms | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; var $7 = 0, $8 = 0, $9 = 0, $sym$01 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($syms + 8) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { _free($syms); STACKTOP = sp; return; } else { $sym$01 = $1; } while (1) { $3 = ($sym$01 + 44) | 0; $4 = HEAP32[$3 >> 2] | 0; HEAP32[$3 >> 2] = 0; $5 = ($sym$01 + 40) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($6 + -1) | 0; HEAP32[$5 >> 2] = $7; $8 = ($6 | 0) > 0; if (!$8) { label = 3; break; } $9 = ($7 | 0) == 0; if ($9) { $11 = ($sym$01 + 48) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 | 0) == (0 | 0); if (!$13) { _zbar_symbol_set_ref($12, -1); HEAP32[$11 >> 2] = 0; } $14 = ($sym$01 + 32) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = ($15 | 0) == (0 | 0); if (!$16) { _free($15); } $17 = ($sym$01 + 12) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($18 | 0) == 0; if (!$19) { $20 = ($sym$01 + 20) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($21 | 0) == (0 | 0); if (!$22) { _free($21); } } _free($sym$01); } $10 = ($4 | 0) == (0 | 0); if ($10) { label = 14; break; } else { $sym$01 = $4; } } if ((label | 0) == 3) { ___assert_fail(2256 | 0, 2264 | 0, 87, 2280 | 0); // unreachable; } else if ((label | 0) == 14) { _free($syms); STACKTOP = sp; return; } } function _zbar_video_create() { var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$01 = 0; var label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 140) | 0; $1 = ($0 | 0) == (0 | 0); if ($1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } HEAP32[$0 >> 2] = 1381123450; $2 = ($0 + 4) | 0; HEAP32[$2 >> 2] = 1; $3 = ($0 + 40) | 0; HEAP32[$3 >> 2] = -1; $4 = ($0 + 92) | 0; HEAP32[$4 >> 2] = 4; $5 = _calloc(4, 4) | 0; $6 = ($0 + 96) | 0; HEAP32[$6 >> 2] = $5; $7 = ($5 | 0) == (0 | 0); if ($7) { _zbar_video_destroy($0); $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { $i$01 = 0; } while (1) { $8 = _zbar_image_create() | 0; $9 = HEAP32[$6 >> 2] | 0; $10 = ($9 + ($i$01 << 2)) | 0; HEAP32[$10 >> 2] = $8; $11 = ($8 | 0) == (0 | 0); if ($11) { break; } $12 = ($8 + 44) | 0; HEAP32[$12 >> 2] = 0; $13 = ($8 + 40) | 0; HEAP32[$13 >> 2] = 2; $14 = ($8 + 52) | 0; HEAP32[$14 >> 2] = $i$01; $15 = ($8 + 48) | 0; HEAP32[$15 >> 2] = $0; $16 = ($i$01 + 1) | 0; $17 = ($16 | 0) < 4; if ($17) { $i$01 = $16; } else { $$0 = $0; label = 7; break; } } if ((label | 0) == 7) { STACKTOP = sp; return $$0 | 0; } _zbar_video_destroy($0); $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _zbar_video_destroy($vdo) { $vdo = $vdo | 0; var $$pre = 0, $$pre3 = 0, $$pre4 = 0, $$pre5 = 0, $$pre6 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $exitcond$i = 0, $i1$03$i$i = 0, $vararg_buffer = 0; var $vararg_ptr1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = ($vdo + 52) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; do { if (!$2) { $3 = ($vdo + 60) | 0; $4 = HEAP8[$3 >> 0] | 0; $5 = $4 & 2; $6 = ($5 << 24) >> 24 == 0; if (!$6) { $7 = $4 & -3; HEAP8[$3 >> 0] = $7; $8 = ($vdo + 92) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 | 0) > 0; if ($10) { $11 = ($vdo + 96) | 0; $i1$03$i$i = 0; while (1) { $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 + ($i1$03$i$i << 2)) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($14 + 56) | 0; HEAP32[$15 >> 2] = 0; $16 = ($i1$03$i$i + 1) | 0; $exitcond$i = ($16 | 0) == ($9 | 0); if ($exitcond$i) { break; } else { $i1$03$i$i = $16; } } } $17 = ($vdo + 104) | 0; HEAP32[$17 >> 2] = 0; $18 = ($vdo + 100) | 0; HEAP32[$18 >> 2] = 0; $19 = ($vdo + 128) | 0; $20 = HEAP32[$19 >> 2] | 0; FUNCTION_TABLE_ii[$20 & 0]($vdo) | 0; $$pre6 = HEAP32[$0 >> 2] | 0; $21 = ($$pre6 | 0) == 0; if ($21) { break; } } $22 = ($vdo + 120) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($23 | 0) == (0 | 0); if (!$24) { FUNCTION_TABLE_ii[$23 & 0]($vdo) | 0; HEAP32[$22 >> 2] = 0; } $25 = HEAP32[80 >> 2] | 0; $26 = ($25 | 0) > 0; if ($26) { $27 = HEAP32[_stderr >> 2] | 0; $28 = ($vdo + 40) | 0; $29 = HEAP32[$28 >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 2328; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $29; _fprintf($27 | 0, 2296 | 0, $vararg_buffer | 0) | 0; } HEAP32[$0 >> 2] = 0; } } while (0); $30 = ($vdo + 96) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($31 | 0) == (0 | 0); if (!$32) { $33 = HEAP32[$31 >> 2] | 0; $34 = ($33 | 0) == (0 | 0); if ($34) { $36 = $31; } else { __zbar_image_free($33); $$pre = HEAP32[$30 >> 2] | 0; $36 = $$pre; } $35 = ($36 + 4) | 0; $37 = HEAP32[$35 >> 2] | 0; $38 = ($37 | 0) == (0 | 0); if ($38) { $64 = $36; } else { __zbar_image_free($37); $$pre3 = HEAP32[$30 >> 2] | 0; $64 = $$pre3; } $63 = ($64 + 8) | 0; $65 = HEAP32[$63 >> 2] | 0; $66 = ($65 | 0) == (0 | 0); if ($66) { $68 = $64; } else { __zbar_image_free($65); $$pre4 = HEAP32[$30 >> 2] | 0; $68 = $$pre4; } $67 = ($68 + 12) | 0; $69 = HEAP32[$67 >> 2] | 0; $70 = ($69 | 0) == (0 | 0); if ($70) { $71 = $68; } else { __zbar_image_free($69); $$pre5 = HEAP32[$30 >> 2] | 0; $71 = $$pre5; } _free($71); } $39 = ($vdo + 108) | 0; $40 = HEAP32[$39 >> 2] | 0; $41 = ($40 | 0) == (0 | 0); if (!$41) { $43 = $40; while (1) { $42 = ($43 + 56) | 0; $44 = HEAP32[$42 >> 2] | 0; HEAP32[$39 >> 2] = $44; $45 = ($43 + 12) | 0; $46 = HEAP32[$45 >> 2] | 0; _free($46); _free($43); $47 = HEAP32[$39 >> 2] | 0; $48 = ($47 | 0) == (0 | 0); if ($48) { break; } else { $43 = $47; } } } $49 = ($vdo + 84) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = ($50 | 0) == (0 | 0); if (!$51) { _free($50); } $52 = ($vdo + 72) | 0; $53 = HEAP32[$52 >> 2] | 0; $54 = ($53 | 0) == (0 | 0); if (!$54) { _free($53); } $55 = HEAP32[$vdo >> 2] | 0; $56 = ($55 | 0) == 1381123450; if (!$56) { ___assert_fail(3208 | 0, 3240 | 0, 218, 3272 | 0); // unreachable; } $57 = ($vdo + 8) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = ($58 | 0) == (0 | 0); if (!$59) { _free($58); HEAP32[$57 >> 2] = 0; } $60 = ($vdo + 32) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = ($61 | 0) == (0 | 0); if ($62) { _free($vdo); STACKTOP = sp; return; } _free($61); _free($vdo); STACKTOP = sp; return; } function __zbar_video_recycle_image($img) { $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { ___assert_fail(2960 | 0, 2880 | 0, 36, 3288 | 0); // unreachable; } $3 = ($img + 52) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) > -1; if (!$5) { ___assert_fail(3320 | 0, 2880 | 0, 37, 3288 | 0); // unreachable; } $6 = ($1 + 96) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 + ($4 << 2)) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 | 0) == ($img | 0); if (!$10) { HEAP32[$8 >> 2] = $img; } $11 = ($1 + 60) | 0; $12 = HEAP8[$11 >> 0] | 0; $13 = $12 & 2; $14 = ($13 << 24) >> 24 == 0; if ($14) { STACKTOP = sp; return; } $15 = ($1 + 132) | 0; $16 = HEAP32[$15 >> 2] | 0; FUNCTION_TABLE_iii[$16 & 7]($1, $img) | 0; STACKTOP = sp; return; } function _zbar_video_open($vdo, $dev) { $vdo = $vdo | 0; $dev = $dev | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; var $9 = 0, $exitcond = 0, $i1$03$i = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = ($vdo + 60) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = $1 & 2; $3 = ($2 << 24) >> 24 == 0; if (!$3) { $4 = $1 & -3; HEAP8[$0 >> 0] = $4; $5 = ($vdo + 92) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($6 | 0) > 0; if ($7) { $8 = ($vdo + 96) | 0; $i1$03$i = 0; while (1) { $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 + ($i1$03$i << 2)) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 + 56) | 0; HEAP32[$12 >> 2] = 0; $13 = ($i1$03$i + 1) | 0; $exitcond = ($13 | 0) == ($6 | 0); if ($exitcond) { break; } else { $i1$03$i = $13; } } } $14 = ($vdo + 104) | 0; HEAP32[$14 >> 2] = 0; $15 = ($vdo + 100) | 0; HEAP32[$15 >> 2] = 0; $16 = ($vdo + 128) | 0; $17 = HEAP32[$16 >> 2] | 0; FUNCTION_TABLE_ii[$17 & 0]($vdo) | 0; } $18 = ($vdo + 52) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($19 | 0) == 0; if (!$20) { $21 = ($vdo + 120) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($22 | 0) == (0 | 0); if (!$23) { FUNCTION_TABLE_ii[$22 & 0]($vdo) | 0; HEAP32[$21 >> 2] = 0; } $24 = HEAP32[80 >> 2] | 0; $25 = ($24 | 0) > 0; if ($25) { $26 = HEAP32[_stderr >> 2] | 0; $27 = ($vdo + 40) | 0; $28 = HEAP32[$27 >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 2328; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $28; _fprintf($26 | 0, 2296 | 0, $vararg_buffer | 0) | 0; } HEAP32[$18 >> 2] = 0; } $29 = ($dev | 0) == (0 | 0); if ($29) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $30 = HEAP8[$dev >> 0] | 0; $31 = ($30 & 255) < 16; if (!$31) { $32 = __zbar_video_open($vdo, $dev) | 0; $$0 = $32; STACKTOP = sp; return $$0 | 0; } $33 = $30 & 255; $34 = ___strdup(2344) | 0; $35 = ($33 + 48) | 0; $36 = $35 & 255; $37 = ($34 + 10) | 0; HEAP8[$37 >> 0] = $36; $38 = __zbar_video_open($vdo, $34) | 0; $39 = ($34 | 0) == (0 | 0); if ($39) { $$0 = $38; STACKTOP = sp; return $$0 | 0; } _free($34); $$0 = $38; STACKTOP = sp; return $$0 | 0; } function _zbar_video_enable($vdo, $enable) { $vdo = $vdo | 0; $enable = $enable | 0; var $$0 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $7 = 0, $8 = 0, $9 = 0, $i$01 = 0, $i1$03 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 60) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = ($1 & 255) >>> 1; $3 = $2 & 1; $4 = $3 & 255; $5 = ($4 | 0) == ($enable | 0); if ($5) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $6 = ($enable | 0) == 0; if ($6) { $45 = $1 & -3; HEAP8[$0 >> 0] = $45; $46 = ($vdo + 92) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) > 0; if ($48) { $49 = ($vdo + 96) | 0; $i1$03 = 0; while (1) { $50 = HEAP32[$49 >> 2] | 0; $51 = ($50 + ($i1$03 << 2)) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($52 + 56) | 0; HEAP32[$53 >> 2] = 0; $54 = ($i1$03 + 1) | 0; $55 = ($54 | 0) < ($47 | 0); if ($55) { $i1$03 = $54; } else { break; } } } $56 = ($vdo + 104) | 0; HEAP32[$56 >> 2] = 0; $57 = ($vdo + 100) | 0; HEAP32[$57 >> 2] = 0; $58 = ($vdo + 128) | 0; $59 = HEAP32[$58 >> 2] | 0; $60 = FUNCTION_TABLE_ii[$59 & 0]($vdo) | 0; $$0 = $60; STACKTOP = sp; return $$0 | 0; } $7 = ($vdo + 52) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($8 | 0) == 0; if ($9) { $10 = HEAP32[$vdo >> 2] | 0; $11 = ($10 | 0) == 1381123450; if (!$11) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $12 = ($vdo + 16) | 0; HEAP32[$12 >> 2] = -1; $13 = ($vdo + 20) | 0; HEAP32[$13 >> 2] = 4; $14 = ($vdo + 24) | 0; HEAP32[$14 >> 2] = 2848; $15 = ($vdo + 28) | 0; HEAP32[$15 >> 2] = 2384; $16 = HEAP32[80 >> 2] | 0; $17 = ($16 | 0) > 0; if (!$17) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } $18 = $1 & 1; $19 = ($18 << 24) >> 24 == 0; do { if ($19) { $20 = _zbar_negotiate_format($vdo, 0) | 0; $21 = ($20 | 0) == 0; if ($21) { $$pre = HEAP8[$0 >> 0] | 0; $26 = $$pre; break; } else { $$0 = -1; STACKTOP = sp; return $$0 | 0; } } else { $26 = $1; } } while (0); $22 = $enable & 255; $23 = ($22 << 1) & 255; $24 = $23 & 2; $25 = $26 & -3; $27 = $25 | $24; HEAP8[$0 >> 0] = $27; $28 = ($vdo + 92) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($29 | 0) > 0; L29: do { if ($30) { $31 = ($vdo + 132) | 0; $32 = ($vdo + 96) | 0; $i$01 = 0; while (1) { $36 = HEAP32[$31 >> 2] | 0; $37 = HEAP32[$32 >> 2] | 0; $38 = ($37 + ($i$01 << 2)) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = FUNCTION_TABLE_iii[$36 & 7]($vdo, $39) | 0; $41 = ($40 | 0) == 0; $34 = ($i$01 + 1) | 0; if (!$41) { $$0 = -1; break; } $33 = HEAP32[$28 >> 2] | 0; $35 = ($34 | 0) < ($33 | 0); if ($35) { $i$01 = $34; } else { break L29; } } STACKTOP = sp; return $$0 | 0; } } while (0); $42 = ($vdo + 124) | 0; $43 = HEAP32[$42 >> 2] | 0; $44 = FUNCTION_TABLE_ii[$43 & 0]($vdo) | 0; $$0 = $44; STACKTOP = sp; return $$0 | 0; } function _zbar_video_get_fd($vdo) { $vdo = $vdo | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; var $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 52) | 0; $1 = HEAP32[$0 >> 2] | 0; if (($1 | 0) == 0) { $2 = HEAP32[$vdo >> 2] | 0; $3 = ($2 | 0) == 1381123450; if (!$3) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $4 = ($vdo + 16) | 0; HEAP32[$4 >> 2] = -1; $5 = ($vdo + 20) | 0; HEAP32[$5 >> 2] = 4; $6 = ($vdo + 24) | 0; HEAP32[$6 >> 2] = 2360; $7 = ($vdo + 28) | 0; HEAP32[$7 >> 2] = 2384; $8 = HEAP32[80 >> 2] | 0; $9 = ($8 | 0) > 0; if (!$9) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } else if (($1 | 0) == 2) { $18 = ($vdo + 40) | 0; $19 = HEAP32[$18 >> 2] | 0; $$0 = $19; STACKTOP = sp; return $$0 | 0; } else { $10 = HEAP32[$vdo >> 2] | 0; $11 = ($10 | 0) == 1381123450; if (!$11) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $12 = ($vdo + 16) | 0; HEAP32[$12 >> 2] = 1; $13 = ($vdo + 20) | 0; HEAP32[$13 >> 2] = 3; $14 = ($vdo + 24) | 0; HEAP32[$14 >> 2] = 2360; $15 = ($vdo + 28) | 0; HEAP32[$15 >> 2] = 2408; $16 = HEAP32[80 >> 2] | 0; $17 = ($16 | 0) > 0; if (!$17) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _zbar_video_request_size($vdo, $width, $height) { $vdo = $vdo | 0; $width = $width | 0; $height = $height | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0; var $vararg_ptr2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = ($vdo + 60) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = $1 & 1; $3 = ($2 << 24) >> 24 == 0; if ($3) { $12 = ($vdo + 44) | 0; HEAP32[$12 >> 2] = $width; $13 = ($vdo + 48) | 0; HEAP32[$13 >> 2] = $height; $14 = HEAP32[80 >> 2] | 0; $15 = ($14 | 0) > 0; if (!$15) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $16 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 2448; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $width; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $height; _fprintf($16 | 0, 2512 | 0, $vararg_buffer | 0) | 0; $$0 = 0; STACKTOP = sp; return $$0 | 0; } $4 = HEAP32[$vdo >> 2] | 0; $5 = ($4 | 0) == 1381123450; if (!$5) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $6 = ($vdo + 16) | 0; HEAP32[$6 >> 2] = -1; $7 = ($vdo + 20) | 0; HEAP32[$7 >> 2] = 4; $8 = ($vdo + 24) | 0; HEAP32[$8 >> 2] = 2448; $9 = ($vdo + 28) | 0; HEAP32[$9 >> 2] = 2472; $10 = HEAP32[80 >> 2] | 0; $11 = ($10 | 0) > 0; if (!$11) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _zbar_video_request_interface($vdo, $ver) { $vdo = $vdo | 0; $ver = $ver | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = ($vdo + 52) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { HEAP32[$0 >> 2] = $ver; $11 = HEAP32[80 >> 2] | 0; $12 = ($11 | 0) > 0; if (!$12) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $13 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 2544; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $ver; _fprintf($13 | 0, 2632 | 0, $vararg_buffer | 0) | 0; $$0 = 0; STACKTOP = sp; return $$0 | 0; } $3 = HEAP32[$vdo >> 2] | 0; $4 = ($3 | 0) == 1381123450; if (!$4) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $5 = ($vdo + 16) | 0; HEAP32[$5 >> 2] = -1; $6 = ($vdo + 20) | 0; HEAP32[$6 >> 2] = 4; $7 = ($vdo + 24) | 0; HEAP32[$7 >> 2] = 2544; $8 = ($vdo + 28) | 0; HEAP32[$8 >> 2] = 2576; $9 = HEAP32[80 >> 2] | 0; $10 = ($9 | 0) > 0; if (!$10) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _zbar_video_request_iomode($vdo, $iomode) { $vdo = $vdo | 0; $iomode = $iomode | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; var $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 52) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if (!$2) { $3 = HEAP32[$vdo >> 2] | 0; $4 = ($3 | 0) == 1381123450; if (!$4) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $5 = ($vdo + 16) | 0; HEAP32[$5 >> 2] = -1; $6 = ($vdo + 20) | 0; HEAP32[$6 >> 2] = 4; $7 = ($vdo + 24) | 0; HEAP32[$7 >> 2] = 2672; $8 = ($vdo + 28) | 0; HEAP32[$8 >> 2] = 2704; $9 = HEAP32[80 >> 2] | 0; $10 = ($9 | 0) > 0; if (!$10) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } $11 = $iomode >>> 0 > 3; if (!$11) { $20 = ($vdo + 56) | 0; HEAP32[$20 >> 2] = $iomode; $$0 = 0; STACKTOP = sp; return $$0 | 0; } $12 = HEAP32[$vdo >> 2] | 0; $13 = ($12 | 0) == 1381123450; if (!$13) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $14 = ($vdo + 16) | 0; HEAP32[$14 >> 2] = -1; $15 = ($vdo + 20) | 0; HEAP32[$15 >> 2] = 4; $16 = ($vdo + 24) | 0; HEAP32[$16 >> 2] = 2672; $17 = ($vdo + 28) | 0; HEAP32[$17 >> 2] = 2752; $18 = HEAP32[80 >> 2] | 0; $19 = ($18 | 0) > 0; if (!$19) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _zbar_video_get_width($vdo) { $vdo = $vdo | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_video_get_height($vdo) { $vdo = $vdo | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_video_init($vdo, $fmt) { $vdo = $vdo | 0; $fmt = $fmt | 0; var $$0 = 0, $$pre$i = 0, $$pre$phi$iZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, $i$01$i = 0, $vararg_buffer4 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0; var $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer4 = sp; $0 = ($vdo + 60) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = $1 & 1; $3 = ($2 << 24) >> 24 == 0; if (!$3) { $4 = HEAP32[$vdo >> 2] | 0; $5 = ($4 | 0) == 1381123450; if (!$5) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $6 = ($vdo + 16) | 0; HEAP32[$6 >> 2] = -1; $7 = ($vdo + 20) | 0; HEAP32[$7 >> 2] = 4; $8 = ($vdo + 24) | 0; HEAP32[$8 >> 2] = 2784; $9 = ($vdo + 28) | 0; HEAP32[$9 >> 2] = 2800; $10 = HEAP32[80 >> 2] | 0; $11 = ($10 | 0) > 0; if (!$11) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } $12 = ($vdo + 116) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = FUNCTION_TABLE_iii[$13 & 7]($vdo, $fmt) | 0; $15 = ($14 | 0) == 0; if (!$15) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $16 = ($vdo + 64) | 0; HEAP32[$16 >> 2] = $fmt; $17 = ($vdo + 76) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($18 | 0) == 0; if ($19) { ___assert_fail(3024 | 0, 2880 | 0, 232, 3040 | 0); // unreachable; } $20 = ($vdo + 56) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($21 | 0) == 2; do { if ($22) { $$pre$i = ($vdo + 92) | 0; $$pre$phi$iZ2D = $$pre$i; } else { $23 = ($vdo + 84) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($24 | 0) == (0 | 0); if (!$25) { ___assert_fail(3064 | 0, 2880 | 0, 234, 3040 | 0); // unreachable; } $26 = ($vdo + 92) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = Math_imul($27, $18) | 0; $29 = ($vdo + 80) | 0; HEAP32[$29 >> 2] = $28; $30 = _calloc(1, $28) | 0; HEAP32[$23 >> 2] = $30; $31 = ($30 | 0) == (0 | 0); if (!$31) { $40 = HEAP32[80 >> 2] | 0; $41 = ($40 | 0) > 0; if (!$41) { $$pre$phi$iZ2D = $26; break; } $42 = HEAP32[_stderr >> 2] | 0; $43 = ($21 | 0) == 1; $44 = $43 ? 3168 : 3176; HEAP32[$vararg_buffer4 >> 2] = 3040; $vararg_ptr1 = ($vararg_buffer4 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $27; $vararg_ptr2 = ($vararg_buffer4 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $44; $vararg_ptr3 = ($vararg_buffer4 + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $28; _fprintf($42 | 0, 3120 | 0, $vararg_buffer4 | 0) | 0; $$pre$phi$iZ2D = $26; break; } $32 = HEAP32[$vdo >> 2] | 0; $33 = ($32 | 0) == 1381123450; if (!$33) { ___assert_fail(3208 | 0, 3240 | 0, 150, 3256 | 0); // unreachable; } $34 = ($vdo + 16) | 0; HEAP32[$34 >> 2] = -2; $35 = ($vdo + 20) | 0; HEAP32[$35 >> 2] = 1; $36 = ($vdo + 24) | 0; HEAP32[$36 >> 2] = 3040; $37 = ($vdo + 28) | 0; HEAP32[$37 >> 2] = 3080; $38 = HEAP32[80 >> 2] | 0; $39 = ($38 | 0) > 0; if (!$39) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($vdo, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } } while (0); $45 = HEAP32[$$pre$phi$iZ2D >> 2] | 0; $46 = ($45 | 0) > 0; if ($46) { $47 = ($vdo + 96) | 0; $48 = ($vdo + 44) | 0; $49 = ($vdo + 48) | 0; $50 = ($vdo + 84) | 0; $51 = HEAP32[_stderr >> 2] | 0; $i$01$i = 0; while (1) { $52 = HEAP32[$47 >> 2] | 0; $53 = ($52 + ($i$01$i << 2)) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = HEAP32[$16 >> 2] | 0; HEAP32[$54 >> 2] = $55; $56 = HEAP32[$48 >> 2] | 0; $57 = HEAP32[$49 >> 2] | 0; _zbar_image_set_size($54, $56, $57); $58 = HEAP32[$20 >> 2] | 0; $59 = ($58 | 0) == 2; if (!$59) { $60 = HEAP32[$17 >> 2] | 0; $61 = Math_imul($60, $i$01$i) | 0; $62 = ($54 + 16) | 0; HEAP32[$62 >> 2] = $60; $63 = HEAP32[$50 >> 2] | 0; $64 = ($63 + $61) | 0; $65 = ($54 + 12) | 0; HEAP32[$65 >> 2] = $64; $66 = HEAP32[80 >> 2] | 0; $67 = ($66 | 0) > 1; if ($67) { HEAP32[$vararg_buffer4 >> 2] = 3040; $vararg_ptr7 = ($vararg_buffer4 + 4) | 0; HEAP32[$vararg_ptr7 >> 2] = $i$01$i; $vararg_ptr8 = ($vararg_buffer4 + 8) | 0; HEAP32[$vararg_ptr8 >> 2] = $61; _fprintf($51 | 0, 3184 | 0, $vararg_buffer4 | 0) | 0; } } $68 = ($i$01$i + 1) | 0; $69 = HEAP32[$$pre$phi$iZ2D >> 2] | 0; $70 = ($68 | 0) < ($69 | 0); if ($70) { $i$01$i = $68; } else { break; } } } $71 = HEAP8[$0 >> 0] | 0; $72 = $71 | 1; HEAP8[$0 >> 0] = $72; $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _zbar_video_next_image($vdo) { $vdo = $vdo | 0; var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $img$0 = 0, $img$1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($vdo + 60) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = $1 & 2; $3 = ($2 << 24) >> 24 == 0; if ($3) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $4 = ($vdo + 88) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 + 1) | 0; HEAP32[$4 >> 2] = $6; $7 = ($vdo + 136) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = FUNCTION_TABLE_ii[$8 & 0]($vdo) | 0; $10 = ($9 | 0) == (0 | 0); if ($10) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $11 = ($9 + 60) | 0; HEAP32[$11 >> 2] = $5; $12 = ($vdo + 92) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($13 | 0) < 2; if ($14) { $15 = ($vdo + 108) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 | 0) == (0 | 0); do { if ($17) { HEAP32[$15 >> 2] = 0; $20 = _zbar_image_create() | 0; $21 = ($20 | 0) == (0 | 0); if ($21) { ___assert_fail(2872 | 0, 2880 | 0, 364, 2896 | 0); // unreachable; } else { $22 = ($20 + 44) | 0; HEAP32[$22 >> 2] = 0; $23 = ($20 + 48) | 0; HEAP32[$23 >> 2] = $vdo; $24 = ($vdo + 64) | 0; $25 = HEAP32[$24 >> 2] | 0; HEAP32[$20 >> 2] = $25; $26 = ($vdo + 44) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($vdo + 48) | 0; $29 = HEAP32[$28 >> 2] | 0; _zbar_image_set_size($20, $27, $29); $30 = ($vdo + 76) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($20 + 16) | 0; HEAP32[$32 >> 2] = $31; $33 = HEAP32[$30 >> 2] | 0; $34 = _malloc($33) | 0; $35 = ($20 + 12) | 0; HEAP32[$35 >> 2] = $34; $42 = $34; $img$0 = $20; break; } } else { $18 = ($16 + 56) | 0; $19 = HEAP32[$18 >> 2] | 0; HEAP32[$15 >> 2] = $19; $$phi$trans$insert = ($16 + 12) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $42 = $$pre; $img$0 = $16; } } while (0); $36 = ($img$0 + 40) | 0; HEAP32[$36 >> 2] = 3; $37 = ($img$0 + 60) | 0; HEAP32[$37 >> 2] = $5; $38 = ($9 + 12) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($img$0 + 16) | 0; $41 = HEAP32[$40 >> 2] | 0; _memcpy($42 | 0, $39 | 0, $41 | 0) | 0; $43 = ($9 + 48) | 0; $44 = HEAP32[$43 >> 2] | 0; $45 = ($44 | 0) == (0 | 0); if ($45) { ___assert_fail(2960 | 0, 2880 | 0, 36, 3288 | 0); // unreachable; } $46 = ($9 + 52) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) > -1; if (!$48) { ___assert_fail(3320 | 0, 2880 | 0, 37, 3288 | 0); // unreachable; } $49 = ($44 + 96) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = ($50 + ($47 << 2)) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($52 | 0) == ($9 | 0); if (!$53) { HEAP32[$51 >> 2] = $9; } $54 = ($44 + 60) | 0; $55 = HEAP8[$54 >> 0] | 0; $56 = $55 & 2; $57 = ($56 << 24) >> 24 == 0; if ($57) { $img$1 = $img$0; } else { $58 = ($44 + 132) | 0; $59 = HEAP32[$58 >> 2] | 0; FUNCTION_TABLE_iii[$59 & 7]($44, $9) | 0; $img$1 = $img$0; } } else { $60 = ($9 + 40) | 0; HEAP32[$60 >> 2] = 2; $img$1 = $9; } $61 = ($img$1 + 44) | 0; $62 = HEAP32[$61 >> 2] | 0; $63 = ($62 + 1) | 0; HEAP32[$61 >> 2] = $63; $64 = ($62 | 0) > -2; if ($64) { $$0 = $img$1; STACKTOP = sp; return $$0 | 0; } else { ___assert_fail(2920 | 0, 2928 | 0, 87, 2944 | 0); // unreachable; } return 0 | 0; } function __zbar_video_recycle_shadow($img) { $img = $img | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { ___assert_fail(2960 | 0, 2880 | 0, 50, 2968 | 0); // unreachable; } $3 = ($img + 52) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == -1; if ($5) { $6 = ($1 + 108) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($img + 56) | 0; HEAP32[$8 >> 2] = $7; HEAP32[$6 >> 2] = $img; STACKTOP = sp; return; } else { ___assert_fail(3000 | 0, 2880 | 0, 51, 2968 | 0); // unreachable; } } function _zbar_window_create() { var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 148) | 0; $1 = ($0 | 0) == (0 | 0); if ($1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } HEAP32[$0 >> 2] = 1381123450; $2 = ($0 + 4) | 0; HEAP32[$2 >> 2] = 2; $3 = ($0 + 44) | 0; HEAP32[$3 >> 2] = 1; $$0 = $0; STACKTOP = sp; return $$0 | 0; } function _zbar_window_destroy($w) { $w = $w | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; var $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; _zbar_window_draw($w, 0) | 0; $0 = ($w + 144) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { FUNCTION_TABLE_ii[$1 & 0]($w) | 0; HEAP32[$0 >> 2] = 0; $3 = ($w + 140) | 0; HEAP32[$3 >> 2] = 0; } $4 = ($w + 112) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 | 0) == (0 | 0); if (!$6) { _free($5); HEAP32[$4 >> 2] = 0; } $7 = ($w + 68) | 0; $8 = ($w + 108) | 0; HEAP32[$8 >> 2] = 0; $9 = ($w + 104) | 0; HEAP32[$9 >> 2] = 0; $10 = ($w + 64) | 0; HEAP32[($7 + 0) >> 2] = 0 | 0; HEAP32[($7 + 4) >> 2] = 0 | 0; HEAP32[($7 + 8) >> 2] = 0 | 0; HEAP32[($7 + 12) >> 2] = 0 | 0; HEAP32[($7 + 16) >> 2] = 0 | 0; HEAP32[$10 >> 2] = 32768; $11 = ($w + 60) | 0; HEAP32[$11 >> 2] = 32768; $12 = ($w + 92) | 0; HEAP32[$12 >> 2] = 1; $13 = ($w + 88) | 0; HEAP32[$13 >> 2] = 1; __zbar_window_attach($w, 0, 0) | 0; $14 = HEAP32[$w >> 2] | 0; $15 = ($14 | 0) == 1381123450; if (!$15) { ___assert_fail(3384 | 0, 3416 | 0, 218, 3432 | 0); // unreachable; } $16 = ($w + 8) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($17 | 0) == (0 | 0); if (!$18) { _free($17); HEAP32[$16 >> 2] = 0; } $19 = ($w + 32) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($20 | 0) == (0 | 0); if ($21) { _free($w); STACKTOP = sp; return; } _free($20); _free($w); STACKTOP = sp; return; } function _zbar_window_draw($w, $img) { $w = $w | 0; $img = $img | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($w + 140) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); $$0 = $2 ? 0 : $img; $3 = ($$0 | 0) == (0 | 0); do { if (!$3) { $4 = ($$0 + 44) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 + 1) | 0; HEAP32[$4 >> 2] = $6; $7 = ($5 | 0) > -2; if (!$7) { ___assert_fail(3344 | 0, 3352 | 0, 87, 3368 | 0); // unreachable; } $8 = ($$0 + 4) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($w + 72) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($9 | 0) == ($11 | 0); if ($12) { $13 = ($$0 + 8) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($w + 76) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($14 | 0) == ($16 | 0); if ($17) { break; } } $18 = ($w + 80) | 0; HEAP32[$18 >> 2] = 0; } } while (0); $19 = ($w + 40) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($20 | 0) == (0 | 0); if ($21) { HEAP32[$19 >> 2] = $$0; STACKTOP = sp; return 0; } $22 = ($20 + 44) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($23 + -1) | 0; HEAP32[$22 >> 2] = $24; $25 = ($23 | 0) > 0; if (!$25) { ___assert_fail(3344 | 0, 3352 | 0, 87, 3368 | 0); // unreachable; } $26 = ($24 | 0) == 0; if (!$26) { HEAP32[$19 >> 2] = $$0; STACKTOP = sp; return 0; } $27 = ($20 + 40) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = ($28 | 0) == (0 | 0); if (!$29) { FUNCTION_TABLE_vi[$28 & 7]($20); } $30 = ($20 + 48) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($31 | 0) == (0 | 0); if (!$32) { HEAP32[$19 >> 2] = $$0; STACKTOP = sp; return 0; } __zbar_image_free($20); HEAP32[$19 >> 2] = $$0; STACKTOP = sp; return 0; } function __zbar_processor_open($proc, $name, $w, $h) { $proc = $proc | 0; $name = $name | 0; $w = $w | 0; $h = $h | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$proc >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(3600 | 0, 3632 | 0, 150, 3648 | 0); // unreachable; } $2 = ($proc + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($proc + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($proc + 24) | 0; HEAP32[$4 >> 2] = 3448; $5 = ($proc + 28) | 0; HEAP32[$5 >> 2] = 3560; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($proc, 0) | 0; STACKTOP = sp; return -1; } function __zbar_processor_close($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$proc >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(3600 | 0, 3632 | 0, 150, 3648 | 0); // unreachable; } $2 = ($proc + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($proc + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($proc + 24) | 0; HEAP32[$4 >> 2] = 3472; $5 = ($proc + 28) | 0; HEAP32[$5 >> 2] = 3560; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($proc, 0) | 0; STACKTOP = sp; return -1; } function __zbar_processor_set_size($proc, $width, $height) { $proc = $proc | 0; $width = $width | 0; $height = $height | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$proc >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(3600 | 0, 3632 | 0, 150, 3648 | 0); // unreachable; } $2 = ($proc + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($proc + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($proc + 24) | 0; HEAP32[$4 >> 2] = 3496; $5 = ($proc + 28) | 0; HEAP32[$5 >> 2] = 3560; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($proc, 0) | 0; STACKTOP = sp; return -1; } function __zbar_processor_invalidate($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$proc >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(3600 | 0, 3632 | 0, 150, 3648 | 0); // unreachable; } $2 = ($proc + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($proc + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($proc + 24) | 0; HEAP32[$4 >> 2] = 3528; $5 = ($proc + 28) | 0; HEAP32[$5 >> 2] = 3560; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($proc, 0) | 0; STACKTOP = sp; return -1; } function __zbar_window_attach($w, $display, $win) { $w = $w | 0; $display = $display | 0; $win = $win | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$w >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(3728 | 0, 3760 | 0, 150, 3776 | 0); // unreachable; } $2 = ($w + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($w + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($w + 24) | 0; HEAP32[$4 >> 2] = 3664; $5 = ($w + 28) | 0; HEAP32[$5 >> 2] = 3688; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($w, 0) | 0; STACKTOP = sp; return -1; } function __zbar_processor_lock($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $storemerge = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($proc + 172) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($proc + 176) | 0; HEAP32[$3 >> 2] = 0; $storemerge = 1; } else { $4 = ($1 + 1) | 0; $storemerge = $4; } HEAP32[$0 >> 2] = $storemerge; STACKTOP = sp; return 0; } function __zbar_processor_unlock($proc, $all) { $proc = $proc | 0; $all = $all | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0; var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $prev$06$i = 0, $prev$06$i$phi = 0, $storemerge = 0, $waiter$0$i = 0, $waiter$0$in$ph$i = 0, $waiter$05$i = 0, $waiter$07$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($proc + 172) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) > 0; if (!$2) { ___assert_fail(3792 | 0, 3816 | 0, 126, 3840 | 0); // unreachable; } $3 = ($all | 0) == 0; $4 = ($1 + -1) | 0; $storemerge = $3 ? $4 : 0; HEAP32[$0 >> 2] = $storemerge; $5 = ($storemerge | 0) == 0; if (!$5) { STACKTOP = sp; return 0; } $6 = ($proc + 188) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 | 0) == (0 | 0); $9 = ($proc + 180) | 0; $waiter$0$in$ph$i = $8 ? $9 : $7; $waiter$05$i = HEAP32[$waiter$0$in$ph$i >> 2] | 0; $10 = ($waiter$05$i | 0) == (0 | 0); if ($10) { STACKTOP = sp; return 0; } else { $prev$06$i = $7; $waiter$07$i = $waiter$05$i; } while (1) { $11 = ($waiter$07$i + 16) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = $12 & 3; $14 = ($13 | 0) == 0; if ($14) { break; } HEAP32[$6 >> 2] = $waiter$07$i; $waiter$0$i = HEAP32[$waiter$07$i >> 2] | 0; $15 = ($waiter$0$i | 0) == (0 | 0); if ($15) { label = 14; break; } else { $prev$06$i$phi = $waiter$07$i; $waiter$07$i = $waiter$0$i; $prev$06$i = $prev$06$i$phi; } } if ((label | 0) == 14) { STACKTOP = sp; return 0; } $16 = ($prev$06$i | 0) == (0 | 0); $17 = HEAP32[$waiter$07$i >> 2] | 0; if ($16) { HEAP32[$9 >> 2] = $17; } else { HEAP32[$prev$06$i >> 2] = $17; } $18 = HEAP32[$waiter$07$i >> 2] | 0; $19 = ($18 | 0) == (0 | 0); if ($19) { $20 = ($proc + 184) | 0; HEAP32[$20 >> 2] = $prev$06$i; } HEAP32[$waiter$07$i >> 2] = 0; HEAP32[$0 >> 2] = 1; $21 = ($waiter$07$i + 12) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($proc + 176) | 0; HEAP32[$23 >> 2] = $22; $24 = ($waiter$07$i | 0) == (0 | 0); if ($24) { STACKTOP = sp; return 0; } $25 = ($waiter$07$i + 4) | 0; __zbar_event_trigger($25); STACKTOP = sp; return 0; } function __zbar_processor_notify($proc, $events) { $proc = $proc | 0; $events = $events | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $prev$06$i = 0, $prev$06$i$phi = 0, $waiter$0 = 0, $waiter$0$i = 0, $waiter$03 = 0, $waiter$04 = 0, $waiter$05$i = 0, $waiter$07$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($proc + 188) | 0; HEAP32[$0 >> 2] = 0; $1 = ($proc + 180) | 0; $waiter$03 = HEAP32[$1 >> 2] | 0; $2 = ($waiter$03 | 0) == (0 | 0); if (!$2) { $3 = $events ^ -1; $4 = $events & 128; $waiter$04 = $waiter$03; while (1) { $5 = ($waiter$04 + 16) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = $6 & $3; $8 = $7 | $4; HEAP32[$5 >> 2] = $8; $waiter$0 = HEAP32[$waiter$04 >> 2] | 0; $9 = ($waiter$0 | 0) == (0 | 0); if ($9) { break; } else { $waiter$04 = $waiter$0; } } } $10 = ($proc + 172) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 | 0) == 0; if (!$12) { STACKTOP = sp; return; } $waiter$05$i = HEAP32[$1 >> 2] | 0; $13 = ($waiter$05$i | 0) == (0 | 0); if ($13) { STACKTOP = sp; return; } else { $prev$06$i = 0; $waiter$07$i = $waiter$05$i; } while (1) { $14 = ($waiter$07$i + 16) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = $15 & 3; $17 = ($16 | 0) == 0; if ($17) { break; } HEAP32[$0 >> 2] = $waiter$07$i; $waiter$0$i = HEAP32[$waiter$07$i >> 2] | 0; $18 = ($waiter$0$i | 0) == (0 | 0); if ($18) { label = 15; break; } else { $prev$06$i$phi = $waiter$07$i; $waiter$07$i = $waiter$0$i; $prev$06$i = $prev$06$i$phi; } } if ((label | 0) == 15) { STACKTOP = sp; return; } $19 = ($prev$06$i | 0) == (0 | 0); $20 = HEAP32[$waiter$07$i >> 2] | 0; if ($19) { HEAP32[$1 >> 2] = $20; } else { HEAP32[$prev$06$i >> 2] = $20; } $21 = HEAP32[$waiter$07$i >> 2] | 0; $22 = ($21 | 0) == (0 | 0); if ($22) { $23 = ($proc + 184) | 0; HEAP32[$23 >> 2] = $prev$06$i; } HEAP32[$waiter$07$i >> 2] = 0; HEAP32[$10 >> 2] = 1; $24 = ($waiter$07$i + 12) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($proc + 176) | 0; HEAP32[$26 >> 2] = $25; $27 = ($waiter$07$i | 0) == (0 | 0); if ($27) { STACKTOP = sp; return; } $28 = ($waiter$07$i + 4) | 0; __zbar_event_trigger($28); STACKTOP = sp; return; } function __zbar_processor_wait($proc, $events, $timeout) { $proc = $proc | 0; $events = $events | 0; $timeout = $timeout | 0; var $$pre$i = 0, $$pre$phi$iZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $now$i$i = 0, $prev$06$i = 0, $prev$06$i$phi = 0, $rc$0$ = 0, $rc$02 = 0, $rc$02$i = 0, $rc$02$us$i = 0, $rc$02$us$i$us = 0, $rc$02$us3$i = 0, $rc$03 = 0, $rc$07 = 0, $rc$1 = 0, $reltime$0$us$i = 0, $waiter$0$i = 0; var $waiter$0$i1 = 0, $waiter$04$i = 0, $waiter$05$i = 0, $waiter$07$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $now$i$i = sp; $0 = ($proc + 172) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($proc + 192) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) == (0 | 0); if ($4) { $7 = _calloc(1, 20) | 0; $8 = ($7 + 4) | 0; __zbar_event_init($8) | 0; $waiter$0$i = $7; } else { $5 = HEAP32[$3 >> 2] | 0; HEAP32[$2 >> 2] = $5; $6 = ($3 + 16) | 0; HEAP32[$6 >> 2] = 0; $waiter$0$i = $3; } HEAP32[$waiter$0$i >> 2] = 0; $9 = ($waiter$0$i + 12) | 0; HEAP32[$9 >> 2] = 0; $10 = ($proc + 180) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 | 0) == (0 | 0); if ($12) { HEAP32[$10 >> 2] = $waiter$0$i; $$pre$i = ($proc + 184) | 0; $$pre$phi$iZ2D = $$pre$i; } else { $13 = ($proc + 184) | 0; $14 = HEAP32[$13 >> 2] | 0; HEAP32[$14 >> 2] = $waiter$0$i; $$pre$phi$iZ2D = $13; } HEAP32[$$pre$phi$iZ2D >> 2] = $waiter$0$i; $15 = $events & 3; $16 = ($waiter$0$i + 16) | 0; HEAP32[$16 >> 2] = $15; __zbar_processor_unlock($proc, 1) | 0; $17 = ($proc + 88) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($18 | 0) == 0; L9: do { if ($19) { $20 = ($proc + 96) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($21 | 0) == 0; do { if ($22) { $23 = ($timeout | 0) == (0 | 0); $24 = ($timeout + 4) | 0; $25 = ($now$i$i + 4) | 0; if ($23) { $122 = $now$i$i; label = 20; } else { $123 = $now$i$i; $70 = $timeout; $72 = $now$i$i; $76 = $24; $78 = $25; label = 19; } } else { $26 = ($proc + 44) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = _zbar_video_get_fd($27) | 0; $29 = ($28 | 0) < 0; $30 = ($timeout | 0) == (0 | 0); $31 = ($timeout + 4) | 0; $32 = ($now$i$i + 4) | 0; if (!$29) { if ($30) { $122 = $now$i$i; label = 20; break; } else { $123 = $now$i$i; $70 = $timeout; $72 = $now$i$i; $76 = $31; $78 = $32; label = 19; break; } } if ($30) { $rc$02$us$i$us = 1; while (1) { $33 = HEAP32[$16 >> 2] | 0; $34 = $33 & 3; $35 = ($34 | 0) == 0; if ($35) { $rc$07 = $rc$02$us$i$us; label = 26; break L9; } $36 = HEAP32[$26 >> 2] | 0; $37 = _zbar_video_next_image($36) | 0; $38 = ($37 | 0) == (0 | 0); if ($38) { $rc$03 = -1; label = 27; break L9; } __zbar_process_image($proc, $37) | 0; _zbar_image_destroy($37); $39 = __zbar_processor_input_wait($proc, 0, 15) | 0; $40 = ($39 | 0) > 0; if ($40) { $rc$02$us$i$us = $39; } else { $rc$03 = $39; label = 27; break L9; } } } else { $rc$02$us$i = 1; while (1) { $41 = HEAP32[$16 >> 2] | 0; $42 = $41 & 3; $43 = ($42 | 0) == 0; if ($43) { $rc$07 = $rc$02$us$i; label = 26; break L9; } $44 = HEAP32[$26 >> 2] | 0; $45 = _zbar_video_next_image($44) | 0; $46 = ($45 | 0) == (0 | 0); if ($46) { $rc$03 = -1; label = 27; break L9; } __zbar_process_image($proc, $45) | 0; _zbar_image_destroy($45); _clock_gettime(0, $now$i$i | 0) | 0; $47 = HEAP32[$timeout >> 2] | 0; $48 = HEAP32[$now$i$i >> 2] | 0; $49 = ($47 - $48) | 0; $50 = ($49 * 1000) | 0; $51 = HEAP32[$31 >> 2] | 0; $52 = HEAP32[$32 >> 2] | 0; $53 = ($51 - $52) | 0; $54 = (($53 | 0) / 1000000) & -1; $55 = ($54 + $50) | 0; $56 = ($55 | 0) < 0; $57 = $56 ? 0 : $55; $58 = $57 >>> 0 > 15; $reltime$0$us$i = $58 ? 15 : $57; $59 = __zbar_processor_input_wait($proc, 0, $reltime$0$us$i) | 0; $60 = ($59 | 0) > 0; if ($60) { $rc$02$us$i = $59; } else { $rc$03 = $59; label = 27; break L9; } } } } } while (0); if ((label | 0) == 19) { $rc$02$i = 1; while (1) { $66 = HEAP32[$16 >> 2] | 0; $67 = $66 & 3; $68 = ($67 | 0) == 0; if ($68) { $rc$07 = $rc$02$i; label = 26; break L9; } _clock_gettime(0, $now$i$i | 0) | 0; $69 = HEAP32[$70 >> 2] | 0; $71 = HEAP32[$72 >> 2] | 0; $73 = ($69 - $71) | 0; $74 = ($73 * 1000) | 0; $75 = HEAP32[$76 >> 2] | 0; $77 = HEAP32[$78 >> 2] | 0; $79 = ($75 - $77) | 0; $80 = (($79 | 0) / 1000000) & -1; $81 = ($80 + $74) | 0; $82 = ($81 | 0) < 0; $83 = $82 ? 0 : $81; $84 = __zbar_processor_input_wait($proc, 0, $83) | 0; $85 = ($84 | 0) > 0; if ($85) { $rc$02$i = $84; } else { $rc$03 = $84; label = 27; break; } } } else if ((label | 0) == 20) { $rc$02$us3$i = 1; while (1) { $61 = HEAP32[$16 >> 2] | 0; $62 = $61 & 3; $63 = ($62 | 0) == 0; if ($63) { $rc$07 = $rc$02$us3$i; label = 26; break L9; } $64 = __zbar_processor_input_wait($proc, 0, -1) | 0; $65 = ($64 | 0) > 0; if ($65) { $rc$02$us3$i = $64; } else { $rc$03 = $64; label = 27; break; } } } } else { $86 = ($waiter$0$i + 4) | 0; $87 = ($proc + 172) | 0; $88 = __zbar_event_wait($86, $87, $timeout) | 0; $89 = ($88 | 0) < 1; if ($89) { $rc$03 = $88; label = 27; } else { $rc$07 = $88; label = 26; } } } while (0); if ((label | 0) == 26) { $90 = HEAP32[$17 >> 2] | 0; $91 = ($90 | 0) == 0; if ($91) { $rc$03 = $rc$07; label = 27; } else { $rc$02 = $rc$07; } } do { if ((label | 0) == 27) { $92 = HEAP32[$16 >> 2] | 0; $93 = $92 & 128; HEAP32[$16 >> 2] = $93; $94 = ($proc + 188) | 0; HEAP32[$94 >> 2] = 0; $95 = HEAP32[$0 >> 2] | 0; $96 = ($95 | 0) == 0; if (!$96) { $112 = ($waiter$0$i + 4) | 0; $113 = ($proc + 172) | 0; __zbar_event_wait($112, $113, 0) | 0; $rc$02 = $rc$03; break; } $waiter$05$i = HEAP32[$10 >> 2] | 0; $97 = ($waiter$05$i | 0) == (0 | 0); L43: do { if ($97) { $waiter$04$i = 0; } else { $prev$06$i = 0; $waiter$07$i = $waiter$05$i; while (1) { $98 = ($waiter$07$i + 16) | 0; $99 = HEAP32[$98 >> 2] | 0; $100 = $99 & 3; $101 = ($100 | 0) == 0; if ($101) { break; } HEAP32[$94 >> 2] = $waiter$07$i; $waiter$0$i1 = HEAP32[$waiter$07$i >> 2] | 0; $102 = ($waiter$0$i1 | 0) == (0 | 0); if ($102) { $waiter$04$i = 0; break L43; } else { $prev$06$i$phi = $waiter$07$i; $waiter$07$i = $waiter$0$i1; $prev$06$i = $prev$06$i$phi; } } $103 = ($prev$06$i | 0) == (0 | 0); $104 = HEAP32[$waiter$07$i >> 2] | 0; if ($103) { HEAP32[$10 >> 2] = $104; } else { HEAP32[$prev$06$i >> 2] = $104; } $105 = HEAP32[$waiter$07$i >> 2] | 0; $106 = ($105 | 0) == (0 | 0); if ($106) { $107 = ($proc + 184) | 0; HEAP32[$107 >> 2] = $prev$06$i; } HEAP32[$waiter$07$i >> 2] = 0; HEAP32[$0 >> 2] = 1; $108 = ($waiter$07$i + 12) | 0; $109 = HEAP32[$108 >> 2] | 0; $110 = ($proc + 176) | 0; HEAP32[$110 >> 2] = $109; $waiter$04$i = $waiter$07$i; } } while (0); $111 = ($waiter$04$i | 0) == ($waiter$0$i | 0); if ($111) { $rc$02 = $rc$03; } else { ___assert_fail(3864 | 0, 3816 | 0, 212, 3880 | 0); // unreachable; } } } while (0); $114 = ($rc$02 | 0) > 0; if ($114) { $115 = HEAP32[$16 >> 2] | 0; $116 = $115 & 128; $117 = ($116 | 0) == 0; $rc$0$ = $117 ? $rc$02 : -1; $rc$1 = $rc$0$; } else { $rc$1 = $rc$02; } $118 = HEAP32[$0 >> 2] | 0; $119 = ($118 | 0) == 1; if (!$119) { ___assert_fail(3904 | 0, 3816 | 0, 220, 3880 | 0); // unreachable; } HEAP32[$0 >> 2] = $1; $120 = ($waiter$0$i | 0) == (0 | 0); if ($120) { STACKTOP = sp; return $rc$1 | 0; } $121 = HEAP32[$2 >> 2] | 0; HEAP32[$waiter$0$i >> 2] = $121; HEAP32[$2 >> 2] = $waiter$0$i; STACKTOP = sp; return $rc$1 | 0; } function __zbar_event_init($event) { $event = $event | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; HEAP32[$event >> 2] = 0; $0 = ($event + 4) | 0; HEAP32[$0 >> 2] = -1; STACKTOP = sp; return 0; } function __zbar_event_destroy($event) { $event = $event | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; HEAP32[$event >> 2] = -1; $0 = ($event + 4) | 0; HEAP32[$0 >> 2] = -1; STACKTOP = sp; return; } function __zbar_event_trigger($event) { $event = $event | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $i = sp; HEAP32[$event >> 2] = 1; $0 = ($event + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) > -1; if (!$2) { STACKTOP = sp; return; } HEAP32[$i >> 2] = 0; $3 = _write($1 | 0, $i | 0, 4) | 0; $4 = ($3 | 0) < 0; if ($4) { _perror(3928 | 0); } HEAP32[$0 >> 2] = -1; STACKTOP = sp; return; } function __zbar_event_wait($event, $lock, $timeout) { $event = $event | 0; $lock = $lock | 0; $timeout = $timeout | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; var $7 = 0, $8 = 0, $9 = 0, $remns$i = 0, $sleepns$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $sleepns$i = (sp + 8) | 0; $remns$i = sp; $0 = HEAP32[$event >> 2] | 0; $1 = ($0 | 0) == 0; L1: do { if ($1) { $2 = ($timeout | 0) == (0 | 0); if ($2) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } _clock_gettime(0, $sleepns$i | 0) | 0; $3 = HEAP32[$timeout >> 2] | 0; $4 = HEAP32[$sleepns$i >> 2] | 0; $5 = ($3 - $4) | 0; $6 = ($5 * 1000) | 0; $7 = ($timeout + 4) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($sleepns$i + 4) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($8 - $10) | 0; $12 = (($11 | 0) / 1000000) & -1; $13 = ($12 + $6) | 0; $14 = ($13 | 0) < 0; $15 = $14 ? 0 : $13; $16 = ($15 | 0) == 0; if (!$16) { $17 = ($15 | 0) > 0; if (!$17) { ___assert_fail(4312 | 0, 4088 | 0, 33, 4328 | 0); // unreachable; } $18 = (($15 | 0) / 1000) & -1; HEAP32[$sleepns$i >> 2] = $18; $19 = ($15 | 0) % 1000 & -1; $20 = ($19 * 1000000) | 0; $21 = ($sleepns$i + 4) | 0; HEAP32[$21 >> 2] = $20; $22 = _nanosleep($sleepns$i | 0, $remns$i | 0) | 0; $23 = ($22 | 0) == 0; if (!$23) { $24 = ___errno_location() | 0; while (1) { $25 = HEAP32[$24 >> 2] | 0; $26 = ($25 | 0) == 4; if (!$26) { break L1; } $27 = $remns$i; $28 = $27; $29 = HEAP32[$28 >> 2] | 0; $30 = ($27 + 4) | 0; $31 = $30; $32 = HEAP32[$31 >> 2] | 0; $33 = $sleepns$i; $34 = $33; HEAP32[$34 >> 2] = $29; $35 = ($33 + 4) | 0; $36 = $35; HEAP32[$36 >> 2] = $32; $37 = _nanosleep($sleepns$i | 0, $remns$i | 0) | 0; $38 = ($37 | 0) == 0; if ($38) { break; } } } } } } while (0); $39 = HEAP32[$event >> 2] | 0; $40 = ($39 | 0) == 0; $41 = $40 & 1; HEAP32[$event >> 2] = 0; $$0 = $41; STACKTOP = sp; return $$0 | 0; } function __zbar_processor_input_wait($proc, $event, $timeout) { $proc = $proc | 0; $event = $event | 0; $timeout = $timeout | 0; var $$0 = 0, $$pre$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0$i = 0, $i$0$in$i = 0; var $i$0$in$ph$i = 0, $rc$0$ph$i = 0, $remns$i = 0, $sleepns$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $sleepns$i = (sp + 8) | 0; $remns$i = sp; $0 = ($proc + 196) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 + 12) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) == 0; if ($4) { $33 = ($timeout | 0) == 0; if ($33) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $34 = ($timeout | 0) > 0; if (!$34) { ___assert_fail(4312 | 0, 4088 | 0, 33, 4328 | 0); // unreachable; } $35 = (($timeout | 0) / 1000) & -1; HEAP32[$sleepns$i >> 2] = $35; $36 = ($timeout | 0) % 1000 & -1; $37 = ($36 * 1000000) | 0; $38 = ($sleepns$i + 4) | 0; HEAP32[$38 >> 2] = $37; $39 = _nanosleep($sleepns$i | 0, $remns$i | 0) | 0; $40 = ($39 | 0) == 0; if ($40) { $$0 = 1; STACKTOP = sp; return $$0 | 0; } $41 = ___errno_location() | 0; while (1) { $42 = HEAP32[$41 >> 2] | 0; $43 = ($42 | 0) == 4; if (!$43) { $$0 = 1; label = 25; break; } $44 = $remns$i; $45 = $44; $46 = HEAP32[$45 >> 2] | 0; $47 = ($44 + 4) | 0; $48 = $47; $49 = HEAP32[$48 >> 2] | 0; $50 = $sleepns$i; $51 = $50; HEAP32[$51 >> 2] = $46; $52 = ($50 + 4) | 0; $53 = $52; HEAP32[$53 >> 2] = $49; $54 = _nanosleep($sleepns$i | 0, $remns$i | 0) | 0; $55 = ($54 | 0) == 0; if ($55) { $$0 = 1; label = 25; break; } } if ((label | 0) == 25) { STACKTOP = sp; return $$0 | 0; } } $5 = ($event | 0) == (0 | 0); if (!$5) { $6 = ($1 + 28) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($event + 4) | 0; HEAP32[$8 >> 2] = $7; } $9 = ($1 + 32) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == (0 | 0); if (!$11) { FUNCTION_TABLE_iii[$10 & 7]($proc, -1) | 0; } $12 = HEAP32[$2 >> 2] | 0; $13 = ($12 | 0) == 0; if ($13) { ___assert_fail(4272 | 0, 4088 | 0, 240, 4280 | 0); // unreachable; } $14 = ($1 + 16) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = _poll($15 | 0, $12 | 0, $timeout | 0) | 0; $17 = ($16 | 0) < 1; if ($17) { $$0 = $16; STACKTOP = sp; return $$0 | 0; } $18 = HEAP32[$2 >> 2] | 0; $19 = ($1 + 20) | 0; $i$0$in$ph$i = $18; $rc$0$ph$i = $16; L31: while (1) { $i$0$in$i = $i$0$in$ph$i; while (1) { $i$0$i = ($i$0$in$i + -1) | 0; $20 = ($i$0$in$i | 0) > 0; if (!$20) { break L31; } $21 = HEAP32[$14 >> 2] | 0; $22 = ((($21 + ($i$0$i << 3)) | 0) + 6) | 0; $23 = HEAP16[$22 >> 1] | 0; $24 = ($23 << 16) >> 16 == 0; if ($24) { $i$0$in$i = $i$0$i; } else { break; } } $25 = HEAP32[$19 >> 2] | 0; $26 = ($25 + ($i$0$i << 2)) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($27 | 0) == (0 | 0); if ($28) { $30 = $21; } else { FUNCTION_TABLE_iii[$27 & 7]($proc, $i$0$i) | 0; $$pre$i = HEAP32[$14 >> 2] | 0; $30 = $$pre$i; } $29 = ((($30 + ($i$0$i << 3)) | 0) + 6) | 0; HEAP16[$29 >> 1] = 0; $31 = ($rc$0$ph$i + -1) | 0; $i$0$in$ph$i = $i$0$i; $rc$0$ph$i = $31; } $32 = ($rc$0$ph$i | 0) == 0; if ($32) { $$0 = 1; STACKTOP = sp; return $$0 | 0; } else { ___assert_fail(4304 | 0, 4088 | 0, 253, 4280 | 0); // unreachable; } return 0 | 0; } function __zbar_processor_init($proc) { $proc = $proc | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0; var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 36) | 0; $1 = ($proc + 196) | 0; HEAP32[$1 >> 2] = $0; $2 = ($0 + 24) | 0; $3 = ($0 + 28) | 0; HEAP32[$3 >> 2] = -1; HEAP32[$2 >> 2] = -1; $4 = ($proc + 88) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 | 0) == 0; if ($6) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $7 = _pipe($2 | 0) | 0; $8 = ($7 | 0) == 0; if ($8) { $20 = HEAP32[$2 >> 2] | 0; _add_poll($proc, $20, 1); $21 = HEAP32[$1 >> 2] | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($21 + 12) | 0; HEAP32[$23 >> 2] = $22; $24 = ($21 + 16) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = HEAP32[$23 >> 2] | 0; $27 = $26 << 3; $28 = _realloc($25, $27) | 0; HEAP32[$24 >> 2] = $28; $29 = ($21 + 20) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = HEAP32[$23 >> 2] | 0; $32 = $31 << 2; $33 = _realloc($30, $32) | 0; HEAP32[$29 >> 2] = $33; $34 = HEAP32[$24 >> 2] | 0; $35 = ($21 + 4) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = $22 << 3; _memcpy($34 | 0, $36 | 0, $37 | 0) | 0; $38 = HEAP32[$29 >> 2] | 0; $39 = ($21 + 8) | 0; $40 = HEAP32[$39 >> 2] | 0; $41 = $22 << 2; _memcpy($38 | 0, $40 | 0, $41 | 0) | 0; $$0 = 0; STACKTOP = sp; return $$0 | 0; } $9 = HEAP32[$proc >> 2] | 0; $10 = ($9 | 0) == 1381123450; if (!$10) { ___assert_fail(4208 | 0, 4240 | 0, 150, 4256 | 0); // unreachable; } $11 = ___errno_location() | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($proc + 12) | 0; HEAP32[$13 >> 2] = $12; $14 = ($proc + 16) | 0; HEAP32[$14 >> 2] = -2; $15 = ($proc + 20) | 0; HEAP32[$15 >> 2] = 5; $16 = ($proc + 24) | 0; HEAP32[$16 >> 2] = 3936; $17 = ($proc + 28) | 0; HEAP32[$17 >> 2] = 3960; $18 = HEAP32[80 >> 2] | 0; $19 = ($18 | 0) > 0; if (!$19) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($proc, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _add_poll($proc, $fd, $handler) { $proc = $proc | 0; $fd = $fd | 0; $handler = $handler | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0; var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer = sp; $i = (sp + 16) | 0; $0 = ($proc + 196) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 + 1) | 0; HEAP32[$1 >> 2] = $3; HEAP32[$i >> 2] = $2; $4 = HEAP32[80 >> 2] | 0; $5 = ($4 | 0) > 4; if ($5) { $6 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 4144; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $2; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $fd; $vararg_ptr3 = ($vararg_buffer + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $handler; _fprintf($6 | 0, 4112 | 0, $vararg_buffer | 0) | 0; } $7 = ($1 + 4) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = HEAP32[$1 >> 2] | 0; $10 = $9 << 3; $11 = _realloc($8, $10) | 0; HEAP32[$7 >> 2] = $11; $12 = ($1 + 8) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = HEAP32[$1 >> 2] | 0; $15 = $14 << 2; $16 = _realloc($13, $15) | 0; HEAP32[$12 >> 2] = $16; $17 = HEAP32[$i >> 2] | 0; $18 = HEAP32[$7 >> 2] | 0; $19 = ($18 + ($17 << 3)) | 0; $20 = $19; $21 = $20; HEAP32[$21 >> 2] = 0; $22 = ($20 + 4) | 0; $23 = $22; HEAP32[$23 >> 2] = 0; $24 = HEAP32[$7 >> 2] | 0; $25 = ($24 + ($17 << 3)) | 0; HEAP32[$25 >> 2] = $fd; $26 = ((($24 + ($17 << 3)) | 0) + 4) | 0; HEAP16[$26 >> 1] = 1; $27 = HEAP32[$12 >> 2] | 0; $28 = ($27 + ($17 << 2)) | 0; HEAP32[$28 >> 2] = $handler; $29 = ($proc + 116) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = ($30 | 0) == 0; if (!$31) { $32 = ($1 + 28) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = ($33 | 0) > -1; if ($34) { _write($33 | 0, $i | 0, 4) | 0; STACKTOP = sp; return; } else { ___assert_fail(4160 | 0, 4184 | 0, 85, 4144 | 0); // unreachable; } } $35 = ($proc + 88) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) == 0; if (!$37) { STACKTOP = sp; return; } $38 = HEAP32[$1 >> 2] | 0; $39 = ($1 + 12) | 0; HEAP32[$39 >> 2] = $38; $40 = HEAP32[$7 >> 2] | 0; $41 = ($1 + 16) | 0; HEAP32[$41 >> 2] = $40; $42 = HEAP32[$12 >> 2] | 0; $43 = ($1 + 20) | 0; HEAP32[$43 >> 2] = $42; STACKTOP = sp; return; } function _proc_kick_handler($proc, $i) { $proc = $proc | 0; $i = $i | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $junk = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $junk = (sp + 8) | 0; $0 = ($proc + 196) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = HEAP32[80 >> 2] | 0; $3 = ($2 | 0) > 4; if ($3) { $4 = HEAP32[_stderr >> 2] | 0; $5 = HEAP32[$1 >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 4048; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $5; _fprintf($4 | 0, 4024 | 0, $vararg_buffer | 0) | 0; } $6 = ($1 + 24) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = _read($7 | 0, $junk | 0, 8) | 0; $9 = ($proc + 88) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == 0; if ($11) { ___assert_fail(4072 | 0, 4088 | 0, 225, 4048 | 0); // unreachable; } else { $12 = HEAP32[$0 >> 2] | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($12 + 12) | 0; HEAP32[$14 >> 2] = $13; $15 = ($12 + 16) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = HEAP32[$14 >> 2] | 0; $18 = $17 << 3; $19 = _realloc($16, $18) | 0; HEAP32[$15 >> 2] = $19; $20 = ($12 + 20) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = HEAP32[$14 >> 2] | 0; $23 = $22 << 2; $24 = _realloc($21, $23) | 0; HEAP32[$20 >> 2] = $24; $25 = HEAP32[$15 >> 2] | 0; $26 = ($12 + 4) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = $13 << 3; _memcpy($25 | 0, $27 | 0, $28 | 0) | 0; $29 = HEAP32[$20 >> 2] | 0; $30 = ($12 + 8) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = $13 << 2; _memcpy($29 | 0, $31 | 0, $32 | 0) | 0; STACKTOP = sp; return $8 | 0; } return 0 | 0; } function __zbar_processor_cleanup($proc) { $proc = $proc | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($proc + 196) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($proc + 88) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) == 0; if (!$4) { $5 = ($1 + 24) | 0; $6 = HEAP32[$5 >> 2] | 0; _close($6 | 0) | 0; $7 = ($1 + 28) | 0; $8 = HEAP32[$7 >> 2] | 0; _close($8 | 0) | 0; HEAP32[$7 >> 2] = -1; HEAP32[$5 >> 2] = -1; } $9 = ($1 + 4) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == (0 | 0); if (!$11) { _free($10); HEAP32[$9 >> 2] = 0; $12 = HEAP32[$2 >> 2] | 0; $13 = ($12 | 0) == 0; if ($13) { $14 = ($1 + 16) | 0; HEAP32[$14 >> 2] = 0; } } $15 = ($1 + 8) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 | 0) == (0 | 0); if (!$17) { _free($16); HEAP32[$15 >> 2] = 0; $18 = HEAP32[$2 >> 2] | 0; $19 = ($18 | 0) == 0; if ($19) { $20 = ($1 + 20) | 0; HEAP32[$20 >> 2] = 0; } } $21 = ($1 + 16) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($22 | 0) == (0 | 0); if (!$23) { _free($22); HEAP32[$21 >> 2] = 0; } $24 = ($1 + 20) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($25 | 0) == (0 | 0); if ($26) { $27 = HEAP32[$0 >> 2] | 0; _free($27); HEAP32[$0 >> 2] = 0; STACKTOP = sp; return 0; } _free($25); HEAP32[$24 >> 2] = 0; $27 = HEAP32[$0 >> 2] | 0; _free($27); HEAP32[$0 >> 2] = 0; STACKTOP = sp; return 0; } function __zbar_processor_enable($proc) { $proc = $proc | 0; var $$lcssa = 0, $$pre$i = 0, $$pre$phi$iZ2D = 0, $$pre1$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; var $i$i = 0, $storemerge$i = 0, $storemerge$in$i = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer = sp; $i$i = (sp + 16) | 0; $0 = ($proc + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = _zbar_video_get_fd($1) | 0; $3 = ($2 | 0) < 0; if ($3) { STACKTOP = sp; return 0; } $4 = ($proc + 96) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 | 0) == 0; if (!$6) { _add_poll($proc, $2, 2); STACKTOP = sp; return 0; } $7 = ($proc + 196) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($8 + 4) | 0; $storemerge$in$i = $9; while (1) { $storemerge$i = ($storemerge$in$i + -1) | 0; $11 = ($storemerge$in$i | 0) > 0; if (!$11) { $$lcssa = 0; break; } $12 = HEAP32[$10 >> 2] | 0; $13 = ($12 + ($storemerge$i << 3)) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($14 | 0) == ($2 | 0); if ($15) { $$lcssa = 1; break; } else { $storemerge$in$i = $storemerge$i; } } HEAP32[$i$i >> 2] = $storemerge$i; $16 = HEAP32[80 >> 2] | 0; $17 = ($16 | 0) > 4; if ($17) { $18 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 4008; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $storemerge$i; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $2; $vararg_ptr3 = ($vararg_buffer + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $9; _fprintf($18 | 0, 3984 | 0, $vararg_buffer | 0) | 0; } if ($$lcssa) { $19 = HEAP32[$8 >> 2] | 0; $20 = ($storemerge$in$i | 0) < ($19 | 0); if ($20) { $21 = ($19 - $storemerge$i) | 0; $22 = ($21 + -1) | 0; $23 = HEAP32[$10 >> 2] | 0; $24 = ($23 + ($storemerge$i << 3)) | 0; $25 = ($23 + ($storemerge$in$i << 3)) | 0; $26 = $22 << 3; _memmove($24 | 0, $25 | 0, $26 | 0) | 0; $27 = ($8 + 8) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = ($28 + ($storemerge$i << 2)) | 0; $30 = ($28 + ($storemerge$in$i << 2)) | 0; _memmove($29 | 0, $30 | 0, $22 | 0) | 0; $$pre$i = HEAP32[$8 >> 2] | 0; $$pre$phi$iZ2D = $27; $32 = $$pre$i; } else { $$pre1$i = ($8 + 8) | 0; $$pre$phi$iZ2D = $$pre1$i; $32 = $19; } $31 = ($32 + -1) | 0; HEAP32[$8 >> 2] = $31; $33 = HEAP32[$10 >> 2] | 0; $34 = HEAP32[$8 >> 2] | 0; $35 = $34 << 3; $36 = _realloc($33, $35) | 0; HEAP32[$10 >> 2] = $36; $37 = HEAP32[$$pre$phi$iZ2D >> 2] | 0; $38 = HEAP32[$8 >> 2] | 0; $39 = $38 << 2; $40 = _realloc($37, $39) | 0; HEAP32[$$pre$phi$iZ2D >> 2] = $40; HEAP32[$i$i >> 2] = 0; } $41 = ($proc + 116) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($42 | 0) == 0; if (!$43) { $44 = ($8 + 28) | 0; $45 = HEAP32[$44 >> 2] | 0; _write($45 | 0, $i$i | 0, 4) | 0; STACKTOP = sp; return 0; } $46 = ($proc + 88) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) == 0; if (!$48) { STACKTOP = sp; return 0; } $49 = HEAP32[$8 >> 2] | 0; $50 = ($8 + 12) | 0; HEAP32[$50 >> 2] = $49; $51 = HEAP32[$10 >> 2] | 0; $52 = ($8 + 16) | 0; HEAP32[$52 >> 2] = $51; $53 = ($8 + 8) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($8 + 20) | 0; HEAP32[$55 >> 2] = $54; STACKTOP = sp; return 0; } function _proc_video_handler($proc, $i) { $proc = $proc | 0; $i = $i | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; sp = STACKTOP; __zbar_processor_lock($proc) | 0; $0 = ($proc + 96) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if (!$2) { $3 = ($proc + 44) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = _zbar_video_next_image($4) | 0; $6 = ($5 | 0) == (0 | 0); if (!$6) { __zbar_process_image($proc, $5) | 0; __zbar_processor_unlock($proc, 0) | 0; _zbar_image_destroy($5); STACKTOP = sp; return 0; } } __zbar_processor_unlock($proc, 0) | 0; STACKTOP = sp; return 0; } function __zbar_video_open($vdo, $device) { $vdo = $vdo | 0; $device = $device | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$vdo >> 2] | 0; $1 = ($0 | 0) == 1381123450; if (!$1) { ___assert_fail(4408 | 0, 4440 | 0, 150, 4456 | 0); // unreachable; } $2 = ($vdo + 16) | 0; HEAP32[$2 >> 2] = -1; $3 = ($vdo + 20) | 0; HEAP32[$3 >> 2] = 3; $4 = ($vdo + 24) | 0; HEAP32[$4 >> 2] = 4344; $5 = ($vdo + 28) | 0; HEAP32[$5 >> 2] = 4368; $6 = HEAP32[80 >> 2] | 0; $7 = ($6 | 0) > 0; if (!$7) { STACKTOP = sp; return -1; } __zbar_error_spew($vdo, 0) | 0; STACKTOP = sp; return -1; } function _zbar_image_convert_resize($src, $fmt, $width, $height) { $src = $src | 0; $fmt = $fmt | 0; $width = $width | 0; $height = $height | 0; var $$$i = 0, $$$i2 = 0, $$0 = 0, $$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $i$01$i = 0, $i$01$i1 = 0; var $or$cond = 0, $or$cond10 = 0, $or$cond11 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _zbar_image_create() | 0; HEAP32[$0 >> 2] = $fmt; $1 = ($0 + 4) | 0; HEAP32[$1 >> 2] = $width; $2 = ($0 + 8) | 0; HEAP32[$2 >> 2] = $height; $3 = ($src + 20) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($src + 24) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($src + 28) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($src + 32) | 0; $10 = HEAP32[$9 >> 2] | 0; _zbar_image_set_crop($0, $4, $6, $8, $10); $11 = HEAP32[$src >> 2] | 0; $12 = ($11 | 0) == ($fmt | 0); if ($12) { $13 = ($src + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($14 | 0) == ($width | 0); if ($15) { $16 = ($src + 8) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($17 | 0) == ($height | 0); if ($18) { $19 = HEAP32[$1 >> 2] | 0; $20 = ($19 | 0) == ($width | 0); $21 = HEAP32[$2 >> 2] | 0; $22 = ($21 | 0) == ($height | 0); $or$cond10 = $20 & $22; if (!$or$cond10) { $35 = Math_imul($21, $19) | 0; _convert_y_resize($0, $src, $35); $$0 = $0; STACKTOP = sp; return $$0 | 0; } $23 = ($src + 12) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($0 + 12) | 0; HEAP32[$25 >> 2] = $24; $26 = ($src + 16) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($0 + 16) | 0; HEAP32[$28 >> 2] = $27; $29 = ($0 + 40) | 0; HEAP32[$29 >> 2] = 4; $30 = ($0 + 56) | 0; HEAP32[$30 >> 2] = $src; $31 = ($src + 44) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($32 + 1) | 0; HEAP32[$31 >> 2] = $33; $34 = ($32 | 0) > -2; if ($34) { $$0 = $0; STACKTOP = sp; return $$0 | 0; } else { ___assert_fail(5904 | 0, 5912 | 0, 87, 5928 | 0); // unreachable; } } else { $i$01$i = 0; } } else { $i$01$i = 0; } } else { $i$01$i = 0; } while (1) { $36 = (5944 + (($i$01$i * 12) | 0)) | 0; $37 = HEAP32[$36 >> 2] | 0; $38 = ($37 | 0) == ($11 | 0); if ($38) { $$0$i = $36; break; } $39 = $i$01$i << 1; $40 = $39 | 1; $41 = $37 >>> 0 < $11 >>> 0; $42 = $41 & 1; $$$i = ($42 + $40) | 0; $43 = ($$$i | 0) < 31; if ($43) { $i$01$i = $$$i; } else { $$0$i = 0; break; } } $44 = HEAP32[$0 >> 2] | 0; $i$01$i1 = 0; while (1) { $45 = (5944 + (($i$01$i1 * 12) | 0)) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = ($46 | 0) == ($44 | 0); if ($47) { break; } $48 = $i$01$i1 << 1; $49 = $48 | 1; $50 = $46 >>> 0 < $44 >>> 0; $51 = $50 & 1; $$$i2 = ($51 + $49) | 0; $52 = ($$$i2 | 0) < 31; if ($52) { $i$01$i1 = $$$i2; } else { $$0 = 0; label = 24; break; } } if ((label | 0) == 24) { STACKTOP = sp; return $$0 | 0; } $53 = ($$0$i | 0) == (0 | 0); $54 = ($45 | 0) == (0 | 0); $or$cond = $53 | $54; if ($or$cond) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $55 = ($$0$i + 4) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = (((5944 + (($i$01$i1 * 12) | 0)) | 0) + 4) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = ($56 | 0) == ($58 | 0); if ($59) { $60 = ($$0$i + 8) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = (((5944 + (($i$01$i1 * 12) | 0)) | 0) + 8) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = ($61 | 0) == ($63 | 0); if ($64) { $65 = ($src + 4) | 0; $66 = HEAP32[$65 >> 2] | 0; $67 = ($66 | 0) == ($width | 0); if ($67) { $68 = ($src + 8) | 0; $69 = HEAP32[$68 >> 2] | 0; $70 = ($69 | 0) == ($height | 0); if ($70) { $71 = HEAP32[$1 >> 2] | 0; $72 = ($71 | 0) == ($width | 0); $73 = HEAP32[$2 >> 2] | 0; $74 = ($73 | 0) == ($height | 0); $or$cond11 = $72 & $74; if (!$or$cond11) { $87 = Math_imul($73, $71) | 0; _convert_y_resize($0, $src, $87); $$0 = $0; STACKTOP = sp; return $$0 | 0; } $75 = ($src + 12) | 0; $76 = HEAP32[$75 >> 2] | 0; $77 = ($0 + 12) | 0; HEAP32[$77 >> 2] = $76; $78 = ($src + 16) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ($0 + 16) | 0; HEAP32[$80 >> 2] = $79; $81 = ($0 + 40) | 0; HEAP32[$81 >> 2] = 4; $82 = ($0 + 56) | 0; HEAP32[$82 >> 2] = $src; $83 = ($src + 44) | 0; $84 = HEAP32[$83 >> 2] | 0; $85 = ($84 + 1) | 0; HEAP32[$83 >> 2] = $85; $86 = ($84 | 0) > -2; if ($86) { $$0 = $0; STACKTOP = sp; return $$0 | 0; } else { ___assert_fail(5904 | 0, 5912 | 0, 87, 5928 | 0); // unreachable; } } } } } $88 = (((((4624 + (($56 * 48) | 0)) | 0) + ($58 << 3)) | 0) + 4) | 0; $89 = HEAP32[$88 >> 2] | 0; $90 = ($0 + 40) | 0; HEAP32[$90 >> 2] = 1; FUNCTION_TABLE_viiii[$89 & 15]($0, $45, $src, $$0$i); $91 = ($0 + 12) | 0; $92 = HEAP32[$91 >> 2] | 0; $93 = ($92 | 0) == (0 | 0); if (!$93) { $$0 = $0; STACKTOP = sp; return $$0 | 0; } _zbar_image_destroy($0); $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _convert_copy($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0; var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($src + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($dst + 4) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($1 | 0) == ($3 | 0); if ($4) { $5 = ($src + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($dst + 8) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($6 | 0) == ($8 | 0); if ($9) { $10 = ($src + 12) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($dst + 12) | 0; HEAP32[$12 >> 2] = $11; $13 = ($src + 16) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($dst + 16) | 0; HEAP32[$15 >> 2] = $14; $16 = ($dst + 40) | 0; HEAP32[$16 >> 2] = 4; $17 = ($dst + 56) | 0; HEAP32[$17 >> 2] = $src; $18 = ($src + 44) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($19 + 1) | 0; HEAP32[$18 >> 2] = $20; $21 = ($19 | 0) > -2; if ($21) { STACKTOP = sp; return; } else { ___assert_fail(5904 | 0, 5912 | 0, 87, 5928 | 0); // unreachable; } } else { $23 = $8; } } else { $$phi$trans$insert = ($dst + 8) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $23 = $$pre; } $22 = Math_imul($23, $3) | 0; _convert_y_resize($dst, $src, $22); STACKTOP = sp; return; } function _zbar_image_convert($src, $fmt) { $src = $src | 0; $fmt = $fmt | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($src + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($src + 8) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = _zbar_image_convert_resize($src, $fmt, $1, $3) | 0; STACKTOP = sp; return $4 | 0; } function __zbar_best_format($src, $dst, $dsts) { $src = $src | 0; $dst = $dst | 0; $dsts = $dsts | 0; var $$$i = 0, $$$i$us = 0, $$$i3 = 0, $$0 = 0, $$0110 = 0, $$0110$us = 0, $$02$i = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, $cost$0 = 0, $cost$0$us = 0, $i$01$i = 0, $i$01$i$us = 0, $i$01$i2 = 0, $min_cost$0$lcssa = 0, $min_cost$0$mux = 0; var $min_cost$0$mux$us = 0, $min_cost$012 = 0, $min_cost$012$us = 0, $min_cost$1 = 0, $min_cost$1$us = 0, $notlhs = 0, $notlhs$us = 0, $notrhs = 0, $notrhs$us = 0, $or$cond$not = 0, $or$cond$not$us = 0, $vararg_buffer12 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0; var sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer12 = sp; $0 = (sp + 12) | 0; HEAP32[$0 >> 2] = $src; $1 = ($dst | 0) != (0 | 0); if ($1) { HEAP32[$dst >> 2] = 0; } $2 = ($dsts | 0) == (0 | 0); if ($2) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $3 = HEAP32[$dsts >> 2] | 0; $4 = ($3 | 0) == 0; L7: do { if ($4) { $i$01$i2 = 0; } else { $$02$i = $dsts; $8 = $3; while (1) { $9 = ($8 | 0) == ($src | 0); $6 = ($$02$i + 4) | 0; if ($9) { break; } $5 = HEAP32[$6 >> 2] | 0; $7 = ($5 | 0) == 0; if ($7) { $i$01$i2 = 0; break L7; } else { $$02$i = $6; $8 = $5; } } $10 = HEAP32[80 >> 2] | 0; $11 = ($10 | 0) > 7; if ($11) { $12 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer12 >> 2] = 4944; $vararg_ptr1 = ($vararg_buffer12 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $0; _fprintf($12 | 0, 4912 | 0, $vararg_buffer12 | 0) | 0; } if (!$1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $13 = HEAP32[$0 >> 2] | 0; HEAP32[$dst >> 2] = $13; $$0 = 0; STACKTOP = sp; return $$0 | 0; } } while (0); while (1) { $14 = (5944 + (($i$01$i2 * 12) | 0)) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = ($15 | 0) == ($src | 0); if ($16) { break; } $17 = $i$01$i2 << 1; $18 = $17 | 1; $19 = $15 >>> 0 < $src >>> 0; $20 = $19 & 1; $$$i3 = ($20 + $18) | 0; $21 = ($$$i3 | 0) < 31; if ($21) { $i$01$i2 = $$$i3; } else { $$0 = -1; label = 43; break; } } if ((label | 0) == 43) { STACKTOP = sp; return $$0 | 0; } $22 = ($14 | 0) == (0 | 0); if ($22) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $23 = HEAP32[80 >> 2] | 0; $24 = ($23 | 0) > 7; if ($24) { $25 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer12 >> 2] = 4944; $vararg_ptr5 = ($vararg_buffer12 + 4) | 0; HEAP32[$vararg_ptr5 >> 2] = $0; $vararg_ptr6 = ($vararg_buffer12 + 8) | 0; HEAP32[$vararg_ptr6 >> 2] = $src; _fprintf($25 | 0, 4968 | 0, $vararg_buffer12 | 0) | 0; $$pre = HEAP32[$dsts >> 2] | 0; $26 = $$pre; } else { $26 = $3; } $27 = ($26 | 0) == 0; L31: do { if ($27) { $min_cost$0$lcssa = -1; } else { $28 = (((5944 + (($i$01$i2 * 12) | 0)) | 0) + 4) | 0; $29 = (((5944 + (($i$01$i2 * 12) | 0)) | 0) + 8) | 0; $30 = HEAP32[_stderr >> 2] | 0; if ($1) { $$0110 = $dsts; $59 = $26; $min_cost$012 = -1; } else { $$0110$us = $dsts; $34 = $26; $min_cost$012$us = -1; while (1) { $i$01$i$us = 0; while (1) { $31 = (5944 + (($i$01$i$us * 12) | 0)) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($32 | 0) == ($34 | 0); if ($33) { label = 21; break; } $35 = $i$01$i$us << 1; $36 = $35 | 1; $37 = $32 >>> 0 < $34 >>> 0; $38 = $37 & 1; $$$i$us = ($38 + $36) | 0; $39 = ($$$i$us | 0) < 31; if ($39) { $i$01$i$us = $$$i$us; } else { $min_cost$1$us = $min_cost$012$us; break; } } if ((label | 0) == 21) { label = 0; $40 = ($31 | 0) == (0 | 0); if ($40) { $min_cost$1$us = $min_cost$012$us; } else { $41 = HEAP32[$28 >> 2] | 0; $42 = (((5944 + (($i$01$i$us * 12) | 0)) | 0) + 4) | 0; $43 = HEAP32[$42 >> 2] | 0; $44 = ($41 | 0) == ($43 | 0); if ($44) { $45 = HEAP32[$29 >> 2] | 0; $46 = (((5944 + (($i$01$i$us * 12) | 0)) | 0) + 8) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($45 | 0) == ($47 | 0); if ($48) { $cost$0$us = 0; } else { label = 24; } } else { label = 24; } if ((label | 0) == 24) { label = 0; $49 = (((4624 + (($41 * 48) | 0)) | 0) + ($43 << 3)) | 0; $50 = HEAP32[$49 >> 2] | 0; $cost$0$us = $50; } $51 = HEAP32[80 >> 2] | 0; $52 = ($51 | 0) > 7; if ($52) { HEAP32[$vararg_buffer12 >> 2] = $$0110$us; $vararg_ptr10 = ($vararg_buffer12 + 4) | 0; HEAP32[$vararg_ptr10 >> 2] = $34; $vararg_ptr11 = ($vararg_buffer12 + 8) | 0; HEAP32[$vararg_ptr11 >> 2] = $cost$0$us; _fprintf($30 | 0, 4992 | 0, $vararg_buffer12 | 0) | 0; } $notlhs$us = ($cost$0$us | 0) < 0; $notrhs$us = $min_cost$012$us >>> 0 <= $cost$0$us >>> 0; $or$cond$not$us = $notrhs$us | $notlhs$us; $min_cost$0$mux$us = $or$cond$not$us ? $min_cost$012$us : $cost$0$us; $min_cost$1$us = $min_cost$0$mux$us; } } $53 = ($$0110$us + 4) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($54 | 0) == 0; if ($55) { $min_cost$0$lcssa = $min_cost$1$us; break L31; } else { $$0110$us = $53; $34 = $54; $min_cost$012$us = $min_cost$1$us; } } } while (1) { $i$01$i = 0; while (1) { $56 = (5944 + (($i$01$i * 12) | 0)) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 | 0) == ($59 | 0); if ($58) { label = 32; break; } $60 = $i$01$i << 1; $61 = $60 | 1; $62 = $57 >>> 0 < $59 >>> 0; $63 = $62 & 1; $$$i = ($63 + $61) | 0; $64 = ($$$i | 0) < 31; if ($64) { $i$01$i = $$$i; } else { $min_cost$1 = $min_cost$012; break; } } if ((label | 0) == 32) { label = 0; $65 = ($56 | 0) == (0 | 0); if ($65) { $min_cost$1 = $min_cost$012; } else { $66 = HEAP32[$28 >> 2] | 0; $67 = (((5944 + (($i$01$i * 12) | 0)) | 0) + 4) | 0; $68 = HEAP32[$67 >> 2] | 0; $69 = ($66 | 0) == ($68 | 0); if ($69) { $70 = HEAP32[$29 >> 2] | 0; $71 = (((5944 + (($i$01$i * 12) | 0)) | 0) + 8) | 0; $72 = HEAP32[$71 >> 2] | 0; $73 = ($70 | 0) == ($72 | 0); if ($73) { $cost$0 = 0; } else { label = 35; } } else { label = 35; } if ((label | 0) == 35) { label = 0; $74 = (((4624 + (($66 * 48) | 0)) | 0) + ($68 << 3)) | 0; $75 = HEAP32[$74 >> 2] | 0; $cost$0 = $75; } $76 = HEAP32[80 >> 2] | 0; $77 = ($76 | 0) > 7; if ($77) { HEAP32[$vararg_buffer12 >> 2] = $$0110; $vararg_ptr15 = ($vararg_buffer12 + 4) | 0; HEAP32[$vararg_ptr15 >> 2] = $59; $vararg_ptr16 = ($vararg_buffer12 + 8) | 0; HEAP32[$vararg_ptr16 >> 2] = $cost$0; _fprintf($30 | 0, 4992 | 0, $vararg_buffer12 | 0) | 0; } $notlhs = ($cost$0 | 0) < 0; $notrhs = $min_cost$012 >>> 0 <= $cost$0 >>> 0; $or$cond$not = $notrhs | $notlhs; $min_cost$0$mux = $or$cond$not ? $min_cost$012 : $cost$0; if ($or$cond$not) { $min_cost$1 = $min_cost$0$mux; } else { $78 = HEAP32[$$0110 >> 2] | 0; HEAP32[$dst >> 2] = $78; $min_cost$1 = $cost$0; } } } $79 = ($$0110 + 4) | 0; $80 = HEAP32[$79 >> 2] | 0; $81 = ($80 | 0) == 0; if ($81) { $min_cost$0$lcssa = $min_cost$1; break; } else { $$0110 = $79; $59 = $80; $min_cost$012 = $min_cost$1; } } } } while (0); $82 = HEAP32[80 >> 2] | 0; $83 = ($82 | 0) > 7; if (!$83) { $$0 = $min_cost$0$lcssa; STACKTOP = sp; return $$0 | 0; } $84 = HEAP32[_stderr >> 2] | 0; _fputc(10, $84 | 0) | 0; $$0 = $min_cost$0$lcssa; STACKTOP = sp; return $$0 | 0; } function _zbar_negotiate_format($vdo, $win) { $vdo = $vdo | 0; $win = $win | 0; var $$0 = 0, $$02$i = 0, $$not = 0, $$pre = 0, $$pre7 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $9 = 0, $fmt$05 = 0, $i$0$lcssa$i = 0, $i$02$i = 0, $min_cost$04 = 0, $min_cost$1 = 0, $min_cost$2 = 0, $min_fmt = 0, $or$cond = 0; var $vararg_buffer11 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, $win_fmt = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer11 = sp; $min_fmt = (sp + 28) | 0; $win_fmt = (sp + 24) | 0; HEAP32[$min_fmt >> 2] = 0; $0 = ($vdo | 0) != (0 | 0); $$not = $0 ^ 1; $1 = ($win | 0) == (0 | 0); $or$cond = $1 & $$not; if ($or$cond) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $2 = ($win | 0) != (0 | 0); $3 = $0 ? $vdo : $win; $i$02$i = 0; while (1) { $4 = $i$02$i << 1; $5 = $4 | 1; $6 = ($5 | 0) < 31; if ($6) { $7 = (5944 + (($i$02$i * 12) | 0)) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = (5944 + (($5 * 12) | 0)) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = $8 >>> 0 < $10 >>> 0; if ($11) { break; } } $12 = ($5 + 1) | 0; $13 = ($12 | 0) < 31; if ($13) { $14 = (5944 + (($12 * 12) | 0)) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = (5944 + (($i$02$i * 12) | 0)) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = $15 >>> 0 < $17 >>> 0; if ($18) { $i$0$lcssa$i = $i$02$i; label = 8; break; } } $19 = ($i$02$i + 1) | 0; $20 = ($19 | 0) < 31; if ($20) { $i$02$i = $19; } else { $i$0$lcssa$i = $19; label = 8; break; } } if ((label | 0) == 8) { $21 = ($i$0$lcssa$i | 0) == 31; if ($21) { if ($0) { $31 = ($vdo + 72) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($32 | 0) == (0 | 0); if (!$33) { label = 15; } } else { label = 15; } do { if ((label | 0) == 15) { if ($2) { $34 = ($win + 112) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($35 | 0) == (0 | 0); if ($36) { break; } } if ($0) { $45 = ($vdo + 72) | 0; $46 = HEAP32[$45 >> 2] | 0; $52 = $46; } else { $52 = 5008; } if ($2) { $47 = ($win + 112) | 0; $48 = HEAP32[$47 >> 2] | 0; $59 = $48; } else { $59 = 5008; } $49 = HEAP32[_stderr >> 2] | 0; $fmt$05 = 4472; $min_cost$04 = -1; L28: while (1) { HEAP32[$win_fmt >> 2] = 0; $50 = HEAP32[$fmt$05 >> 2] | 0; $51 = HEAP32[$52 >> 2] | 0; $53 = ($51 | 0) == 0; L30: do { if ($53) { $min_cost$1 = $min_cost$04; } else { $$02$i = $52; $57 = $51; while (1) { $58 = ($57 | 0) == ($50 | 0); $55 = ($$02$i + 4) | 0; if ($58) { break; } $54 = HEAP32[$55 >> 2] | 0; $56 = ($54 | 0) == 0; if ($56) { $min_cost$1 = $min_cost$04; break L30; } else { $$02$i = $55; $57 = $54; } } $60 = __zbar_best_format($50, $win_fmt, $59) | 0; $61 = ($60 | 0) < 0; $62 = HEAP32[80 >> 2] | 0; $63 = ($62 | 0) > 3; if ($61) { if (!$63) { $min_cost$1 = $min_cost$04; break; } $64 = HEAP32[$fmt$05 >> 2] | 0; HEAP32[$vararg_buffer11 >> 2] = 5016; $vararg_ptr1 = ($vararg_buffer11 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $fmt$05; $vararg_ptr2 = ($vararg_buffer11 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $64; _fprintf($49 | 0, 5120 | 0, $vararg_buffer11 | 0) | 0; $min_cost$1 = $min_cost$04; break; } if ($63) { $65 = HEAP32[$fmt$05 >> 2] | 0; $66 = HEAP32[$win_fmt >> 2] | 0; HEAP32[$vararg_buffer11 >> 2] = 5016; $vararg_ptr6 = ($vararg_buffer11 + 4) | 0; HEAP32[$vararg_ptr6 >> 2] = $fmt$05; $vararg_ptr7 = ($vararg_buffer11 + 8) | 0; HEAP32[$vararg_ptr7 >> 2] = $65; $vararg_ptr8 = ($vararg_buffer11 + 12) | 0; HEAP32[$vararg_ptr8 >> 2] = $win_fmt; $vararg_ptr9 = ($vararg_buffer11 + 16) | 0; HEAP32[$vararg_ptr9 >> 2] = $66; $vararg_ptr10 = ($vararg_buffer11 + 20) | 0; HEAP32[$vararg_ptr10 >> 2] = $60; _fprintf($49 | 0, 5160 | 0, $vararg_buffer11 | 0) | 0; } $67 = $min_cost$04 >>> 0 > $60 >>> 0; if ($67) { $68 = HEAP32[$fmt$05 >> 2] | 0; HEAP32[$min_fmt >> 2] = $68; $69 = ($60 | 0) == 0; if ($69) { $73 = $68; $min_cost$2 = 0; break L28; } else { $min_cost$1 = $60; } } else { $min_cost$1 = $min_cost$04; } } } while (0); $70 = ($fmt$05 + 4) | 0; $71 = HEAP32[$70 >> 2] | 0; $72 = ($71 | 0) == 0; if ($72) { label = 37; break; } else { $fmt$05 = $70; $min_cost$04 = $min_cost$1; } } if ((label | 0) == 37) { $$pre7 = HEAP32[$min_fmt >> 2] | 0; $73 = $$pre7; $min_cost$2 = $min_cost$1; } $74 = ($73 | 0) == 0; if ($74) { $75 = HEAP32[$3 >> 2] | 0; $76 = ($75 | 0) == 1381123450; if (!$76) { ___assert_fail(5288 | 0, 5320 | 0, 150, 5336 | 0); // unreachable; } $77 = ($3 + 16) | 0; HEAP32[$77 >> 2] = -1; $78 = ($3 + 20) | 0; HEAP32[$78 >> 2] = 3; $79 = ($3 + 24) | 0; HEAP32[$79 >> 2] = 5016; $80 = ($3 + 28) | 0; HEAP32[$80 >> 2] = 5200; $81 = HEAP32[80 >> 2] | 0; $82 = ($81 | 0) > 0; if (!$82) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($3, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } else { if (!$0) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $83 = HEAP32[80 >> 2] | 0; $84 = ($83 | 0) > 1; if ($84) { HEAP32[$vararg_buffer11 >> 2] = 5016; $vararg_ptr14 = ($vararg_buffer11 + 4) | 0; HEAP32[$vararg_ptr14 >> 2] = $min_fmt; $vararg_ptr15 = ($vararg_buffer11 + 8) | 0; HEAP32[$vararg_ptr15 >> 2] = $73; $vararg_ptr16 = ($vararg_buffer11 + 12) | 0; HEAP32[$vararg_ptr16 >> 2] = $min_cost$2; _fprintf($49 | 0, 5240 | 0, $vararg_buffer11 | 0) | 0; $$pre = HEAP32[$min_fmt >> 2] | 0; $85 = $$pre; } else { $85 = $73; } $86 = _zbar_video_init($vdo, $85) | 0; $$0 = $86; STACKTOP = sp; return $$0 | 0; } } } while (0); $37 = HEAP32[$3 >> 2] | 0; $38 = ($37 | 0) == 1381123450; if (!$38) { ___assert_fail(5288 | 0, 5320 | 0, 150, 5336 | 0); // unreachable; } $39 = ($3 + 16) | 0; HEAP32[$39 >> 2] = -1; $40 = ($3 + 20) | 0; HEAP32[$40 >> 2] = 3; $41 = ($3 + 24) | 0; HEAP32[$41 >> 2] = 5016; $42 = ($3 + 28) | 0; HEAP32[$42 >> 2] = 5080; $43 = HEAP32[80 >> 2] | 0; $44 = ($43 | 0) > 0; if (!$44) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($3, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } } $22 = HEAP32[_stderr >> 2] | 0; _fwrite(5352 | 0, 41, 1, $22 | 0) | 0; $23 = HEAP32[$3 >> 2] | 0; $24 = ($23 | 0) == 1381123450; if (!$24) { ___assert_fail(5288 | 0, 5320 | 0, 150, 5336 | 0); // unreachable; } $25 = ($3 + 16) | 0; HEAP32[$25 >> 2] = -2; $26 = ($3 + 20) | 0; HEAP32[$26 >> 2] = 2; $27 = ($3 + 24) | 0; HEAP32[$27 >> 2] = 5016; $28 = ($3 + 28) | 0; HEAP32[$28 >> 2] = 5040; $29 = HEAP32[80 >> 2] | 0; $30 = ($29 | 0) > 0; if (!$30) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } __zbar_error_spew($3, 0) | 0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _convert_uvp_append($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$0$i = 0, $$phi$trans$insert = 0, $$phi$trans$insert2 = 0, $$pre = 0, $$pre1 = 0, $$pre3 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; var $58 = 0, $59 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer = sp; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $$phi$trans$insert = ($dst + 4) | 0; $$pre1 = HEAP32[$$phi$trans$insert >> 2] | 0; $$phi$trans$insert2 = ($dst + 8) | 0; $$pre3 = HEAP32[$$phi$trans$insert2 >> 2] | 0; $$0$i = 0; $38 = $$pre1; $39 = $$pre3; } else { $3 = ($dstfmt + 8) | 0; $4 = HEAP8[$3 >> 0] | 0; $5 = $4 & 255; $6 = 1 << $5; $7 = ($6 + -1) | 0; $8 = ($dst + 4) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = $7 & $9; $11 = ($10 | 0) == 0; if ($11) { $30 = $9; } else { $12 = ($7 + $9) | 0; $13 = (0 - $6) | 0; $14 = $12 & $13; HEAP32[$8 >> 2] = $14; $30 = $14; } $15 = ($3 + 1) | 0; $16 = HEAP8[$15 >> 0] | 0; $17 = $16 & 255; $18 = 1 << $17; $19 = ($18 + -1) | 0; $20 = ($dst + 8) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = $19 & $21; $23 = ($22 | 0) == 0; if ($23) { $34 = $21; } else { $24 = ($19 + $21) | 0; $25 = (0 - $18) | 0; $26 = $24 & $25; HEAP32[$20 >> 2] = $26; $34 = $26; } $27 = HEAP8[$3 >> 0] | 0; $28 = $27 & 255; $29 = $30 >>> $28; $31 = HEAP8[$15 >> 0] | 0; $32 = $31 & 255; $33 = $34 >>> $32; $35 = $29 << 1; $phitmp = Math_imul($35, $33) | 0; $$0$i = $phitmp; $38 = $30; $39 = $34; } $36 = ($dst + 16) | 0; $37 = Math_imul($39, $38) | 0; $40 = ($37 + $$0$i) | 0; HEAP32[$36 >> 2] = $40; $41 = ($src + 16) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($src + 4) | 0; $44 = HEAP32[$43 >> 2] | 0; $45 = ($src + 8) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = Math_imul($46, $44) | 0; $48 = $42 >>> 0 < $47 >>> 0; if ($48) { ___assert_fail(5792 | 0, 5464 | 0, 373, 5840 | 0); // unreachable; } $49 = HEAP32[80 >> 2] | 0; $50 = ($49 | 0) > 23; if ($50) { $51 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 5840; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $38; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $39; $vararg_ptr3 = ($vararg_buffer + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $37; $vararg_ptr4 = ($vararg_buffer + 16) | 0; HEAP32[$vararg_ptr4 >> 2] = $40; $vararg_ptr5 = ($vararg_buffer + 20) | 0; HEAP32[$vararg_ptr5 >> 2] = $44; $vararg_ptr6 = ($vararg_buffer + 24) | 0; HEAP32[$vararg_ptr6 >> 2] = $46; $vararg_ptr7 = ($vararg_buffer + 28) | 0; HEAP32[$vararg_ptr7 >> 2] = $42; _fprintf($51 | 0, 5864 | 0, $vararg_buffer | 0) | 0; $$pre = HEAP32[$36 >> 2] | 0; $52 = $$pre; } else { $52 = $40; } $53 = _malloc($52) | 0; $54 = ($dst + 12) | 0; HEAP32[$54 >> 2] = $53; $55 = ($53 | 0) == (0 | 0); if ($55) { STACKTOP = sp; return; } _convert_y_resize($dst, $src, $37); $56 = HEAP32[$54 >> 2] | 0; $57 = ($56 + $37) | 0; $58 = HEAP32[$36 >> 2] | 0; $59 = ($58 - $37) | 0; _memset($57 | 0, -128, $59 | 0) | 0; STACKTOP = sp; return; } function _convert_yuv_pack($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$ = 0, $$0$i = 0, $$0$i3 = 0, $$2 = 0, $$phi$trans$insert = 0, $$phi$trans$insert46 = 0, $$pre = 0, $$pre45 = 0, $$pre47 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0; var $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0; var $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0; var $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dstp$033 = 0, $dstp$1$lcssa = 0; var $dstp$17 = 0, $dstp$2 = 0, $phitmp = 0, $srcu$131 = 0, $srcu$3$lcssa = 0, $srcu$3$ph = 0, $srcu$35 = 0, $srcu$4 = 0, $srcu$5$lcssa = 0, $srcu$522 = 0, $srcu$6 = 0, $srcv$132 = 0, $srcv$3$lcssa = 0, $srcv$3$ph = 0, $srcv$36 = 0, $srcv$4 = 0, $srcv$5$lcssa = 0, $srcv$523 = 0, $srcv$6 = 0, $srcy$034 = 0; var $srcy$2$lcssa = 0, $srcy$2$ph = 0, $srcy$28 = 0, $srcy$3 = 0, $srcy$4$lcssa = 0, $srcy$424 = 0, $u$038 = 0, $u$1$lcssa = 0, $u$112 = 0, $u$2 = 0, $v$039 = 0, $v$1$lcssa = 0, $v$113 = 0, $v$2 = 0, $x$0$lcssa = 0, $x$09 = 0, $x$125 = 0, $y$035 = 0, $y0$036 = 0, $y0$1$lcssa = 0; var $y0$110 = 0, $y0$2 = 0, $y1$037 = 0, $y1$1$lcssa = 0, $y1$111 = 0, $y1$2 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i3 = 0; $111 = $3; $43 = $7; $93 = $5; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i3 = $phitmp; $111 = $13; $43 = $32; $93 = $25; } $42 = ($$0$i3 + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } $48 = ($srcfmt + 4) | 0; $49 = HEAP32[$48 >> 2] | 0; $50 = ($49 | 0) == 0; $$phi$trans$insert = ($src + 4) | 0; $$pre45 = HEAP32[$$phi$trans$insert >> 2] | 0; if ($50) { $$phi$trans$insert46 = ($src + 8) | 0; $$pre47 = HEAP32[$$phi$trans$insert46 >> 2] | 0; $$0$i = 0; $65 = $$pre47; } else { $51 = ($srcfmt + 8) | 0; $52 = HEAP8[$51 >> 0] | 0; $53 = $52 & 255; $54 = $$pre45 >>> $53; $55 = ($src + 8) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = ($51 + 1) | 0; $58 = HEAP8[$57 >> 0] | 0; $59 = $58 & 255; $60 = $56 >>> $59; $61 = Math_imul($60, $54) | 0; $$0$i = $61; $65 = $56; } $62 = ($src + 4) | 0; $63 = ($src + 8) | 0; $64 = Math_imul($65, $$pre45) | 0; $66 = ($src + 16) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = ($64 * 3) | 0; $69 = $67 >>> 0 < $68 >>> 0; if ($69) { ___assert_fail(5736 | 0, 5464 | 0, 403, 5768 | 0); // unreachable; } $70 = ($dstfmt + 8) | 0; $71 = ($70 + 2) | 0; $72 = HEAP8[$71 >> 0] | 0; $73 = ($srcfmt + 8) | 0; $74 = ($73 + 2) | 0; $75 = HEAP8[$74 >> 0] | 0; $76 = $75 ^ $72; $77 = ($src + 12) | 0; $78 = HEAP32[$77 >> 2] | 0; $79 = $76 & 1; $80 = ($79 << 24) >> 24 == 0; $81 = ($78 + $64) | 0; $$sum = ($64 + $$0$i) | 0; $82 = ($78 + $$sum) | 0; $83 = HEAP8[$73 >> 0] | 0; $84 = $83 & 255; $85 = 1 << $84; $86 = ($85 + -1) | 0; $87 = ($73 + 1) | 0; $88 = HEAP8[$87 >> 0] | 0; $89 = $88 & 255; $90 = 1 << $89; $91 = ($90 + -1) | 0; $92 = HEAP32[$93 >> 2] | 0; $94 = $92 >>> 0 > 3; if (!$94) { STACKTOP = sp; return; } $95 = $$pre45 >>> $84; $$2 = $80 ? $82 : $81; $$ = $80 ? $81 : $82; $96 = (0 - $95) | 0; $97 = $72 & 2; $98 = ($97 << 24) >> 24 == 0; $102 = $$pre45; $dstp$033 = $45; $srcu$131 = $$; $srcv$132 = $$2; $srcy$034 = $78; $u$038 = -128; $v$039 = -128; $y$035 = 0; $y0$036 = 0; $y1$037 = 0; while (1) { $99 = HEAP32[$63 >> 2] | 0; $100 = $y$035 >>> 0 < $99 >>> 0; if ($100) { $106 = $y$035 & $91; $107 = ($106 | 0) == 0; if ($107) { $srcu$3$ph = $srcu$131; $srcv$3$ph = $srcv$132; $srcy$2$ph = $srcy$034; } else { $108 = ($srcu$131 + $96) | 0; $109 = ($srcv$132 + $96) | 0; $srcu$3$ph = $108; $srcv$3$ph = $109; $srcy$2$ph = $srcy$034; } } else { $101 = (0 - $102) | 0; $103 = ($srcy$034 + $101) | 0; $104 = ($srcu$131 + $96) | 0; $105 = ($srcv$132 + $96) | 0; $srcu$3$ph = $104; $srcv$3$ph = $105; $srcy$2$ph = $103; } $110 = HEAP32[$111 >> 2] | 0; $112 = $110 >>> 0 > 3; if ($112) { $dstp$17 = $dstp$033; $srcu$35 = $srcu$3$ph; $srcv$36 = $srcv$3$ph; $srcy$28 = $srcy$2$ph; $u$112 = $u$038; $v$113 = $v$039; $x$09 = 0; $y0$110 = $y0$036; $y1$111 = $y1$037; while (1) { $113 = HEAP32[$62 >> 2] | 0; $114 = $x$09 >>> 0 < $113 >>> 0; if ($114) { $115 = ($srcy$28 + 1) | 0; $116 = HEAP8[$srcy$28 >> 0] | 0; $117 = ($srcy$28 + 2) | 0; $118 = HEAP8[$115 >> 0] | 0; $119 = $x$09 & $86; $120 = ($119 | 0) == 0; if ($120) { $121 = ($srcu$35 + 1) | 0; $122 = HEAP8[$srcu$35 >> 0] | 0; $123 = ($srcv$36 + 1) | 0; $124 = HEAP8[$srcv$36 >> 0] | 0; $srcu$4 = $121; $srcv$4 = $123; $srcy$3 = $117; $u$2 = $122; $v$2 = $124; $y0$2 = $116; $y1$2 = $118; } else { $srcu$4 = $srcu$35; $srcv$4 = $srcv$36; $srcy$3 = $117; $u$2 = $u$112; $v$2 = $v$113; $y0$2 = $116; $y1$2 = $118; } } else { $srcu$4 = $srcu$35; $srcv$4 = $srcv$36; $srcy$3 = $srcy$28; $u$2 = $u$112; $v$2 = $v$113; $y0$2 = $y0$110; $y1$2 = $y1$111; } $125 = ($dstp$17 + 1) | 0; if ($98) { HEAP8[$dstp$17 >> 0] = $y0$2; $128 = ($dstp$17 + 2) | 0; HEAP8[$125 >> 0] = $u$2; $129 = ($dstp$17 + 3) | 0; HEAP8[$128 >> 0] = $y1$2; HEAP8[$129 >> 0] = $v$2; } else { HEAP8[$dstp$17 >> 0] = $u$2; $126 = ($dstp$17 + 2) | 0; HEAP8[$125 >> 0] = $y0$2; $127 = ($dstp$17 + 3) | 0; HEAP8[$126 >> 0] = $v$2; HEAP8[$127 >> 0] = $y1$2; } $dstp$2 = ($dstp$17 + 4) | 0; $130 = ($x$09 + 2) | 0; $131 = HEAP32[$111 >> 2] | 0; $132 = $131 & -4; $133 = $130 >>> 0 < $132 >>> 0; if ($133) { $dstp$17 = $dstp$2; $srcu$35 = $srcu$4; $srcv$36 = $srcv$4; $srcy$28 = $srcy$3; $u$112 = $u$2; $v$113 = $v$2; $x$09 = $130; $y0$110 = $y0$2; $y1$111 = $y1$2; } else { break; } } $$pre = HEAP32[$62 >> 2] | 0; $135 = $$pre; $dstp$1$lcssa = $dstp$2; $srcu$3$lcssa = $srcu$4; $srcv$3$lcssa = $srcv$4; $srcy$2$lcssa = $srcy$3; $u$1$lcssa = $u$2; $v$1$lcssa = $v$2; $x$0$lcssa = $130; $y0$1$lcssa = $y0$2; $y1$1$lcssa = $y1$2; } else { $135 = $102; $dstp$1$lcssa = $dstp$033; $srcu$3$lcssa = $srcu$3$ph; $srcv$3$lcssa = $srcv$3$ph; $srcy$2$lcssa = $srcy$2$ph; $u$1$lcssa = $u$038; $v$1$lcssa = $v$039; $x$0$lcssa = 0; $y0$1$lcssa = $y0$036; $y1$1$lcssa = $y1$037; } $134 = $135 & -4; $136 = $x$0$lcssa >>> 0 < $134 >>> 0; if ($136) { $srcu$522 = $srcu$3$lcssa; $srcv$523 = $srcv$3$lcssa; $srcy$424 = $srcy$2$lcssa; $x$125 = $x$0$lcssa; while (1) { $137 = ($srcy$424 + 2) | 0; $138 = $x$125 & $86; $139 = ($138 | 0) == 0; if ($139) { $140 = ($srcu$522 + 1) | 0; $141 = ($srcv$523 + 1) | 0; $srcu$6 = $140; $srcv$6 = $141; } else { $srcu$6 = $srcu$522; $srcv$6 = $srcv$523; } $142 = ($x$125 + 2) | 0; $143 = $142 >>> 0 < $134 >>> 0; if ($143) { $srcu$522 = $srcu$6; $srcv$523 = $srcv$6; $srcy$424 = $137; $x$125 = $142; } else { $srcu$5$lcssa = $srcu$6; $srcv$5$lcssa = $srcv$6; $srcy$4$lcssa = $137; break; } } } else { $srcu$5$lcssa = $srcu$3$lcssa; $srcv$5$lcssa = $srcv$3$lcssa; $srcy$4$lcssa = $srcy$2$lcssa; } $144 = ($y$035 + 1) | 0; $145 = HEAP32[$93 >> 2] | 0; $146 = $145 & -4; $147 = $144 >>> 0 < $146 >>> 0; if ($147) { $102 = $135; $dstp$033 = $dstp$1$lcssa; $srcu$131 = $srcu$5$lcssa; $srcv$132 = $srcv$5$lcssa; $srcy$034 = $srcy$4$lcssa; $u$038 = $u$1$lcssa; $v$039 = $v$1$lcssa; $y$035 = $144; $y0$036 = $y0$1$lcssa; $y1$037 = $y1$1$lcssa; } else { break; } } STACKTOP = sp; return; } function _convert_yuvp_to_rgb($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$0$i = 0, $$lcssa1 = 0, $$phi$trans$insert = 0, $$phi$trans$insert24 = 0, $$pre = 0, $$pre25 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dstp$014 = 0, $dstp$1$lcssa = 0, $dstp$15 = 0, $p$013 = 0, $p$1$lcssa = 0, $p$14 = 0, $p$2 = 0, $phitmp = 0, $srcy$011 = 0, $srcy$2$lcssa = 0, $srcy$2$ph = 0, $srcy$22 = 0, $srcy$3 = 0; var $srcy$4 = 0, $x$0$lcssa = 0, $x$03 = 0, $y$012 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dst + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($dst + 8) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = Math_imul($3, $1) | 0; $5 = ($dstfmt + 8) | 0; $6 = HEAP8[$5 >> 0] | 0; $7 = $6 & 255; $8 = Math_imul($4, $7) | 0; $9 = ($dst + 16) | 0; HEAP32[$9 >> 2] = $8; $10 = _malloc($8) | 0; $11 = ($dst + 12) | 0; HEAP32[$11 >> 2] = $10; $12 = ($10 | 0) == (0 | 0); if ($12) { STACKTOP = sp; return; } $13 = ($5 + 1) | 0; $14 = HEAP8[$13 >> 0] | 0; $15 = $14 & 255; $16 = $15 >>> 5; $17 = $15 & 31; $18 = ($5 + 2) | 0; $19 = HEAP8[$18 >> 0] | 0; $20 = $19 & 255; $21 = $20 >>> 5; $22 = $20 & 31; $23 = ($5 + 3) | 0; $24 = HEAP8[$23 >> 0] | 0; $25 = $24 & 255; $26 = $25 >>> 5; $27 = $25 & 31; $28 = ($srcfmt + 4) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($29 | 0) == 0; $$phi$trans$insert = ($src + 4) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; if ($30) { $$phi$trans$insert24 = ($src + 8) | 0; $$pre25 = HEAP32[$$phi$trans$insert24 >> 2] | 0; $$0$i = 0; $45 = $$pre25; } else { $31 = ($srcfmt + 8) | 0; $32 = HEAP8[$31 >> 0] | 0; $33 = $32 & 255; $34 = $$pre >>> $33; $35 = ($src + 8) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($31 + 1) | 0; $38 = HEAP8[$37 >> 0] | 0; $39 = $38 & 255; $40 = $36 >>> $39; $41 = $34 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $45 = $36; } $42 = ($src + 4) | 0; $43 = ($src + 8) | 0; $44 = Math_imul($45, $$pre) | 0; $46 = ($src + 16) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($44 + $$0$i) | 0; $49 = $47 >>> 0 < $48 >>> 0; if ($49) { ___assert_fail(5680 | 0, 5464 | 0, 599, 5712 | 0); // unreachable; } $50 = $3 >>> 0 > 3; if (!$50) { STACKTOP = sp; return; } $51 = ($src + 12) | 0; $52 = HEAP32[$51 >> 2] | 0; $56 = $$pre; $58 = $1; $dstp$014 = $10; $p$013 = 0; $srcy$011 = $52; $y$012 = 0; while (1) { $53 = HEAP32[$43 >> 2] | 0; $54 = $y$012 >>> 0 < $53 >>> 0; if ($54) { $srcy$2$ph = $srcy$011; } else { $55 = (0 - $56) | 0; $57 = ($srcy$011 + $55) | 0; $srcy$2$ph = $57; } $59 = $58 >>> 0 > 3; $60 = ($56 | 0) != 0; if ($59) { $99 = $60; $dstp$15 = $dstp$014; $p$14 = $p$013; $srcy$22 = $srcy$2$ph; $x$03 = 0; while (1) { if ($99) { $61 = ($srcy$22 + 1) | 0; $62 = HEAP8[$srcy$22 >> 0] | 0; $63 = $62 & 255; $64 = $63 >>> $16; $65 = $64 << $17; $66 = $63 >>> $21; $67 = $66 << $22; $68 = $65 | $67; $69 = $63 >>> $26; $70 = $69 << $27; $71 = $68 | $70; $p$2 = $71; $srcy$3 = $61; } else { $p$2 = $p$14; $srcy$3 = $srcy$22; } $72 = HEAP8[$5 >> 0] | 0; $73 = $72 & 255; if (($73 | 0) == 4) { HEAP32[$dstp$15 >> 2] = $p$2; } else if (($73 | 0) == 3) { $74 = $p$2 & 255; HEAP8[$dstp$15 >> 0] = $74; $75 = $p$2 >>> 8; $76 = $75 & 255; $77 = ($dstp$15 + 1) | 0; HEAP8[$77 >> 0] = $76; $78 = $p$2 >>> 16; $79 = $78 & 255; $80 = ($dstp$15 + 2) | 0; HEAP8[$80 >> 0] = $79; } else if (($73 | 0) == 2) { $81 = $p$2 & 65535; HEAP16[$dstp$15 >> 1] = $81; } else { $82 = $p$2 & 255; HEAP8[$dstp$15 >> 0] = $82; } $83 = HEAP8[$5 >> 0] | 0; $84 = $83 & 255; $85 = ($dstp$15 + $84) | 0; $86 = ($x$03 + 1) | 0; $87 = HEAP32[$0 >> 2] | 0; $88 = $87 & -4; $89 = $86 >>> 0 < $88 >>> 0; $90 = HEAP32[$42 >> 2] | 0; $91 = $86 >>> 0 < $90 >>> 0; if ($89) { $99 = $91; $dstp$15 = $85; $p$14 = $p$2; $srcy$22 = $srcy$3; $x$03 = $86; } else { $$lcssa1 = $91; $100 = $87; $93 = $90; $dstp$1$lcssa = $85; $p$1$lcssa = $p$2; $srcy$2$lcssa = $srcy$3; $x$0$lcssa = $86; break; } } } else { $$lcssa1 = $60; $100 = $58; $93 = $56; $dstp$1$lcssa = $dstp$014; $p$1$lcssa = $p$013; $srcy$2$lcssa = $srcy$2$ph; $x$0$lcssa = 0; } if ($$lcssa1) { $92 = ($93 - $x$0$lcssa) | 0; $94 = ($srcy$2$lcssa + $92) | 0; $srcy$4 = $94; } else { $srcy$4 = $srcy$2$lcssa; } $95 = ($y$012 + 1) | 0; $96 = HEAP32[$2 >> 2] | 0; $97 = $96 & -4; $98 = $95 >>> 0 < $97 >>> 0; if ($98) { $56 = $93; $58 = $100; $dstp$014 = $dstp$1$lcssa; $p$013 = $p$1$lcssa; $srcy$011 = $srcy$4; $y$012 = $95; } else { break; } } STACKTOP = sp; return; } function _convert_uvp_resample($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i = 0; $43 = $7; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $43 = $32; } $42 = ($$0$i + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } _convert_y_resize($dst, $src, $43); $48 = ($$0$i | 0) == 0; if ($48) { STACKTOP = sp; return; } $49 = HEAP32[$46 >> 2] | 0; $50 = ($49 + $43) | 0; _memset($50 | 0, -128, $$0$i | 0) | 0; STACKTOP = sp; return; } function _convert_yuv_unpack($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$ = 0, $$0$i = 0, $$lcssa1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dsty$014 = 0, $dsty$1$lcssa = 0, $dsty$13 = 0, $phitmp = 0, $srcp$113 = 0, $srcp$3$lcssa = 0, $srcp$3$ph = 0, $srcp$32 = 0, $srcp$4 = 0, $srcp$5 = 0, $x$0$lcssa = 0, $x$04 = 0, $y$015 = 0, $y0$016 = 0, $y0$1$lcssa = 0; var $y0$15 = 0, $y0$2 = 0, $y1$017 = 0, $y1$1$lcssa = 0, $y1$16 = 0, $y1$2 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i = 0; $43 = $7; $56 = $5; $77 = $3; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $43 = $32; $56 = $25; $77 = $13; } $42 = ($$0$i + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } $48 = ($$0$i | 0) == 0; if (!$48) { $49 = ($45 + $43) | 0; _memset($49 | 0, -128, $$0$i | 0) | 0; } $50 = ($srcfmt + 8) | 0; $51 = ($src + 12) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($src + 4) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = HEAP32[$56 >> 2] | 0; $57 = $55 >>> 0 > 3; if (!$57) { STACKTOP = sp; return; } $58 = ($dstfmt + 8) | 0; $59 = ($58 + 2) | 0; $60 = ($50 + 2) | 0; $61 = HEAP8[$59 >> 0] | 0; $62 = HEAP8[$60 >> 0] | 0; $63 = HEAP8[$50 >> 0] | 0; $64 = $61 ^ $62; $65 = $63 & 255; $66 = $64 & 2; $67 = $54 >>> $65; $68 = ($52 + 1) | 0; $69 = ($66 << 24) >> 24 == 0; $70 = ($54 + $67) | 0; $$ = $69 ? $52 : $68; $71 = ($src + 8) | 0; $72 = (0 - $70) | 0; $79 = $54; $dsty$014 = $45; $srcp$113 = $$; $y$015 = 0; $y0$016 = 0; $y1$017 = 0; while (1) { $73 = HEAP32[$71 >> 2] | 0; $74 = $y$015 >>> 0 < $73 >>> 0; if ($74) { $srcp$3$ph = $srcp$113; } else { $75 = ($srcp$113 + $72) | 0; $srcp$3$ph = $75; } $76 = HEAP32[$77 >> 2] | 0; $78 = $76 >>> 0 > 3; $80 = ($79 | 0) != 0; if ($78) { $101 = $80; $dsty$13 = $dsty$014; $srcp$32 = $srcp$3$ph; $x$04 = 0; $y0$15 = $y0$016; $y1$16 = $y1$017; while (1) { if ($101) { $81 = HEAP8[$srcp$32 >> 0] | 0; $82 = ($srcp$32 + 2) | 0; $83 = HEAP8[$82 >> 0] | 0; $84 = ($srcp$32 + 4) | 0; $srcp$4 = $84; $y0$2 = $81; $y1$2 = $83; } else { $srcp$4 = $srcp$32; $y0$2 = $y0$15; $y1$2 = $y1$16; } $85 = ($dsty$13 + 1) | 0; HEAP8[$dsty$13 >> 0] = $y0$2; $86 = ($dsty$13 + 2) | 0; HEAP8[$85 >> 0] = $y1$2; $87 = ($x$04 + 2) | 0; $88 = HEAP32[$77 >> 2] | 0; $89 = $88 & -4; $90 = $87 >>> 0 < $89 >>> 0; $91 = HEAP32[$53 >> 2] | 0; $92 = $87 >>> 0 < $91 >>> 0; if ($90) { $101 = $92; $dsty$13 = $86; $srcp$32 = $srcp$4; $x$04 = $87; $y0$15 = $y0$2; $y1$16 = $y1$2; } else { $$lcssa1 = $92; $94 = $91; $dsty$1$lcssa = $86; $srcp$3$lcssa = $srcp$4; $x$0$lcssa = $87; $y0$1$lcssa = $y0$2; $y1$1$lcssa = $y1$2; break; } } } else { $$lcssa1 = $80; $94 = $79; $dsty$1$lcssa = $dsty$014; $srcp$3$lcssa = $srcp$3$ph; $x$0$lcssa = 0; $y0$1$lcssa = $y0$016; $y1$1$lcssa = $y1$017; } if ($$lcssa1) { $93 = ($94 - $x$0$lcssa) | 0; $95 = $93 << 1; $96 = ($srcp$3$lcssa + $95) | 0; $srcp$5 = $96; } else { $srcp$5 = $srcp$3$lcssa; } $97 = ($y$015 + 1) | 0; $98 = HEAP32[$56 >> 2] | 0; $99 = $98 & -4; $100 = $97 >>> 0 < $99 >>> 0; if ($100) { $79 = $94; $dsty$014 = $dsty$1$lcssa; $srcp$113 = $srcp$5; $y$015 = $97; $y0$016 = $y0$1$lcssa; $y1$017 = $y1$1$lcssa; } else { break; } } STACKTOP = sp; return; } function _convert_uv_resample($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$ = 0, $$0$i = 0, $$1 = 0, $$2 = 0, $$2$v$2 = 0, $$3 = 0, $$lcssa4 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $11 = 0; var $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dstp$026 = 0, $dstp$1$lcssa = 0, $dstp$111 = 0, $dstp$2 = 0; var $phitmp = 0, $srcp$020 = 0, $srcp$2$lcssa = 0, $srcp$2$ph = 0, $srcp$25 = 0, $srcp$3 = 0, $srcp$4 = 0, $srcp$5 = 0, $u$024 = 0, $u$1$lcssa = 0, $u$19 = 0, $u$3 = 0, $v$025 = 0, $v$1$lcssa = 0, $v$110 = 0, $v$2 = 0, $v$2$$2 = 0, $v$3 = 0, $x$0$lcssa = 0, $x$06 = 0; var $y$021 = 0, $y0$022 = 0, $y0$1$lcssa = 0, $y0$17 = 0, $y0$3 = 0, $y1$023 = 0, $y1$1$lcssa = 0, $y1$18 = 0, $y1$2 = 0, $y1$3 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i = 0; $43 = $7; $55 = $5; $74 = $3; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $43 = $32; $55 = $25; $74 = $13; } $42 = ($$0$i + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } $48 = ($srcfmt + 8) | 0; $49 = ($48 + 2) | 0; $50 = ($dstfmt + 8) | 0; $51 = ($50 + 2) | 0; $52 = ($src + 4) | 0; $53 = HEAP32[$52 >> 2] | 0; $54 = HEAP32[$55 >> 2] | 0; $56 = $54 >>> 0 > 3; if (!$56) { STACKTOP = sp; return; } $57 = HEAP8[$48 >> 0] | 0; $58 = $57 & 255; $59 = $53 >>> $58; $60 = ($src + 12) | 0; $61 = HEAP8[$51 >> 0] | 0; $62 = HEAP8[$49 >> 0] | 0; $63 = ($53 + $59) | 0; $64 = HEAP32[$60 >> 2] | 0; $65 = $61 ^ $62; $66 = ($src + 8) | 0; $67 = (0 - $63) | 0; $68 = $65 & 1; $69 = ($68 << 24) >> 24 == 0; $76 = $53; $dstp$026 = $45; $srcp$020 = $64; $u$024 = -128; $v$025 = -128; $y$021 = 0; $y0$022 = 0; $y1$023 = 0; while (1) { $70 = HEAP32[$66 >> 2] | 0; $71 = $y$021 >>> 0 < $70 >>> 0; if ($71) { $srcp$2$ph = $srcp$020; } else { $72 = ($srcp$020 + $67) | 0; $srcp$2$ph = $72; } $73 = HEAP32[$74 >> 2] | 0; $75 = $73 >>> 0 > 3; $77 = ($76 | 0) != 0; if ($75) { $108 = $77; $dstp$111 = $dstp$026; $srcp$25 = $srcp$2$ph; $u$19 = $u$024; $v$110 = $v$025; $x$06 = 0; $y0$17 = $y0$022; $y1$18 = $y1$023; while (1) { if ($108) { $78 = HEAP8[$49 >> 0] | 0; $79 = $78 & 2; $80 = ($79 << 24) >> 24 == 0; $81 = ($srcp$25 + 1) | 0; $82 = HEAP8[$srcp$25 >> 0] | 0; $83 = ($srcp$25 + 2) | 0; $84 = HEAP8[$81 >> 0] | 0; $85 = ($srcp$25 + 3) | 0; $$ = $80 ? $82 : $84; $$1 = $80 ? $83 : $85; $$2 = $80 ? $84 : $82; $$3 = $80 ? $85 : $83; $srcp$3 = ($srcp$25 + 4) | 0; $v$2 = HEAP8[$$3 >> 0] | 0; $y1$2 = HEAP8[$$1 >> 0] | 0; $$2$v$2 = $69 ? $$2 : $v$2; $v$2$$2 = $69 ? $v$2 : $$2; $srcp$4 = $srcp$3; $u$3 = $$2$v$2; $v$3 = $v$2$$2; $y0$3 = $$; $y1$3 = $y1$2; } else { $srcp$4 = $srcp$25; $u$3 = $u$19; $v$3 = $v$110; $y0$3 = $y0$17; $y1$3 = $y1$18; } $86 = HEAP8[$51 >> 0] | 0; $87 = $86 & 2; $88 = ($87 << 24) >> 24 == 0; $89 = ($dstp$111 + 1) | 0; if ($88) { HEAP8[$dstp$111 >> 0] = $y0$3; $90 = ($dstp$111 + 2) | 0; HEAP8[$89 >> 0] = $u$3; $91 = ($dstp$111 + 3) | 0; HEAP8[$90 >> 0] = $y1$3; HEAP8[$91 >> 0] = $v$3; } else { HEAP8[$dstp$111 >> 0] = $u$3; $92 = ($dstp$111 + 2) | 0; HEAP8[$89 >> 0] = $y0$3; $93 = ($dstp$111 + 3) | 0; HEAP8[$92 >> 0] = $v$3; HEAP8[$93 >> 0] = $y1$3; } $dstp$2 = ($dstp$111 + 4) | 0; $94 = ($x$06 + 2) | 0; $95 = HEAP32[$74 >> 2] | 0; $96 = $95 & -4; $97 = $94 >>> 0 < $96 >>> 0; $98 = HEAP32[$52 >> 2] | 0; $99 = $94 >>> 0 < $98 >>> 0; if ($97) { $108 = $99; $dstp$111 = $dstp$2; $srcp$25 = $srcp$4; $u$19 = $u$3; $v$110 = $v$3; $x$06 = $94; $y0$17 = $y0$3; $y1$18 = $y1$3; } else { $$lcssa4 = $99; $101 = $98; $dstp$1$lcssa = $dstp$2; $srcp$2$lcssa = $srcp$4; $u$1$lcssa = $u$3; $v$1$lcssa = $v$3; $x$0$lcssa = $94; $y0$1$lcssa = $y0$3; $y1$1$lcssa = $y1$3; break; } } } else { $$lcssa4 = $77; $101 = $76; $dstp$1$lcssa = $dstp$026; $srcp$2$lcssa = $srcp$2$ph; $u$1$lcssa = $u$024; $v$1$lcssa = $v$025; $x$0$lcssa = 0; $y0$1$lcssa = $y0$022; $y1$1$lcssa = $y1$023; } if ($$lcssa4) { $100 = ($101 - $x$0$lcssa) | 0; $102 = $100 << 1; $103 = ($srcp$2$lcssa + $102) | 0; $srcp$5 = $103; } else { $srcp$5 = $srcp$2$lcssa; } $104 = ($y$021 + 1) | 0; $105 = HEAP32[$55 >> 2] | 0; $106 = $105 & -4; $107 = $104 >>> 0 < $106 >>> 0; if ($107) { $76 = $101; $dstp$026 = $dstp$1$lcssa; $srcp$020 = $srcp$5; $u$024 = $u$1$lcssa; $v$025 = $v$1$lcssa; $y$021 = $104; $y0$022 = $y0$1$lcssa; $y1$023 = $y1$1$lcssa; } else { break; } } STACKTOP = sp; return; } function _convert_yuv_to_rgb($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$ = 0, $$0$i = 0, $$lcssa2 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; var $99 = 0, $dstp$013 = 0, $dstp$1$lcssa = 0, $dstp$14 = 0, $p$015 = 0, $p$1$lcssa = 0, $p$16 = 0, $p$2 = 0, $phitmp = 0, $phitmp1 = 0, $srcp$112 = 0, $srcp$3$lcssa = 0, $srcp$3$ph = 0, $srcp$33 = 0, $srcp$4 = 0, $srcp$5 = 0, $x$0$lcssa = 0, $x$05 = 0, $y$014 = 0, $y0$0 = 0; var label = 0, sp = 0; sp = STACKTOP; $0 = ($dst + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($dst + 8) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = Math_imul($3, $1) | 0; $5 = ($dstfmt + 8) | 0; $6 = HEAP8[$5 >> 0] | 0; $7 = $6 & 255; $8 = Math_imul($4, $7) | 0; $9 = ($dst + 16) | 0; HEAP32[$9 >> 2] = $8; $10 = _malloc($8) | 0; $11 = ($dst + 12) | 0; HEAP32[$11 >> 2] = $10; $12 = ($10 | 0) == (0 | 0); if ($12) { STACKTOP = sp; return; } $13 = ($5 + 1) | 0; $14 = HEAP8[$13 >> 0] | 0; $15 = $14 & 255; $16 = $15 >>> 5; $17 = $15 & 31; $18 = ($5 + 2) | 0; $19 = HEAP8[$18 >> 0] | 0; $20 = $19 & 255; $21 = $20 >>> 5; $22 = $20 & 31; $23 = ($5 + 3) | 0; $24 = HEAP8[$23 >> 0] | 0; $25 = $24 & 255; $26 = $25 >>> 5; $27 = $25 & 31; $28 = ($src + 16) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($src + 4) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($src + 8) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = Math_imul($33, $31) | 0; $35 = ($srcfmt + 4) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) == 0; if ($37) { $$0$i = 0; } else { $38 = ($srcfmt + 8) | 0; $39 = HEAP8[$38 >> 0] | 0; $40 = $39 & 255; $41 = $31 >>> $40; $42 = ($38 + 1) | 0; $43 = HEAP8[$42 >> 0] | 0; $44 = $43 & 255; $45 = $33 >>> $44; $46 = $41 << 1; $phitmp1 = Math_imul($46, $45) | 0; $$0$i = $phitmp1; } $47 = ($$0$i + $34) | 0; $48 = $29 >>> 0 < $47 >>> 0; if ($48) { ___assert_fail(5552 | 0, 5464 | 0, 707, 5624 | 0); // unreachable; } $49 = ($src + 12) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = ($srcfmt + 8) | 0; $52 = HEAP8[$51 >> 0] | 0; $53 = ($52 << 24) >> 24 == 1; if (!$53) { ___assert_fail(5648 | 0, 5464 | 0, 712, 5624 | 0); // unreachable; } $54 = $3 >>> 0 > 3; if (!$54) { STACKTOP = sp; return; } $55 = ($51 + 2) | 0; $56 = HEAP8[$55 >> 0] | 0; $57 = $56 & 2; $58 = $31 >>> 1; $59 = ($57 << 24) >> 24 == 0; $60 = ($50 + 1) | 0; $61 = ($31 + $58) | 0; $$ = $59 ? $50 : $60; $62 = (0 - $61) | 0; $64 = $33; $66 = $1; $68 = $31; $dstp$013 = $10; $p$015 = 0; $srcp$112 = $$; $y$014 = 0; while (1) { $63 = $y$014 >>> 0 < $64 >>> 0; if ($63) { $srcp$3$ph = $srcp$112; } else { $65 = ($srcp$112 + $62) | 0; $srcp$3$ph = $65; } $67 = $66 >>> 0 > 3; $69 = ($68 | 0) != 0; if ($67) { $115 = $69; $dstp$14 = $dstp$013; $p$16 = $p$015; $srcp$33 = $srcp$3$ph; $x$05 = 0; while (1) { if ($115) { $70 = HEAP8[$srcp$33 >> 0] | 0; $71 = ($srcp$33 + 2) | 0; $72 = $70 & 255; $73 = ($70 & 255) < 17; if ($73) { $y0$0 = 0; } else { $74 = ($70 & 255) > 234; if ($74) { $y0$0 = 255; } else { $75 = ($72 + 65520) | 0; $76 = $75 & 65535; $77 = ($76 * 255) | 0; $78 = (($77 >>> 0) / 219) & -1; $phitmp = $78 & 255; $y0$0 = $phitmp; } } $79 = $y0$0 >>> $16; $80 = $79 << $17; $81 = $y0$0 >>> $21; $82 = $81 << $22; $83 = $80 | $82; $84 = $y0$0 >>> $26; $85 = $84 << $27; $86 = $83 | $85; $p$2 = $86; $srcp$4 = $71; } else { $p$2 = $p$16; $srcp$4 = $srcp$33; } $87 = HEAP8[$5 >> 0] | 0; $88 = $87 & 255; if (($88 | 0) == 3) { $89 = $p$2 & 255; HEAP8[$dstp$14 >> 0] = $89; $90 = $p$2 >>> 8; $91 = $90 & 255; $92 = ($dstp$14 + 1) | 0; HEAP8[$92 >> 0] = $91; $93 = $p$2 >>> 16; $94 = $93 & 255; $95 = ($dstp$14 + 2) | 0; HEAP8[$95 >> 0] = $94; } else if (($88 | 0) == 4) { HEAP32[$dstp$14 >> 2] = $p$2; } else if (($88 | 0) == 2) { $96 = $p$2 & 65535; HEAP16[$dstp$14 >> 1] = $96; } else { $97 = $p$2 & 255; HEAP8[$dstp$14 >> 0] = $97; } $98 = HEAP8[$5 >> 0] | 0; $99 = $98 & 255; $100 = ($dstp$14 + $99) | 0; $101 = ($x$05 + 1) | 0; $102 = HEAP32[$0 >> 2] | 0; $103 = $102 & -4; $104 = $101 >>> 0 < $103 >>> 0; $105 = HEAP32[$30 >> 2] | 0; $106 = $101 >>> 0 < $105 >>> 0; if ($104) { $115 = $106; $dstp$14 = $100; $p$16 = $p$2; $srcp$33 = $srcp$4; $x$05 = $101; } else { $$lcssa2 = $106; $108 = $105; $116 = $102; $dstp$1$lcssa = $100; $p$1$lcssa = $p$2; $srcp$3$lcssa = $srcp$4; $x$0$lcssa = $101; break; } } } else { $$lcssa2 = $69; $108 = $68; $116 = $66; $dstp$1$lcssa = $dstp$013; $p$1$lcssa = $p$015; $srcp$3$lcssa = $srcp$3$ph; $x$0$lcssa = 0; } if ($$lcssa2) { $107 = ($108 - $x$0$lcssa) | 0; $109 = $107 << 1; $110 = ($srcp$3$lcssa + $109) | 0; $srcp$5 = $110; } else { $srcp$5 = $srcp$3$lcssa; } $111 = ($y$014 + 1) | 0; $112 = HEAP32[$2 >> 2] | 0; $113 = $112 & -4; $114 = $111 >>> 0 < $113 >>> 0; if (!$114) { break; } $$pre = HEAP32[$32 >> 2] | 0; $64 = $$pre; $66 = $116; $68 = $108; $dstp$013 = $dstp$1$lcssa; $p$015 = $p$1$lcssa; $srcp$112 = $srcp$5; $y$014 = $111; } STACKTOP = sp; return; } function _convert_rgb_to_yuvp($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$0$i = 0, $$lcssa5 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dsty$018 = 0, $dsty$1$lcssa = 0, $dsty$19 = 0, $extract$t = 0, $p$0$i = 0, $phitmp = 0, $srcp$017 = 0, $srcp$2$lcssa = 0, $srcp$2$ph = 0, $srcp$28 = 0, $srcp$3 = 0; var $srcp$4 = 0, $x$0$lcssa = 0, $x$07 = 0, $y$016 = 0, $y0$0$off015 = 0, $y0$1$off0$lcssa = 0, $y0$1$off06 = 0, $y0$2$off0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i = 0; $43 = $7; $78 = $5; $88 = $3; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $43 = $32; $78 = $25; $88 = $13; } $42 = ($$0$i + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } $48 = ($$0$i | 0) == 0; if (!$48) { $49 = ($45 + $43) | 0; _memset($49 | 0, -128, $$0$i | 0) | 0; } $50 = ($src + 16) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = ($src + 4) | 0; $53 = HEAP32[$52 >> 2] | 0; $54 = ($src + 8) | 0; $55 = HEAP32[$54 >> 2] | 0; $56 = Math_imul($55, $53) | 0; $57 = ($srcfmt + 8) | 0; $58 = HEAP8[$57 >> 0] | 0; $59 = $58 & 255; $60 = Math_imul($56, $59) | 0; $61 = $51 >>> 0 < $60 >>> 0; if ($61) { ___assert_fail(5400 | 0, 5464 | 0, 646, 5528 | 0); // unreachable; } $62 = ($57 + 1) | 0; $63 = HEAP8[$62 >> 0] | 0; $64 = $63 & 255; $65 = $64 >>> 5; $66 = $64 & 31; $67 = ($57 + 2) | 0; $68 = HEAP8[$67 >> 0] | 0; $69 = $68 & 255; $70 = $69 >>> 5; $71 = $69 & 31; $72 = ($57 + 3) | 0; $73 = HEAP8[$72 >> 0] | 0; $74 = $73 & 255; $75 = $74 >>> 5; $76 = $74 & 31; $77 = HEAP32[$78 >> 2] | 0; $79 = $77 >>> 0 > 3; if (!$79) { STACKTOP = sp; return; } $80 = ($src + 12) | 0; $81 = HEAP32[$80 >> 2] | 0; $82 = (0 - $53) | 0; $83 = Math_imul($59, $82) | 0; $85 = $55; $90 = $53; $dsty$018 = $45; $srcp$017 = $81; $y$016 = 0; $y0$0$off015 = 0; while (1) { $84 = $y$016 >>> 0 < $85 >>> 0; if ($84) { $srcp$2$ph = $srcp$017; } else { $86 = ($srcp$017 + $83) | 0; $srcp$2$ph = $86; } $87 = HEAP32[$88 >> 2] | 0; $89 = $87 >>> 0 > 3; $91 = ($90 | 0) != 0; if ($89) { $145 = $91; $dsty$19 = $dsty$018; $srcp$28 = $srcp$2$ph; $x$07 = 0; $y0$1$off06 = $y0$0$off015; while (1) { if ($145) { $92 = HEAP8[$57 >> 0] | 0; $93 = $92 & 255; if (($93 | 0) == 3) { $94 = HEAP8[$srcp$28 >> 0] | 0; $95 = $94 & 255; $96 = ($srcp$28 + 1) | 0; $97 = HEAP8[$96 >> 0] | 0; $98 = $97 & 255; $99 = $98 << 8; $100 = $99 | $95; $101 = ($srcp$28 + 2) | 0; $102 = HEAP8[$101 >> 0] | 0; $103 = $102 & 255; $104 = $103 << 16; $105 = $100 | $104; $p$0$i = $105; } else if (($93 | 0) == 2) { $107 = HEAP16[$srcp$28 >> 1] | 0; $108 = $107 & 65535; $p$0$i = $108; } else if (($93 | 0) == 4) { $106 = HEAP32[$srcp$28 >> 2] | 0; $p$0$i = $106; } else { $109 = HEAP8[$srcp$28 >> 0] | 0; $110 = $109 & 255; $p$0$i = $110; } $111 = ($srcp$28 + $93) | 0; $112 = $p$0$i >>> $66; $113 = $112 << $65; $114 = $p$0$i >>> $71; $115 = $114 << $70; $116 = $p$0$i >>> $76; $117 = $116 << $75; $118 = $113 & 255; $119 = ($118 * 77) | 0; $120 = $115 & 255; $121 = ($120 * 150) | 0; $122 = $117 & 255; $123 = ($122 * 29) | 0; $124 = ($121 + 128) | 0; $125 = ($124 + $119) | 0; $126 = ($125 + $123) | 0; $127 = $126 >>> 8; $extract$t = $127 & 255; $srcp$3 = $111; $y0$2$off0 = $extract$t; } else { $srcp$3 = $srcp$28; $y0$2$off0 = $y0$1$off06; } $128 = ($dsty$19 + 1) | 0; HEAP8[$dsty$19 >> 0] = $y0$2$off0; $129 = ($x$07 + 1) | 0; $130 = HEAP32[$88 >> 2] | 0; $131 = $130 & -4; $132 = $129 >>> 0 < $131 >>> 0; $133 = HEAP32[$52 >> 2] | 0; $134 = $129 >>> 0 < $133 >>> 0; if ($132) { $145 = $134; $dsty$19 = $128; $srcp$28 = $srcp$3; $x$07 = $129; $y0$1$off06 = $y0$2$off0; } else { $$lcssa5 = $134; $136 = $133; $dsty$1$lcssa = $128; $srcp$2$lcssa = $srcp$3; $x$0$lcssa = $129; $y0$1$off0$lcssa = $y0$2$off0; break; } } } else { $$lcssa5 = $91; $136 = $90; $dsty$1$lcssa = $dsty$018; $srcp$2$lcssa = $srcp$2$ph; $x$0$lcssa = 0; $y0$1$off0$lcssa = $y0$0$off015; } if ($$lcssa5) { $135 = ($136 - $x$0$lcssa) | 0; $137 = HEAP8[$57 >> 0] | 0; $138 = $137 & 255; $139 = Math_imul($138, $135) | 0; $140 = ($srcp$2$lcssa + $139) | 0; $srcp$4 = $140; } else { $srcp$4 = $srcp$2$lcssa; } $141 = ($y$016 + 1) | 0; $142 = HEAP32[$78 >> 2] | 0; $143 = $142 & -4; $144 = $141 >>> 0 < $143 >>> 0; if (!$144) { break; } $$pre = HEAP32[$54 >> 2] | 0; $85 = $$pre; $90 = $136; $dsty$018 = $dsty$1$lcssa; $srcp$017 = $srcp$4; $y$016 = $141; $y0$0$off015 = $y0$1$off0$lcssa; } STACKTOP = sp; return; } function _convert_rgb_to_yuv($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$0$i = 0, $$lcssa6 = 0, $$pre = 0, $$y0$2$off0 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0; var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dstp$019 = 0, $dstp$1$lcssa = 0, $dstp$110 = 0, $dstp$2 = 0, $extract$t = 0, $p$0$i = 0, $phitmp = 0; var $srcp$018 = 0, $srcp$2$lcssa = 0, $srcp$2$ph = 0, $srcp$29 = 0, $srcp$3 = 0, $srcp$4 = 0, $x$0$lcssa = 0, $x$08 = 0, $y$017 = 0, $y0$0$off016 = 0, $y0$1$off0$lcssa = 0, $y0$1$off07 = 0, $y0$2$off0 = 0, $y0$2$off0$ = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dstfmt + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $3 = ($dst + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = Math_imul($6, $4) | 0; $$0$i = 0; $43 = $7; $79 = $5; $91 = $3; } else { $8 = ($dstfmt + 8) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = $9 & 255; $11 = 1 << $10; $12 = ($11 + -1) | 0; $13 = ($dst + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $12 & $14; $16 = ($15 | 0) == 0; if ($16) { $33 = $14; } else { $17 = ($12 + $14) | 0; $18 = (0 - $11) | 0; $19 = $17 & $18; HEAP32[$13 >> 2] = $19; $33 = $19; } $20 = ($8 + 1) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = $21 & 255; $23 = 1 << $22; $24 = ($23 + -1) | 0; $25 = ($dst + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $24 & $26; $28 = ($27 | 0) == 0; if ($28) { $34 = $26; } else { $29 = ($24 + $26) | 0; $30 = (0 - $23) | 0; $31 = $29 & $30; HEAP32[$25 >> 2] = $31; $34 = $31; } $32 = Math_imul($34, $33) | 0; $35 = HEAP8[$8 >> 0] | 0; $36 = $35 & 255; $37 = $33 >>> $36; $38 = HEAP8[$20 >> 0] | 0; $39 = $38 & 255; $40 = $34 >>> $39; $41 = $37 << 1; $phitmp = Math_imul($41, $40) | 0; $$0$i = $phitmp; $43 = $32; $79 = $25; $91 = $13; } $42 = ($$0$i + $43) | 0; $44 = ($dst + 16) | 0; HEAP32[$44 >> 2] = $42; $45 = _malloc($42) | 0; $46 = ($dst + 12) | 0; HEAP32[$46 >> 2] = $45; $47 = ($45 | 0) == (0 | 0); if ($47) { STACKTOP = sp; return; } $48 = ($dstfmt + 8) | 0; $49 = ($48 + 2) | 0; $50 = HEAP8[$49 >> 0] | 0; $51 = ($src + 16) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($src + 4) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($src + 8) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = Math_imul($56, $54) | 0; $58 = ($srcfmt + 8) | 0; $59 = HEAP8[$58 >> 0] | 0; $60 = $59 & 255; $61 = Math_imul($57, $60) | 0; $62 = $52 >>> 0 < $61 >>> 0; if ($62) { ___assert_fail(5400 | 0, 5464 | 0, 762, 5504 | 0); // unreachable; } $63 = ($58 + 1) | 0; $64 = HEAP8[$63 >> 0] | 0; $65 = $64 & 255; $66 = $65 >>> 5; $67 = $65 & 31; $68 = ($58 + 2) | 0; $69 = HEAP8[$68 >> 0] | 0; $70 = $69 & 255; $71 = $70 >>> 5; $72 = $70 & 31; $73 = ($58 + 3) | 0; $74 = HEAP8[$73 >> 0] | 0; $75 = $74 & 255; $76 = $75 >>> 5; $77 = $75 & 31; $78 = HEAP32[$79 >> 2] | 0; $80 = $78 >>> 0 > 3; if (!$80) { STACKTOP = sp; return; } $81 = ($src + 12) | 0; $82 = HEAP32[$81 >> 2] | 0; $83 = (0 - $54) | 0; $84 = Math_imul($60, $83) | 0; $85 = $50 & 2; $86 = ($85 << 24) >> 24 == 0; $88 = $56; $93 = $54; $dstp$019 = $45; $srcp$018 = $82; $y$017 = 0; $y0$0$off016 = 0; while (1) { $87 = $y$017 >>> 0 < $88 >>> 0; if ($87) { $srcp$2$ph = $srcp$018; } else { $89 = ($srcp$018 + $84) | 0; $srcp$2$ph = $89; } $90 = HEAP32[$91 >> 2] | 0; $92 = $90 >>> 0 > 3; $94 = ($93 | 0) != 0; if ($92) { $148 = $94; $dstp$110 = $dstp$019; $srcp$29 = $srcp$2$ph; $x$08 = 0; $y0$1$off07 = $y0$0$off016; while (1) { if ($148) { $95 = HEAP8[$58 >> 0] | 0; $96 = $95 & 255; if (($96 | 0) == 2) { $110 = HEAP16[$srcp$29 >> 1] | 0; $111 = $110 & 65535; $p$0$i = $111; } else if (($96 | 0) == 4) { $109 = HEAP32[$srcp$29 >> 2] | 0; $p$0$i = $109; } else if (($96 | 0) == 3) { $97 = HEAP8[$srcp$29 >> 0] | 0; $98 = $97 & 255; $99 = ($srcp$29 + 1) | 0; $100 = HEAP8[$99 >> 0] | 0; $101 = $100 & 255; $102 = $101 << 8; $103 = $102 | $98; $104 = ($srcp$29 + 2) | 0; $105 = HEAP8[$104 >> 0] | 0; $106 = $105 & 255; $107 = $106 << 16; $108 = $103 | $107; $p$0$i = $108; } else { $112 = HEAP8[$srcp$29 >> 0] | 0; $113 = $112 & 255; $p$0$i = $113; } $114 = ($srcp$29 + $96) | 0; $115 = $p$0$i >>> $67; $116 = $115 << $66; $117 = $p$0$i >>> $72; $118 = $117 << $71; $119 = $p$0$i >>> $77; $120 = $119 << $76; $121 = $116 & 255; $122 = ($121 * 77) | 0; $123 = $118 & 255; $124 = ($123 * 150) | 0; $125 = $120 & 255; $126 = ($125 * 29) | 0; $127 = ($124 + 128) | 0; $128 = ($127 + $122) | 0; $129 = ($128 + $126) | 0; $130 = $129 >>> 8; $extract$t = $130 & 255; $srcp$3 = $114; $y0$2$off0 = $extract$t; } else { $srcp$3 = $srcp$29; $y0$2$off0 = $y0$1$off07; } $131 = ($dstp$110 + 1) | 0; $y0$2$off0$ = $86 ? $y0$2$off0 : -128; $$y0$2$off0 = $86 ? -128 : $y0$2$off0; HEAP8[$dstp$110 >> 0] = $y0$2$off0$; HEAP8[$131 >> 0] = $$y0$2$off0; $dstp$2 = ($dstp$110 + 2) | 0; $132 = ($x$08 + 1) | 0; $133 = HEAP32[$91 >> 2] | 0; $134 = $133 & -4; $135 = $132 >>> 0 < $134 >>> 0; $136 = HEAP32[$53 >> 2] | 0; $137 = $132 >>> 0 < $136 >>> 0; if ($135) { $148 = $137; $dstp$110 = $dstp$2; $srcp$29 = $srcp$3; $x$08 = $132; $y0$1$off07 = $y0$2$off0; } else { $$lcssa6 = $137; $139 = $136; $dstp$1$lcssa = $dstp$2; $srcp$2$lcssa = $srcp$3; $x$0$lcssa = $132; $y0$1$off0$lcssa = $y0$2$off0; break; } } } else { $$lcssa6 = $94; $139 = $93; $dstp$1$lcssa = $dstp$019; $srcp$2$lcssa = $srcp$2$ph; $x$0$lcssa = 0; $y0$1$off0$lcssa = $y0$0$off016; } if ($$lcssa6) { $138 = ($139 - $x$0$lcssa) | 0; $140 = HEAP8[$58 >> 0] | 0; $141 = $140 & 255; $142 = Math_imul($141, $138) | 0; $143 = ($srcp$2$lcssa + $142) | 0; $srcp$4 = $143; } else { $srcp$4 = $srcp$2$lcssa; } $144 = ($y$017 + 1) | 0; $145 = HEAP32[$79 >> 2] | 0; $146 = $145 & -4; $147 = $144 >>> 0 < $146 >>> 0; if (!$147) { break; } $$pre = HEAP32[$55 >> 2] | 0; $88 = $$pre; $93 = $139; $dstp$019 = $dstp$1$lcssa; $srcp$018 = $srcp$4; $y$017 = $144; $y0$0$off016 = $y0$1$off0$lcssa; } STACKTOP = sp; return; } function _convert_rgb_resample($dst, $dstfmt, $src, $srcfmt) { $dst = $dst | 0; $dstfmt = $dstfmt | 0; $src = $src | 0; $srcfmt = $srcfmt | 0; var $$lcssa1 = 0, $$neg = 0, $$op = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $dstp$014 = 0, $dstp$1$lcssa = 0; var $dstp$15 = 0, $p$0$i = 0, $p$012 = 0, $p$1$lcssa = 0, $p$12 = 0, $p$2 = 0, $srcp$013 = 0, $srcp$1$lcssa = 0, $srcp$14 = 0, $srcp$2 = 0, $srcp$3 = 0, $x$0$lcssa = 0, $x$03 = 0, $y$0$ = 0, $y$011 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dst + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($dst + 8) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = Math_imul($3, $1) | 0; $5 = ($dstfmt + 8) | 0; $6 = HEAP8[$5 >> 0] | 0; $7 = $6 & 255; $8 = Math_imul($4, $7) | 0; $9 = ($dst + 16) | 0; HEAP32[$9 >> 2] = $8; $10 = _malloc($8) | 0; $11 = ($dst + 12) | 0; HEAP32[$11 >> 2] = $10; $12 = ($10 | 0) == (0 | 0); if ($12) { STACKTOP = sp; return; } $13 = ($5 + 1) | 0; $14 = HEAP8[$13 >> 0] | 0; $15 = $14 & 255; $16 = $15 >>> 5; $17 = $15 & 31; $18 = ($5 + 2) | 0; $19 = HEAP8[$18 >> 0] | 0; $20 = $19 & 255; $21 = $20 >>> 5; $22 = $20 & 31; $23 = ($5 + 3) | 0; $24 = HEAP8[$23 >> 0] | 0; $25 = $24 & 255; $26 = $25 >>> 5; $27 = $25 & 31; $28 = ($src + 16) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($src + 4) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($src + 8) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = Math_imul($33, $31) | 0; $35 = ($srcfmt + 8) | 0; $36 = HEAP8[$35 >> 0] | 0; $37 = $36 & 255; $38 = Math_imul($34, $37) | 0; $39 = $29 >>> 0 < $38 >>> 0; if ($39) { ___assert_fail(5400 | 0, 5464 | 0, 828, 5480 | 0); // unreachable; } $40 = ($35 + 1) | 0; $41 = HEAP8[$40 >> 0] | 0; $42 = $41 & 255; $43 = $42 >>> 5; $44 = $42 & 31; $45 = ($35 + 2) | 0; $46 = HEAP8[$45 >> 0] | 0; $47 = $46 & 255; $48 = $47 >>> 5; $49 = $47 & 31; $50 = ($35 + 3) | 0; $51 = HEAP8[$50 >> 0] | 0; $52 = $51 & 255; $53 = $52 >>> 5; $54 = $52 & 31; $55 = Math_imul($37, $31) | 0; $56 = $3 >>> 0 > 3; if (!$56) { STACKTOP = sp; return; } $57 = ($src + 12) | 0; $58 = HEAP32[$57 >> 2] | 0; $60 = $33; $61 = $1; $63 = $31; $dstp$014 = $10; $p$012 = 0; $srcp$013 = $58; $y$011 = 0; while (1) { $59 = $y$011 >>> 0 < $60 >>> 0; $$op = (0 - $55) | 0; $$neg = $59 ? 0 : $$op; $62 = $61 >>> 0 > 3; $64 = ($63 | 0) != 0; if ($62) { $132 = $64; $dstp$15 = $dstp$014; $p$12 = $p$012; $srcp$14 = $srcp$013; $x$03 = 0; while (1) { if ($132) { $65 = HEAP8[$35 >> 0] | 0; $66 = $65 & 255; if (($66 | 0) == 3) { $67 = HEAP8[$srcp$14 >> 0] | 0; $68 = $67 & 255; $69 = ($srcp$14 + 1) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = $70 & 255; $72 = $71 << 8; $73 = $72 | $68; $74 = ($srcp$14 + 2) | 0; $75 = HEAP8[$74 >> 0] | 0; $76 = $75 & 255; $77 = $76 << 16; $78 = $73 | $77; $p$0$i = $78; } else if (($66 | 0) == 4) { $79 = HEAP32[$srcp$14 >> 2] | 0; $p$0$i = $79; } else if (($66 | 0) == 2) { $80 = HEAP16[$srcp$14 >> 1] | 0; $81 = $80 & 65535; $p$0$i = $81; } else { $82 = HEAP8[$srcp$14 >> 0] | 0; $83 = $82 & 255; $p$0$i = $83; } $84 = ($srcp$14 + $66) | 0; $85 = $p$0$i >>> $44; $86 = $85 << $43; $87 = $p$0$i >>> $49; $88 = $87 << $48; $89 = $p$0$i >>> $54; $90 = $89 << $53; $91 = $86 & 255; $92 = $91 >>> $16; $93 = $92 << $17; $94 = $88 & 255; $95 = $94 >>> $21; $96 = $95 << $22; $97 = $93 | $96; $98 = $90 & 255; $99 = $98 >>> $26; $100 = $99 << $27; $101 = $97 | $100; $p$2 = $101; $srcp$2 = $84; } else { $p$2 = $p$12; $srcp$2 = $srcp$14; } $102 = HEAP8[$5 >> 0] | 0; $103 = $102 & 255; if (($103 | 0) == 2) { $111 = $p$2 & 65535; HEAP16[$dstp$15 >> 1] = $111; } else if (($103 | 0) == 4) { HEAP32[$dstp$15 >> 2] = $p$2; } else if (($103 | 0) == 3) { $104 = $p$2 & 255; HEAP8[$dstp$15 >> 0] = $104; $105 = $p$2 >>> 8; $106 = $105 & 255; $107 = ($dstp$15 + 1) | 0; HEAP8[$107 >> 0] = $106; $108 = $p$2 >>> 16; $109 = $108 & 255; $110 = ($dstp$15 + 2) | 0; HEAP8[$110 >> 0] = $109; } else { $112 = $p$2 & 255; HEAP8[$dstp$15 >> 0] = $112; } $113 = HEAP8[$5 >> 0] | 0; $114 = $113 & 255; $115 = ($dstp$15 + $114) | 0; $116 = ($x$03 + 1) | 0; $117 = HEAP32[$0 >> 2] | 0; $118 = $117 & -4; $119 = $116 >>> 0 < $118 >>> 0; $120 = HEAP32[$30 >> 2] | 0; $121 = $116 >>> 0 < $120 >>> 0; if ($119) { $132 = $121; $dstp$15 = $115; $p$12 = $p$2; $srcp$14 = $srcp$2; $x$03 = $116; } else { $$lcssa1 = $121; $123 = $120; $133 = $117; $dstp$1$lcssa = $115; $p$1$lcssa = $p$2; $srcp$1$lcssa = $srcp$2; $x$0$lcssa = $116; break; } } } else { $$lcssa1 = $64; $123 = $63; $133 = $61; $dstp$1$lcssa = $dstp$014; $p$1$lcssa = $p$012; $srcp$1$lcssa = $srcp$013; $x$0$lcssa = 0; } if ($$lcssa1) { $122 = ($123 - $x$0$lcssa) | 0; $124 = HEAP8[$35 >> 0] | 0; $125 = $124 & 255; $126 = Math_imul($125, $122) | 0; $127 = ($srcp$1$lcssa + $126) | 0; $srcp$3 = $127; } else { $srcp$3 = $srcp$1$lcssa; } $y$0$ = ($y$011 + 1) | 0; $128 = ($y$0$ + $$neg) | 0; $129 = HEAP32[$2 >> 2] | 0; $130 = $129 & -4; $131 = $128 >>> 0 < $130 >>> 0; if (!$131) { break; } $$pre = HEAP32[$32 >> 2] | 0; $60 = $$pre; $61 = $133; $63 = $123; $dstp$014 = $dstp$1$lcssa; $p$012 = $p$1$lcssa; $srcp$013 = $srcp$3; $y$011 = $128; } STACKTOP = sp; return; } function _convert_y_resize($dst, $src, $n) { $dst = $dst | 0; $src = $src | 0; $n = $n | 0; var $$ = 0, $$4 = 0, $$pre = 0, $$pre$pre = 0, $$pre17 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $$sum3 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond16 = 0, $or$cond = 0, $pdst$0$lcssa = 0, $pdst$07 = 0, $pdst$07$us = 0; var $pdst$25 = 0, $pdst$25$us = 0, $psrc$0$lcssa = 0, $psrc$08 = 0, $psrc$08$us = 0, $scevgep = 0, $split11 = 0, $split12 = 0, $umax = 0, $y$0$lcssa = 0, $y$09 = 0, $y$09$us = 0, $y$16 = 0, $y$16$us = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dst + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($src + 4) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($1 | 0) == ($3 | 0); $5 = ($dst + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($src + 8) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($6 | 0) == ($8 | 0); $or$cond = $4 & $9; if ($or$cond) { $10 = ($dst + 12) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($src + 12) | 0; $13 = HEAP32[$12 >> 2] | 0; _memcpy($11 | 0, $13 | 0, $n | 0) | 0; STACKTOP = sp; return; } $14 = ($src + 12) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = ($dst + 12) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = $1 >>> 0 > $3 >>> 0; $$ = $18 ? $3 : $1; $19 = ($1 - $3) | 0; $20 = $18 ? $19 : 0; $21 = ($dst + 8) | 0; $22 = $6 >>> 0 > $8 >>> 0; $$4 = $22 ? $8 : $6; $23 = $$4 & -4; $24 = ($23 | 0) == 0; if ($24) { $46 = $3; $49 = $6; $pdst$0$lcssa = $17; $psrc$0$lcssa = $15; $y$0$lcssa = 0; } else { $25 = ($20 | 0) == 0; $$sum3 = ($$ + $20) | 0; if ($25) { $26 = ($23 + -1) | 0; $27 = $3 ^ -1; $28 = $1 ^ -1; $29 = $27 >>> 0 > $28 >>> 0; $umax = $29 ? $27 : $28; $30 = $umax ^ -1; $31 = Math_imul($26, $30) | 0; $32 = ($31 + -1) | 0; $33 = ($32 - $umax) | 0; $pdst$07$us = $17; $psrc$08$us = $15; $y$09$us = 0; while (1) { _memcpy($pdst$07$us | 0, $psrc$08$us | 0, $$ | 0) | 0; $34 = ($pdst$07$us + $$) | 0; $35 = HEAP32[$2 >> 2] | 0; $36 = ($psrc$08$us + $35) | 0; $37 = ($y$09$us + 1) | 0; $exitcond16 = ($37 | 0) == ($23 | 0); if ($exitcond16) { break; } else { $pdst$07$us = $34; $psrc$08$us = $36; $y$09$us = $37; } } $scevgep = ($17 + $33) | 0; $$pre = $35; $split11 = $36; $split12 = $scevgep; } else { $pdst$07 = $17; $psrc$08 = $15; $y$09 = 0; while (1) { _memcpy($pdst$07 | 0, $psrc$08 | 0, $$ | 0) | 0; $38 = ($pdst$07 + $$) | 0; $39 = HEAP32[$2 >> 2] | 0; $40 = ($psrc$08 + $39) | 0; $$sum2 = ($39 + -1) | 0; $41 = ($psrc$08 + $$sum2) | 0; $42 = HEAP8[$41 >> 0] | 0; _memset($38 | 0, $42 | 0, $20 | 0) | 0; $43 = ($pdst$07 + $$sum3) | 0; $44 = ($y$09 + 1) | 0; $exitcond = ($44 | 0) == ($23 | 0); if ($exitcond) { break; } else { $pdst$07 = $43; $psrc$08 = $40; $y$09 = $44; } } $$pre$pre = HEAP32[$2 >> 2] | 0; $$pre = $$pre$pre; $split11 = $40; $split12 = $43; } $$pre17 = HEAP32[$21 >> 2] | 0; $46 = $$pre; $49 = $$pre17; $pdst$0$lcssa = $split12; $psrc$0$lcssa = $split11; $y$0$lcssa = $23; } $45 = (0 - $46) | 0; $47 = ($psrc$0$lcssa + $45) | 0; $48 = $49 & -4; $50 = $y$0$lcssa >>> 0 < $48 >>> 0; if (!$50) { STACKTOP = sp; return; } $51 = ($20 | 0) == 0; $$sum = $46 ^ -1; $52 = ($psrc$0$lcssa + $$sum) | 0; $$sum1 = ($$ + $20) | 0; if ($51) { $pdst$25$us = $pdst$0$lcssa; $y$16$us = $y$0$lcssa; while (1) { _memcpy($pdst$25$us | 0, $47 | 0, $$ | 0) | 0; $53 = ($pdst$25$us + $$) | 0; $54 = ($y$16$us + 1) | 0; $55 = HEAP32[$21 >> 2] | 0; $56 = $55 & -4; $57 = $54 >>> 0 < $56 >>> 0; if ($57) { $pdst$25$us = $53; $y$16$us = $54; } else { break; } } STACKTOP = sp; return; } else { $pdst$25 = $pdst$0$lcssa; $y$16 = $y$0$lcssa; while (1) { _memcpy($pdst$25 | 0, $47 | 0, $$ | 0) | 0; $58 = ($pdst$25 + $$) | 0; $59 = HEAP8[$52 >> 0] | 0; _memset($58 | 0, $59 | 0, $20 | 0) | 0; $60 = ($pdst$25 + $$sum1) | 0; $61 = ($y$16 + 1) | 0; $62 = HEAP32[$21 >> 2] | 0; $63 = $62 & -4; $64 = $61 >>> 0 < $63 >>> 0; if ($64) { $pdst$25 = $60; $y$16 = $61; } else { break; } } STACKTOP = sp; return; } } function _cleanup_ref($img) { $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($img + 56) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if ($2) { STACKTOP = sp; return; } $3 = ($1 + 44) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 + -1) | 0; HEAP32[$3 >> 2] = $5; $6 = ($4 | 0) > 0; if (!$6) { ___assert_fail(5904 | 0, 5912 | 0, 87, 5928 | 0); // unreachable; } $7 = ($5 | 0) == 0; if (!$7) { STACKTOP = sp; return; } $8 = ($1 + 40) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 | 0) == (0 | 0); if (!$10) { FUNCTION_TABLE_vi[$9 & 7]($1); } $11 = ($1 + 48) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 | 0) == (0 | 0); if (!$13) { STACKTOP = sp; return; } __zbar_image_free($1); STACKTOP = sp; return; } function __zbar_image_scanner_recycle_syms($iscn, $sym) { $iscn = $iscn | 0; $sym = $sym | 0; var $$03 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0$lcssa = 0, $i$02 = 0, $i$1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($sym | 0) == (0 | 0); if ($0) { STACKTOP = sp; return; } else { $$03 = $sym; } while (1) { $1 = ($$03 + 44) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($$03 + 40) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == 0; if ($5) { label = 10; } else { $6 = ($4 + -1) | 0; HEAP32[$3 >> 2] = $6; $7 = ($4 | 0) > 0; if (!$7) { label = 4; break; } $8 = ($6 | 0) == 0; if ($8) { label = 10; } else { $9 = ($$03 + 12) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 | 0) == 0; if ($11) { label = 7; break; } HEAP32[$1 >> 2] = 0; } } if ((label | 0) == 10) { label = 0; $13 = ($$03 + 12) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($14 | 0) == 0; if ($15) { $16 = ($$03 + 20) | 0; HEAP32[$16 >> 2] = 0; $17 = ($$03 + 16) | 0; HEAP32[$17 >> 2] = 0; } $18 = ($$03 + 48) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($19 | 0) == (0 | 0); if ($20) { $34 = $14; } else { $21 = HEAP32[$19 >> 2] | 0; $22 = ($21 + -1) | 0; HEAP32[$19 >> 2] = $22; $23 = ($21 | 0) > 0; if (!$23) { label = 14; break; } $24 = ($22 | 0) == 0; if (!$24) { label = 16; break; } $25 = ($19 + 8) | 0; $26 = HEAP32[$25 >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $26); $27 = HEAP32[$18 >> 2] | 0; $28 = ($27 + 8) | 0; HEAP32[$28 >> 2] = 0; $29 = HEAP32[$18 >> 2] | 0; __zbar_symbol_set_free($29); HEAP32[$18 >> 2] = 0; $$pre = HEAP32[$13 >> 2] | 0; $34 = $$pre; } $i$02 = 0; while (1) { $32 = $i$02 << 1; $33 = 1 << $32; $35 = $34 >>> 0 < $33 >>> 0; $30 = ($i$02 + 1) | 0; if ($35) { $i$0$lcssa = $i$02; break; } $31 = ($30 | 0) < 5; if ($31) { $i$02 = $30; } else { $i$0$lcssa = $30; break; } } $36 = ($i$0$lcssa | 0) == 5; if ($36) { $37 = ($$03 + 20) | 0; $38 = HEAP32[$37 >> 2] | 0; $39 = ($38 | 0) == (0 | 0); if ($39) { label = 23; break; } _free($38); HEAP32[$37 >> 2] = 0; HEAP32[$13 >> 2] = 0; $i$1 = 0; } else { $i$1 = $i$0$lcssa; } $40 = ((($iscn + ($i$1 << 3)) | 0) + 52) | 0; $41 = HEAP32[$40 >> 2] | 0; $42 = ($41 + 1) | 0; HEAP32[$40 >> 2] = $42; $43 = ((($iscn + ($i$1 << 3)) | 0) + 56) | 0; $44 = HEAP32[$43 >> 2] | 0; HEAP32[$1 >> 2] = $44; HEAP32[$43 >> 2] = $$03; } $12 = ($2 | 0) == (0 | 0); if ($12) { label = 26; break; } else { $$03 = $2; } } if ((label | 0) == 4) { ___assert_fail(7152 | 0, 7160 | 0, 87, 7176 | 0); // unreachable; } else if ((label | 0) == 7) { ___assert_fail(6320 | 0, 6336 | 0, 133, 6360 | 0); // unreachable; } else if ((label | 0) == 14) { ___assert_fail(7152 | 0, 7160 | 0, 87, 7176 | 0); // unreachable; } else if ((label | 0) == 16) { ___assert_fail(6400 | 0, 6336 | 0, 146, 6360 | 0); // unreachable; } else if ((label | 0) == 23) { ___assert_fail(6408 | 0, 6336 | 0, 156, 6360 | 0); // unreachable; } else if ((label | 0) == 26) { STACKTOP = sp; return; } } function _zbar_image_scanner_recycle_image($iscn, $img) { $iscn = $iscn | 0; $img = $img | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($iscn + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); do { if (!$2) { $3 = HEAP32[$1 >> 2] | 0; $4 = ($3 | 0) == 0; if (!$4) { $5 = ($3 + -1) | 0; HEAP32[$1 >> 2] = $5; $6 = ($3 | 0) > 0; if (!$6) { ___assert_fail(7152 | 0, 7160 | 0, 87, 7176 | 0); // unreachable; } $7 = ($5 | 0) == 0; if ($7) { $11 = ($1 + 8) | 0; $12 = HEAP32[$11 >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $12); $13 = ($1 + 12) | 0; HEAP32[$13 >> 2] = 0; HEAP32[$11 >> 2] = 0; $14 = ($1 + 4) | 0; HEAP32[$14 >> 2] = 0; $15 = ($iscn + 204) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 + 1) | 0; HEAP32[$15 >> 2] = $17; break; } else { $8 = ($iscn + 200) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 + 1) | 0; HEAP32[$8 >> 2] = $10; HEAP32[$0 >> 2] = 0; break; } } } } while (0); $18 = ($img + 64) | 0; $19 = HEAP32[$18 >> 2] | 0; HEAP32[$18 >> 2] = 0; $20 = ($19 | 0) == (0 | 0); if ($20) { STACKTOP = sp; return; } $21 = HEAP32[$19 >> 2] | 0; $22 = ($21 + -1) | 0; HEAP32[$19 >> 2] = $22; $23 = ($21 | 0) > 0; if (!$23) { ___assert_fail(7152 | 0, 7160 | 0, 87, 7176 | 0); // unreachable; } $24 = ($22 | 0) == 0; if (!$24) { $25 = ($iscn + 208) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = ($26 + 1) | 0; HEAP32[$25 >> 2] = $27; STACKTOP = sp; return; } $28 = ($19 + 8) | 0; $29 = HEAP32[$28 >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $29); $30 = ($19 + 12) | 0; HEAP32[$30 >> 2] = 0; HEAP32[$28 >> 2] = 0; $31 = ($19 + 4) | 0; HEAP32[$31 >> 2] = 0; $32 = ($iscn + 212) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = ($33 + 1) | 0; HEAP32[$32 >> 2] = $34; $35 = HEAP32[$0 >> 2] | 0; $36 = ($35 | 0) == (0 | 0); if ($36) { HEAP32[$0 >> 2] = $19; STACKTOP = sp; return; } else { __zbar_symbol_set_free($19); STACKTOP = sp; return; } } function __zbar_image_scanner_alloc_sym($iscn, $type, $datalen) { $iscn = $iscn | 0; $type = $type | 0; $datalen = $datalen | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$04 = 0, $i$13 = 0, $sym$2 = 0, label = 0, sp = 0; sp = STACKTOP; $i$04 = 0; while (1) { $2 = $i$04 << 1; $3 = 1 << $2; $4 = ($3 | 0) < ($datalen | 0); $0 = ($i$04 + 1) | 0; if (!$4) { label = 4; break; } $1 = ($0 | 0) < 4; if ($1) { $i$04 = $0; } else { $i$13 = $0; label = 6; break; } } if ((label | 0) == 4) { $5 = ($i$04 | 0) > 0; if ($5) { $i$13 = $i$04; label = 6; } else { label = 10; } } L6: do { if ((label | 0) == 6) { while (1) { label = 0; $8 = ((($iscn + ($i$13 << 3)) | 0) + 56) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($9 | 0) == (0 | 0); $6 = ($i$13 + -1) | 0; if (!$10) { break; } $7 = ($6 | 0) > 0; if ($7) { $i$13 = $6; label = 6; } else { label = 10; break L6; } } $11 = ((($iscn + ($i$13 << 2)) | 0) + 220) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 + 1) | 0; HEAP32[$11 >> 2] = $13; $14 = ($9 + 44) | 0; $15 = HEAP32[$14 >> 2] | 0; HEAP32[$8 >> 2] = $15; HEAP32[$14 >> 2] = 0; $16 = ((($iscn + ($i$13 << 3)) | 0) + 52) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($17 | 0) == 0; if ($18) { ___assert_fail(6424 | 0, 6336 | 0, 232, 6448 | 0); // unreachable; } else { $19 = ($17 + -1) | 0; HEAP32[$16 >> 2] = $19; $sym$2 = $9; break; } } } while (0); if ((label | 0) == 10) { $20 = _calloc(1, 64) | 0; $21 = ($iscn + 216) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($22 + 1) | 0; HEAP32[$21 >> 2] = $23; $sym$2 = $20; } HEAP32[$sym$2 >> 2] = $type; $24 = ($sym$2 + 60) | 0; HEAP32[$24 >> 2] = 1; $25 = ($sym$2 + 28) | 0; HEAP32[$25 >> 2] = 0; $26 = ($sym$2 + 36) | 0; HEAP32[$26 >> 2] = -1; $27 = ($sym$2 + 56) | 0; HEAP32[$27 >> 2] = 0; $28 = ($iscn + 20) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($sym$2 + 52) | 0; HEAP32[$30 >> 2] = $29; $31 = ($sym$2 + 48) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($32 | 0) == (0 | 0); if (!$33) { ___assert_fail(6480 | 0, 6336 | 0, 247, 6448 | 0); // unreachable; } $34 = ($datalen | 0) > 0; if (!$34) { $44 = ($sym$2 + 20) | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = ($45 | 0) == (0 | 0); if (!$46) { _free($45); } HEAP32[$44 >> 2] = 0; $47 = ($sym$2 + 12) | 0; HEAP32[$47 >> 2] = 0; $48 = ($sym$2 + 16) | 0; HEAP32[$48 >> 2] = 0; STACKTOP = sp; return $sym$2 | 0; } $35 = ($datalen + -1) | 0; $36 = ($sym$2 + 16) | 0; HEAP32[$36 >> 2] = $35; $37 = ($sym$2 + 12) | 0; $38 = HEAP32[$37 >> 2] | 0; $39 = $38 >>> 0 < $datalen >>> 0; if (!$39) { STACKTOP = sp; return $sym$2 | 0; } $40 = ($sym$2 + 20) | 0; $41 = HEAP32[$40 >> 2] | 0; $42 = ($41 | 0) == (0 | 0); if (!$42) { _free($41); } HEAP32[$37 >> 2] = $datalen; $43 = _malloc($datalen) | 0; HEAP32[$40 >> 2] = $43; STACKTOP = sp; return $sym$2 | 0; } function __zbar_image_scanner_add_sym($iscn, $sym) { $iscn = $iscn | 0; $sym = $sym | 0; var $$phi$trans$insert$i = 0, $$phi$trans$insert17$i = 0, $$pre$i = 0, $$pre18$i = 0, $$pre20$i = 0, $$pre22$i = 0, $$pre24$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $brmerge$not$i = 0, $brmerge$not$i$demorgan = 0, $brmerge$not$i$demorgan15 = 0, $brmerge1$i = 0, $entry$0$i = 0, $entry$0$ph4$i$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($iscn + 92) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $65 = ($sym + 56) | 0; HEAP32[$65 >> 2] = 0; $66 = ($iscn + 48) | 0; $67 = HEAP32[$66 >> 2] | 0; $80 = $67; label = 20; } else { $3 = ($iscn + 96) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) == (0 | 0); $$pre20$i = ($sym + 16) | 0; $$pre22$i = ($sym + 20) | 0; $$pre24$i = ($sym + 52) | 0; L4: do { if ($5) { label = 12; } else { $98 = $4; $entry$0$ph4$i$i = $3; L5: while (1) { $9 = $98; while (1) { $8 = HEAP32[$9 >> 2] | 0; $10 = HEAP32[$sym >> 2] | 0; $11 = ($8 | 0) == ($10 | 0); if ($11) { $12 = ($9 + 16) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = HEAP32[$$pre20$i >> 2] | 0; $15 = ($13 | 0) == ($14 | 0); if ($15) { $16 = ($9 + 20) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = HEAP32[$$pre22$i >> 2] | 0; $19 = _memcmp($17, $18, $13) | 0; $20 = ($19 | 0) == 0; if ($20) { break L5; } } } $21 = HEAP32[$$pre24$i >> 2] | 0; $22 = ($9 + 52) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($21 - $23) | 0; $25 = $24 >>> 0 > 4000; $26 = ($9 + 44) | 0; $6 = HEAP32[$26 >> 2] | 0; if (!$25) { break; } HEAP32[$26 >> 2] = 0; $27 = HEAP32[$entry$0$ph4$i$i >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $27); HEAP32[$entry$0$ph4$i$i >> 2] = $6; $28 = ($6 | 0) == (0 | 0); if ($28) { label = 12; break L4; } else { $9 = $6; } } $7 = ($6 | 0) == (0 | 0); if ($7) { label = 12; break L4; } else { $98 = $6; $entry$0$ph4$i$i = $26; } } $29 = ($9 | 0) == (0 | 0); if ($29) { label = 12; } else { $$phi$trans$insert$i = ($9 + 52) | 0; $$pre$i = HEAP32[$$phi$trans$insert$i >> 2] | 0; $$phi$trans$insert17$i = ($9 + 56) | 0; $$pre18$i = HEAP32[$$phi$trans$insert17$i >> 2] | 0; $53 = $$pre$i; $57 = $$pre18$i; $entry$0$i = $9; } } } while (0); if ((label | 0) == 12) { $30 = HEAP32[$sym >> 2] | 0; $31 = HEAP32[$$pre20$i >> 2] | 0; $32 = ($31 + 1) | 0; $33 = __zbar_image_scanner_alloc_sym($iscn, $30, $32) | 0; $34 = ($sym + 4) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($33 + 4) | 0; HEAP32[$36 >> 2] = $35; $37 = ($sym + 8) | 0; $38 = HEAP32[$37 >> 2] | 0; $39 = ($33 + 8) | 0; HEAP32[$39 >> 2] = $38; $40 = ($33 + 20) | 0; $41 = HEAP32[$40 >> 2] | 0; $42 = HEAP32[$$pre22$i >> 2] | 0; $43 = HEAP32[$$pre20$i >> 2] | 0; _memcpy($41 | 0, $42 | 0, $43 | 0) | 0; $44 = HEAP32[$$pre24$i >> 2] | 0; $45 = ($44 + -2000) | 0; $46 = ($33 + 52) | 0; HEAP32[$46 >> 2] = $45; $47 = ($33 + 56) | 0; HEAP32[$47 >> 2] = 0; $48 = HEAP32[$3 >> 2] | 0; $49 = ($33 + 44) | 0; HEAP32[$49 >> 2] = $48; HEAP32[$3 >> 2] = $33; $53 = $45; $57 = 0; $entry$0$i = $33; } $50 = HEAP32[$$pre24$i >> 2] | 0; $51 = ($entry$0$i + 52) | 0; $52 = ($50 - $53) | 0; HEAP32[$51 >> 2] = $50; $54 = $52 >>> 0 < 1000; $55 = $52 >>> 0 > 1999; $56 = ($entry$0$i + 56) | 0; $58 = ($57 | 0) > -1; $brmerge$not$i$demorgan15 = $58 | $54; $brmerge$not$i = $brmerge$not$i$demorgan15 ^ 1; $brmerge1$i = $55 | $brmerge$not$i; if ($brmerge1$i) { $59 = HEAP32[$sym >> 2] | 0; $60 = __zbar_get_symbol_hash($59) | 0; $61 = ((($iscn + ($60 << 2)) | 0) + 116) | 0; $62 = HEAP32[$61 >> 2] | 0; $63 = (0 - $62) | 0; HEAP32[$56 >> 2] = $63; $69 = $63; } else { $brmerge$not$i$demorgan = $58 | $54; if ($brmerge$not$i$demorgan) { $64 = ($57 + 1) | 0; HEAP32[$56 >> 2] = $64; $69 = $64; } else { $69 = $57; } } $68 = ($sym + 56) | 0; HEAP32[$68 >> 2] = $69; $70 = ($iscn + 48) | 0; $71 = HEAP32[$70 >> 2] | 0; $72 = ($69 | 0) == 0; if ($72) { $80 = $71; label = 20; } else { $73 = ($71 + 8) | 0; $74 = HEAP32[$73 >> 2] | 0; $75 = ($sym + 44) | 0; HEAP32[$75 >> 2] = $74; HEAP32[$73 >> 2] = $sym; $76 = ($71 + 12) | 0; $77 = HEAP32[$76 >> 2] | 0; $78 = ($77 | 0) == (0 | 0); if ($78) { HEAP32[$76 >> 2] = $sym; } } } if ((label | 0) == 20) { $79 = ($80 + 12) | 0; $81 = HEAP32[$79 >> 2] | 0; $82 = ($81 | 0) == (0 | 0); if ($82) { $83 = ($80 + 8) | 0; $84 = HEAP32[$83 >> 2] | 0; $85 = ($sym + 44) | 0; HEAP32[$85 >> 2] = $84; HEAP32[$83 >> 2] = $sym; } else { $86 = ($81 + 44) | 0; $87 = HEAP32[$86 >> 2] | 0; $88 = ($sym + 44) | 0; HEAP32[$88 >> 2] = $87; $89 = HEAP32[$79 >> 2] | 0; $90 = ($89 + 44) | 0; HEAP32[$90 >> 2] = $sym; } $91 = ($80 + 4) | 0; $92 = HEAP32[$91 >> 2] | 0; $93 = ($92 + 1) | 0; HEAP32[$91 >> 2] = $93; } $94 = ($sym + 40) | 0; $95 = HEAP32[$94 >> 2] | 0; $96 = ($95 + 1) | 0; HEAP32[$94 >> 2] = $96; $97 = ($95 | 0) > -2; if ($97) { STACKTOP = sp; return; } else { ___assert_fail(7152 | 0, 7160 | 0, 87, 7176 | 0); // unreachable; } } function _zbar_image_scanner_create() { var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 240) | 0; $1 = ($0 | 0) == (0 | 0); if ($1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $2 = _zbar_decoder_create() | 0; $3 = ($0 + 4) | 0; HEAP32[$3 >> 2] = $2; $4 = _zbar_scanner_create($2) | 0; HEAP32[$0 >> 2] = $4; $5 = HEAP32[$3 >> 2] | 0; $6 = ($5 | 0) == (0 | 0); $7 = ($4 | 0) == (0 | 0); $or$cond = $6 | $7; if ($or$cond) { _zbar_image_scanner_destroy($0); $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { _zbar_decoder_set_userdata($5, $0); $8 = HEAP32[$3 >> 2] | 0; _zbar_decoder_set_handler($8, 5) | 0; $9 = __zbar_qr_create() | 0; $10 = ($0 + 8) | 0; HEAP32[$10 >> 2] = $9; $11 = ($0 + 108) | 0; HEAP32[$11 >> 2] = 1; $12 = ($0 + 112) | 0; HEAP32[$12 >> 2] = 1; $13 = ($0 + 100) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = $14 | 1; HEAP32[$13 >> 2] = $15; $16 = ($0 + 116) | 0; HEAP32[$16 >> 2] = 2; $17 = ($0 + 120) | 0; HEAP32[$17 >> 2] = 2; $18 = ($0 + 124) | 0; HEAP32[$18 >> 2] = 2; $19 = ($0 + 128) | 0; HEAP32[$19 >> 2] = 2; $20 = ($0 + 132) | 0; HEAP32[$20 >> 2] = 2; $21 = ($0 + 136) | 0; HEAP32[$21 >> 2] = 2; $22 = ($0 + 140) | 0; HEAP32[$22 >> 2] = 2; $23 = ($0 + 144) | 0; HEAP32[$23 >> 2] = 2; $24 = ($0 + 148) | 0; HEAP32[$24 >> 2] = 2; $25 = ($0 + 152) | 0; HEAP32[$25 >> 2] = 2; $26 = ($0 + 156) | 0; HEAP32[$26 >> 2] = 2; $27 = ($0 + 160) | 0; HEAP32[$27 >> 2] = 2; $28 = ($0 + 164) | 0; HEAP32[$28 >> 2] = 2; $29 = ($0 + 168) | 0; HEAP32[$29 >> 2] = 2; $30 = ($0 + 172) | 0; HEAP32[$30 >> 2] = 2; $31 = ($0 + 176) | 0; HEAP32[$31 >> 2] = 2; $32 = ($0 + 180) | 0; HEAP32[$32 >> 2] = 2; $33 = ($0 + 184) | 0; HEAP32[$33 >> 2] = 2; $34 = ($0 + 188) | 0; HEAP32[$34 >> 2] = 2; $35 = ($0 + 192) | 0; HEAP32[$35 >> 2] = 2; $36 = __zbar_get_symbol_hash(64) | 0; $37 = ((($0 + ($36 << 2)) | 0) + 116) | 0; HEAP32[$37 >> 2] = 0; $38 = __zbar_get_symbol_hash(128) | 0; $39 = ((($0 + ($38 << 2)) | 0) + 116) | 0; HEAP32[$39 >> 2] = 0; $40 = __zbar_get_symbol_hash(93) | 0; $41 = ((($0 + ($40 << 2)) | 0) + 116) | 0; HEAP32[$41 >> 2] = 0; $42 = __zbar_get_symbol_hash(39) | 0; $43 = ((($0 + ($42 << 2)) | 0) + 116) | 0; HEAP32[$43 >> 2] = 0; $44 = __zbar_get_symbol_hash(38) | 0; $45 = ((($0 + ($44 << 2)) | 0) + 116) | 0; HEAP32[$45 >> 2] = 1; $46 = __zbar_get_symbol_hash(15) | 0; $47 = ((($0 + ($46 << 2)) | 0) + 116) | 0; HEAP32[$47 >> 2] = 0; $$0 = $0; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _zbar_image_scanner_destroy($iscn) { $iscn = $iscn | 0; var $$pr$i = 0, $$pr1$pr$i = 0, $$pr3$pr$i = 0, $$pre$i = 0, $$pre6$i = 0, $$pre7$i = 0, $$pre8$i = 0, $$pre9$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; var $74 = 0, $75 = 0, $8 = 0, $9 = 0, $sym$01 = 0, $sym$01$1 = 0, $sym$01$2 = 0, $sym$01$3 = 0, $sym$01$4 = 0, $vararg_buffer36 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, $vararg_ptr20 = 0, $vararg_ptr24 = 0, $vararg_ptr25 = 0, $vararg_ptr29 = 0, $vararg_ptr30 = 0; var $vararg_ptr34 = 0, $vararg_ptr35 = 0, $vararg_ptr39 = 0, $vararg_ptr40 = 0, $vararg_ptr5 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer36 = sp; $0 = HEAP32[80 >> 2] | 0; $1 = ($0 | 0) > 0; if ($1) { $2 = HEAP32[_stderr >> 2] | 0; $3 = ($iscn + 196) | 0; $4 = HEAP32[$3 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr1 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $4; _fprintf($2 | 0, 6752 | 0, $vararg_buffer36 | 0) | 0; $$pr$i = HEAP32[80 >> 2] | 0; $5 = ($$pr$i | 0) > 0; if ($5) { $6 = ($iscn + 200) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($iscn + 204) | 0; $9 = HEAP32[$8 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr5 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr5 >> 2] = $7; $vararg_ptr6 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr6 >> 2] = $9; _fprintf($2 | 0, 6808 | 0, $vararg_buffer36 | 0) | 0; $$pr1$pr$i = HEAP32[80 >> 2] | 0; $10 = ($$pr1$pr$i | 0) > 0; if ($10) { $11 = ($iscn + 208) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($iscn + 212) | 0; $14 = HEAP32[$13 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr10 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr10 >> 2] = $12; $vararg_ptr11 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr11 >> 2] = $14; _fprintf($2 | 0, 6864 | 0, $vararg_buffer36 | 0) | 0; $$pr3$pr$i = HEAP32[80 >> 2] | 0; $15 = ($$pr3$pr$i | 0) > 0; if ($15) { $16 = ($iscn + 216) | 0; $17 = HEAP32[$16 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr15 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr15 >> 2] = $17; _fprintf($2 | 0, 6920 | 0, $vararg_buffer36 | 0) | 0; $$pre$i = HEAP32[80 >> 2] | 0; $18 = ($$pre$i | 0) > 0; if ($18) { $19 = ($iscn + 220) | 0; $20 = HEAP32[$19 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr19 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr19 >> 2] = 0; $vararg_ptr20 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr20 >> 2] = $20; _fprintf($2 | 0, 6960 | 0, $vararg_buffer36 | 0) | 0; $$pre6$i = HEAP32[80 >> 2] | 0; $21 = ($$pre6$i | 0) > 0; if ($21) { $22 = ($iscn + 224) | 0; $23 = HEAP32[$22 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr24 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr24 >> 2] = 1; $vararg_ptr25 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr25 >> 2] = $23; _fprintf($2 | 0, 6960 | 0, $vararg_buffer36 | 0) | 0; $$pre7$i = HEAP32[80 >> 2] | 0; $24 = ($$pre7$i | 0) > 0; if ($24) { $25 = ($iscn + 228) | 0; $26 = HEAP32[$25 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr29 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr29 >> 2] = 2; $vararg_ptr30 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr30 >> 2] = $26; _fprintf($2 | 0, 6960 | 0, $vararg_buffer36 | 0) | 0; $$pre8$i = HEAP32[80 >> 2] | 0; $27 = ($$pre8$i | 0) > 0; if ($27) { $28 = ($iscn + 232) | 0; $29 = HEAP32[$28 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr34 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr34 >> 2] = 3; $vararg_ptr35 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr35 >> 2] = $29; _fprintf($2 | 0, 6960 | 0, $vararg_buffer36 | 0) | 0; $$pre9$i = HEAP32[80 >> 2] | 0; $30 = ($$pre9$i | 0) > 0; if ($30) { $31 = ($iscn + 236) | 0; $32 = HEAP32[$31 >> 2] | 0; HEAP32[$vararg_buffer36 >> 2] = 6792; $vararg_ptr39 = ($vararg_buffer36 + 4) | 0; HEAP32[$vararg_ptr39 >> 2] = 4; $vararg_ptr40 = ($vararg_buffer36 + 8) | 0; HEAP32[$vararg_ptr40 >> 2] = $32; _fprintf($2 | 0, 6960 | 0, $vararg_buffer36 | 0) | 0; } } } } } } } } } $33 = ($iscn + 48) | 0; $34 = HEAP32[$33 >> 2] | 0; $35 = ($34 | 0) == (0 | 0); if (!$35) { $36 = HEAP32[$34 >> 2] | 0; $37 = ($36 | 0) == 0; if ($37) { __zbar_symbol_set_free($34); } else { _zbar_symbol_set_ref($34, -1); } HEAP32[$33 >> 2] = 0; } $38 = HEAP32[$iscn >> 2] | 0; $39 = ($38 | 0) == (0 | 0); if (!$39) { _zbar_scanner_destroy($38); } HEAP32[$iscn >> 2] = 0; $40 = ($iscn + 4) | 0; $41 = HEAP32[$40 >> 2] | 0; $42 = ($41 | 0) == (0 | 0); if (!$42) { _zbar_decoder_destroy($41); } HEAP32[$40 >> 2] = 0; $43 = ($iscn + 56) | 0; $44 = HEAP32[$43 >> 2] | 0; $45 = ($44 | 0) == (0 | 0); if (!$45) { $sym$01 = $44; while (1) { $46 = ($sym$01 + 44) | 0; $47 = HEAP32[$46 >> 2] | 0; __zbar_symbol_free($sym$01); $48 = ($47 | 0) == (0 | 0); if ($48) { break; } else { $sym$01 = $47; } } } $49 = ($iscn + 64) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = ($50 | 0) == (0 | 0); if (!$51) { $sym$01$1 = $50; while (1) { $53 = ($sym$01$1 + 44) | 0; $54 = HEAP32[$53 >> 2] | 0; __zbar_symbol_free($sym$01$1); $55 = ($54 | 0) == (0 | 0); if ($55) { break; } else { $sym$01$1 = $54; } } } $56 = ($iscn + 72) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 | 0) == (0 | 0); if (!$58) { $sym$01$2 = $57; while (1) { $59 = ($sym$01$2 + 44) | 0; $60 = HEAP32[$59 >> 2] | 0; __zbar_symbol_free($sym$01$2); $61 = ($60 | 0) == (0 | 0); if ($61) { break; } else { $sym$01$2 = $60; } } } $62 = ($iscn + 80) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = ($63 | 0) == (0 | 0); if (!$64) { $sym$01$3 = $63; while (1) { $65 = ($sym$01$3 + 44) | 0; $66 = HEAP32[$65 >> 2] | 0; __zbar_symbol_free($sym$01$3); $67 = ($66 | 0) == (0 | 0); if ($67) { break; } else { $sym$01$3 = $66; } } } $68 = ($iscn + 88) | 0; $69 = HEAP32[$68 >> 2] | 0; $70 = ($69 | 0) == (0 | 0); if (!$70) { $sym$01$4 = $69; while (1) { $71 = ($sym$01$4 + 44) | 0; $72 = HEAP32[$71 >> 2] | 0; __zbar_symbol_free($sym$01$4); $73 = ($72 | 0) == (0 | 0); if ($73) { break; } else { $sym$01$4 = $72; } } } $74 = ($iscn + 8) | 0; $52 = HEAP32[$74 >> 2] | 0; $75 = ($52 | 0) == (0 | 0); if ($75) { _free($iscn); STACKTOP = sp; return; } __zbar_qr_destroy($52); _free($iscn); STACKTOP = sp; return; } function _symbol_handler($dcode) { $dcode = $dcode | 0; var $$ = 0, $$1 = 0, $$phi$trans$insert$i = 0, $$phi$trans$insert$i2 = 0, $$pre$i = 0, $$pre$i3 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0; var $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0; var $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0; var $147 = 0, $148 = 0, $149 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $sym$0 = 0, $sym$06 = 0, $sym$07 = 0, $u$0$i = 0; var $vararg_buffer10 = 0, $vararg_ptr1 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0, $vararg_ptr9 = 0, $x$0 = 0, $y$0 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer10 = sp; $0 = _zbar_decoder_get_userdata($dcode) | 0; $1 = _zbar_decoder_get_type($dcode) | 0; $2 = ($1 | 0) == 64; if ($2) { $3 = ($0 + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = __zbar_decoder_get_qr_finder_line($4) | 0; $6 = ($5 | 0) == (0 | 0); if ($6) { ___assert_fail(7128 | 0, 6336 | 0, 367, 7136 | 0); // unreachable; } $7 = HEAP32[$0 >> 2] | 0; $8 = HEAP32[$5 >> 2] | 0; $9 = _zbar_scanner_get_edge($7, $8, 2) | 0; $10 = HEAP32[$0 >> 2] | 0; $11 = ($5 + 12) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = _zbar_scanner_get_edge($10, $12, 2) | 0; $14 = ($9 - $13) | 0; HEAP32[$11 >> 2] = $14; $15 = HEAP32[$0 >> 2] | 0; $16 = ($5 + 8) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = _zbar_scanner_get_edge($15, $17, 2) | 0; HEAP32[$16 >> 2] = $18; $19 = HEAP32[$0 >> 2] | 0; $20 = ($5 + 16) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = _zbar_scanner_get_edge($19, $21, 2) | 0; $23 = HEAP32[$16 >> 2] | 0; $24 = ($22 - $23) | 0; HEAP32[$20 >> 2] = $24; $25 = ($23 - $9) | 0; HEAP32[$16 >> 2] = $25; $26 = ($0 + 40) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = $27 << 2; $29 = ($0 + 36) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = Math_imul($30, $9) | 0; $32 = ($31 + $28) | 0; $33 = ($30 | 0) < 0; if ($33) { $34 = HEAP32[$11 >> 2] | 0; HEAP32[$11 >> 2] = $24; HEAP32[$20 >> 2] = $34; $35 = ($32 - $25) | 0; $u$0$i = $35; } else { $u$0$i = $32; } $36 = ($0 + 28) | 0; $37 = HEAP32[$36 >> 2] | 0; $38 = ($37 | 0) != 0; $39 = $38 & 1; $40 = $39 ^ 1; $41 = ($5 + ($40 << 2)) | 0; HEAP32[$41 >> 2] = $u$0$i; $42 = ($0 + 44) | 0; $43 = HEAP32[$42 >> 2] | 0; $44 = $43 << 2; $45 = $44 | 2; $46 = ($5 + ($39 << 2)) | 0; HEAP32[$46 >> 2] = $45; $47 = ($0 + 8) | 0; $48 = HEAP32[$47 >> 2] | 0; __zbar_qr_found_line($48, $40, $5) | 0; STACKTOP = sp; return; } $49 = ($0 + 100) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = $50 & 1; $52 = ($51 | 0) == 0; if ($52) { $x$0 = 0; $y$0 = 0; } else { $53 = HEAP32[$0 >> 2] | 0; $54 = _zbar_scanner_get_width($53) | 0; $55 = ($0 + 40) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = ($0 + 36) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = HEAP32[$0 >> 2] | 0; $60 = _zbar_scanner_get_edge($59, $54, 0) | 0; $61 = Math_imul($60, $58) | 0; $62 = ($61 + $56) | 0; $63 = ($0 + 28) | 0; $64 = HEAP32[$63 >> 2] | 0; $65 = ($64 | 0) == 0; $66 = ($0 + 44) | 0; $67 = HEAP32[$66 >> 2] | 0; $$ = $65 ? $62 : $67; $$1 = $65 ? $67 : $62; $x$0 = $$1; $y$0 = $$; } $68 = $1 >>> 0 < 2; if ($68) { $69 = HEAP32[80 >> 2] | 0; $70 = ($69 | 0) > 255; if (!$70) { STACKTOP = sp; return; } $71 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer10 >> 2] = 7032; $vararg_ptr1 = ($vararg_buffer10 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $x$0; $vararg_ptr2 = ($vararg_buffer10 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $y$0; _fprintf($71 | 0, 7000 | 0, $vararg_buffer10 | 0) | 0; STACKTOP = sp; return; } $72 = _zbar_decoder_get_data($dcode) | 0; $73 = _zbar_decoder_get_data_length($dcode) | 0; $74 = ($0 + 48) | 0; $75 = HEAP32[$74 >> 2] | 0; $76 = ($75 + 8) | 0; $sym$06 = HEAP32[$76 >> 2] | 0; $77 = ($sym$06 | 0) == (0 | 0); L21: do { if (!$77) { $sym$07 = $sym$06; while (1) { $78 = HEAP32[$sym$07 >> 2] | 0; $79 = ($78 | 0) == ($1 | 0); if ($79) { $80 = ($sym$07 + 16) | 0; $81 = HEAP32[$80 >> 2] | 0; $82 = ($81 | 0) == ($73 | 0); if ($82) { $83 = ($sym$07 + 20) | 0; $84 = HEAP32[$83 >> 2] | 0; $85 = _memcmp($84, $72, $73) | 0; $86 = ($85 | 0) == 0; if ($86) { break; } } } $109 = ($sym$07 + 44) | 0; $sym$0 = HEAP32[$109 >> 2] | 0; $110 = ($sym$0 | 0) == (0 | 0); if ($110) { break L21; } else { $sym$07 = $sym$0; } } $87 = ($sym$07 + 60) | 0; $88 = HEAP32[$87 >> 2] | 0; $89 = ($88 + 1) | 0; HEAP32[$87 >> 2] = $89; $90 = HEAP32[80 >> 2] | 0; $91 = ($90 | 0) > 223; if ($91) { $92 = HEAP32[_stderr >> 2] | 0; $93 = _zbar_get_symbol_name($1) | 0; HEAP32[$vararg_buffer10 >> 2] = 7032; $vararg_ptr6 = ($vararg_buffer10 + 4) | 0; HEAP32[$vararg_ptr6 >> 2] = $x$0; $vararg_ptr7 = ($vararg_buffer10 + 8) | 0; HEAP32[$vararg_ptr7 >> 2] = $y$0; $vararg_ptr8 = ($vararg_buffer10 + 12) | 0; HEAP32[$vararg_ptr8 >> 2] = $93; $vararg_ptr9 = ($vararg_buffer10 + 16) | 0; HEAP32[$vararg_ptr9 >> 2] = $72; _fprintf($92 | 0, 7048 | 0, $vararg_buffer10 | 0) | 0; } $94 = HEAP32[$49 >> 2] | 0; $95 = $94 & 1; $96 = ($95 | 0) == 0; if ($96) { STACKTOP = sp; return; } $97 = ($sym$07 + 28) | 0; $98 = HEAP32[$97 >> 2] | 0; $99 = ($98 + 1) | 0; HEAP32[$97 >> 2] = $99; $100 = ($sym$07 + 24) | 0; $101 = HEAP32[$100 >> 2] | 0; $102 = $99 >>> 0 < $101 >>> 0; $$phi$trans$insert$i = ($sym$07 + 32) | 0; $$pre$i = HEAP32[$$phi$trans$insert$i >> 2] | 0; if ($102) { $107 = $$pre$i; } else { $103 = ($101 + 1) | 0; HEAP32[$100 >> 2] = $103; $104 = $103 << 3; $105 = _realloc($$pre$i, $104) | 0; HEAP32[$$phi$trans$insert$i >> 2] = $105; $107 = $105; } $106 = ($107 + ($98 << 3)) | 0; HEAP32[$106 >> 2] = $x$0; $108 = ((($107 + ($98 << 3)) | 0) + 4) | 0; HEAP32[$108 >> 2] = $y$0; STACKTOP = sp; return; } } while (0); $111 = ($73 + 1) | 0; $112 = __zbar_image_scanner_alloc_sym($0, $1, $111) | 0; $113 = _zbar_decoder_get_configs($dcode, $1) | 0; $114 = ($112 + 4) | 0; HEAP32[$114 >> 2] = $113; $115 = _zbar_decoder_get_modifiers($dcode) | 0; $116 = ($112 + 8) | 0; HEAP32[$116 >> 2] = $115; $117 = ($112 + 20) | 0; $118 = HEAP32[$117 >> 2] | 0; _memcpy($118 | 0, $72 | 0, $111 | 0) | 0; $119 = HEAP32[$49 >> 2] | 0; $120 = $119 & 1; $121 = ($120 | 0) == 0; if (!$121) { $122 = HEAP32[80 >> 2] | 0; $123 = ($122 | 0) > 191; if ($123) { $124 = HEAP32[_stderr >> 2] | 0; $125 = _zbar_get_symbol_name($1) | 0; HEAP32[$vararg_buffer10 >> 2] = 7032; $vararg_ptr13 = ($vararg_buffer10 + 4) | 0; HEAP32[$vararg_ptr13 >> 2] = $x$0; $vararg_ptr14 = ($vararg_buffer10 + 8) | 0; HEAP32[$vararg_ptr14 >> 2] = $y$0; $vararg_ptr15 = ($vararg_buffer10 + 12) | 0; HEAP32[$vararg_ptr15 >> 2] = $125; $vararg_ptr16 = ($vararg_buffer10 + 16) | 0; HEAP32[$vararg_ptr16 >> 2] = $72; _fprintf($124 | 0, 7088 | 0, $vararg_buffer10 | 0) | 0; } $126 = ($112 + 28) | 0; $127 = HEAP32[$126 >> 2] | 0; $128 = ($127 + 1) | 0; HEAP32[$126 >> 2] = $128; $129 = ($112 + 24) | 0; $130 = HEAP32[$129 >> 2] | 0; $131 = $128 >>> 0 < $130 >>> 0; $$phi$trans$insert$i2 = ($112 + 32) | 0; $$pre$i3 = HEAP32[$$phi$trans$insert$i2 >> 2] | 0; if ($131) { $136 = $$pre$i3; } else { $132 = ($130 + 1) | 0; HEAP32[$129 >> 2] = $132; $133 = $132 << 3; $134 = _realloc($$pre$i3, $133) | 0; HEAP32[$$phi$trans$insert$i2 >> 2] = $134; $136 = $134; } $135 = ($136 + ($127 << 3)) | 0; HEAP32[$135 >> 2] = $x$0; $137 = ((($136 + ($127 << 3)) | 0) + 4) | 0; HEAP32[$137 >> 2] = $y$0; } $138 = _zbar_decoder_get_direction($dcode) | 0; $139 = ($138 | 0) == 0; if (!$139) { $140 = ($0 + 32) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($141 | 0) != 0; $143 = $142 & 1; $144 = ($0 + 36) | 0; $145 = HEAP32[$144 >> 2] | 0; $146 = $145 ^ $138; $147 = $146 & 2; $148 = $147 | $143; $149 = ($112 + 36) | 0; HEAP32[$149 >> 2] = $148; } __zbar_image_scanner_add_sym($0, $112); STACKTOP = sp; return; } function _zbar_image_scanner_enable_cache($iscn, $enable) { $iscn = $iscn | 0; $enable = $enable | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($iscn + 96) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { __zbar_image_scanner_recycle_syms($iscn, $1); HEAP32[$0 >> 2] = 0; } $3 = ($enable | 0) != 0; $4 = $3 & 1; $5 = ($iscn + 92) | 0; HEAP32[$5 >> 2] = $4; STACKTOP = sp; return; } function _zbar_image_scanner_get_results($iscn) { $iscn = $iscn | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($iscn + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_scan_image($iscn, $img) { $iscn = $iscn | 0; $img = $img | 0; var $$ = 0, $$0 = 0, $$5 = 0, $$addon$0 = 0, $$off = 0, $$off$us = 0, $$off15 = 0, $$pr14 = 0, $$pre = 0, $$pre222 = 0, $$pre223 = 0, $$sum = 0, $$sum1 = 0, $$sum224 = 0, $$sum3 = 0, $$sum4 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0; var $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0; var $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0; var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0; var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0; var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0; var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0; var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0; var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0; var $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0; var $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0; var $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0; var $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0; var $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; var $98 = 0, $99 = 0, $addon$0$lcssa = 0, $addon$0$ph96 = 0, $addon$019 = 0, $cond = 0, $ean$0$ = 0, $ean$0$lcssa = 0, $ean$0$ph95 = 0, $ean$018 = 0, $entry$0$ph4$i = 0, $entry$0$ph4$i$us = 0, $exitcond = 0, $exitcond210 = 0, $iscn$idx$val = 0, $iscn$idx10$val = 0, $iscn$idx11$val = 0, $iscn$idx12$val = 0, $naddon$0$ph118 = 0, $naddon$0$ph125 = 0; var $naddon$1 = 0, $nean$0$ph108 = 0, $nean$0$ph120 = 0, $nean$1 = 0, $or$cond7 = 0, $or$cond8 = 0, $p$088 = 0, $p$1$lcssa = 0, $p$172 = 0, $p$2$lcssa = 0, $p$279 = 0, $p2$068 = 0, $p2$1$lcssa = 0, $p2$152 = 0, $p2$2$lcssa = 0, $p2$259 = 0, $phitmp = 0, $scevgep = 0, $scevgep204$sum = 0, $scevgep205 = 0; var $scevgep208$sum = 0, $scevgep209 = 0, $scevgep214 = 0, $storemerge286 = 0, $storemerge66 = 0, $symp$0$ph130 = 0, $symp$1$ph94 = 0, $syms$0 = 0, $vararg_buffer16 = 0, $vararg_ptr1 = 0, $vararg_ptr13 = 0, $vararg_ptr14 = 0, $vararg_ptr15 = 0, $vararg_ptr19 = 0, $vararg_ptr2 = 0, $vararg_ptr20 = 0, $vararg_ptr21 = 0, $vararg_ptr3 = 0, $vararg_ptr7 = 0, $vararg_ptr8 = 0; var $vararg_ptr9 = 0, $x$087 = 0, $x$1$lcssa = 0, $x$171 = 0, $x$2$lcssa = 0, $x$278 = 0, $y4$067 = 0, $y4$1$lcssa = 0, $y4$151 = 0, $y4$2$lcssa = 0, $y4$258 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer16 = sp; $0 = HEAP32[$iscn >> 2] | 0; _clock_gettime(0, $vararg_buffer16 | 0) | 0; $1 = HEAP32[$vararg_buffer16 >> 2] | 0; $2 = ($1 * 1000) | 0; $3 = ($vararg_buffer16 + 4) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = (($4 | 0) / 1000000) & -1; $6 = ($5 + $2) | 0; $7 = ($iscn + 20) | 0; HEAP32[$7 >> 2] = $6; $8 = ($iscn + 8) | 0; $9 = HEAP32[$8 >> 2] | 0; __zbar_qr_reset($9); $10 = HEAP32[$img >> 2] | 0; if (!((($10 | 0) == 1497715271) | (($10 | 0) == 808466521))) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $11 = ($iscn + 24) | 0; HEAP32[$11 >> 2] = $img; _zbar_image_scanner_recycle_image($iscn, $img); $12 = ($iscn + 48) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($13 | 0) == (0 | 0); if ($14) { $15 = __zbar_symbol_set_create() | 0; HEAP32[$12 >> 2] = $15; $16 = ($iscn + 196) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($17 + 1) | 0; HEAP32[$16 >> 2] = $18; _zbar_symbol_set_ref($15, 1); $syms$0 = $15; } else { _zbar_symbol_set_ref($13, 2); $syms$0 = $13; } $19 = ($img + 64) | 0; HEAP32[$19 >> 2] = $syms$0; $20 = ($img + 4) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($img + 8) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($img + 20) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($img + 28) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($27 + $25) | 0; $29 = $28 >>> 0 > $21 >>> 0; if ($29) { ___assert_fail(6496 | 0, 6336 | 0, 683, 6512 | 0); // unreachable; } $30 = ($img + 24) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($img + 32) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = ($33 + $31) | 0; $35 = $34 >>> 0 > $23 >>> 0; if ($35) { ___assert_fail(6528 | 0, 6336 | 0, 685, 6512 | 0); // unreachable; } $36 = ($img + 12) | 0; $37 = HEAP32[$36 >> 2] | 0; _zbar_scanner_new_scan($0) | 0; $38 = ($iscn + 112) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($39 | 0) > 0; L14: do { if ($40) { $41 = HEAP32[$32 >> 2] | 0; $42 = ($41 + -1) | 0; $43 = ($42 >>> 0) % ($39 >>> 0) & -1; $44 = ($43 + 1) | 0; $45 = $44 >>> 1; $46 = $41 >>> 1; $47 = $45 >>> 0 > $46 >>> 0; $$ = $47 ? $46 : $45; $48 = HEAP32[$30 >> 2] | 0; $49 = ($$ + $48) | 0; $50 = $49 >>> 0 > $23 >>> 0; if ($50) { ___assert_fail(6544 | 0, 6336 | 0, 703, 6512 | 0); // unreachable; } $51 = ($iscn + 32) | 0; HEAP32[$51 >> 2] = 0; $52 = HEAP32[$24 >> 2] | 0; $53 = ($iscn + 44) | 0; HEAP32[$53 >> 2] = $49; $54 = $49 >>> 0 < $34 >>> 0; if ($54) { $55 = Math_imul($49, $21) | 0; $56 = ($52 + $55) | 0; $57 = ($37 + $56) | 0; $58 = HEAP32[_stderr >> 2] | 0; $59 = ($iscn + 36) | 0; $60 = ($iscn + 28) | 0; $61 = ($iscn + 40) | 0; $62 = Math_imul($39, $21) | 0; $63 = ($62 + -1) | 0; $64 = ($62 + 1) | 0; $p$088 = $57; $storemerge286 = $49; $x$087 = $52; while (1) { $65 = HEAP32[$24 >> 2] | 0; $66 = HEAP32[80 >> 2] | 0; $67 = ($66 | 0) > 127; if ($67) { HEAP32[$vararg_buffer16 >> 2] = 6512; $vararg_ptr1 = ($vararg_buffer16 + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $x$087; $vararg_ptr2 = ($vararg_buffer16 + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $storemerge286; $vararg_ptr3 = ($vararg_buffer16 + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $p$088; _fprintf($58 | 0, 6560 | 0, $vararg_buffer16 | 0) | 0; } HEAP32[$59 >> 2] = 1; HEAP32[$60 >> 2] = 1; HEAP32[$61 >> 2] = $65; $68 = $x$087 >>> 0 < $28 >>> 0; if ($68) { $p$172 = $p$088; $x$171 = $x$087; while (1) { $69 = HEAP8[$p$172 >> 0] | 0; $70 = ($x$171 + 1) | 0; $71 = ($p$172 + 1) | 0; $72 = $69 & 255; _zbar_scan_y($0, $72) | 0; $exitcond210 = ($70 | 0) == ($28 | 0); if ($exitcond210) { break; } else { $p$172 = $71; $x$171 = $70; } } $scevgep208$sum = ($28 - $x$087) | 0; $scevgep209 = ($p$088 + $scevgep208$sum) | 0; $p$1$lcssa = $scevgep209; $x$1$lcssa = $28; } else { $p$1$lcssa = $p$088; $x$1$lcssa = $x$087; } $73 = Math_imul($storemerge286, $21) | 0; $$sum3 = ($x$1$lcssa + $73) | 0; $74 = ($37 + $$sum3) | 0; $75 = ($p$1$lcssa | 0) == ($74 | 0); if (!$75) { label = 20; break; } $iscn$idx12$val = HEAP32[$iscn >> 2] | 0; _zbar_scanner_flush($iscn$idx12$val) | 0; _zbar_scanner_flush($iscn$idx12$val) | 0; _zbar_scanner_new_scan($iscn$idx12$val) | 0; $76 = ($x$1$lcssa + -1) | 0; $77 = ($storemerge286 + $39) | 0; $78 = ($p$1$lcssa + $63) | 0; HEAP32[$53 >> 2] = $77; $79 = $77 >>> 0 < $34 >>> 0; if (!$79) { break L14; } $80 = HEAP32[80 >> 2] | 0; $81 = ($80 | 0) > 127; if ($81) { HEAP32[$vararg_buffer16 >> 2] = 6512; $vararg_ptr7 = ($vararg_buffer16 + 4) | 0; HEAP32[$vararg_ptr7 >> 2] = $76; $vararg_ptr8 = ($vararg_buffer16 + 8) | 0; HEAP32[$vararg_ptr8 >> 2] = $77; $vararg_ptr9 = ($vararg_buffer16 + 12) | 0; HEAP32[$vararg_ptr9 >> 2] = $78; _fprintf($58 | 0, 6624 | 0, $vararg_buffer16 | 0) | 0; } HEAP32[$59 >> 2] = -1; HEAP32[$60 >> 2] = -1; HEAP32[$61 >> 2] = $28; $82 = ($x$1$lcssa | 0) > ($65 | 0); if ($82) { $83 = ($65 - $x$1$lcssa) | 0; $$sum224 = ($63 + $83) | 0; $scevgep214 = ($p$1$lcssa + $$sum224) | 0; $p$279 = $78; $x$278 = $76; while (1) { $84 = HEAP8[$p$279 >> 0] | 0; $85 = ($x$278 + -1) | 0; $86 = ($p$279 + -1) | 0; $87 = $84 & 255; _zbar_scan_y($0, $87) | 0; $88 = ($x$278 | 0) > ($65 | 0); if ($88) { $p$279 = $86; $x$278 = $85; } else { break; } } $89 = ($65 + -1) | 0; $p$2$lcssa = $scevgep214; $x$2$lcssa = $89; } else { $p$2$lcssa = $78; $x$2$lcssa = $76; } $90 = Math_imul($77, $21) | 0; $$sum4 = ($x$2$lcssa + $90) | 0; $91 = ($37 + $$sum4) | 0; $92 = ($p$2$lcssa | 0) == ($91 | 0); if (!$92) { label = 29; break; } $iscn$idx11$val = HEAP32[$iscn >> 2] | 0; _zbar_scanner_flush($iscn$idx11$val) | 0; _zbar_scanner_flush($iscn$idx11$val) | 0; _zbar_scanner_new_scan($iscn$idx11$val) | 0; $93 = ($x$2$lcssa + 1) | 0; $94 = ($77 + $39) | 0; $95 = ($p$2$lcssa + $64) | 0; HEAP32[$53 >> 2] = $94; $96 = $94 >>> 0 < $34 >>> 0; if ($96) { $p$088 = $95; $storemerge286 = $94; $x$087 = $93; } else { break L14; } } if ((label | 0) == 20) { ___assert_fail(6592 | 0, 6336 | 0, 721, 6512 | 0); // unreachable; } else if ((label | 0) == 29) { ___assert_fail(6592 | 0, 6336 | 0, 739, 6512 | 0); // unreachable; } } } } while (0); $97 = ($iscn + 28) | 0; HEAP32[$97 >> 2] = 0; $98 = ($iscn + 108) | 0; $99 = HEAP32[$98 >> 2] | 0; $100 = ($99 | 0) > 0; L46: do { if ($100) { $101 = HEAP32[$26 >> 2] | 0; $102 = ($101 + -1) | 0; $103 = ($102 >>> 0) % ($99 >>> 0) & -1; $104 = ($103 + 1) | 0; $105 = $104 >>> 1; $106 = $101 >>> 1; $107 = $105 >>> 0 > $106 >>> 0; $$5 = $107 ? $106 : $105; $108 = HEAP32[$24 >> 2] | 0; $109 = ($$5 + $108) | 0; $110 = $109 >>> 0 > $21 >>> 0; if ($110) { ___assert_fail(6656 | 0, 6336 | 0, 759, 6512 | 0); // unreachable; } $111 = HEAP32[$30 >> 2] | 0; $112 = ($iscn + 44) | 0; HEAP32[$112 >> 2] = $109; $113 = $109 >>> 0 < $28 >>> 0; if ($113) { $114 = Math_imul($111, $21) | 0; $115 = ($114 + $109) | 0; $116 = ($37 + $115) | 0; $117 = HEAP32[_stderr >> 2] | 0; $118 = ($iscn + 36) | 0; $119 = ($iscn + 32) | 0; $120 = ($iscn + 40) | 0; $121 = (0 - $21) | 0; $122 = ($99 - $21) | 0; $123 = ($99 + $21) | 0; $p2$068 = $116; $storemerge66 = $109; $y4$067 = $111; while (1) { $124 = HEAP32[$30 >> 2] | 0; $125 = HEAP32[80 >> 2] | 0; $126 = ($125 | 0) > 127; if ($126) { HEAP32[$vararg_buffer16 >> 2] = 6512; $vararg_ptr13 = ($vararg_buffer16 + 4) | 0; HEAP32[$vararg_ptr13 >> 2] = $storemerge66; $vararg_ptr14 = ($vararg_buffer16 + 8) | 0; HEAP32[$vararg_ptr14 >> 2] = $y4$067; $vararg_ptr15 = ($vararg_buffer16 + 12) | 0; HEAP32[$vararg_ptr15 >> 2] = $p2$068; _fprintf($117 | 0, 6672 | 0, $vararg_buffer16 | 0) | 0; } HEAP32[$118 >> 2] = 1; HEAP32[$119 >> 2] = 1; HEAP32[$120 >> 2] = $124; $127 = $y4$067 >>> 0 < $34 >>> 0; if ($127) { $128 = ($34 - $y4$067) | 0; $129 = Math_imul($21, $128) | 0; $p2$152 = $p2$068; $y4$151 = $y4$067; while (1) { $130 = HEAP8[$p2$152 >> 0] | 0; $131 = ($y4$151 + 1) | 0; $132 = ($p2$152 + $21) | 0; $133 = $130 & 255; _zbar_scan_y($0, $133) | 0; $exitcond = ($131 | 0) == ($34 | 0); if ($exitcond) { break; } else { $p2$152 = $132; $y4$151 = $131; } } $scevgep = ($p2$068 + $129) | 0; $p2$1$lcssa = $scevgep; $y4$1$lcssa = $34; } else { $p2$1$lcssa = $p2$068; $y4$1$lcssa = $y4$067; } $134 = Math_imul($y4$1$lcssa, $21) | 0; $$sum = ($134 + $storemerge66) | 0; $135 = ($37 + $$sum) | 0; $136 = ($p2$1$lcssa | 0) == ($135 | 0); if (!$136) { label = 43; break; } $iscn$idx10$val = HEAP32[$iscn >> 2] | 0; _zbar_scanner_flush($iscn$idx10$val) | 0; _zbar_scanner_flush($iscn$idx10$val) | 0; _zbar_scanner_new_scan($iscn$idx10$val) | 0; $137 = ($storemerge66 + $99) | 0; $138 = ($y4$1$lcssa + -1) | 0; $139 = ($p2$1$lcssa + $122) | 0; HEAP32[$112 >> 2] = $137; $140 = $137 >>> 0 < $28 >>> 0; if (!$140) { break L46; } $141 = HEAP32[80 >> 2] | 0; $142 = ($141 | 0) > 127; if ($142) { HEAP32[$vararg_buffer16 >> 2] = 6512; $vararg_ptr19 = ($vararg_buffer16 + 4) | 0; HEAP32[$vararg_ptr19 >> 2] = $137; $vararg_ptr20 = ($vararg_buffer16 + 8) | 0; HEAP32[$vararg_ptr20 >> 2] = $138; $vararg_ptr21 = ($vararg_buffer16 + 12) | 0; HEAP32[$vararg_ptr21 >> 2] = $139; _fprintf($117 | 0, 6704 | 0, $vararg_buffer16 | 0) | 0; } HEAP32[$118 >> 2] = -1; HEAP32[$119 >> 2] = -1; HEAP32[$120 >> 2] = $34; $143 = ($y4$1$lcssa | 0) > ($124 | 0); if ($143) { $144 = ($124 + -1) | 0; $145 = ($144 - $y4$1$lcssa) | 0; $146 = Math_imul($21, $145) | 0; $p2$259 = $139; $y4$258 = $138; while (1) { $147 = HEAP8[$p2$259 >> 0] | 0; $148 = ($y4$258 + -1) | 0; $149 = ($p2$259 + $121) | 0; $150 = $147 & 255; _zbar_scan_y($0, $150) | 0; $151 = ($y4$258 | 0) > ($124 | 0); if ($151) { $p2$259 = $149; $y4$258 = $148; } else { break; } } $scevgep204$sum = ($99 + $146) | 0; $scevgep205 = ($p2$1$lcssa + $scevgep204$sum) | 0; $p2$2$lcssa = $scevgep205; $y4$2$lcssa = $144; } else { $p2$2$lcssa = $139; $y4$2$lcssa = $138; } $152 = Math_imul($y4$2$lcssa, $21) | 0; $$sum1 = ($152 + $137) | 0; $153 = ($37 + $$sum1) | 0; $154 = ($p2$2$lcssa | 0) == ($153 | 0); if (!$154) { label = 52; break; } $iscn$idx$val = HEAP32[$iscn >> 2] | 0; _zbar_scanner_flush($iscn$idx$val) | 0; _zbar_scanner_flush($iscn$idx$val) | 0; _zbar_scanner_new_scan($iscn$idx$val) | 0; $155 = ($137 + $99) | 0; $156 = ($y4$2$lcssa + 1) | 0; $157 = ($p2$2$lcssa + $123) | 0; HEAP32[$112 >> 2] = $155; $158 = $155 >>> 0 < $28 >>> 0; if ($158) { $p2$068 = $157; $storemerge66 = $155; $y4$067 = $156; } else { break L46; } } if ((label | 0) == 43) { ___assert_fail(6592 | 0, 6336 | 0, 775, 6512 | 0); // unreachable; } else if ((label | 0) == 52) { ___assert_fail(6592 | 0, 6336 | 0, 793, 6512 | 0); // unreachable; } } } } while (0); $159 = ($iscn + 32) | 0; HEAP32[$159 >> 2] = 0; HEAP32[$11 >> 2] = 0; $160 = HEAP32[$8 >> 2] | 0; __zbar_qr_decode($160, $iscn, $img) | 0; $161 = ($iscn + 92) | 0; $162 = HEAP32[$161 >> 2] | 0; $163 = ($162 | 0) == 0; if ($163) { $164 = ($99 | 0) == 1; if ($164) { $173 = 1; } else { $165 = HEAP32[$38 >> 2] | 0; $166 = ($165 | 0) == 1; $phitmp = $166 & 1; $173 = $phitmp; } } else { $173 = 0; } $167 = ($syms$0 + 4) | 0; $168 = HEAP32[$167 >> 2] | 0; $169 = ($168 | 0) == 0; if ($169) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $170 = ($syms$0 + 8) | 0; $171 = HEAP32[$170 >> 2] | 0; $172 = ($171 | 0) == (0 | 0); do { if (!$172) { $174 = ($173 | 0) == 0; $175 = ($iscn + 96) | 0; $339 = $171; $naddon$0$ph125 = 0; $nean$0$ph120 = 0; $symp$0$ph130 = $170; L88: while (1) { L90: do { if ($174) { $177 = $339; while (1) { $176 = ($177 + 56) | 0; $178 = HEAP32[$176 >> 2] | 0; $179 = ($178 | 0) < 1; if (!$179) { $281 = $177; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; break L90; } $180 = HEAP32[$177 >> 2] | 0; $$off$us = ($180 + -2) | 0; $181 = $$off$us >>> 0 < 13; if ($181) { $274 = $180; $340 = $177; label = 98; break L90; } $cond = ($180 | 0) == 38; if (!$cond) { $281 = $177; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; break L90; } $182 = ($177 + 60) | 0; $183 = HEAP32[$182 >> 2] | 0; $184 = ($183 | 0) < 4; if (!$184) { $281 = $177; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; break L90; } $185 = HEAP32[$161 >> 2] | 0; $186 = ($185 | 0) == 0; if (!$186) { $187 = HEAP32[$175 >> 2] | 0; $188 = ($187 | 0) == (0 | 0); if ($188) { label = 96; break L88; } $189 = ($177 + 16) | 0; $190 = ($177 + 20) | 0; $191 = ($177 + 52) | 0; $341 = 38; $342 = $187; $entry$0$ph4$i$us = $175; L100: while (1) { $193 = $342; $195 = $341; while (1) { $192 = HEAP32[$193 >> 2] | 0; $194 = ($192 | 0) == ($195 | 0); do { if ($194) { $196 = ($193 + 16) | 0; $197 = HEAP32[$196 >> 2] | 0; $198 = HEAP32[$189 >> 2] | 0; $199 = ($197 | 0) == ($198 | 0); if (!$199) { break; } $200 = ($193 + 20) | 0; $201 = HEAP32[$200 >> 2] | 0; $202 = HEAP32[$190 >> 2] | 0; $203 = _memcmp($201, $202, $197) | 0; $204 = ($203 | 0) == 0; if ($204) { break L100; } } } while (0); $205 = HEAP32[$191 >> 2] | 0; $206 = ($193 + 52) | 0; $207 = HEAP32[$206 >> 2] | 0; $208 = ($205 - $207) | 0; $209 = $208 >>> 0 > 4000; $210 = ($193 + 44) | 0; $211 = HEAP32[$210 >> 2] | 0; if (!$209) { break; } HEAP32[$210 >> 2] = 0; $213 = HEAP32[$entry$0$ph4$i$us >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $213); HEAP32[$entry$0$ph4$i$us >> 2] = $211; $214 = ($211 | 0) == (0 | 0); if ($214) { label = 96; break L88; } $$pre222 = HEAP32[$177 >> 2] | 0; $193 = $211; $195 = $$pre222; } $212 = ($211 | 0) == (0 | 0); if ($212) { label = 96; break L88; } else { $341 = $195; $342 = $211; $entry$0$ph4$i$us = $210; } } $215 = ($193 | 0) == (0 | 0); if ($215) { label = 96; break L88; } $216 = ($193 + 56) | 0; $217 = HEAP32[$216 >> 2] | 0; $218 = ($217 + -1) | 0; HEAP32[$216 >> 2] = $218; } $219 = ($177 + 44) | 0; $220 = HEAP32[$219 >> 2] | 0; HEAP32[$symp$0$ph130 >> 2] = $220; $221 = HEAP32[$167 >> 2] | 0; $222 = ($221 + -1) | 0; HEAP32[$167 >> 2] = $222; HEAP32[$219 >> 2] = 0; __zbar_image_scanner_recycle_syms($iscn, $177); $223 = HEAP32[$symp$0$ph130 >> 2] | 0; $224 = ($223 | 0) == (0 | 0); if ($224) { $naddon$0$ph118 = $naddon$0$ph125; $nean$0$ph108 = $nean$0$ph120; label = 103; break L88; } else { $177 = $223; } } } else { $226 = $339; while (1) { $225 = ($226 + 56) | 0; $227 = HEAP32[$225 >> 2] | 0; $228 = ($227 | 0) < 1; if (!$228) { $281 = $226; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; break L90; } $229 = HEAP32[$226 >> 2] | 0; $$off = ($229 + -2) | 0; $230 = $$off >>> 0 < 13; if (!$230) { if (!((($229 | 0) == 38) | (($229 | 0) == 35) | (($229 | 0) == 34))) { $281 = $226; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; break L90; } } $231 = ($226 + 60) | 0; $232 = HEAP32[$231 >> 2] | 0; $233 = ($232 | 0) < 4; if (!$233) { $274 = $229; $340 = $226; label = 98; break L90; } $234 = HEAP32[$161 >> 2] | 0; $235 = ($234 | 0) == 0; if (!$235) { $236 = HEAP32[$175 >> 2] | 0; $237 = ($236 | 0) == (0 | 0); if ($237) { label = 96; break L88; } $238 = ($226 + 16) | 0; $239 = ($226 + 20) | 0; $240 = ($226 + 52) | 0; $343 = $229; $344 = $236; $entry$0$ph4$i = $175; L124: while (1) { $244 = $344; $246 = $343; while (1) { $243 = HEAP32[$244 >> 2] | 0; $245 = ($243 | 0) == ($246 | 0); do { if ($245) { $247 = ($244 + 16) | 0; $248 = HEAP32[$247 >> 2] | 0; $249 = HEAP32[$238 >> 2] | 0; $250 = ($248 | 0) == ($249 | 0); if (!$250) { break; } $251 = ($244 + 20) | 0; $252 = HEAP32[$251 >> 2] | 0; $253 = HEAP32[$239 >> 2] | 0; $254 = _memcmp($252, $253, $248) | 0; $255 = ($254 | 0) == 0; if ($255) { break L124; } } } while (0); $256 = HEAP32[$240 >> 2] | 0; $257 = ($244 + 52) | 0; $258 = HEAP32[$257 >> 2] | 0; $259 = ($256 - $258) | 0; $260 = $259 >>> 0 > 4000; $261 = ($244 + 44) | 0; $241 = HEAP32[$261 >> 2] | 0; if (!$260) { break; } HEAP32[$261 >> 2] = 0; $262 = HEAP32[$entry$0$ph4$i >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $262); HEAP32[$entry$0$ph4$i >> 2] = $241; $263 = ($241 | 0) == (0 | 0); if ($263) { label = 96; break L88; } $$pre223 = HEAP32[$226 >> 2] | 0; $244 = $241; $246 = $$pre223; } $242 = ($241 | 0) == (0 | 0); if ($242) { label = 96; break L88; } else { $343 = $246; $344 = $241; $entry$0$ph4$i = $261; } } $264 = ($244 | 0) == (0 | 0); if ($264) { label = 96; break L88; } $265 = ($244 + 56) | 0; $266 = HEAP32[$265 >> 2] | 0; $267 = ($266 + -1) | 0; HEAP32[$265 >> 2] = $267; } $268 = ($226 + 44) | 0; $269 = HEAP32[$268 >> 2] | 0; HEAP32[$symp$0$ph130 >> 2] = $269; $270 = HEAP32[$167 >> 2] | 0; $271 = ($270 + -1) | 0; HEAP32[$167 >> 2] = $271; HEAP32[$268 >> 2] = 0; __zbar_image_scanner_recycle_syms($iscn, $226); $272 = HEAP32[$symp$0$ph130 >> 2] | 0; $273 = ($272 | 0) == (0 | 0); if ($273) { $naddon$0$ph118 = $naddon$0$ph125; $nean$0$ph108 = $nean$0$ph120; label = 103; break L88; } else { $226 = $272; } } } } while (0); do { if ((label | 0) == 98) { label = 0; $275 = $274 >>> 0 > 14; $276 = ($274 | 0) == 10; $or$cond7 = $275 | $276; if ($or$cond7) { $281 = $340; $naddon$1 = $naddon$0$ph125; $nean$1 = $nean$0$ph120; } else { $277 = $274 >>> 0 > 5; if ($277) { $278 = ($nean$0$ph120 + 1) | 0; $281 = $340; $naddon$1 = $naddon$0$ph125; $nean$1 = $278; break; } else { $279 = ($naddon$0$ph125 + 1) | 0; $281 = $340; $naddon$1 = $279; $nean$1 = $nean$0$ph120; break; } } } } while (0); $280 = ($281 + 44) | 0; $282 = HEAP32[$280 >> 2] | 0; $283 = ($282 | 0) == (0 | 0); if ($283) { $naddon$0$ph118 = $naddon$1; $nean$0$ph108 = $nean$1; label = 103; break; } else { $339 = $282; $naddon$0$ph125 = $naddon$1; $nean$0$ph120 = $nean$1; $symp$0$ph130 = $280; } } if ((label | 0) == 96) { ___assert_fail(6400 | 0, 6336 | 0, 831, 6512 | 0); // unreachable; } else if ((label | 0) == 103) { $284 = ($nean$0$ph108 | 0) == 1; $285 = ($naddon$0$ph118 | 0) == 1; $or$cond8 = $284 & $285; if (!$or$cond8) { break; } $286 = ($iscn + 104) | 0; $287 = HEAP32[$286 >> 2] | 0; $288 = ($287 | 0) == 0; if ($288) { break; } $289 = HEAP32[$170 >> 2] | 0; $290 = ($289 | 0) == (0 | 0); if ($290) { ___assert_fail(6736 | 0, 6336 | 0, 871, 6512 | 0); // unreachable; } else { $345 = $289; $addon$0$ph96 = 0; $ean$0$ph95 = 0; $symp$1$ph94 = $170; } L151: while (1) { $294 = $345; $addon$019 = $addon$0$ph96; $ean$018 = $ean$0$ph95; while (1) { $293 = HEAP32[$294 >> 2] | 0; $$off15 = ($293 + -2) | 0; $295 = $$off15 >>> 0 < 13; $296 = ($294 + 44) | 0; $291 = HEAP32[$296 >> 2] | 0; if (!$295) { break; } HEAP32[$symp$1$ph94 >> 2] = $291; $297 = HEAP32[$167 >> 2] | 0; $298 = ($297 + -1) | 0; HEAP32[$167 >> 2] = $298; HEAP32[$296 >> 2] = 0; $299 = $293 >>> 0 < 6; $ean$0$ = $299 ? $ean$018 : $294; $$addon$0 = $299 ? $294 : $addon$019; $300 = HEAP32[$symp$1$ph94 >> 2] | 0; $301 = ($300 | 0) == (0 | 0); if ($301) { $addon$0$lcssa = $$addon$0; $ean$0$lcssa = $ean$0$; break L151; } else { $294 = $300; $addon$019 = $$addon$0; $ean$018 = $ean$0$; } } $292 = ($291 | 0) == (0 | 0); if ($292) { $addon$0$lcssa = $addon$019; $ean$0$lcssa = $ean$018; break; } else { $345 = $291; $addon$0$ph96 = $addon$019; $ean$0$ph95 = $ean$018; $symp$1$ph94 = $296; } } $302 = ($ean$0$lcssa | 0) == (0 | 0); if ($302) { ___assert_fail(6736 | 0, 6336 | 0, 871, 6512 | 0); // unreachable; } $303 = ($addon$0$lcssa | 0) == (0 | 0); if ($303) { ___assert_fail(6744 | 0, 6336 | 0, 872, 6512 | 0); // unreachable; } else { $304 = ($ean$0$lcssa + 16) | 0; $305 = HEAP32[$304 >> 2] | 0; $306 = ($addon$0$lcssa + 16) | 0; $307 = HEAP32[$306 >> 2] | 0; $308 = ($305 + 1) | 0; $309 = ($308 + $307) | 0; $310 = __zbar_image_scanner_alloc_sym($iscn, 15, $309) | 0; $311 = ($ean$0$lcssa + 36) | 0; $312 = HEAP32[$311 >> 2] | 0; $313 = ($310 + 36) | 0; HEAP32[$313 >> 2] = $312; $314 = __zbar_symbol_set_create() | 0; $315 = ($310 + 48) | 0; HEAP32[$315 >> 2] = $314; $316 = ($310 + 20) | 0; $317 = HEAP32[$316 >> 2] | 0; $318 = ($ean$0$lcssa + 20) | 0; $319 = HEAP32[$318 >> 2] | 0; $320 = HEAP32[$304 >> 2] | 0; _memcpy($317 | 0, $319 | 0, $320 | 0) | 0; $321 = HEAP32[$316 >> 2] | 0; $322 = HEAP32[$304 >> 2] | 0; $323 = ($321 + $322) | 0; $324 = ($addon$0$lcssa + 20) | 0; $325 = HEAP32[$324 >> 2] | 0; $326 = HEAP32[$306 >> 2] | 0; $327 = ($326 + 1) | 0; _memcpy($323 | 0, $325 | 0, $327 | 0) | 0; $328 = HEAP32[$315 >> 2] | 0; $329 = ($328 + 8) | 0; HEAP32[$329 >> 2] = $ean$0$lcssa; $330 = ($ean$0$lcssa + 44) | 0; HEAP32[$330 >> 2] = $addon$0$lcssa; $331 = HEAP32[$315 >> 2] | 0; $332 = ($331 + 4) | 0; HEAP32[$332 >> 2] = 2; __zbar_image_scanner_add_sym($iscn, $310); break; } } } } while (0); $$pr14 = HEAP32[$167 >> 2] | 0; $333 = ($$pr14 | 0) == 0; if ($333) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $334 = ($iscn + 16) | 0; $335 = HEAP32[$334 >> 2] | 0; $336 = ($335 | 0) == (0 | 0); if ($336) { $$0 = $$pr14; STACKTOP = sp; return $$0 | 0; } $337 = ($iscn + 12) | 0; $338 = HEAP32[$337 >> 2] | 0; FUNCTION_TABLE_vii[$335 & 0]($img, $338); $$pre = HEAP32[$167 >> 2] | 0; $$0 = $$pre; STACKTOP = sp; return $$0 | 0; } function _zbar_scanner_create($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; $0 = _malloc(48) | 0; HEAP32[$0 >> 2] = $dcode; $1 = ($0 + 4) | 0; HEAP32[$1 >> 2] = 4; $2 = ($0 + 8) | 0; dest = ($2 + 0) | 0; stop = (dest + 40) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $3 = ($0 + 32) | 0; HEAP32[$3 >> 2] = 4; $4 = ($dcode | 0) == (0 | 0); if ($4) { STACKTOP = sp; return $0 | 0; } _zbar_decoder_reset($dcode); STACKTOP = sp; return $0 | 0; } function _zbar_scanner_destroy($scn) { $scn = $scn | 0; var label = 0, sp = 0; sp = STACKTOP; _free($scn); STACKTOP = sp; return; } function _zbar_scanner_get_width($scn) { $scn = $scn | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($scn + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_scanner_get_edge($scn, $offset, $prec) { $scn = $scn | 0; $offset = $offset | 0; $prec = $prec | 0; var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($scn + 40) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 - $offset) | 0; $3 = ($2 + -48) | 0; $4 = (5 - $prec) | 0; $5 = ($4 | 0) > 0; if ($5) { $6 = $3 >>> $4; $$0 = $6; } else { $7 = ($prec | 0) == 5; if ($7) { $$0 = $3; } else { $8 = (0 - $4) | 0; $9 = $3 << $8; $$0 = $9; } } STACKTOP = sp; return $$0 | 0; } function _zbar_scanner_flush($scn) { $scn = $scn | 0; var $$0 = 0, $$0$i = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; var $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($scn + 28) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; if ($2) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $3 = ($scn + 8) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = $4 << 5; $6 = $5 | 16; $7 = ($scn + 36) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($8 | 0) != ($6 | 0); $10 = ($1 | 0) > 0; $or$cond = $9 | $10; if (!$or$cond) { $22 = ($scn + 44) | 0; HEAP32[$22 >> 2] = 0; HEAP32[$0 >> 2] = 0; $23 = HEAP32[$scn >> 2] | 0; $24 = ($23 | 0) == (0 | 0); if ($24) { $$0 = 1; STACKTOP = sp; return $$0 | 0; } $25 = _zbar_decode_width($23, 0) | 0; $$0 = $25; STACKTOP = sp; return $$0 | 0; } $11 = ($scn + 40) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 | 0) == 0; if ($13) { HEAP32[$11 >> 2] = $8; $15 = $8; } else { $15 = $12; } $14 = ($8 - $15) | 0; $16 = ($scn + 44) | 0; HEAP32[$16 >> 2] = $14; HEAP32[$11 >> 2] = $8; $17 = HEAP32[$scn >> 2] | 0; $18 = ($17 | 0) == (0 | 0); if ($18) { $$0$i = 1; $21 = $1; } else { $19 = _zbar_decode_width($17, $14) | 0; $$pre = HEAP32[$0 >> 2] | 0; $$0$i = $19; $21 = $$pre; } HEAP32[$7 >> 2] = $6; $20 = (0 - $21) | 0; HEAP32[$0 >> 2] = $20; $$0 = $$0$i; STACKTOP = sp; return $$0 | 0; } function _zbar_scanner_new_scan($scn) { $scn = $scn | 0; var $$0$i = 0, $$0$i$i = 0, $$edge$0 = 0, $$edge$05 = 0, $$pre = 0, $$pre$i = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; var $8 = 0, $9 = 0, $edge$0$lcssa = 0, $edge$01 = 0, $or$cond$i = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; $0 = ($scn + 28) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == 0; $3 = ($scn + 8) | 0; L1: do { if ($2) { $$pre$phiZ2D = $scn; $edge$0$lcssa = 0; } else { $4 = ($scn + 36) | 0; $5 = ($scn + 40) | 0; $6 = ($scn + 44) | 0; $12 = $1; $edge$01 = 0; while (1) { $7 = HEAP32[$3 >> 2] | 0; $8 = $7 << 5; $9 = $8 | 16; $10 = HEAP32[$4 >> 2] | 0; $11 = ($10 | 0) != ($9 | 0); $13 = ($12 | 0) > 0; $or$cond$i = $11 | $13; if ($or$cond$i) { $14 = HEAP32[$5 >> 2] | 0; $15 = ($14 | 0) == 0; if ($15) { HEAP32[$5 >> 2] = $10; $17 = $10; } else { $17 = $14; } $16 = ($10 - $17) | 0; HEAP32[$6 >> 2] = $16; HEAP32[$5 >> 2] = $10; $18 = HEAP32[$scn >> 2] | 0; $19 = ($18 | 0) == (0 | 0); if ($19) { $$0$i$i = 1; $22 = $12; } else { $20 = _zbar_decode_width($18, $16) | 0; $$pre$i = HEAP32[$0 >> 2] | 0; $$0$i$i = $20; $22 = $$pre$i; } HEAP32[$4 >> 2] = $9; $21 = (0 - $22) | 0; HEAP32[$0 >> 2] = $21; $$0$i = $$0$i$i; $28 = $21; } else { HEAP32[$6 >> 2] = 0; HEAP32[$0 >> 2] = 0; $23 = HEAP32[$scn >> 2] | 0; $24 = ($23 | 0) == (0 | 0); if ($24) { break; } $26 = _zbar_decode_width($23, 0) | 0; $$pre = HEAP32[$0 >> 2] | 0; $$0$i = $26; $28 = $$pre; } $27 = $$0$i >>> 0 > $edge$01 >>> 0; $$edge$0 = $27 ? $$0$i : $edge$01; $29 = ($28 | 0) == 0; if ($29) { $$pre$phiZ2D = $scn; $edge$0$lcssa = $$edge$0; break L1; } else { $12 = $28; $edge$01 = $$edge$0; } } $25 = ($edge$01 | 0) == 0; $$edge$05 = $25 ? 1 : $edge$01; $$pre$phiZ2D = $scn; $edge$0$lcssa = $$edge$05; } } while (0); dest = ($3 + 0) | 0; stop = (dest + 40) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $30 = ($scn + 4) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($scn + 32) | 0; HEAP32[$32 >> 2] = $31; $33 = HEAP32[$$pre$phiZ2D >> 2] | 0; $34 = ($33 | 0) == (0 | 0); if ($34) { STACKTOP = sp; return $edge$0$lcssa | 0; } _zbar_decoder_new_scan($33); STACKTOP = sp; return $edge$0$lcssa | 0; } function _zbar_scan_y($scn, $y) { $scn = $scn | 0; $y = $y | 0; var $$ = 0, $$0$i = 0, $$12 = 0, $$lobit = 0, $$lobit11 = 0, $$sink = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $edge$015 = 0, $edge$1 = 0, $ispos = 0, $ispos1 = 0, $ispos3 = 0, $ispos5 = 0, $neg = 0, $neg2 = 0, $neg4 = 0, $neg6 = 0, $y0_0$0 = 0, $y0_1$0 = 0, $y1_1$0 = 0, label = 0; var sp = 0; sp = STACKTOP; $0 = ($scn + 8) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 + 3) | 0; $3 = $2 & 3; $4 = ((($scn + ($3 << 2)) | 0) + 12) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($1 | 0) == 0; if ($6) { $13 = ($scn + 24) | 0; HEAP32[$13 >> 2] = $y; $14 = ($scn + 20) | 0; HEAP32[$14 >> 2] = $y; $15 = ($scn + 16) | 0; HEAP32[$15 >> 2] = $y; $16 = ($scn + 12) | 0; HEAP32[$16 >> 2] = $y; $y0_0$0 = $y; $y0_1$0 = $y; } else { $7 = ($y - $5) | 0; $8 = ($7 * 25) | 0; $9 = $8 >> 5; $10 = ($9 + $5) | 0; $11 = $1 & 3; $12 = ((($scn + ($11 << 2)) | 0) + 12) | 0; HEAP32[$12 >> 2] = $10; $y0_0$0 = $10; $y0_1$0 = $5; } $17 = ($1 + 2) | 0; $18 = $17 & 3; $19 = ((($scn + ($18 << 2)) | 0) + 12) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($1 + 1) | 0; $22 = $21 & 3; $23 = ((($scn + ($22 << 2)) | 0) + 12) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($y0_1$0 - $20) | 0; $26 = ($20 - $24) | 0; $ispos = ($25 | 0) > -1; $neg = (0 - $25) | 0; $27 = $ispos ? $25 : $neg; $ispos1 = ($26 | 0) > -1; $neg2 = (0 - $26) | 0; $28 = $ispos1 ? $26 : $neg2; $29 = ($27 | 0) < ($28 | 0); if ($29) { $$lobit = $25 >>> 31; $$lobit11 = $26 >>> 31; $30 = ($$lobit | 0) == ($$lobit11 | 0); $$ = $30 ? $26 : $25; $y1_1$0 = $$; } else { $y1_1$0 = $25; } $31 = $y0_1$0 << 1; $32 = ($y0_0$0 - $31) | 0; $33 = ($32 + $20) | 0; $34 = $20 << 1; $35 = ($y0_1$0 - $34) | 0; $36 = ($35 + $24) | 0; $37 = ($33 | 0) != 0; do { if ($37) { $38 = ($33 | 0) > 0; if ($38) { $39 = ($36 | 0) < 0; if ($39) { break; } else { $edge$1 = 0; } HEAP32[$0 >> 2] = $21; STACKTOP = sp; return $edge$1 | 0; } else { $40 = ($36 | 0) > 0; if ($40) { break; } else { $edge$1 = 0; } HEAP32[$0 >> 2] = $21; STACKTOP = sp; return $edge$1 | 0; } } } while (0); $41 = ($scn + 32) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($scn + 4) | 0; $44 = HEAP32[$43 >> 2] | 0; $45 = $42 >>> 0 > $44 >>> 0; do { if ($45) { $46 = ($scn + 44) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) == 0; if ($48) { $$0$i = $44; } else { $49 = HEAP32[$0 >> 2] | 0; $50 = $49 << 5; $51 = ($scn + 40) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($50 - $52) | 0; $54 = Math_imul($53, $42) | 0; $55 = (($54 >>> 0) / ($47 >>> 0)) & -1; $56 = $55 >>> 3; $57 = $42 >>> 0 > $56 >>> 0; if ($57) { $58 = ($42 - $56) | 0; $59 = $58 >>> 0 > $44 >>> 0; if ($59) { $$0$i = $58; break; } } HEAP32[$41 >> 2] = $44; $$0$i = $44; } } else { $$0$i = $44; } } while (0); $ispos3 = ($y1_1$0 | 0) > -1; $neg4 = (0 - $y1_1$0) | 0; $60 = $ispos3 ? $y1_1$0 : $neg4; $61 = $$0$i >>> 0 > $60 >>> 0; if ($61) { $edge$1 = 0; HEAP32[$0 >> 2] = $21; STACKTOP = sp; return $edge$1 | 0; } $62 = ($scn + 28) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = ($63 | 0) > 0; $65 = ($y1_1$0 | 0) < 0; $66 = ($y1_1$0 | 0) > 0; $$sink = $64 ? $65 : $66; if ($$sink) { $67 = ($63 | 0) == 0; if ($67) { $68 = ($scn + 36) | 0; HEAP32[$68 >> 2] = 48; $69 = ($scn + 40) | 0; HEAP32[$69 >> 2] = 48; $77 = 48; $78 = 48; } else { $70 = ($scn + 40) | 0; $71 = HEAP32[$70 >> 2] | 0; $72 = ($71 | 0) == 0; $73 = ($scn + 36) | 0; $74 = HEAP32[$73 >> 2] | 0; if ($72) { HEAP32[$70 >> 2] = $74; $77 = $74; $78 = $74; } else { $77 = $71; $78 = $74; } } $75 = ($scn + 40) | 0; $76 = ($78 - $77) | 0; $79 = ($scn + 44) | 0; HEAP32[$79 >> 2] = $76; HEAP32[$75 >> 2] = $78; $80 = HEAP32[$scn >> 2] | 0; $81 = ($80 | 0) == (0 | 0); if ($81) { $edge$015 = 1; } else { $82 = _zbar_decode_width($80, $76) | 0; $edge$015 = $82; } } else { $ispos5 = ($63 | 0) > -1; $neg6 = (0 - $63) | 0; $83 = $ispos5 ? $63 : $neg6; $84 = ($83 | 0) < ($60 | 0); if ($84) { $edge$015 = 0; } else { $edge$1 = 0; HEAP32[$0 >> 2] = $21; STACKTOP = sp; return $edge$1 | 0; } } HEAP32[$62 >> 2] = $y1_1$0; $85 = ($60 * 14) | 0; $86 = ($85 + 16) | 0; $87 = $86 >>> 5; $88 = HEAP32[$43 >> 2] | 0; $89 = $87 >>> 0 < $88 >>> 0; $$12 = $89 ? $88 : $87; HEAP32[$41 >> 2] = $$12; $90 = ($33 - $36) | 0; $91 = ($scn + 36) | 0; HEAP32[$91 >> 2] = 32; $92 = ($33 | 0) == ($36 | 0); if ($92) { HEAP32[$91 >> 2] = 16; $99 = 16; } else { if ($37) { $93 = $33 << 5; $94 = $93 | 1; $95 = (($94 | 0) / ($90 | 0)) & -1; $96 = (32 - $95) | 0; HEAP32[$91 >> 2] = $96; $99 = $96; } else { $99 = 32; } } $97 = $1 << 5; $98 = ($99 + $97) | 0; HEAP32[$91 >> 2] = $98; $edge$1 = $edge$015; HEAP32[$0 >> 2] = $21; STACKTOP = sp; return $edge$1 | 0; } function __zbar_decoder_get_qr_finder_line($dcode) { $dcode = $dcode | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 112) | 0; STACKTOP = sp; return $0 | 0; } function __zbar_find_qr($dcode) { $dcode = $dcode | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP8[$dcode >> 0] | 0; $1 = $0 & 255; $2 = ($1 + 10) | 0; $3 = $2 & 15; $4 = ((($dcode + ($3 << 2)) | 0) + 4) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($dcode + 108) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($7 - $5) | 0; HEAP32[$6 >> 2] = $8; $9 = ($1 + 15) | 0; $10 = $9 & 15; $11 = ((($dcode + ($10 << 2)) | 0) + 4) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($12 + $8) | 0; HEAP32[$6 >> 2] = $13; $14 = $0 & 1; $15 = ($14 << 24) >> 24 != 0; $16 = $13 >>> 0 < 7; $or$cond = $15 | $16; if ($or$cond) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $17 = HEAP32[$11 >> 2] | 0; $18 = ($1 + 14) | 0; $19 = $18 & 15; $20 = ((($dcode + ($19 << 2)) | 0) + 4) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($21 + $17) | 0; $23 = ($22 * 14) | 0; $24 = $23 | 1; $25 = (($24 >>> 0) / ($13 >>> 0)) & -1; $26 = ($25 + 509) | 0; $27 = $26 & 510; $28 = ($27 | 0) == 0; if (!$28) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $29 = ($1 + 13) | 0; $30 = $29 & 15; $31 = ((($dcode + ($30 << 2)) | 0) + 4) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($32 + $21) | 0; $34 = ($33 * 14) | 0; $35 = $34 | 1; $36 = (($35 >>> 0) / ($13 >>> 0)) & -1; $37 = ($36 + 509) | 0; $38 = $37 & 510; $39 = ($38 | 0) == 4; if (!$39) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $40 = ($1 + 12) | 0; $41 = $40 & 15; $42 = ((($dcode + ($41 << 2)) | 0) + 4) | 0; $43 = HEAP32[$42 >> 2] | 0; $44 = ($43 + $32) | 0; $45 = ($44 * 14) | 0; $46 = $45 | 1; $47 = (($46 >>> 0) / ($13 >>> 0)) & -1; $48 = ($47 + 509) | 0; $49 = $48 & 510; $50 = ($49 | 0) == 4; if (!$50) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $51 = ($1 + 11) | 0; $52 = $51 & 15; $53 = ((($dcode + ($52 << 2)) | 0) + 4) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($54 + $43) | 0; $56 = ($55 * 14) | 0; $57 = $56 | 1; $58 = (($57 >>> 0) / ($13 >>> 0)) & -1; $59 = ($58 + 509) | 0; $60 = $59 & 510; $61 = ($60 | 0) == 0; if (!$61) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $62 = $1 & 15; $63 = ((($dcode + ($62 << 2)) | 0) + 4) | 0; $64 = HEAP32[$63 >> 2] | 0; $65 = ($17 + 1) | 0; $66 = $65 >>> 1; $67 = ($64 + $66) | 0; $68 = ($dcode + 128) | 0; HEAP32[$68 >> 2] = $67; $69 = ($64 + $17) | 0; $70 = HEAP32[$20 >> 2] | 0; $71 = ($69 + $70) | 0; $72 = ($dcode + 120) | 0; HEAP32[$72 >> 2] = $71; $73 = HEAP32[$31 >> 2] | 0; $74 = ($73 + $71) | 0; $75 = ($dcode + 112) | 0; HEAP32[$75 >> 2] = $74; $76 = ($dcode + 116) | 0; HEAP32[$76 >> 2] = $74; $77 = HEAP32[$53 >> 2] | 0; $78 = HEAP32[$42 >> 2] | 0; $79 = ($78 + $74) | 0; $80 = ($77 + 1) | 0; $81 = $80 >>> 1; $82 = ($79 + $81) | 0; $83 = ($dcode + 124) | 0; HEAP32[$83 >> 2] = $82; $84 = ($dcode + 80) | 0; HEAP32[$84 >> 2] = 0; $85 = ($dcode + 92) | 0; HEAP32[$85 >> 2] = 0; $$0 = 64; STACKTOP = sp; return $$0 | 0; } function __zbar_qr_create() { var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _calloc(1, 2856) | 0; $1 = ($0 + 768) | 0; _isaac_init($1, 0, 0); _rs_gf256_init($0, 29); STACKTOP = sp; return $0 | 0; } function __zbar_qr_destroy($reader) { $reader = $reader | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $vararg_buffer = sp; $0 = HEAP32[80 >> 2] | 0; $1 = ($0 | 0) > 0; if ($1) { $2 = HEAP32[_stderr >> 2] | 0; $3 = ($reader + 2840) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($reader + 2852) | 0; $6 = HEAP32[$5 >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 7224; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $4; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $6; _fprintf($2 | 0, 7192 | 0, $vararg_buffer | 0) | 0; } $7 = ($reader + 2832) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($8 | 0) == (0 | 0); if (!$9) { _free($8); } $10 = ($reader + 2844) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 | 0) == (0 | 0); if ($12) { _free($reader); STACKTOP = sp; return; } _free($11); _free($reader); STACKTOP = sp; return; } function __zbar_qr_reset($reader) { $reader = $reader | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($reader + 2836) | 0; HEAP32[$0 >> 2] = 0; $1 = ($reader + 2848) | 0; HEAP32[$1 >> 2] = 0; STACKTOP = sp; return; } function _qr_reader_match_centers($_reader, $_qrlist, $_centers, $_ncenters, $_img, $_width, $_height) { $_reader = $_reader | 0; $_qrlist = $_qrlist | 0; $_centers = $_centers | 0; $_ncenters = $_ncenters | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $$$i = 0, $$$i$i = 0, $$$i$i$i = 0, $$$i88$i$i = 0, $$0$i = 0, $$01$i = 0, $$1$i = 0, $$16$i = 0, $$idx$i = 0, $$idx$val$i = 0, $$idx10 = 0, $$idx10$val = 0, $$idx16 = 0, $$idx16$val = 0, $$idx19$i = 0, $$idx19$val$i = 0, $$idx20 = 0, $$idx20$val = 0, $$idx21$i = 0, $$idx21$val$i = 0; var $$idx22 = 0, $$idx22$val = 0, $$idx23$i = 0, $$idx23$val$i = 0, $$idx24 = 0, $$idx24$val = 0, $$idx25$1$i = 0, $$idx25$val$1$i = 0, $$idx31$i = 0, $$idx31$val$i = 0, $$idx33$i = 0, $$idx33$val$i = 0, $$idx48$val$i$i = 0, $$idx49$val$i$i = 0, $$idx54$val$i$i = 0, $$idx55$val$i$i = 0, $$idx60$i$i = 0, $$idx60$val$i$i = 0, $$idx61$i$i = 0, $$idx61$val$i$i = 0; var $$idx66$i$i = 0, $$idx66$val$i$i = 0, $$idx67$i$i = 0, $$idx67$val$i$i = 0, $$idx69$i$i = 0, $$idx69$val$i$i = 0, $$idx71$i$i = 0, $$idx71$val$i$i = 0, $$lobit$i = 0, $$maxd$0$i = 0, $$neg$i = 0, $$neg103$i$i = 0, $$not$i$i$i = 0, $$not$i80$i$i = 0, $$not7$i$i$i = 0, $$not7$i83$i$i = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i25 = 0, $$pre1$i = 0; var $$pre104$i = 0, $$pre105$i = 0, $$pre106$i = 0, $$pre107$i = 0, $$pre108$i = 0, $$pre149$i$i = 0, $$val$i = 0, $$val15 = 0, $$val18$i = 0, $$val19 = 0, $$val20$i = 0, $$val21 = 0, $$val22$i = 0, $$val23 = 0, $$val24$1$i = 0, $$val30$i = 0, $$val32$i = 0, $$val47$i$i = 0, $$val53$i$i = 0, $$val59$i$i = 0; var $$val65$i$i = 0, $$val68$i$i = 0, $$val70$i$i = 0, $$val9 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0; var $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0; var $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0; var $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0; var $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0; var $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0; var $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0; var $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0; var $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0; var $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0; var $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0; var $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0; var $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0; var $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0; var $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0; var $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0; var $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0; var $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0; var $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0; var $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0; var $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0; var $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0; var $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0; var $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0; var $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0; var $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0; var $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0; var $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0; var $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0; var $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0; var $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0; var $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0; var $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0; var $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0; var $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0; var $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0; var $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0; var $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0; var $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0, $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $17 = 0, $170 = 0, $171 = 0; var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0; var $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; var $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0; var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0; var $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0; var $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0; var $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0; var $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0; var $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0; var $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0; var $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0; var $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0; var $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0; var $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0; var $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0; var $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0; var $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0; var $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0; var $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0; var $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0; var $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0; var $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0; var $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0; var $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0; var $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0; var $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0; var $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0; var $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0; var $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0; var $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0; var $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0; var $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0; var $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0; var $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0; var $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0; var $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0; var $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0; var $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $_l$idx$val$i$i$i = 0, $_l$idx$val$i$i54$i = 0; var $_l$idx1$val$i$i$i = 0, $_l$idx1$val$i$i56$i = 0, $_l$val$i$i$i = 0, $_l$val$i$i52$i = 0, $aff$i = 0, $b$0$i$i = 0, $b$0$ph$i$i = 0, $b$1$i$i = 0, $bbox$i = 0, $blastfit$0$i$i = 0, $blastfit$0$ph$i$i = 0, $blastfit$2$i$i = 0, $brx$2$i$i = 0, $bry$2$i$i = 0, $bu$0$i$i = 0, $bu$0$ph$i$i = 0, $bu$1$i$i = 0, $bu$3$i$i = 0, $bu$4$i$i = 0, $bv$0$i$i = 0; var $bv$0$ph$i$i = 0, $bv$2$i$i = 0, $bx$0$i$i = 0, $bx$0$ph$i$i = 0, $bx$2$i$i = 0, $by$0$i$i = 0, $by$0$ph$i$i = 0, $by$2$i$i = 0, $c = 0, $cb$0$i$i = 0, $cb$0$ph$i$i = 0, $cb$1$i$i = 0, $cell$i$i = 0, $ci$i = 0, $cr$0$ph$i$i = 0, $cr$1$i$i = 0, $d$0$i$i$i = 0, $dbv$i$i = 0, $dbxi$0$i$i = 0, $dbxi$0$ph$i$i = 0; var $dbxi$3$i$i = 0, $dbyi$0$i$i = 0, $dbyi$0$ph$i$i = 0, $dbyi$3$i$i = 0, $dl$i = 0, $dl_version$0$i = 0, $dru$i$i = 0, $drxi$0$ph$i$i = 0, $drxi$3$i$i = 0, $dryi$0$ph$i$i = 0, $dryi$3$i$i = 0, $exitcond = 0, $exitcond$i = 0, $exitcond$i$i = 0, $exitcond$i51$i = 0, $exitcond90$i = 0, $exitcond93 = 0, $exitcond94 = 0, $hom$i = 0, $i$0$i0$0$1$i = 0; var $i$0$i0$0$i = 0, $i$01$i$i = 0, $i$01$i50$i = 0, $i$0121$i$i = 0, $i$078 = 0, $i$1$i = 0, $i$1$lcssa = 0, $i$1120$i$i = 0, $i$172 = 0, $i$2$_ncenters = 0, $i$2$lcssa = 0, $i$2108$i$i = 0, $i$261 = 0, $i$4 = 0, $ispos$i = 0, $ispos$i$i = 0, $ispos$i$i$i = 0, $ispos$i34$i = 0, $ispos10$i = 0, $ispos10$i$i = 0; var $ispos11$i$i$i = 0, $ispos12$i = 0, $ispos121$i$i$i = 0, $ispos135$i$i$i = 0, $ispos139$i$i$i = 0, $ispos14$i = 0, $ispos14$i$i = 0, $ispos15$i$i$i = 0, $ispos2$i = 0, $ispos20$i$i = 0, $ispos21$i$i$i = 0, $ispos23$i$i$i = 0, $ispos24$i$i = 0, $ispos27$i$i$i = 0, $ispos3$i$i$i = 0, $ispos30$i$i = 0, $ispos34$i$i = 0, $ispos4$i = 0, $ispos4$i$i = 0, $ispos43$i$i$i = 0; var $ispos6$i = 0, $ispos77$i$i$i = 0, $ispos8$i = 0, $ispos9$i$i$i = 0, $ispos91$i$i$i = 0, $ispos95$i$i$i = 0, $j$0 = 0, $j$0$in71 = 0, $j$069 = 0, $j$074 = 0, $j$1$_ncenters = 0, $j$1$lcssa = 0, $j$157 = 0, $j$3 = 0, $k$0$_ncenters = 0, $k$059 = 0, $k$2 = 0, $l$147 = 0, $l$249 = 0, $l$354 = 0; var $l$i$i = 0, $nb$0$i$i = 0, $nb$0$ph$i$i = 0, $nb$2$i$i = 0, $nbempty$0$i$i = 0, $nbempty$0$ph$i$i = 0, $nbempty$1$i$i = 0, $nbempty$2$i$i = 0, $neg$i = 0, $neg$i$i = 0, $neg$i$i$i = 0, $neg$i35$i = 0, $neg10$i$i$i = 0, $neg11$i = 0, $neg11$i$i = 0, $neg12$i$i$i = 0, $neg122$i$i$i = 0, $neg13$i = 0, $neg136$i$i$i = 0, $neg140$i$i$i = 0; var $neg15$i = 0, $neg15$i$i = 0, $neg16$i$i$i = 0, $neg21$i$i = 0, $neg22$i$i$i = 0, $neg24$i$i$i = 0, $neg25$i$i = 0, $neg28$i$i$i = 0, $neg3$i = 0, $neg31$i$i = 0, $neg35$i$i = 0, $neg4$i$i$i = 0, $neg44$i$i$i = 0, $neg5$i = 0, $neg5$i$i = 0, $neg7$i = 0, $neg78$i$i$i = 0, $neg9$i = 0, $neg92$i$i$i = 0, $neg96$i$i$i = 0; var $nfailures$079 = 0, $nfailures$1$lcssa = 0, $nfailures$173 = 0, $nfailures$2$lcssa = 0, $nfailures$263 = 0, $nfailures$4 = 0, $ninside$046 = 0, $ninside$1 = 0, $ninside$248 = 0, $ninside$3 = 0, $not$$i$i = 0, $not$98$i$i = 0, $notlhs$i$i$i = 0, $notlhs$i76$i$i = 0, $notrhs$i$i$i = 0, $notrhs$i77$i$i = 0, $nr$0$ph$i$i = 0, $nr$2$i$i = 0, $nrempty$0$ph$i$i = 0, $nrempty$1$i$i = 0; var $nrempty$2$i$i = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i$i = 0, $or$cond$not$i$i$i = 0, $or$cond$not$i78$i$i = 0, $or$cond1$i$i$i = 0, $or$cond1$i79$i$i = 0, $or$cond17$i = 0, $or$cond2 = 0, $or$cond2$not$i$i$i = 0, $or$cond2$not$i81$i$i = 0, $or$cond256 = 0, $or$cond3$i$i$i = 0, $or$cond3$i82$i$i = 0, $or$cond4$not$i$i$i = 0, $or$cond4$not$i84$i$i = 0, $or$cond43$i$i = 0, $or$cond45$i$i = 0, $or$cond5$i$i$i = 0; var $or$cond5$i85$i$i = 0, $or$cond5$not$i$i$i = 0, $or$cond5$not$i86$i$i = 0, $or$cond6$i$i$i = 0, $or$cond6$i87$i$i = 0, $or$cond70 = 0, $p3$i$i = 0, $qrdata = 0, $r$0$ph$i$i = 0, $r$1$i$i = 0, $ret$0$i$i = 0, $ret$1$i$i = 0, $rlastfit$0$ph$i$i = 0, $rlastfit$2$i$i = 0, $ru$0$ph$i$i = 0, $ru$2$i$i = 0, $rv$0$ph$i$i = 0, $rv$1$i$i = 0, $rv$3$i$i = 0, $rv$4$i$i = 0; var $rx$0$ph$i$i = 0, $rx$2$i$i = 0, $ry$0$ph$i$i = 0, $ry$2$i$i = 0, $storemerge63$i = 0, $storemerge64$i = 0, $ul$i = 0, $ur$i = 0, $ur_version$0$i = 0, $ur_version$1$i = 0, $w$0$i$i = 0, $w$0$i38$i = 0, $w$0$i43$i = 0, $x$0$i$i = 0, $x$0$i$i$i = 0, $x$0$i36$i = 0, $x$0$i41$i = 0, $y$0$i$i = 0, $y$0$i$i$i = 0, $y$0$i37$i = 0; var $y$0$i42$i = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 592) | 0; $l$i$i = (sp + 544) | 0; $dru$i$i = (sp + 536) | 0; $dbv$i$i = (sp + 532) | 0; $cell$i$i = (sp + 480) | 0; $p3$i$i = (sp + 472) | 0; $ci$i = (sp + 440) | 0; $aff$i = (sp + 392) | 0; $hom$i = (sp + 324) | 0; $ul$i = (sp + 248) | 0; $ur$i = (sp + 172) | 0; $dl$i = (sp + 96) | 0; $bbox$i = (sp + 64) | 0; $c = (sp + 48) | 0; $qrdata = sp; $0 = _calloc($_ncenters, 1) | 0; $1 = Math_imul($_height, $_width) | 0; $2 = $1 >> 9; $3 = ($2 | 0) > 8192; $4 = $3 ? $2 : 8192; $5 = ($_ncenters | 0) > 0; if (!$5) { _free($0); STACKTOP = sp; return; } $6 = ($c + 4) | 0; $7 = ($c + 8) | 0; $8 = ($ci$i + 12) | 0; $9 = ($ci$i + 24) | 0; $10 = ($ci$i + 4) | 0; $11 = ($ci$i + 16) | 0; $12 = ($ci$i + 8) | 0; $13 = ($ci$i + 20) | 0; $14 = ($ul$i + 72) | 0; $15 = ($ur$i + 72) | 0; $16 = ($dl$i + 72) | 0; $17 = ($_height | 0) > ($_width | 0); $18 = ($_height - $_width) | 0; $$neg$i = $17 ? $18 : 0; $19 = ($_width + -1) | 0; $20 = ($19 + $$neg$i) | 0; $21 = ($aff$i + 4) | 0; $22 = ($aff$i + 8) | 0; $23 = ($aff$i + 12) | 0; $24 = ($aff$i + 16) | 0; $25 = ($aff$i + 20) | 0; $26 = ($aff$i + 24) | 0; $27 = ($aff$i + 28) | 0; $28 = ($aff$i + 32) | 0; $29 = ($aff$i + 36) | 0; $30 = ($aff$i + 40) | 0; $31 = ($aff$i + 44) | 0; $32 = ($ur$i + 64) | 0; $33 = ($ur$i + 68) | 0; $34 = ($dl$i + 64) | 0; $35 = ($dl$i + 68) | 0; $36 = ($ur$i + 12) | 0; $37 = ($dl$i + 8) | 0; $38 = ($ul$i + 64) | 0; $39 = ($ul$i + 68) | 0; $40 = ($ul$i + 12) | 0; $41 = ($ul$i + 8) | 0; $42 = ($_reader + 768) | 0; $$idx66$i$i = ($l$i$i + 4) | 0; $$idx67$i$i = ($l$i$i + 8) | 0; $43 = ($l$i$i + 24) | 0; $$idx60$i$i = ($l$i$i + 28) | 0; $$idx61$i$i = ($l$i$i + 32) | 0; $44 = ($ur$i + 4) | 0; $45 = ($l$i$i + 12) | 0; $46 = ($ur$i + 52) | 0; $47 = ($l$i$i + 36) | 0; $48 = ($dl$i + 60) | 0; $49 = ($dl$i + 4) | 0; $50 = ($ur$i + 20) | 0; $51 = ($dl$i + 28) | 0; $$idx69$i$i = ($l$i$i + 40) | 0; $$idx71$i$i = ($l$i$i + 16) | 0; $52 = (0 - $_width) | 0; $53 = $52 << 2; $54 = $_width << 3; $55 = (0 - $_height) | 0; $56 = $55 << 2; $57 = $_height << 3; $58 = ($bbox$i + 24) | 0; $59 = ($bbox$i + 28) | 0; $60 = ($ur$i + 8) | 0; $61 = ($dl$i + 12) | 0; $62 = ($bbox$i + 4) | 0; $63 = ($bbox$i + 8) | 0; $64 = ($bbox$i + 12) | 0; $65 = ($bbox$i + 16) | 0; $66 = ($bbox$i + 20) | 0; $67 = ($p3$i$i + 4) | 0; $68 = ($hom$i + 4) | 0; $69 = ($hom$i + 56) | 0; $70 = ($hom$i + 8) | 0; $71 = ($hom$i + 12) | 0; $72 = ($hom$i + 60) | 0; $73 = ($hom$i + 16) | 0; $74 = ($hom$i + 20) | 0; $75 = ($hom$i + 48) | 0; $76 = ($hom$i + 24) | 0; $77 = ($hom$i + 28) | 0; $78 = ($hom$i + 32) | 0; $79 = ($hom$i + 36) | 0; $80 = ($hom$i + 40) | 0; $81 = ($hom$i + 44) | 0; $82 = ($hom$i + 52) | 0; $83 = ($hom$i + 64) | 0; $84 = ($qrdata + 16) | 0; $85 = ($ul$i + 4) | 0; $86 = ($l$i$i + 44) | 0; $87 = ($l$i$i + 20) | 0; $88 = ($_qrlist + 4) | 0; $89 = ($_qrlist + 8) | 0; $90 = ($qrdata + 16) | 0; $91 = ($qrdata + 24) | 0; $$idx20 = ($qrdata + 20) | 0; $$idx22 = ($qrdata + 28) | 0; $92 = ($qrdata + 40) | 0; $$idx16 = ($qrdata + 44) | 0; $93 = ($qrdata + 32) | 0; $$idx10 = ($qrdata + 36) | 0; $i$078 = 0; $nfailures$079 = 0; while (1) { $j$069 = ($i$078 + 1) | 0; $94 = ($0 + $i$078) | 0; $95 = HEAP8[$94 >> 0] | 0; $96 = ($95 << 24) >> 24 == 0; $97 = ($j$069 | 0) < ($_ncenters | 0); $or$cond70 = $96 & $97; if ($or$cond70) { $i$172 = $i$078; $j$0$in71 = $i$078; $j$074 = $j$069; $nfailures$173 = $nfailures$079; while (1) { $102 = ($j$0$in71 + 2) | 0; $103 = ($0 + $j$074) | 0; $104 = HEAP8[$103 >> 0] | 0; $105 = ($104 << 24) >> 24 == 0; $106 = ($102 | 0) < ($_ncenters | 0); $or$cond256 = $105 & $106; if ($or$cond256) { $1631 = $103; $i$261 = $i$172; $j$157 = $j$074; $k$059 = $102; $nfailures$263 = $nfailures$173; while (1) { $107 = ($0 + $k$059) | 0; $108 = HEAP8[$107 >> 0] | 0; $109 = ($108 << 24) >> 24 == 0; L12: do { if ($109) { $110 = ($_centers + ($i$261 << 4)) | 0; HEAP32[$c >> 2] = $110; $111 = ($_centers + ($j$157 << 4)) | 0; HEAP32[$6 >> 2] = $111; $112 = ($_centers + ($k$059 << 4)) | 0; HEAP32[$7 >> 2] = $112; $$val$i = HEAP32[$110 >> 2] | 0; $$idx$i = ((($_centers + ($i$261 << 4)) | 0) + 4) | 0; $$idx$val$i = HEAP32[$$idx$i >> 2] | 0; $$val18$i = HEAP32[$111 >> 2] | 0; $$idx19$i = ((($_centers + ($j$157 << 4)) | 0) + 4) | 0; $$idx19$val$i = HEAP32[$$idx19$i >> 2] | 0; $$val20$i = HEAP32[$112 >> 2] | 0; $$idx21$i = ((($_centers + ($k$059 << 4)) | 0) + 4) | 0; $$idx21$val$i = HEAP32[$$idx21$i >> 2] | 0; $113 = ($$val18$i - $$val$i) | 0; $114 = ($$idx21$val$i - $$idx$val$i) | 0; $115 = Math_imul($114, $113) | 0; $116 = ($$idx19$val$i - $$idx$val$i) | 0; $117 = ($$val20$i - $$val$i) | 0; $118 = Math_imul($117, $116) | 0; $119 = ($115 | 0) == ($118 | 0); L14: do { if (!$119) { $120 = ($115 - $118) | 0; HEAP32[$ci$i >> 2] = 0; HEAP32[$8 >> 2] = 0; HEAP32[$9 >> 2] = 0; $$lobit$i = $120 >>> 31; $121 = ($$lobit$i + 1) | 0; HEAP32[$10 >> 2] = $121; HEAP32[$11 >> 2] = $121; $122 = (2 - $$lobit$i) | 0; HEAP32[$12 >> 2] = $122; HEAP32[$13 >> 2] = $122; $123 = ($$val18$i - $$val20$i) | 0; $124 = Math_imul($123, $123) | 0; $125 = ($$idx19$val$i - $$idx21$val$i) | 0; $126 = Math_imul($125, $125) | 0; $127 = ($126 + $124) | 0; $128 = ($c + ($122 << 2)) | 0; $129 = HEAP32[$128 >> 2] | 0; $$val22$i = HEAP32[$129 >> 2] | 0; $$idx23$i = ($129 + 4) | 0; $$idx23$val$i = HEAP32[$$idx23$i >> 2] | 0; $130 = ($$val22$i - $$val$i) | 0; $131 = Math_imul($130, $130) | 0; $132 = ($$idx23$val$i - $$idx$val$i) | 0; $133 = Math_imul($132, $132) | 0; $134 = ($133 + $131) | 0; $135 = $134 >>> 0 > $127 >>> 0; $i$0$i0$0$i = $135 & 1; $$maxd$0$i = $135 ? $134 : $127; $136 = ($c + ($121 << 2)) | 0; $137 = HEAP32[$136 >> 2] | 0; $$val24$1$i = HEAP32[$137 >> 2] | 0; $$idx25$1$i = ($137 + 4) | 0; $$idx25$val$1$i = HEAP32[$$idx25$1$i >> 2] | 0; $138 = ($$val$i - $$val24$1$i) | 0; $139 = Math_imul($138, $138) | 0; $140 = ($$idx$val$i - $$idx25$val$1$i) | 0; $141 = Math_imul($140, $140) | 0; $142 = ($141 + $139) | 0; $143 = $142 >>> 0 > $$maxd$0$i >>> 0; $i$0$i0$0$1$i = $143 ? 2 : $i$0$i0$0$i; $144 = ($i$0$i0$0$1$i + 3) | 0; $$0$i = 0; $i$1$i = $i$0$i0$0$1$i; while (1) { $145 = ($i$1$i | 0) < ($144 | 0); if (!$145) { break L14; } $146 = ($ci$i + ($i$1$i << 2)) | 0; $147 = HEAP32[$146 >> 2] | 0; $148 = ($c + ($147 << 2)) | 0; $149 = HEAP32[$148 >> 2] | 0; HEAP32[$14 >> 2] = $149; $150 = ($i$1$i + 1) | 0; $151 = ($ci$i + ($150 << 2)) | 0; $152 = HEAP32[$151 >> 2] | 0; $153 = ($c + ($152 << 2)) | 0; $154 = HEAP32[$153 >> 2] | 0; HEAP32[$15 >> 2] = $154; $155 = ($i$1$i + 2) | 0; $156 = ($ci$i + ($155 << 2)) | 0; $157 = HEAP32[$156 >> 2] | 0; $158 = ($c + ($157 << 2)) | 0; $159 = HEAP32[$158 >> 2] | 0; HEAP32[$16 >> 2] = $159; $160 = _qr_ilog($20) | 0; $161 = (28 - $160) | 0; $$val30$i = HEAP32[$154 >> 2] | 0; $$idx31$i = ($154 + 4) | 0; $$idx31$val$i = HEAP32[$$idx31$i >> 2] | 0; $$val32$i = HEAP32[$159 >> 2] | 0; $$idx33$i = ($159 + 4) | 0; $$idx33$val$i = HEAP32[$$idx33$i >> 2] | 0; $162 = HEAP32[$149 >> 2] | 0; $163 = ($$val30$i - $162) | 0; $164 = ($$val32$i - $162) | 0; $165 = ($149 + 4) | 0; $166 = HEAP32[$165 >> 2] | 0; $167 = ($$idx31$val$i - $166) | 0; $168 = ($$idx33$val$i - $166) | 0; $169 = Math_imul($168, $163) | 0; $170 = Math_imul($167, $164) | 0; $171 = ($169 - $170) | 0; $ispos$i$i = ($171 | 0) > -1; $neg$i$i = (0 - $171) | 0; $172 = $ispos$i$i ? $171 : $neg$i$i; $173 = _qr_ilog($172) | 0; $174 = $173 >> 1; $175 = ($174 + -2) | 0; $176 = _qr_ilog($172) | 0; $177 = $176 >> 1; $178 = ($177 + -2) | 0; $179 = _qr_ilog($172) | 0; $180 = $179 >> 1; $181 = ($180 + -2) | 0; $182 = $181 >> 31; $183 = $182 & $178; $184 = ($175 - $183) | 0; HEAP32[$aff$i >> 2] = $163; HEAP32[$21 >> 2] = $164; HEAP32[$22 >> 2] = $167; HEAP32[$23 >> 2] = $168; $185 = $168 << $161; $186 = $171 >> $184; $187 = $186 >> 1; $188 = $185 >> 31; $189 = ($187 + $188) | 0; $190 = $189 ^ $188; $191 = ($190 + $185) | 0; $192 = (($191 | 0) / ($186 | 0)) & -1; HEAP32[$24 >> 2] = $192; $193 = (0 - $164) | 0; $194 = $193 << $161; $195 = $194 >> 31; $196 = ($187 + $195) | 0; $197 = $196 ^ $195; $198 = ($197 + $194) | 0; $199 = (($198 | 0) / ($186 | 0)) & -1; HEAP32[$25 >> 2] = $199; $200 = (0 - $167) | 0; $201 = $200 << $161; $202 = $201 >> 31; $203 = ($187 + $202) | 0; $204 = $203 ^ $202; $205 = ($204 + $201) | 0; $206 = (($205 | 0) / ($186 | 0)) & -1; HEAP32[$26 >> 2] = $206; $207 = $163 << $161; $208 = $207 >> 31; $209 = ($187 + $208) | 0; $210 = $209 ^ $208; $211 = ($210 + $207) | 0; $212 = (($211 | 0) / ($186 | 0)) & -1; HEAP32[$27 >> 2] = $212; $213 = HEAP32[$149 >> 2] | 0; HEAP32[$28 >> 2] = $213; $214 = HEAP32[$165 >> 2] | 0; HEAP32[$29 >> 2] = $214; HEAP32[$30 >> 2] = $161; HEAP32[$31 >> 2] = $184; $215 = HEAP32[$154 >> 2] | 0; $216 = HEAP32[$$idx31$i >> 2] | 0; $217 = ($215 - $213) | 0; $218 = Math_imul($217, $192) | 0; $219 = ($216 - $214) | 0; $220 = Math_imul($219, $199) | 0; $221 = 1 << $184; $222 = $221 >> 1; $223 = ($218 + $222) | 0; $224 = ($223 + $220) | 0; $225 = $224 >> $184; HEAP32[$32 >> 2] = $225; $226 = Math_imul($217, $206) | 0; $227 = Math_imul($219, $212) | 0; $228 = ($226 + $222) | 0; $229 = ($228 + $227) | 0; $230 = $229 >> $184; HEAP32[$33 >> 2] = $230; _qr_finder_edge_pts_aff_classify($ur$i, $aff$i); $231 = 1 << $161; $232 = _qr_finder_estimate_module_size_and_version($ur$i, $231, $231) | 0; $233 = ($232 | 0) < 0; L19: do { if ($233) { $$01$i = 0; $$1$i = $$0$i; } else { $234 = HEAP32[$16 >> 2] | 0; $235 = HEAP32[$234 >> 2] | 0; $236 = ($234 + 4) | 0; $237 = HEAP32[$236 >> 2] | 0; $238 = HEAP32[$24 >> 2] | 0; $239 = HEAP32[$28 >> 2] | 0; $240 = ($235 - $239) | 0; $241 = Math_imul($240, $238) | 0; $242 = HEAP32[$25 >> 2] | 0; $243 = HEAP32[$29 >> 2] | 0; $244 = ($237 - $243) | 0; $245 = Math_imul($244, $242) | 0; $246 = ($245 + $241) | 0; $247 = HEAP32[$31 >> 2] | 0; $248 = 1 << $247; $249 = $248 >> 1; $250 = ($246 + $249) | 0; $251 = $250 >> $247; HEAP32[$34 >> 2] = $251; $252 = HEAP32[$26 >> 2] | 0; $253 = Math_imul($252, $240) | 0; $254 = HEAP32[$27 >> 2] | 0; $255 = Math_imul($254, $244) | 0; $256 = ($249 + $253) | 0; $257 = ($256 + $255) | 0; $258 = $257 >> $247; HEAP32[$35 >> 2] = $258; _qr_finder_edge_pts_aff_classify($dl$i, $aff$i); $259 = _qr_finder_estimate_module_size_and_version($dl$i, $231, $231) | 0; $260 = ($259 | 0) < 0; if ($260) { $$01$i = 0; $$1$i = $$0$i; } else { $261 = HEAP32[$36 >> 2] | 0; $262 = HEAP32[$37 >> 2] | 0; $263 = ($261 - $262) | 0; $ispos$i = ($263 | 0) > -1; $neg$i = (0 - $263) | 0; $264 = $ispos$i ? $263 : $neg$i; $265 = ($264 | 0) > 3; if ($265) { $$01$i = 0; $$1$i = $$0$i; } else { $266 = HEAP32[$14 >> 2] | 0; $267 = HEAP32[$266 >> 2] | 0; $268 = ($266 + 4) | 0; $269 = HEAP32[$268 >> 2] | 0; $270 = HEAP32[$24 >> 2] | 0; $271 = HEAP32[$28 >> 2] | 0; $272 = ($267 - $271) | 0; $273 = Math_imul($272, $270) | 0; $274 = HEAP32[$25 >> 2] | 0; $275 = HEAP32[$29 >> 2] | 0; $276 = ($269 - $275) | 0; $277 = Math_imul($276, $274) | 0; $278 = ($277 + $273) | 0; $279 = HEAP32[$31 >> 2] | 0; $280 = 1 << $279; $281 = $280 >> 1; $282 = ($278 + $281) | 0; $283 = $282 >> $279; HEAP32[$38 >> 2] = $283; $284 = HEAP32[$26 >> 2] | 0; $285 = Math_imul($284, $272) | 0; $286 = HEAP32[$27 >> 2] | 0; $287 = Math_imul($286, $276) | 0; $288 = ($281 + $285) | 0; $289 = ($288 + $287) | 0; $290 = $289 >> $279; HEAP32[$39 >> 2] = $290; _qr_finder_edge_pts_aff_classify($ul$i, $aff$i); $291 = _qr_finder_estimate_module_size_and_version($ul$i, $231, $231) | 0; $292 = ($291 | 0) < 0; if ($292) { $$01$i = 0; $$1$i = $$0$i; } else { $293 = HEAP32[$40 >> 2] | 0; $294 = ($293 - $261) | 0; $ispos2$i = ($294 | 0) > -1; $neg3$i = (0 - $294) | 0; $295 = $ispos2$i ? $294 : $neg3$i; $296 = ($295 | 0) > 3; if ($296) { $$01$i = 0; $$1$i = $$0$i; } else { $297 = HEAP32[$41 >> 2] | 0; $298 = ($297 - $262) | 0; $ispos4$i = ($298 | 0) > -1; $neg5$i = (0 - $298) | 0; $299 = $ispos4$i ? $298 : $neg5$i; $300 = ($299 | 0) > 3; if ($300) { $$01$i = 0; $$1$i = $$0$i; break; } _qr_finder_ransac($ul$i, $aff$i, $42, 0); _qr_finder_ransac($dl$i, $aff$i, $42, 0); _qr_line_fit_finder_pair($l$i$i, $aff$i, $ul$i, $dl$i, 0); $301 = HEAP32[$16 >> 2] | 0; $302 = HEAP32[$301 >> 2] | 0; $303 = ($301 + 4) | 0; $304 = HEAP32[$303 >> 2] | 0; $$val65$i$i = HEAP32[$l$i$i >> 2] | 0; $$idx66$val$i$i = HEAP32[$$idx66$i$i >> 2] | 0; $$idx67$val$i$i = HEAP32[$$idx67$i$i >> 2] | 0; $305 = Math_imul($$val65$i$i, $302) | 0; $306 = Math_imul($$idx66$val$i$i, $304) | 0; $307 = ($$idx67$val$i$i + $305) | 0; $308 = ($307 + $306) | 0; $309 = ($308 | 0) < 0; if ($309) { $$01$i = 0; $$1$i = $$0$i; break; } $310 = HEAP32[$15 >> 2] | 0; $311 = HEAP32[$310 >> 2] | 0; $312 = ($310 + 4) | 0; $313 = HEAP32[$312 >> 2] | 0; $314 = Math_imul($311, $$val65$i$i) | 0; $315 = Math_imul($313, $$idx66$val$i$i) | 0; $316 = ($314 + $$idx67$val$i$i) | 0; $317 = ($316 + $315) | 0; $318 = ($317 | 0) < 0; if ($318) { $$01$i = 0; $$1$i = $$0$i; break; } _qr_finder_ransac($ul$i, $aff$i, $42, 2); _qr_finder_ransac($ur$i, $aff$i, $42, 2); _qr_line_fit_finder_pair($43, $aff$i, $ul$i, $ur$i, 2); $319 = HEAP32[$301 >> 2] | 0; $320 = HEAP32[$303 >> 2] | 0; $$val59$i$i = HEAP32[$43 >> 2] | 0; $$idx60$val$i$i = HEAP32[$$idx60$i$i >> 2] | 0; $$idx61$val$i$i = HEAP32[$$idx61$i$i >> 2] | 0; $321 = Math_imul($$val59$i$i, $319) | 0; $322 = Math_imul($$idx60$val$i$i, $320) | 0; $323 = ($$idx61$val$i$i + $321) | 0; $324 = ($323 + $322) | 0; $325 = ($324 | 0) < 0; if ($325) { $$01$i = 0; $$1$i = $$0$i; break; } $326 = HEAP32[$15 >> 2] | 0; $327 = HEAP32[$326 >> 2] | 0; $328 = ($326 + 4) | 0; $329 = HEAP32[$328 >> 2] | 0; $330 = Math_imul($327, $$val59$i$i) | 0; $331 = Math_imul($329, $$idx60$val$i$i) | 0; $332 = ($330 + $$idx61$val$i$i) | 0; $333 = ($332 + $331) | 0; $334 = ($333 | 0) < 0; if ($334) { $$01$i = 0; $$1$i = $$0$i; break; } $335 = HEAP32[$44 >> 2] | 0; $336 = $335 >> 1; _qr_finder_ransac($ur$i, $aff$i, $42, 1); $337 = HEAP32[$30 >> 2] | 0; $338 = HEAP32[$46 >> 2] | 0; $339 = ($338 | 0) < 2; if ($339) { HEAP32[$dru$i$i >> 2] = 0; $384 = 0; } else { $340 = $338 << 3; $341 = _malloc($340) | 0; $342 = HEAP32[$50 >> 2] | 0; $i$01$i$i = 0; while (1) { $343 = ($342 + ($i$01$i$i << 4)) | 0; $344 = HEAP32[$343 >> 2] | 0; $345 = ($341 + ($i$01$i$i << 3)) | 0; HEAP32[$345 >> 2] = $344; $346 = ((($342 + ($i$01$i$i << 4)) | 0) + 4) | 0; $347 = HEAP32[$346 >> 2] | 0; $348 = ((($341 + ($i$01$i$i << 3)) | 0) + 4) | 0; HEAP32[$348 >> 2] = $347; $349 = ($i$01$i$i + 1) | 0; $exitcond$i$i = ($349 | 0) == ($338 | 0); if ($exitcond$i$i) { break; } else { $i$01$i$i = $349; } } _qr_line_fit_points($45, $341, $338, $337); $350 = HEAP32[$15 >> 2] | 0; $351 = HEAP32[$350 >> 2] | 0; $352 = ($350 + 4) | 0; $353 = HEAP32[$352 >> 2] | 0; $_l$val$i$i$i = HEAP32[$45 >> 2] | 0; $_l$idx$val$i$i$i = HEAP32[$$idx71$i$i >> 2] | 0; $_l$idx1$val$i$i$i = HEAP32[$87 >> 2] | 0; $354 = Math_imul($_l$val$i$i$i, $351) | 0; $355 = Math_imul($_l$idx$val$i$i$i, $353) | 0; $356 = ($_l$idx1$val$i$i$i + $354) | 0; $357 = ($356 + $355) | 0; $358 = ($357 | 0) < 0; if ($358) { $359 = (0 - $_l$val$i$i$i) | 0; HEAP32[$45 >> 2] = $359; $360 = (0 - $_l$idx$val$i$i$i) | 0; HEAP32[$$idx71$i$i >> 2] = $360; $361 = (0 - $_l$idx1$val$i$i$i) | 0; HEAP32[$87 >> 2] = $361; $$idx54$val$i$i = $360; $$idx55$val$i$i = $361; $$val53$i$i = $359; } else { $$idx54$val$i$i = $_l$idx$val$i$i$i; $$idx55$val$i$i = $_l$idx1$val$i$i$i; $$val53$i$i = $_l$val$i$i$i; } _free($341); $362 = HEAP32[$14 >> 2] | 0; $363 = HEAP32[$362 >> 2] | 0; $364 = ($362 + 4) | 0; $365 = HEAP32[$364 >> 2] | 0; $366 = Math_imul($363, $$val53$i$i) | 0; $367 = Math_imul($365, $$idx54$val$i$i) | 0; $368 = ($366 + $$idx55$val$i$i) | 0; $369 = ($368 + $367) | 0; $370 = ($369 | 0) < 0; if ($370) { $$01$i = 0; $$1$i = $$0$i; break; } $371 = HEAP32[$301 >> 2] | 0; $372 = HEAP32[$303 >> 2] | 0; $373 = Math_imul($371, $$val53$i$i) | 0; $374 = Math_imul($372, $$idx54$val$i$i) | 0; $375 = ($373 + $$idx55$val$i$i) | 0; $376 = ($375 + $374) | 0; $377 = ($376 | 0) < 0; if ($377) { $$01$i = 0; $$1$i = $$0$i; break; } $378 = _qr_aff_line_step($aff$i, $$val53$i$i, $$idx54$val$i$i, 1, $336, $dru$i$i) | 0; $379 = ($378 | 0) < 0; if ($379) { $$01$i = 0; $$1$i = $$0$i; break; } $$pre$i$i = HEAP32[$dru$i$i >> 2] | 0; $384 = $$pre$i$i; } $380 = HEAP32[$32 >> 2] | 0; $381 = HEAP32[$ur$i >> 2] | 0; $382 = ($381 * 3) | 0; $383 = $384 << 1; $385 = ($380 - $383) | 0; $386 = ($382 + $385) | 0; $387 = HEAP32[$33 >> 2] | 0; $388 = $336 << 1; $389 = ($387 - $388) | 0; $390 = HEAP32[$dl$i >> 2] | 0; $391 = $390 >> 1; _qr_finder_ransac($dl$i, $aff$i, $42, 3); $392 = HEAP32[$30 >> 2] | 0; $393 = HEAP32[$48 >> 2] | 0; $394 = ($393 | 0) < 2; if ($394) { HEAP32[$dbv$i$i >> 2] = 0; $444 = 0; } else { $395 = $393 << 3; $396 = _malloc($395) | 0; $397 = HEAP32[$51 >> 2] | 0; $i$01$i50$i = 0; while (1) { $398 = ($397 + ($i$01$i50$i << 4)) | 0; $399 = HEAP32[$398 >> 2] | 0; $400 = ($396 + ($i$01$i50$i << 3)) | 0; HEAP32[$400 >> 2] = $399; $401 = ((($397 + ($i$01$i50$i << 4)) | 0) + 4) | 0; $402 = HEAP32[$401 >> 2] | 0; $403 = ((($396 + ($i$01$i50$i << 3)) | 0) + 4) | 0; HEAP32[$403 >> 2] = $402; $404 = ($i$01$i50$i + 1) | 0; $exitcond$i51$i = ($404 | 0) == ($393 | 0); if ($exitcond$i51$i) { break; } else { $i$01$i50$i = $404; } } _qr_line_fit_points($47, $396, $393, $392); $405 = HEAP32[$16 >> 2] | 0; $406 = HEAP32[$405 >> 2] | 0; $407 = ($405 + 4) | 0; $408 = HEAP32[$407 >> 2] | 0; $_l$val$i$i52$i = HEAP32[$47 >> 2] | 0; $_l$idx$val$i$i54$i = HEAP32[$$idx69$i$i >> 2] | 0; $_l$idx1$val$i$i56$i = HEAP32[$86 >> 2] | 0; $409 = Math_imul($_l$val$i$i52$i, $406) | 0; $410 = Math_imul($_l$idx$val$i$i54$i, $408) | 0; $411 = ($_l$idx1$val$i$i56$i + $409) | 0; $412 = ($411 + $410) | 0; $413 = ($412 | 0) < 0; if ($413) { $414 = (0 - $_l$val$i$i52$i) | 0; HEAP32[$47 >> 2] = $414; $415 = (0 - $_l$idx$val$i$i54$i) | 0; HEAP32[$$idx69$i$i >> 2] = $415; $416 = (0 - $_l$idx1$val$i$i56$i) | 0; HEAP32[$86 >> 2] = $416; $$idx48$val$i$i = $415; $$idx49$val$i$i = $416; $$val47$i$i = $414; } else { $$idx48$val$i$i = $_l$idx$val$i$i54$i; $$idx49$val$i$i = $_l$idx1$val$i$i56$i; $$val47$i$i = $_l$val$i$i52$i; } _free($396); $417 = HEAP32[$14 >> 2] | 0; $418 = HEAP32[$417 >> 2] | 0; $419 = ($417 + 4) | 0; $420 = HEAP32[$419 >> 2] | 0; $421 = Math_imul($418, $$val47$i$i) | 0; $422 = Math_imul($420, $$idx48$val$i$i) | 0; $423 = ($421 + $$idx49$val$i$i) | 0; $424 = ($423 + $422) | 0; $425 = ($424 | 0) < 0; if ($425) { $$01$i = 0; $$1$i = $$0$i; break; } $426 = HEAP32[$15 >> 2] | 0; $427 = HEAP32[$426 >> 2] | 0; $428 = ($426 + 4) | 0; $429 = HEAP32[$428 >> 2] | 0; $430 = Math_imul($427, $$val47$i$i) | 0; $431 = Math_imul($429, $$idx48$val$i$i) | 0; $432 = ($430 + $$idx49$val$i$i) | 0; $433 = ($432 + $431) | 0; $434 = ($433 | 0) < 0; if ($434) { $$01$i = 0; $$1$i = $$0$i; break; } $435 = _qr_aff_line_step($aff$i, $$val47$i$i, $$idx48$val$i$i, 0, $391, $dbv$i$i) | 0; $436 = ($435 | 0) < 0; if ($436) { $$01$i = 0; $$1$i = $$0$i; break; } $$pre149$i$i = HEAP32[$dbv$i$i >> 2] | 0; $444 = $$pre149$i$i; } $437 = HEAP32[$34 >> 2] | 0; $438 = $391 << 1; $439 = ($437 - $438) | 0; $440 = HEAP32[$35 >> 2] | 0; $441 = HEAP32[$49 >> 2] | 0; $442 = ($441 * 3) | 0; $443 = $444 << 1; $445 = ($440 - $443) | 0; $446 = ($442 + $445) | 0; $447 = ($336 + -1) | 0; $448 = ($447 - $389) | 0; $449 = ($448 + $440) | 0; $450 = (($449 | 0) / ($336 | 0)) & -1; $451 = ($450 + $338) | 0; $452 = $451 << 3; $453 = _malloc($452) | 0; $454 = ($338 | 0) > 0; if ($454) { $455 = HEAP32[$50 >> 2] | 0; $i$0121$i$i = 0; while (1) { $456 = ($453 + ($i$0121$i$i << 3)) | 0; $457 = ($455 + ($i$0121$i$i << 4)) | 0; $458 = $457; $459 = $458; $460 = HEAP32[$459 >> 2] | 0; $461 = ($458 + 4) | 0; $462 = $461; $463 = HEAP32[$462 >> 2] | 0; $464 = $456; $465 = $464; HEAP32[$465 >> 2] = $460; $466 = ($464 + 4) | 0; $467 = $466; HEAP32[$467 >> 2] = $463; $468 = ($i$0121$i$i + 1) | 0; $exitcond$i = ($468 | 0) == ($338 | 0); if ($exitcond$i) { break; } else { $i$0121$i$i = $468; } } } $469 = ($380 + -1) | 0; $470 = ($469 + $391) | 0; $471 = ($470 - $439) | 0; $472 = (($471 | 0) / ($391 | 0)) & -1; $473 = ($472 + $393) | 0; $474 = $473 << 3; $475 = _malloc($474) | 0; $476 = ($393 | 0) > 0; if ($476) { $477 = HEAP32[$51 >> 2] | 0; $i$1120$i$i = 0; while (1) { $478 = ($475 + ($i$1120$i$i << 3)) | 0; $479 = ($477 + ($i$1120$i$i << 4)) | 0; $480 = $479; $481 = $480; $482 = HEAP32[$481 >> 2] | 0; $483 = ($480 + 4) | 0; $484 = $483; $485 = HEAP32[$484 >> 2] | 0; $486 = $478; $487 = $486; HEAP32[$487 >> 2] = $482; $488 = ($486 + 4) | 0; $489 = $488; HEAP32[$489 >> 2] = $485; $490 = ($i$1120$i$i + 1) | 0; $exitcond90$i = ($490 | 0) == ($393 | 0); if ($exitcond90$i) { break; } else { $i$1120$i$i = $490; } } } $491 = HEAP32[$28 >> 2] | 0; $492 = HEAP32[$30 >> 2] | 0; $493 = $491 << $492; $494 = ($492 + -1) | 0; $495 = 1 << $494; $496 = ($495 + $493) | 0; $497 = HEAP32[$29 >> 2] | 0; $498 = $497 << $492; $499 = ($498 + $495) | 0; $500 = HEAP32[$aff$i >> 2] | 0; $501 = Math_imul($500, $386) | 0; $502 = HEAP32[$21 >> 2] | 0; $503 = Math_imul($502, $389) | 0; $504 = ($496 + $501) | 0; $505 = ($504 + $503) | 0; $506 = HEAP32[$22 >> 2] | 0; $507 = Math_imul($506, $386) | 0; $508 = HEAP32[$23 >> 2] | 0; $509 = Math_imul($508, $389) | 0; $510 = ($507 + $499) | 0; $511 = ($510 + $509) | 0; $512 = Math_imul($500, $384) | 0; $513 = Math_imul($502, $336) | 0; $514 = ($513 + $512) | 0; $515 = Math_imul($506, $384) | 0; $516 = Math_imul($508, $336) | 0; $517 = ($516 + $515) | 0; $518 = Math_imul($500, $381) | 0; $519 = Math_imul($506, $381) | 0; $520 = Math_imul($500, $439) | 0; $521 = Math_imul($502, $446) | 0; $522 = ($496 + $520) | 0; $523 = ($522 + $521) | 0; $524 = Math_imul($506, $439) | 0; $525 = Math_imul($508, $446) | 0; $526 = ($524 + $499) | 0; $527 = ($526 + $525) | 0; $528 = Math_imul($500, $391) | 0; $529 = Math_imul($502, $444) | 0; $530 = ($529 + $528) | 0; $531 = Math_imul($506, $391) | 0; $532 = Math_imul($508, $444) | 0; $533 = ($532 + $531) | 0; $534 = Math_imul($502, $441) | 0; $535 = Math_imul($508, $441) | 0; $536 = ($391 | 0) > 0; $537 = $536 ? $391 : 0; $538 = ($336 | 0) > 0; $539 = $538 ? $336 : 0; $b$0$ph$i$i = $475; $blastfit$0$ph$i$i = $393; $bu$0$ph$i$i = $439; $bv$0$ph$i$i = $446; $bx$0$ph$i$i = $523; $by$0$ph$i$i = $527; $cb$0$ph$i$i = $473; $cr$0$ph$i$i = $451; $dbxi$0$ph$i$i = $530; $dbyi$0$ph$i$i = $533; $drxi$0$ph$i$i = $514; $dryi$0$ph$i$i = $517; $nb$0$ph$i$i = $393; $nbempty$0$ph$i$i = 0; $nr$0$ph$i$i = $338; $nrempty$0$ph$i$i = 0; $r$0$ph$i$i = $453; $rlastfit$0$ph$i$i = $338; $ru$0$ph$i$i = $386; $rv$0$ph$i$i = $389; $rx$0$ph$i$i = $505; $ry$0$ph$i$i = $511; L66: while (1) { $540 = ($nrempty$0$ph$i$i | 0) > 14; $b$0$i$i = $b$0$ph$i$i; $blastfit$0$i$i = $blastfit$0$ph$i$i; $bu$0$i$i = $bu$0$ph$i$i; $bv$0$i$i = $bv$0$ph$i$i; $bx$0$i$i = $bx$0$ph$i$i; $by$0$i$i = $by$0$ph$i$i; $cb$0$i$i = $cb$0$ph$i$i; $dbxi$0$i$i = $dbxi$0$ph$i$i; $dbyi$0$i$i = $dbyi$0$ph$i$i; $nb$0$i$i = $nb$0$ph$i$i; $nbempty$0$i$i = $nbempty$0$ph$i$i; while (1) { $541 = HEAP32[$35 >> 2] | 0; $542 = ($541 + $bv$0$i$i) | 0; $543 = $542 >> 1; $544 = ($543 | 0) < ($bv$0$i$i | 0); $545 = $544 ? $543 : $bv$0$i$i; $not$$i$i = ($rv$0$ph$i$i | 0) >= ($545 | 0); $$$i$i = $540 | $not$$i$i; $546 = HEAP32[$32 >> 2] | 0; $547 = ($546 + $ru$0$ph$i$i) | 0; $548 = $547 >> 1; $549 = ($548 | 0) < ($ru$0$ph$i$i | 0); $550 = $549 ? $548 : $ru$0$ph$i$i; $551 = ($nbempty$0$i$i | 0) > 14; $not$98$i$i = ($bu$0$i$i | 0) >= ($550 | 0); $552 = $551 | $not$98$i$i; if (!$$$i$i) { $553 = ($rv$0$ph$i$i | 0) < ($bu$0$i$i | 0); $or$cond$i$i = $552 | $553; if ($or$cond$i$i) { break; } } if ($552) { break L66; } $664 = ($bx$0$i$i + $534) | 0; $665 = HEAP32[$30 >> 2] | 0; $666 = ($665 + 2) | 0; $667 = $664 >> $666; $668 = ($by$0$i$i + $535) | 0; $669 = $668 >> $666; $670 = ($bx$0$i$i - $534) | 0; $671 = $670 >> $666; $672 = ($by$0$i$i - $535) | 0; $673 = $672 >> $666; $674 = ($nb$0$i$i | 0) < ($cb$0$i$i | 0); if ($674) { $b$1$i$i = $b$0$i$i; $cb$1$i$i = $cb$0$i$i; } else { $675 = $cb$0$i$i << 1; $676 = $675 | 1; $677 = $676 << 3; $678 = _realloc($b$0$i$i, $677) | 0; $b$1$i$i = $678; $cb$1$i$i = $676; } $notlhs$i76$i$i = ($667 | 0) < 0; $notrhs$i77$i$i = ($667 | 0) >= ($_width | 0); $or$cond$not$i78$i$i = $notrhs$i77$i$i | $notlhs$i76$i$i; $679 = ($669 | 0) < 0; $or$cond1$i79$i$i = $or$cond$not$i78$i$i | $679; $$not$i80$i$i = ($669 | 0) >= ($_height | 0); $or$cond2$not$i81$i$i = $or$cond1$i79$i$i | $$not$i80$i$i; $680 = ($671 | 0) < 0; $or$cond3$i82$i$i = $or$cond2$not$i81$i$i | $680; $$not7$i83$i$i = ($671 | 0) >= ($_width | 0); $or$cond4$not$i84$i$i = $or$cond3$i82$i$i | $$not7$i83$i$i; $681 = ($673 | 0) < 0; $or$cond5$i85$i$i = $or$cond4$not$i84$i$i | $681; $or$cond5$not$i86$i$i = $or$cond5$i85$i$i ^ 1; $682 = ($673 | 0) < ($_height | 0); $or$cond6$i87$i$i = $682 & $or$cond5$not$i86$i$i; do { if ($or$cond6$i87$i$i) { $683 = Math_imul($669, $_width) | 0; $684 = ($683 + $667) | 0; $685 = ($_img + $684) | 0; $686 = HEAP8[$685 >> 0] | 0; $687 = ($686 << 24) >> 24 == 0; if (!$687) { $blastfit$2$i$i = $blastfit$0$i$i; $bu$3$i$i = $bu$0$i$i; $bv$2$i$i = $bv$0$i$i; $bx$2$i$i = $bx$0$i$i; $by$2$i$i = $by$0$i$i; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $nb$0$i$i; $nbempty$1$i$i = 0; break; } $688 = Math_imul($673, $_width) | 0; $689 = ($688 + $671) | 0; $690 = ($_img + $689) | 0; $691 = HEAP8[$690 >> 0] | 0; $692 = ($691 << 24) >> 24 == 0; if (!$692) { $blastfit$2$i$i = $blastfit$0$i$i; $bu$3$i$i = $bu$0$i$i; $bv$2$i$i = $bv$0$i$i; $bx$2$i$i = $bx$0$i$i; $by$2$i$i = $by$0$i$i; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $nb$0$i$i; $nbempty$1$i$i = 0; break; } $693 = ($673 + $669) | 0; $694 = $693 >> 1; $695 = Math_imul($694, $_width) | 0; $696 = ($671 + $667) | 0; $697 = $696 >> 1; $698 = ($695 + $697) | 0; $699 = ($_img + $698) | 0; $700 = HEAP8[$699 >> 0] | 0; $701 = ($700 << 24) >> 24 == 0; $$$i88$i$i = ($701 << 31) >> 31; if ($701) { $ret$1$i$i = $$$i88$i$i; } else { $702 = ($b$1$i$i + ($nb$0$i$i << 3)) | 0; $703 = _qr_finder_locate_crossing($_img, $_width, $667, $669, $671, $673, 1, $702) | 0; $ret$1$i$i = $703; } $704 = ($ret$1$i$i | 0) > -1; if (!$704) { label = 81; break; } $705 = ($ret$1$i$i | 0) == 0; if (!$705) { $blastfit$2$i$i = $blastfit$0$i$i; $bu$3$i$i = $bu$0$i$i; $bv$2$i$i = $bv$0$i$i; $bx$2$i$i = $bx$0$i$i; $by$2$i$i = $by$0$i$i; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $nb$0$i$i; $nbempty$1$i$i = 0; break; } $706 = ($b$1$i$i + ($nb$0$i$i << 3)) | 0; $707 = HEAP32[$706 >> 2] | 0; $708 = ((($b$1$i$i + ($nb$0$i$i << 3)) | 0) + 4) | 0; $709 = HEAP32[$708 >> 2] | 0; $710 = HEAP32[$24 >> 2] | 0; $711 = HEAP32[$28 >> 2] | 0; $712 = ($707 - $711) | 0; $713 = Math_imul($712, $710) | 0; $714 = HEAP32[$25 >> 2] | 0; $715 = HEAP32[$29 >> 2] | 0; $716 = ($709 - $715) | 0; $717 = Math_imul($716, $714) | 0; $718 = ($717 + $713) | 0; $719 = HEAP32[$31 >> 2] | 0; $720 = 1 << $719; $721 = $720 >> 1; $722 = ($718 + $721) | 0; $723 = $722 >> $719; $724 = HEAP32[$26 >> 2] | 0; $725 = Math_imul($724, $712) | 0; $726 = HEAP32[$27 >> 2] | 0; $727 = Math_imul($726, $716) | 0; $728 = ($721 + $725) | 0; $729 = ($728 + $727) | 0; $730 = $729 >> $719; $731 = ($723 + $391) | 0; $732 = ($731 | 0) > ($bu$0$i$i | 0); if ($732) { $733 = ($723 + $bu$0$i$i) | 0; $734 = $733 >> 1; $bu$1$i$i = $734; } else { $bu$1$i$i = $bu$0$i$i; } $735 = ($730 + $bv$0$i$i) | 0; $736 = $735 >> 1; $737 = HEAP32[$aff$i >> 2] | 0; $738 = Math_imul($737, $bu$1$i$i) | 0; $739 = HEAP32[$21 >> 2] | 0; $740 = Math_imul($739, $736) | 0; $741 = ($738 + $496) | 0; $742 = ($741 + $740) | 0; $743 = HEAP32[$22 >> 2] | 0; $744 = Math_imul($743, $bu$1$i$i) | 0; $745 = HEAP32[$23 >> 2] | 0; $746 = Math_imul($745, $736) | 0; $747 = ($744 + $499) | 0; $748 = ($747 + $746) | 0; $749 = ($nb$0$i$i + 1) | 0; $750 = $blastfit$0$i$i >> 2; $751 = ($750 + $blastfit$0$i$i) | 0; $752 = ($751 | 0) > 1; $753 = $752 ? $751 : 1; $754 = ($nb$0$i$i | 0) < ($753 | 0); if ($754) { $blastfit$2$i$i = $blastfit$0$i$i; $bu$3$i$i = $bu$1$i$i; $bv$2$i$i = $736; $bx$2$i$i = $742; $by$2$i$i = $748; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $749; $nbempty$1$i$i = 0; break; } $755 = HEAP32[$30 >> 2] | 0; _qr_line_fit_points($47, $b$1$i$i, $749, $755); $$val68$i$i = HEAP32[$47 >> 2] | 0; $$idx69$val$i$i = HEAP32[$$idx69$i$i >> 2] | 0; $756 = _qr_aff_line_step($aff$i, $$val68$i$i, $$idx69$val$i$i, 0, $391, $dbv$i$i) | 0; $757 = ($756 | 0) > -1; if (!$757) { $blastfit$2$i$i = $749; $bu$3$i$i = $bu$1$i$i; $bv$2$i$i = $736; $bx$2$i$i = $742; $by$2$i$i = $748; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $749; $nbempty$1$i$i = 0; break; } $758 = HEAP32[$aff$i >> 2] | 0; $759 = Math_imul($758, $391) | 0; $760 = HEAP32[$21 >> 2] | 0; $761 = HEAP32[$dbv$i$i >> 2] | 0; $762 = Math_imul($761, $760) | 0; $763 = ($762 + $759) | 0; $764 = HEAP32[$22 >> 2] | 0; $765 = Math_imul($764, $391) | 0; $766 = HEAP32[$23 >> 2] | 0; $767 = Math_imul($766, $761) | 0; $768 = ($767 + $765) | 0; $blastfit$2$i$i = $749; $bu$3$i$i = $bu$1$i$i; $bv$2$i$i = $736; $bx$2$i$i = $742; $by$2$i$i = $748; $dbxi$3$i$i = $763; $dbyi$3$i$i = $768; $nb$2$i$i = $749; $nbempty$1$i$i = 0; } else { label = 81; } } while (0); if ((label | 0) == 81) { label = 0; $769 = ($nbempty$0$i$i + 1) | 0; $blastfit$2$i$i = $blastfit$0$i$i; $bu$3$i$i = $bu$0$i$i; $bv$2$i$i = $bv$0$i$i; $bx$2$i$i = $bx$0$i$i; $by$2$i$i = $by$0$i$i; $dbxi$3$i$i = $dbxi$0$i$i; $dbyi$3$i$i = $dbyi$0$i$i; $nb$2$i$i = $nb$0$i$i; $nbempty$1$i$i = $769; } $bu$4$i$i = ($bu$3$i$i + $537) | 0; $nbempty$2$i$i = $536 ? $nbempty$1$i$i : 2147483647; $770 = HEAP32[$dbv$i$i >> 2] | 0; $771 = ($770 + $bv$2$i$i) | 0; $772 = ($dbxi$3$i$i + $bx$2$i$i) | 0; $773 = ($dbyi$3$i$i + $by$2$i$i) | 0; $b$0$i$i = $b$1$i$i; $blastfit$0$i$i = $blastfit$2$i$i; $bu$0$i$i = $bu$4$i$i; $bv$0$i$i = $771; $bx$0$i$i = $772; $by$0$i$i = $773; $cb$0$i$i = $cb$1$i$i; $dbxi$0$i$i = $dbxi$3$i$i; $dbyi$0$i$i = $dbyi$3$i$i; $nb$0$i$i = $nb$2$i$i; $nbempty$0$i$i = $nbempty$2$i$i; } $554 = ($rx$0$ph$i$i + $518) | 0; $555 = HEAP32[$30 >> 2] | 0; $556 = ($555 + 2) | 0; $557 = $554 >> $556; $558 = ($ry$0$ph$i$i + $519) | 0; $559 = $558 >> $556; $560 = ($rx$0$ph$i$i - $518) | 0; $561 = $560 >> $556; $562 = ($ry$0$ph$i$i - $519) | 0; $563 = $562 >> $556; $564 = ($nr$0$ph$i$i | 0) < ($cr$0$ph$i$i | 0); if ($564) { $cr$1$i$i = $cr$0$ph$i$i; $r$1$i$i = $r$0$ph$i$i; } else { $565 = $cr$0$ph$i$i << 1; $566 = $565 | 1; $567 = $566 << 3; $568 = _realloc($r$0$ph$i$i, $567) | 0; $cr$1$i$i = $566; $r$1$i$i = $568; } $notlhs$i$i$i = ($557 | 0) < 0; $notrhs$i$i$i = ($557 | 0) >= ($_width | 0); $or$cond$not$i$i$i = $notrhs$i$i$i | $notlhs$i$i$i; $569 = ($559 | 0) < 0; $or$cond1$i$i$i = $or$cond$not$i$i$i | $569; $$not$i$i$i = ($559 | 0) >= ($_height | 0); $or$cond2$not$i$i$i = $or$cond1$i$i$i | $$not$i$i$i; $570 = ($561 | 0) < 0; $or$cond3$i$i$i = $or$cond2$not$i$i$i | $570; $$not7$i$i$i = ($561 | 0) >= ($_width | 0); $or$cond4$not$i$i$i = $or$cond3$i$i$i | $$not7$i$i$i; $571 = ($563 | 0) < 0; $or$cond5$i$i$i = $or$cond4$not$i$i$i | $571; $or$cond5$not$i$i$i = $or$cond5$i$i$i ^ 1; $572 = ($563 | 0) < ($_height | 0); $or$cond6$i$i$i = $572 & $or$cond5$not$i$i$i; do { if ($or$cond6$i$i$i) { $573 = Math_imul($559, $_width) | 0; $574 = ($573 + $557) | 0; $575 = ($_img + $574) | 0; $576 = HEAP8[$575 >> 0] | 0; $577 = ($576 << 24) >> 24 == 0; if (!$577) { $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $nr$0$ph$i$i; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $rlastfit$0$ph$i$i; $ru$2$i$i = $ru$0$ph$i$i; $rv$3$i$i = $rv$0$ph$i$i; $rx$2$i$i = $rx$0$ph$i$i; $ry$2$i$i = $ry$0$ph$i$i; break; } $578 = Math_imul($563, $_width) | 0; $579 = ($578 + $561) | 0; $580 = ($_img + $579) | 0; $581 = HEAP8[$580 >> 0] | 0; $582 = ($581 << 24) >> 24 == 0; if (!$582) { $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $nr$0$ph$i$i; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $rlastfit$0$ph$i$i; $ru$2$i$i = $ru$0$ph$i$i; $rv$3$i$i = $rv$0$ph$i$i; $rx$2$i$i = $rx$0$ph$i$i; $ry$2$i$i = $ry$0$ph$i$i; break; } $583 = ($563 + $559) | 0; $584 = $583 >> 1; $585 = Math_imul($584, $_width) | 0; $586 = ($561 + $557) | 0; $587 = $586 >> 1; $588 = ($585 + $587) | 0; $589 = ($_img + $588) | 0; $590 = HEAP8[$589 >> 0] | 0; $591 = ($590 << 24) >> 24 == 0; $$$i$i$i = ($591 << 31) >> 31; if ($591) { $ret$0$i$i = $$$i$i$i; } else { $592 = ($r$1$i$i + ($nr$0$ph$i$i << 3)) | 0; $593 = _qr_finder_locate_crossing($_img, $_width, $557, $559, $561, $563, 1, $592) | 0; $ret$0$i$i = $593; } $594 = ($ret$0$i$i | 0) > -1; if (!$594) { label = 64; break; } $595 = ($ret$0$i$i | 0) == 0; if (!$595) { $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $nr$0$ph$i$i; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $rlastfit$0$ph$i$i; $ru$2$i$i = $ru$0$ph$i$i; $rv$3$i$i = $rv$0$ph$i$i; $rx$2$i$i = $rx$0$ph$i$i; $ry$2$i$i = $ry$0$ph$i$i; break; } $596 = ($r$1$i$i + ($nr$0$ph$i$i << 3)) | 0; $597 = HEAP32[$596 >> 2] | 0; $598 = ((($r$1$i$i + ($nr$0$ph$i$i << 3)) | 0) + 4) | 0; $599 = HEAP32[$598 >> 2] | 0; $600 = HEAP32[$24 >> 2] | 0; $601 = HEAP32[$28 >> 2] | 0; $602 = ($597 - $601) | 0; $603 = Math_imul($602, $600) | 0; $604 = HEAP32[$25 >> 2] | 0; $605 = HEAP32[$29 >> 2] | 0; $606 = ($599 - $605) | 0; $607 = Math_imul($606, $604) | 0; $608 = ($607 + $603) | 0; $609 = HEAP32[$31 >> 2] | 0; $610 = 1 << $609; $611 = $610 >> 1; $612 = ($608 + $611) | 0; $613 = $612 >> $609; $614 = HEAP32[$26 >> 2] | 0; $615 = Math_imul($614, $602) | 0; $616 = HEAP32[$27 >> 2] | 0; $617 = Math_imul($616, $606) | 0; $618 = ($611 + $615) | 0; $619 = ($618 + $617) | 0; $620 = $619 >> $609; $621 = ($613 + $ru$0$ph$i$i) | 0; $622 = $621 >> 1; $623 = ($620 + $336) | 0; $624 = ($623 | 0) > ($rv$0$ph$i$i | 0); if ($624) { $625 = ($620 + $rv$0$ph$i$i) | 0; $626 = $625 >> 1; $rv$1$i$i = $626; } else { $rv$1$i$i = $rv$0$ph$i$i; } $627 = HEAP32[$aff$i >> 2] | 0; $628 = Math_imul($627, $622) | 0; $629 = HEAP32[$21 >> 2] | 0; $630 = Math_imul($629, $rv$1$i$i) | 0; $631 = ($628 + $496) | 0; $632 = ($631 + $630) | 0; $633 = HEAP32[$22 >> 2] | 0; $634 = Math_imul($633, $622) | 0; $635 = HEAP32[$23 >> 2] | 0; $636 = Math_imul($635, $rv$1$i$i) | 0; $637 = ($634 + $499) | 0; $638 = ($637 + $636) | 0; $639 = ($nr$0$ph$i$i + 1) | 0; $640 = $rlastfit$0$ph$i$i >> 2; $641 = ($640 + $rlastfit$0$ph$i$i) | 0; $642 = ($641 | 0) > 1; $643 = $642 ? $641 : 1; $644 = ($nr$0$ph$i$i | 0) < ($643 | 0); if ($644) { $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $639; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $rlastfit$0$ph$i$i; $ru$2$i$i = $622; $rv$3$i$i = $rv$1$i$i; $rx$2$i$i = $632; $ry$2$i$i = $638; break; } $645 = HEAP32[$30 >> 2] | 0; _qr_line_fit_points($45, $r$1$i$i, $639, $645); $$val70$i$i = HEAP32[$45 >> 2] | 0; $$idx71$val$i$i = HEAP32[$$idx71$i$i >> 2] | 0; $646 = _qr_aff_line_step($aff$i, $$val70$i$i, $$idx71$val$i$i, 1, $336, $dru$i$i) | 0; $647 = ($646 | 0) > -1; if (!$647) { $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $639; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $639; $ru$2$i$i = $622; $rv$3$i$i = $rv$1$i$i; $rx$2$i$i = $632; $ry$2$i$i = $638; break; } $648 = HEAP32[$aff$i >> 2] | 0; $649 = HEAP32[$dru$i$i >> 2] | 0; $650 = Math_imul($649, $648) | 0; $651 = HEAP32[$21 >> 2] | 0; $652 = Math_imul($651, $336) | 0; $653 = ($652 + $650) | 0; $654 = HEAP32[$22 >> 2] | 0; $655 = Math_imul($654, $649) | 0; $656 = HEAP32[$23 >> 2] | 0; $657 = Math_imul($656, $336) | 0; $658 = ($657 + $655) | 0; $drxi$3$i$i = $653; $dryi$3$i$i = $658; $nr$2$i$i = $639; $nrempty$1$i$i = 0; $rlastfit$2$i$i = $639; $ru$2$i$i = $622; $rv$3$i$i = $rv$1$i$i; $rx$2$i$i = $632; $ry$2$i$i = $638; } else { label = 64; } } while (0); if ((label | 0) == 64) { label = 0; $659 = ($nrempty$0$ph$i$i + 1) | 0; $drxi$3$i$i = $drxi$0$ph$i$i; $dryi$3$i$i = $dryi$0$ph$i$i; $nr$2$i$i = $nr$0$ph$i$i; $nrempty$1$i$i = $659; $rlastfit$2$i$i = $rlastfit$0$ph$i$i; $ru$2$i$i = $ru$0$ph$i$i; $rv$3$i$i = $rv$0$ph$i$i; $rx$2$i$i = $rx$0$ph$i$i; $ry$2$i$i = $ry$0$ph$i$i; } $660 = HEAP32[$dru$i$i >> 2] | 0; $661 = ($660 + $ru$2$i$i) | 0; $nrempty$2$i$i = $538 ? $nrempty$1$i$i : 2147483647; $rv$4$i$i = ($rv$3$i$i + $539) | 0; $662 = ($rx$2$i$i + $drxi$3$i$i) | 0; $663 = ($dryi$3$i$i + $ry$2$i$i) | 0; $b$0$ph$i$i = $b$0$i$i; $blastfit$0$ph$i$i = $blastfit$0$i$i; $bu$0$ph$i$i = $bu$0$i$i; $bv$0$ph$i$i = $bv$0$i$i; $bx$0$ph$i$i = $bx$0$i$i; $by$0$ph$i$i = $by$0$i$i; $cb$0$ph$i$i = $cb$0$i$i; $cr$0$ph$i$i = $cr$1$i$i; $dbxi$0$ph$i$i = $dbxi$0$i$i; $dbyi$0$ph$i$i = $dbyi$0$i$i; $drxi$0$ph$i$i = $drxi$3$i$i; $dryi$0$ph$i$i = $dryi$3$i$i; $nb$0$ph$i$i = $nb$0$i$i; $nbempty$0$ph$i$i = $nbempty$0$i$i; $nr$0$ph$i$i = $nr$2$i$i; $nrempty$0$ph$i$i = $nrempty$2$i$i; $r$0$ph$i$i = $r$1$i$i; $rlastfit$0$ph$i$i = $rlastfit$2$i$i; $ru$0$ph$i$i = $661; $rv$0$ph$i$i = $rv$4$i$i; $rx$0$ph$i$i = $662; $ry$0$ph$i$i = $663; } $774 = ($nr$0$ph$i$i | 0) > 1; if ($774) { $775 = HEAP32[$30 >> 2] | 0; _qr_line_fit_points($45, $r$0$ph$i$i, $nr$0$ph$i$i, $775); } else { $776 = HEAP32[$ur$i >> 2] | 0; $777 = ($776 * 3) | 0; $778 = ($777 + $546) | 0; $779 = HEAP32[$33 >> 2] | 0; $780 = HEAP32[$aff$i >> 2] | 0; $781 = Math_imul($780, $778) | 0; $782 = HEAP32[$21 >> 2] | 0; $783 = Math_imul($782, $779) | 0; $784 = ($783 + $781) | 0; $785 = HEAP32[$30 >> 2] | 0; $786 = ($785 + -1) | 0; $787 = 1 << $786; $788 = ($784 + $787) | 0; $789 = $788 >> $785; $790 = HEAP32[$28 >> 2] | 0; $791 = ($789 + $790) | 0; $792 = HEAP32[$22 >> 2] | 0; $793 = Math_imul($792, $778) | 0; $794 = HEAP32[$23 >> 2] | 0; $795 = Math_imul($794, $779) | 0; $796 = ($793 + $787) | 0; $797 = ($796 + $795) | 0; $798 = $797 >> $785; $799 = HEAP32[$29 >> 2] | 0; $800 = ($798 + $799) | 0; $ispos$i34$i = ($782 | 0) > -1; $neg$i35$i = (0 - $782) | 0; $801 = $ispos$i34$i ? $782 : $neg$i35$i; $ispos4$i$i = ($794 | 0) > -1; $neg5$i$i = (0 - $794) | 0; $802 = $ispos4$i$i ? $794 : $neg5$i$i; $803 = ($801 - $802) | 0; $804 = ($802 | 0) > ($801 | 0); $805 = $804 ? $803 : 0; $806 = ($801 - $805) | 0; $807 = _qr_ilog($806) | 0; $808 = HEAP32[$30 >> 2] | 0; $809 = ($808 + 1) | 0; $810 = $809 >> 1; $811 = HEAP32[$21 >> 2] | 0; $ispos10$i$i = ($811 | 0) > -1; $neg11$i$i = (0 - $811) | 0; $812 = $ispos10$i$i ? $811 : $neg11$i$i; $813 = HEAP32[$23 >> 2] | 0; $ispos14$i$i = ($813 | 0) > -1; $neg15$i$i = (0 - $813) | 0; $814 = $ispos14$i$i ? $813 : $neg15$i$i; $815 = ($812 - $814) | 0; $816 = ($814 | 0) > ($812 | 0); $817 = $816 ? $815 : 0; $818 = ($812 - $817) | 0; $819 = _qr_ilog($818) | 0; $820 = HEAP32[$30 >> 2] | 0; $821 = ($820 + 1) | 0; $822 = $821 >> 1; $823 = ($819 - $822) | 0; $824 = ($823 | 0) > 0; $825 = ($807 - $810) | 0; $826 = $824 ? $825 : 0; $827 = 1 << $826; $828 = $827 >> 1; $829 = HEAP32[$23 >> 2] | 0; $830 = ($828 + $829) | 0; $831 = $830 >> $826; HEAP32[$45 >> 2] = $831; $832 = HEAP32[$21 >> 2] | 0; $833 = ($828 - $832) | 0; $834 = $833 >> $826; HEAP32[$$idx71$i$i >> 2] = $834; $835 = Math_imul($831, $791) | 0; $836 = Math_imul($834, $800) | 0; $837 = ($835 + $836) | 0; $838 = (0 - $837) | 0; HEAP32[$87 >> 2] = $838; } _free($r$0$ph$i$i); $839 = ($nb$0$i$i | 0) > 1; if ($839) { $840 = HEAP32[$30 >> 2] | 0; _qr_line_fit_points($47, $b$0$i$i, $nb$0$i$i, $840); } else { $841 = HEAP32[$34 >> 2] | 0; $842 = HEAP32[$35 >> 2] | 0; $843 = HEAP32[$49 >> 2] | 0; $844 = ($843 * 3) | 0; $845 = ($844 + $842) | 0; $846 = HEAP32[$aff$i >> 2] | 0; $847 = Math_imul($846, $841) | 0; $848 = HEAP32[$21 >> 2] | 0; $849 = Math_imul($848, $845) | 0; $850 = ($849 + $847) | 0; $851 = HEAP32[$30 >> 2] | 0; $852 = ($851 + -1) | 0; $853 = 1 << $852; $854 = ($850 + $853) | 0; $855 = $854 >> $851; $856 = HEAP32[$28 >> 2] | 0; $857 = ($855 + $856) | 0; $858 = HEAP32[$22 >> 2] | 0; $859 = Math_imul($858, $841) | 0; $860 = HEAP32[$23 >> 2] | 0; $861 = Math_imul($860, $845) | 0; $862 = ($859 + $853) | 0; $863 = ($862 + $861) | 0; $864 = $863 >> $851; $865 = HEAP32[$29 >> 2] | 0; $866 = ($864 + $865) | 0; $ispos20$i$i = ($848 | 0) > -1; $neg21$i$i = (0 - $848) | 0; $867 = $ispos20$i$i ? $848 : $neg21$i$i; $ispos24$i$i = ($860 | 0) > -1; $neg25$i$i = (0 - $860) | 0; $868 = $ispos24$i$i ? $860 : $neg25$i$i; $869 = ($867 - $868) | 0; $870 = ($868 | 0) > ($867 | 0); $871 = $870 ? $869 : 0; $872 = ($867 - $871) | 0; $873 = _qr_ilog($872) | 0; $874 = HEAP32[$30 >> 2] | 0; $875 = ($874 + 1) | 0; $876 = $875 >> 1; $877 = HEAP32[$21 >> 2] | 0; $ispos30$i$i = ($877 | 0) > -1; $neg31$i$i = (0 - $877) | 0; $878 = $ispos30$i$i ? $877 : $neg31$i$i; $879 = HEAP32[$23 >> 2] | 0; $ispos34$i$i = ($879 | 0) > -1; $neg35$i$i = (0 - $879) | 0; $880 = $ispos34$i$i ? $879 : $neg35$i$i; $881 = ($878 - $880) | 0; $882 = ($880 | 0) > ($878 | 0); $883 = $882 ? $881 : 0; $884 = ($878 - $883) | 0; $885 = _qr_ilog($884) | 0; $886 = HEAP32[$30 >> 2] | 0; $887 = ($886 + 1) | 0; $888 = $887 >> 1; $889 = ($885 - $888) | 0; $890 = ($889 | 0) > 0; $891 = ($873 - $876) | 0; $892 = $890 ? $891 : 0; $893 = 1 << $892; $894 = $893 >> 1; $895 = HEAP32[$22 >> 2] | 0; $896 = ($894 + $895) | 0; $897 = $896 >> $892; HEAP32[$47 >> 2] = $897; $898 = HEAP32[$aff$i >> 2] | 0; $899 = ($894 - $898) | 0; $900 = $899 >> $892; HEAP32[$$idx69$i$i >> 2] = $900; $901 = HEAP32[$45 >> 2] | 0; $902 = Math_imul($901, $857) | 0; $903 = HEAP32[$$idx71$i$i >> 2] | 0; $904 = Math_imul($903, $866) | 0; $905 = ($902 + $904) | 0; $906 = (0 - $905) | 0; HEAP32[$86 >> 2] = $906; } _free($b$0$i$i); $i$2108$i$i = 0; while (1) { $909 = ($bbox$i + ($i$2108$i$i << 3)) | 0; $910 = $i$2108$i$i & 1; $911 = ($l$i$i + (($910 * 12) | 0)) | 0; $912 = $i$2108$i$i >> 1; $913 = ($912 + 2) | 0; $914 = ($l$i$i + (($913 * 12) | 0)) | 0; $915 = HEAP32[$911 >> 2] | 0; $916 = ((($l$i$i + (($913 * 12) | 0)) | 0) + 4) | 0; $917 = HEAP32[$916 >> 2] | 0; $918 = Math_imul($917, $915) | 0; $919 = ((($l$i$i + (($910 * 12) | 0)) | 0) + 4) | 0; $920 = HEAP32[$919 >> 2] | 0; $921 = HEAP32[$914 >> 2] | 0; $922 = Math_imul($921, $920) | 0; $923 = ($918 - $922) | 0; $924 = ($918 | 0) == ($922 | 0); if ($924) { $$01$i = 0; $$1$i = $$0$i; break L19; } $925 = ((($l$i$i + (($913 * 12) | 0)) | 0) + 8) | 0; $926 = HEAP32[$925 >> 2] | 0; $927 = Math_imul($926, $920) | 0; $928 = ((($l$i$i + (($910 * 12) | 0)) | 0) + 8) | 0; $929 = HEAP32[$928 >> 2] | 0; $930 = Math_imul($929, $917) | 0; $931 = ($927 - $930) | 0; $932 = Math_imul($929, $921) | 0; $933 = Math_imul($926, $915) | 0; $934 = ($932 - $933) | 0; $935 = ($923 | 0) < 0; if ($935) { $936 = (0 - $931) | 0; $937 = (0 - $934) | 0; $938 = (0 - $923) | 0; $d$0$i$i$i = $938; $x$0$i$i$i = $936; $y$0$i$i$i = $937; } else { $d$0$i$i$i = $923; $x$0$i$i$i = $931; $y$0$i$i$i = $934; } $939 = $d$0$i$i$i >> 1; $940 = $x$0$i$i$i >> 31; $941 = ($940 + $939) | 0; $942 = $941 ^ $940; $943 = ($942 + $x$0$i$i$i) | 0; $944 = (($943 | 0) / ($d$0$i$i$i | 0)) & -1; HEAP32[$909 >> 2] = $944; $945 = $y$0$i$i$i >> 31; $946 = ($945 + $939) | 0; $947 = $946 ^ $945; $948 = ($947 + $y$0$i$i$i) | 0; $949 = (($948 | 0) / ($d$0$i$i$i | 0)) & -1; $950 = ((($bbox$i + ($i$2108$i$i << 3)) | 0) + 4) | 0; HEAP32[$950 >> 2] = $949; $951 = ($944 | 0) >= ($53 | 0); $952 = ($944 | 0) < ($54 | 0); $or$cond43$i$i = $951 & $952; if (!$or$cond43$i$i) { $$01$i = 0; $$1$i = $$0$i; break L19; } $953 = ($949 | 0) >= ($56 | 0); $954 = ($949 | 0) < ($57 | 0); $or$cond45$i$i = $953 & $954; $907 = ($i$2108$i$i + 1) | 0; if (!$or$cond45$i$i) { $$01$i = 0; $$1$i = $$0$i; break L19; } $908 = ($907 | 0) < 4; if ($908) { $i$2108$i$i = $907; } else { break; } } $955 = HEAP32[$58 >> 2] | 0; $956 = HEAP32[$59 >> 2] | 0; $957 = HEAP32[$41 >> 2] | 0; $958 = HEAP32[$40 >> 2] | 0; $959 = ($958 + $957) | 0; $960 = HEAP32[$60 >> 2] | 0; $961 = ($959 + $960) | 0; $962 = HEAP32[$61 >> 2] | 0; $963 = ($961 + $962) | 0; $964 = ($963 | 0) > 4; do { if ($964) { $965 = ($963 + 16) | 0; $966 = HEAP32[$bbox$i >> 2] | 0; $967 = HEAP32[$62 >> 2] | 0; $968 = HEAP32[$63 >> 2] | 0; $969 = HEAP32[$64 >> 2] | 0; $970 = HEAP32[$65 >> 2] | 0; $971 = HEAP32[$66 >> 2] | 0; _qr_hom_cell_init( $cell$i$i, 0, 0, $965, 0, 0, $965, $965, $965, $966, $967, $968, $969, $970, $971, $955, $956 ); $972 = ($963 + 10) | 0; $973 = _qr_alignment_pattern_search($p3$i$i, $cell$i$i, $972, $972, 4, $_img, $_width, $_height) | 0; $974 = ($973 | 0) > -1; if (!$974) { $1114 = $966; $1115 = $968; $1117 = $970; $1122 = $967; $1123 = $969; $1125 = $971; $brx$2$i$i = $955; $bry$2$i$i = $956; break; } $975 = Math_imul($970, $969) | 0; $976 = Math_imul($971, $968) | 0; $977 = ($975 - $976) | 0; $978 = ($970 - $968) | 0; $979 = ($971 - $969) | 0; $980 = ($972 | 0) < 0; $981 = ($980 << 31) >> 31; $982 = ($977 | 0) < 0; $983 = ($982 << 31) >> 31; $984 = ___muldi3($977 | 0, $983 | 0, $972 | 0, $981 | 0) | 0; $985 = tempRet0; $986 = ($963 + 4) | 0; $987 = ($986 | 0) < 0; $988 = ($987 << 31) >> 31; $989 = Math_imul($979, $966) | 0; $990 = Math_imul($978, $967) | 0; $991 = ($989 - $990) | 0; $992 = ($991 | 0) < 0; $993 = ($992 << 31) >> 31; $994 = ___muldi3($991 | 0, $993 | 0, $986 | 0, $988 | 0) | 0; $995 = tempRet0; $996 = HEAP32[$p3$i$i >> 2] | 0; $997 = Math_imul($996, $979) | 0; $998 = HEAP32[$67 >> 2] | 0; $999 = Math_imul($998, $978) | 0; $1000 = ($997 - $999) | 0; $1001 = ($1000 | 0) < 0; $1002 = ($1001 << 31) >> 31; $1003 = ___muldi3($1000 | 0, $1002 | 0, 6, 0) | 0; $1004 = tempRet0; $1005 = _i64Add($994 | 0, $995 | 0, $984 | 0, $985 | 0) | 0; $1006 = tempRet0; $1007 = _i64Add($1005 | 0, $1006 | 0, $1003 | 0, $1004 | 0) | 0; $1008 = tempRet0; $1009 = ($1007 | 0) == 0; $1010 = ($1008 | 0) == 0; $1011 = $1009 & $1010; if ($1011) { $$01$i = 0; $$1$i = $$0$i; break L19; } $1012 = _bitshift64Lshr($1007 | 0, $1008 | 0, 63) | 0; $1013 = tempRet0; $1014 = (0 - $1012) | 0; $1015 = ($1014 | 0) < 0; $1016 = ($1015 << 31) >> 31; $1017 = _i64Add($1014 | 0, $1016 | 0, $1007 | 0, $1008 | 0) | 0; $1018 = tempRet0; $1019 = $1017 ^ $1014; $1020 = $1018 ^ $1016; $1021 = Math_imul($966, $972) | 0; $1022 = ($1021 | 0) < 0; $1023 = ($1022 << 31) >> 31; $1024 = ($997 | 0) < 0; $1025 = ($1024 << 31) >> 31; $1026 = ___muldi3($997 | 0, $1025 | 0, $1021 | 0, $1023 | 0) | 0; $1027 = tempRet0; $1028 = Math_imul($996, $986) | 0; $1029 = ($1028 | 0) < 0; $1030 = ($1029 << 31) >> 31; $1031 = ($977 - $990) | 0; $1032 = ($1031 | 0) < 0; $1033 = ($1032 << 31) >> 31; $1034 = ___muldi3($1028 | 0, $1030 | 0, $1031 | 0, $1033 | 0) | 0; $1035 = tempRet0; $1036 = ($966 * 6) | 0; $1037 = ($1036 | 0) < 0; $1038 = ($1037 << 31) >> 31; $1039 = ($977 - $999) | 0; $1040 = ($1039 | 0) < 0; $1041 = ($1040 << 31) >> 31; $1042 = ___muldi3($1039 | 0, $1041 | 0, $1036 | 0, $1038 | 0) | 0; $1043 = tempRet0; $1044 = _i64Add($1026 | 0, $1027 | 0, $1034 | 0, $1035 | 0) | 0; $1045 = tempRet0; $1046 = _i64Add($1044 | 0, $1045 | 0, $1042 | 0, $1043 | 0) | 0; $1047 = tempRet0; $1048 = _i64Add($1046 | 0, $1047 | 0, $1014 | 0, $1016 | 0) | 0; $1049 = tempRet0; $1050 = $1048 ^ $1014; $1051 = $1049 ^ $1016; $1052 = _bitshift64Ashr($1019 | 0, $1020 | 0, 1) | 0; $1053 = tempRet0; $1054 = _bitshift64Lshr($1050 | 0, $1051 | 0, 63) | 0; $1055 = tempRet0; $1056 = (0 - $1054) | 0; $1057 = ($1056 | 0) < 0; $1058 = ($1057 << 31) >> 31; $1059 = _i64Add($1056 | 0, $1058 | 0, $1052 | 0, $1053 | 0) | 0; $1060 = tempRet0; $1061 = $1059 ^ $1056; $1062 = $1060 ^ $1058; $1063 = _i64Add($1061 | 0, $1062 | 0, $1050 | 0, $1051 | 0) | 0; $1064 = tempRet0; $1065 = ___divdi3($1063 | 0, $1064 | 0, $1019 | 0, $1020 | 0) | 0; $1066 = tempRet0; $1067 = Math_imul($967, $972) | 0; $1068 = ($1067 | 0) < 0; $1069 = ($1068 << 31) >> 31; $1070 = (0 - $978) | 0; $1071 = Math_imul($998, $1070) | 0; $1072 = ($1071 | 0) < 0; $1073 = ($1072 << 31) >> 31; $1074 = ___muldi3($1071 | 0, $1073 | 0, $1067 | 0, $1069 | 0) | 0; $1075 = tempRet0; $1076 = Math_imul($998, $986) | 0; $1077 = ($1076 | 0) < 0; $1078 = ($1077 << 31) >> 31; $1079 = ($977 + $989) | 0; $1080 = ($1079 | 0) < 0; $1081 = ($1080 << 31) >> 31; $1082 = ___muldi3($1076 | 0, $1078 | 0, $1079 | 0, $1081 | 0) | 0; $1083 = tempRet0; $1084 = ($967 * 6) | 0; $1085 = ($1084 | 0) < 0; $1086 = ($1085 << 31) >> 31; $1087 = ($997 + $977) | 0; $1088 = ($1087 | 0) < 0; $1089 = ($1088 << 31) >> 31; $1090 = ___muldi3($1087 | 0, $1089 | 0, $1084 | 0, $1086 | 0) | 0; $1091 = tempRet0; $1092 = _i64Add($1082 | 0, $1083 | 0, $1090 | 0, $1091 | 0) | 0; $1093 = tempRet0; $1094 = _i64Add($1092 | 0, $1093 | 0, $1074 | 0, $1075 | 0) | 0; $1095 = tempRet0; $1096 = _i64Add($1094 | 0, $1095 | 0, $1014 | 0, $1016 | 0) | 0; $1097 = tempRet0; $1098 = $1096 ^ $1014; $1099 = $1097 ^ $1016; $1100 = _bitshift64Lshr($1098 | 0, $1099 | 0, 63) | 0; $1101 = tempRet0; $1102 = (0 - $1100) | 0; $1103 = ($1102 | 0) < 0; $1104 = ($1103 << 31) >> 31; $1105 = _i64Add($1102 | 0, $1104 | 0, $1052 | 0, $1053 | 0) | 0; $1106 = tempRet0; $1107 = $1105 ^ $1102; $1108 = $1106 ^ $1104; $1109 = _i64Add($1107 | 0, $1108 | 0, $1098 | 0, $1099 | 0) | 0; $1110 = tempRet0; $1111 = ___divdi3($1109 | 0, $1110 | 0, $1019 | 0, $1020 | 0) | 0; $1112 = tempRet0; $1114 = $966; $1115 = $968; $1117 = $970; $1122 = $967; $1123 = $969; $1125 = $971; $brx$2$i$i = $1065; $bry$2$i$i = $1111; } else { $$pre$i = HEAP32[$bbox$i >> 2] | 0; $$pre104$i = HEAP32[$62 >> 2] | 0; $$pre105$i = HEAP32[$63 >> 2] | 0; $$pre106$i = HEAP32[$64 >> 2] | 0; $$pre107$i = HEAP32[$65 >> 2] | 0; $$pre108$i = HEAP32[$66 >> 2] | 0; $1114 = $$pre$i; $1115 = $$pre105$i; $1117 = $$pre107$i; $1122 = $$pre104$i; $1123 = $$pre106$i; $1125 = $$pre108$i; $brx$2$i$i = $955; $bry$2$i$i = $956; } } while (0); $1113 = ($1115 - $1114) | 0; $1116 = ($1117 - $1114) | 0; $1118 = ($brx$2$i$i - $1114) | 0; $1119 = ($brx$2$i$i - $1115) | 0; $1120 = ($brx$2$i$i - $1117) | 0; $1121 = ($1123 - $1122) | 0; $1124 = ($1125 - $1122) | 0; $1126 = ($bry$2$i$i - $1122) | 0; $1127 = ($bry$2$i$i - $1123) | 0; $1128 = ($bry$2$i$i - $1125) | 0; $1129 = Math_imul($1120, $1121) | 0; $1130 = Math_imul($1128, $1113) | 0; $1131 = ($1129 - $1130) | 0; $1132 = Math_imul($1127, $1116) | 0; $1133 = Math_imul($1119, $1124) | 0; $1134 = ($1132 - $1133) | 0; $1135 = Math_imul($1127, $1120) | 0; $1136 = Math_imul($1128, $1119) | 0; $1137 = ($1135 - $1136) | 0; $ispos$i$i$i = ($1113 | 0) > -1; $neg$i$i$i = (0 - $1113) | 0; $1138 = $ispos$i$i$i ? $1113 : $neg$i$i$i; $ispos3$i$i$i = ($1121 | 0) > -1; $neg4$i$i$i = (0 - $1121) | 0; $1139 = $ispos3$i$i$i ? $1121 : $neg4$i$i$i; $1140 = ($1138 - $1139) | 0; $1141 = ($1139 | 0) > ($1138 | 0); $1142 = $1141 ? $1140 : 0; $1143 = ($1138 - $1142) | 0; $1144 = _qr_ilog($1143) | 0; $1145 = ($1131 + $1137) | 0; $ispos9$i$i$i = ($1145 | 0) > -1; $neg10$i$i$i = (0 - $1145) | 0; $1146 = $ispos9$i$i$i ? $1145 : $neg10$i$i$i; $1147 = _qr_ilog($1146) | 0; $1148 = ($1147 + $1144) | 0; $ispos11$i$i$i = ($1116 | 0) > -1; $neg12$i$i$i = (0 - $1116) | 0; $1149 = $ispos11$i$i$i ? $1116 : $neg12$i$i$i; $ispos15$i$i$i = ($1124 | 0) > -1; $neg16$i$i$i = (0 - $1124) | 0; $1150 = $ispos15$i$i$i ? $1124 : $neg16$i$i$i; $1151 = ($1149 - $1150) | 0; $1152 = ($1150 | 0) > ($1149 | 0); $1153 = $1152 ? $1151 : 0; $1154 = ($1149 - $1153) | 0; $1155 = _qr_ilog($1154) | 0; $1156 = ($1134 + $1137) | 0; $ispos21$i$i$i = ($1156 | 0) > -1; $neg22$i$i$i = (0 - $1156) | 0; $1157 = $ispos21$i$i$i ? $1156 : $neg22$i$i$i; $1158 = _qr_ilog($1157) | 0; $1159 = ($1158 + $1155) | 0; $ispos23$i$i$i = ($1131 | 0) > -1; $neg24$i$i$i = (0 - $1131) | 0; $1160 = $ispos23$i$i$i ? $1131 : $neg24$i$i$i; $ispos27$i$i$i = ($1134 | 0) > -1; $neg28$i$i$i = (0 - $1134) | 0; $1161 = $ispos27$i$i$i ? $1134 : $neg28$i$i$i; $1162 = ($1160 - $1161) | 0; $1163 = ($1161 | 0) > ($1160 | 0); $1164 = $1163 ? $1162 : 0; $1165 = ($1160 - $1164) | 0; $ispos43$i$i$i = ($1137 | 0) > -1; $neg44$i$i$i = (0 - $1137) | 0; $1166 = $ispos43$i$i$i ? $1137 : $neg44$i$i$i; $1167 = ($1165 - $1166) | 0; $1168 = ($1166 | 0) > ($1165 | 0); $1169 = $1168 ? $1167 : 0; $1170 = ($1165 - $1169) | 0; $1171 = _qr_ilog($1170) | 0; $1172 = ($1148 - $1159) | 0; $1173 = ($1159 | 0) > ($1148 | 0); $1174 = $1173 ? $1172 : 0; $1175 = ($1148 - $1174) | 0; $1176 = ($1175 - $1171) | 0; $1177 = ($1171 | 0) > ($1175 | 0); $1178 = $1177 ? $1176 : 0; $1179 = ($1175 - $1178) | 0; $1180 = ($1179 + -16) | 0; $1181 = ($1180 | 0) > 0; $1182 = $1181 ? $1180 : 0; $1183 = 1 << $1182; $1184 = $1183 >> 1; $1185 = ($1113 | 0) < 0; $1186 = ($1185 << 31) >> 31; $1187 = ($1145 | 0) < 0; $1188 = ($1187 << 31) >> 31; $1189 = ___muldi3($1145 | 0, $1188 | 0, $1113 | 0, $1186 | 0) | 0; $1190 = tempRet0; $1191 = ($1184 | 0) < 0; $1192 = ($1191 << 31) >> 31; $1193 = _i64Add($1184 | 0, $1192 | 0, $1189 | 0, $1190 | 0) | 0; $1194 = tempRet0; $1195 = _bitshift64Ashr($1193 | 0, $1194 | 0, $1182 | 0) | 0; $1196 = tempRet0; HEAP32[$hom$i >> 2] = $1195; $1197 = ($1116 | 0) < 0; $1198 = ($1197 << 31) >> 31; $1199 = ($1156 | 0) < 0; $1200 = ($1199 << 31) >> 31; $1201 = ___muldi3($1156 | 0, $1200 | 0, $1116 | 0, $1198 | 0) | 0; $1202 = tempRet0; $1203 = _i64Add($1184 | 0, $1192 | 0, $1201 | 0, $1202 | 0) | 0; $1204 = tempRet0; $1205 = _bitshift64Ashr($1203 | 0, $1204 | 0, $1182 | 0) | 0; $1206 = tempRet0; HEAP32[$68 >> 2] = $1205; HEAP32[$69 >> 2] = $1114; $1207 = ($1121 | 0) < 0; $1208 = ($1207 << 31) >> 31; $1209 = ___muldi3($1145 | 0, $1188 | 0, $1121 | 0, $1208 | 0) | 0; $1210 = tempRet0; $1211 = _i64Add($1184 | 0, $1192 | 0, $1209 | 0, $1210 | 0) | 0; $1212 = tempRet0; $1213 = _bitshift64Ashr($1211 | 0, $1212 | 0, $1182 | 0) | 0; $1214 = tempRet0; HEAP32[$70 >> 2] = $1213; $1215 = ($1124 | 0) < 0; $1216 = ($1215 << 31) >> 31; $1217 = ___muldi3($1156 | 0, $1200 | 0, $1124 | 0, $1216 | 0) | 0; $1218 = tempRet0; $1219 = _i64Add($1184 | 0, $1192 | 0, $1217 | 0, $1218 | 0) | 0; $1220 = tempRet0; $1221 = _bitshift64Ashr($1219 | 0, $1220 | 0, $1182 | 0) | 0; $1222 = tempRet0; HEAP32[$71 >> 2] = $1221; HEAP32[$72 >> 2] = $1122; $1223 = ($1184 + $1131) | 0; $1224 = $1223 >> $1182; HEAP32[$73 >> 2] = $1224; $1225 = ($1184 + $1134) | 0; $1226 = $1225 >> $1182; HEAP32[$74 >> 2] = $1226; $1227 = ($1182 | 0) > 14; if ($1227) { $1228 = $1183 >> 15; $1229 = ($1228 + $1137) | 0; $1230 = ($1182 + -14) | 0; $1231 = $1229 >> $1230; $1234 = $1231; } else { $1232 = (14 - $1182) | 0; $1233 = $1137 << $1232; $1234 = $1233; } HEAP32[$75 >> 2] = $1234; $1235 = ($1138 - $1149) | 0; $1236 = ($1149 | 0) > ($1138 | 0); $1237 = $1236 ? $1235 : 0; $1238 = ($1138 - $1237) | 0; $ispos77$i$i$i = ($1118 | 0) > -1; $neg78$i$i$i = (0 - $1118) | 0; $1239 = $ispos77$i$i$i ? $1118 : $neg78$i$i$i; $1240 = ($1238 - $1239) | 0; $1241 = ($1239 | 0) > ($1238 | 0); $1242 = $1241 ? $1240 : 0; $1243 = ($1238 - $1242) | 0; $1244 = _qr_ilog($1243) | 0; $ispos91$i$i$i = ($1195 | 0) > -1; $neg92$i$i$i = (0 - $1195) | 0; $1245 = $ispos91$i$i$i ? $1195 : $neg92$i$i$i; $ispos95$i$i$i = ($1213 | 0) > -1; $neg96$i$i$i = (0 - $1213) | 0; $1246 = $ispos95$i$i$i ? $1213 : $neg96$i$i$i; $1247 = ($1245 - $1246) | 0; $1248 = ($1246 | 0) > ($1245 | 0); $1249 = $1248 ? $1247 : 0; $1250 = ($1245 - $1249) | 0; $1251 = _qr_ilog($1250) | 0; $1252 = ($1251 + $1244) | 0; $1253 = ($1139 - $1150) | 0; $1254 = ($1150 | 0) > ($1139 | 0); $1255 = $1254 ? $1253 : 0; $1256 = ($1139 - $1255) | 0; $ispos121$i$i$i = ($1126 | 0) > -1; $neg122$i$i$i = (0 - $1126) | 0; $1257 = $ispos121$i$i$i ? $1126 : $neg122$i$i$i; $1258 = ($1256 - $1257) | 0; $1259 = ($1257 | 0) > ($1256 | 0); $1260 = $1259 ? $1258 : 0; $1261 = ($1256 - $1260) | 0; $1262 = _qr_ilog($1261) | 0; $ispos135$i$i$i = ($1205 | 0) > -1; $neg136$i$i$i = (0 - $1205) | 0; $1263 = $ispos135$i$i$i ? $1205 : $neg136$i$i$i; $ispos139$i$i$i = ($1221 | 0) > -1; $neg140$i$i$i = (0 - $1221) | 0; $1264 = $ispos139$i$i$i ? $1221 : $neg140$i$i$i; $1265 = ($1263 - $1264) | 0; $1266 = ($1264 | 0) > ($1263 | 0); $1267 = $1266 ? $1265 : 0; $1268 = ($1263 - $1267) | 0; $1269 = _qr_ilog($1268) | 0; $1270 = ($1269 + $1262) | 0; $1271 = _qr_ilog($1166) | 0; $1272 = ($1270 | 0) > ($1252 | 0); $1273 = ($1270 - $1252) | 0; $$neg103$i$i = $1272 ? $1273 : 0; $1274 = (-29 - $1182) | 0; $1275 = ($1274 + $1252) | 0; $1276 = ($1275 + $1271) | 0; $1277 = ($1276 + $$neg103$i$i) | 0; $1278 = ($1277 | 0) > 0; $1279 = $1278 ? $1277 : 0; $1280 = 1 << $1279; $1281 = $1280 >> 1; $1282 = ($1279 + $1182) | 0; $1283 = $1184 << $1279; $1284 = ($1221 | 0) < 0; $1285 = ($1284 << 31) >> 31; $1286 = ($1137 | 0) < 0; $1287 = ($1286 << 31) >> 31; $1288 = ___muldi3($1221 | 0, $1285 | 0, $1137 | 0, $1287 | 0) | 0; $1289 = tempRet0; $1290 = ($1283 | 0) < 0; $1291 = ($1290 << 31) >> 31; $1292 = _i64Add($1283 | 0, $1291 | 0, $1288 | 0, $1289 | 0) | 0; $1293 = tempRet0; $1294 = _bitshift64Ashr($1292 | 0, $1293 | 0, $1282 | 0) | 0; $1295 = tempRet0; HEAP32[$76 >> 2] = $1294; $1296 = ($neg136$i$i$i | 0) < 0; $1297 = ($1296 << 31) >> 31; $1298 = ___muldi3($neg136$i$i$i | 0, $1297 | 0, $1137 | 0, $1287 | 0) | 0; $1299 = tempRet0; $1300 = _i64Add($1283 | 0, $1291 | 0, $1298 | 0, $1299 | 0) | 0; $1301 = tempRet0; $1302 = _bitshift64Ashr($1300 | 0, $1301 | 0, $1282 | 0) | 0; $1303 = tempRet0; HEAP32[$77 >> 2] = $1302; $1304 = ($neg96$i$i$i | 0) < 0; $1305 = ($1304 << 31) >> 31; $1306 = ___muldi3($neg96$i$i$i | 0, $1305 | 0, $1137 | 0, $1287 | 0) | 0; $1307 = tempRet0; $1308 = _i64Add($1283 | 0, $1291 | 0, $1306 | 0, $1307 | 0) | 0; $1309 = tempRet0; $1310 = _bitshift64Ashr($1308 | 0, $1309 | 0, $1282 | 0) | 0; $1311 = tempRet0; HEAP32[$78 >> 2] = $1310; $1312 = ($1195 | 0) < 0; $1313 = ($1312 << 31) >> 31; $1314 = ___muldi3($1195 | 0, $1313 | 0, $1137 | 0, $1287 | 0) | 0; $1315 = tempRet0; $1316 = _i64Add($1283 | 0, $1291 | 0, $1314 | 0, $1315 | 0) | 0; $1317 = tempRet0; $1318 = _bitshift64Ashr($1316 | 0, $1317 | 0, $1282 | 0) | 0; $1319 = tempRet0; HEAP32[$79 >> 2] = $1318; $1320 = ($1213 | 0) < 0; $1321 = ($1320 << 31) >> 31; $1322 = ($1226 | 0) < 0; $1323 = ($1322 << 31) >> 31; $1324 = ___muldi3($1213 | 0, $1321 | 0, $1226 | 0, $1323 | 0) | 0; $1325 = tempRet0; $1326 = ($1224 | 0) < 0; $1327 = ($1326 << 31) >> 31; $1328 = ___muldi3($1221 | 0, $1285 | 0, $1224 | 0, $1327 | 0) | 0; $1329 = tempRet0; $1330 = ($1281 | 0) < 0; $1331 = ($1330 << 31) >> 31; $1332 = _i64Subtract($1324 | 0, $1325 | 0, $1328 | 0, $1329 | 0) | 0; $1333 = tempRet0; $1334 = _i64Subtract($1332 | 0, $1333 | 0, $1281 | 0, $1331 | 0) | 0; $1335 = tempRet0; $1336 = _bitshift64Ashr($1334 | 0, $1335 | 0, $1279 | 0) | 0; $1337 = tempRet0; HEAP32[$80 >> 2] = $1336; $1338 = HEAP32[$68 >> 2] | 0; $1339 = ($1338 | 0) < 0; $1340 = ($1339 << 31) >> 31; $1341 = HEAP32[$73 >> 2] | 0; $1342 = ($1341 | 0) < 0; $1343 = ($1342 << 31) >> 31; $1344 = ___muldi3($1341 | 0, $1343 | 0, $1338 | 0, $1340 | 0) | 0; $1345 = tempRet0; $1346 = HEAP32[$hom$i >> 2] | 0; $1347 = ($1346 | 0) < 0; $1348 = ($1347 << 31) >> 31; $1349 = HEAP32[$74 >> 2] | 0; $1350 = ($1349 | 0) < 0; $1351 = ($1350 << 31) >> 31; $1352 = ___muldi3($1349 | 0, $1351 | 0, $1346 | 0, $1348 | 0) | 0; $1353 = tempRet0; $1354 = _i64Subtract($1344 | 0, $1345 | 0, $1352 | 0, $1353 | 0) | 0; $1355 = tempRet0; $1356 = _i64Subtract($1354 | 0, $1355 | 0, $1281 | 0, $1331 | 0) | 0; $1357 = tempRet0; $1358 = _bitshift64Ashr($1356 | 0, $1357 | 0, $1279 | 0) | 0; $1359 = tempRet0; HEAP32[$81 >> 2] = $1358; $1360 = HEAP32[$71 >> 2] | 0; $1361 = ($1360 | 0) < 0; $1362 = ($1361 << 31) >> 31; $1363 = ___muldi3($1360 | 0, $1362 | 0, $1346 | 0, $1348 | 0) | 0; $1364 = tempRet0; $1365 = HEAP32[$70 >> 2] | 0; $1366 = ($1365 | 0) < 0; $1367 = ($1366 << 31) >> 31; $1368 = ___muldi3($1365 | 0, $1367 | 0, $1338 | 0, $1340 | 0) | 0; $1369 = tempRet0; $1370 = _i64Subtract($1363 | 0, $1364 | 0, $1281 | 0, $1331 | 0) | 0; $1371 = tempRet0; $1372 = _i64Subtract($1370 | 0, $1371 | 0, $1368 | 0, $1369 | 0) | 0; $1373 = tempRet0; $1374 = _bitshift64Ashr($1372 | 0, $1373 | 0, $1279 | 0) | 0; $1375 = tempRet0; HEAP32[$82 >> 2] = $1374; HEAP32[$83 >> 2] = 14; HEAP32[($84 + 0) >> 2] = HEAP32[($bbox$i + 0) >> 2] | 0; HEAP32[($84 + 4) >> 2] = HEAP32[($bbox$i + 4) >> 2] | 0; HEAP32[($84 + 8) >> 2] = HEAP32[($bbox$i + 8) >> 2] | 0; HEAP32[($84 + 12) >> 2] = HEAP32[($bbox$i + 12) >> 2] | 0; HEAP32[($84 + 16) >> 2] = HEAP32[($bbox$i + 16) >> 2] | 0; HEAP32[($84 + 20) >> 2] = HEAP32[($bbox$i + 20) >> 2] | 0; HEAP32[($84 + 24) >> 2] = HEAP32[($bbox$i + 24) >> 2] | 0; HEAP32[($84 + 28) >> 2] = HEAP32[($bbox$i + 28) >> 2] | 0; $1376 = HEAP32[$14 >> 2] | 0; $1377 = HEAP32[$1376 >> 2] | 0; $1378 = ($1376 + 4) | 0; $1379 = HEAP32[$1378 >> 2] | 0; $1380 = HEAP32[$69 >> 2] | 0; $1381 = ($1377 - $1380) | 0; $1382 = HEAP32[$72 >> 2] | 0; $1383 = ($1379 - $1382) | 0; $1384 = Math_imul($1381, $1294) | 0; $1385 = Math_imul($1383, $1302) | 0; $1386 = ($1385 + $1384) | 0; $1387 = Math_imul($1381, $1310) | 0; $1388 = Math_imul($1383, $1318) | 0; $1389 = ($1388 + $1387) | 0; $1390 = Math_imul($1381, $1336) | 0; $1391 = Math_imul($1383, $1358) | 0; $1392 = ($1374 + 8192) | 0; $1393 = ($1392 + $1390) | 0; $1394 = ($1393 + $1391) | 0; $1395 = $1394 >> 14; $1396 = ($1395 | 0) == 0; if ($1396) { $1397 = $1386 >>> 31; $1398 = ($1397 + 2147483647) | 0; HEAP32[$38 >> 2] = $1398; $1399 = $1389 >>> 31; $1400 = ($1399 + 2147483647) | 0; $1416 = $1400; $1493 = $1398; } else { $1401 = ($1395 | 0) < 0; if ($1401) { $1402 = (0 - $1386) | 0; $1403 = (0 - $1389) | 0; $1404 = (0 - $1395) | 0; $w$0$i$i = $1404; $x$0$i$i = $1402; $y$0$i$i = $1403; } else { $w$0$i$i = $1395; $x$0$i$i = $1386; $y$0$i$i = $1389; } $1405 = $w$0$i$i >> 1; $1406 = $x$0$i$i >> 31; $1407 = ($1405 + $1406) | 0; $1408 = $1407 ^ $1406; $1409 = ($1408 + $x$0$i$i) | 0; $1410 = (($1409 | 0) / ($w$0$i$i | 0)) & -1; HEAP32[$38 >> 2] = $1410; $1411 = $y$0$i$i >> 31; $1412 = ($1405 + $1411) | 0; $1413 = $1412 ^ $1411; $1414 = ($1413 + $y$0$i$i) | 0; $1415 = (($1414 | 0) / ($w$0$i$i | 0)) & -1; $1416 = $1415; $1493 = $1410; } HEAP32[$39 >> 2] = $1416; $1417 = HEAP32[$15 >> 2] | 0; $1418 = HEAP32[$1417 >> 2] | 0; $1419 = ($1417 + 4) | 0; $1420 = HEAP32[$1419 >> 2] | 0; $1421 = ($1418 - $1380) | 0; $1422 = ($1420 - $1382) | 0; $1423 = Math_imul($1421, $1294) | 0; $1424 = Math_imul($1422, $1302) | 0; $1425 = ($1424 + $1423) | 0; $1426 = Math_imul($1421, $1310) | 0; $1427 = Math_imul($1422, $1318) | 0; $1428 = ($1427 + $1426) | 0; $1429 = Math_imul($1421, $1336) | 0; $1430 = Math_imul($1422, $1358) | 0; $1431 = ($1392 + $1429) | 0; $1432 = ($1431 + $1430) | 0; $1433 = $1432 >> 14; $1434 = ($1433 | 0) == 0; if ($1434) { $1435 = $1425 >>> 31; $1436 = ($1435 + 2147483647) | 0; HEAP32[$32 >> 2] = $1436; $1437 = $1428 >>> 31; $1438 = ($1437 + 2147483647) | 0; $storemerge63$i = $1438; } else { $1439 = ($1433 | 0) < 0; if ($1439) { $1440 = (0 - $1425) | 0; $1441 = (0 - $1428) | 0; $1442 = (0 - $1433) | 0; $w$0$i38$i = $1442; $x$0$i36$i = $1440; $y$0$i37$i = $1441; } else { $w$0$i38$i = $1433; $x$0$i36$i = $1425; $y$0$i37$i = $1428; } $1443 = $w$0$i38$i >> 1; $1444 = $x$0$i36$i >> 31; $1445 = ($1443 + $1444) | 0; $1446 = $1445 ^ $1444; $1447 = ($1446 + $x$0$i36$i) | 0; $1448 = (($1447 | 0) / ($w$0$i38$i | 0)) & -1; HEAP32[$32 >> 2] = $1448; $1449 = $y$0$i37$i >> 31; $1450 = ($1443 + $1449) | 0; $1451 = $1450 ^ $1449; $1452 = ($1451 + $y$0$i37$i) | 0; $1453 = (($1452 | 0) / ($w$0$i38$i | 0)) & -1; $storemerge63$i = $1453; } HEAP32[$33 >> 2] = $storemerge63$i; $1454 = HEAP32[$16 >> 2] | 0; $1455 = HEAP32[$1454 >> 2] | 0; $1456 = ($1454 + 4) | 0; $1457 = HEAP32[$1456 >> 2] | 0; $1458 = ($1455 - $1380) | 0; $1459 = ($1457 - $1382) | 0; $1460 = Math_imul($1458, $1294) | 0; $1461 = Math_imul($1459, $1302) | 0; $1462 = ($1461 + $1460) | 0; $1463 = Math_imul($1458, $1310) | 0; $1464 = Math_imul($1459, $1318) | 0; $1465 = ($1464 + $1463) | 0; $1466 = Math_imul($1458, $1336) | 0; $1467 = Math_imul($1459, $1358) | 0; $1468 = ($1392 + $1466) | 0; $1469 = ($1468 + $1467) | 0; $1470 = $1469 >> 14; $1471 = ($1470 | 0) == 0; if ($1471) { $1472 = $1462 >>> 31; $1473 = ($1472 + 2147483647) | 0; HEAP32[$34 >> 2] = $1473; $1474 = $1465 >>> 31; $1475 = ($1474 + 2147483647) | 0; $storemerge64$i = $1475; } else { $1476 = ($1470 | 0) < 0; if ($1476) { $1477 = (0 - $1462) | 0; $1478 = (0 - $1465) | 0; $1479 = (0 - $1470) | 0; $w$0$i43$i = $1479; $x$0$i41$i = $1477; $y$0$i42$i = $1478; } else { $w$0$i43$i = $1470; $x$0$i41$i = $1462; $y$0$i42$i = $1465; } $1480 = $w$0$i43$i >> 1; $1481 = $x$0$i41$i >> 31; $1482 = ($1480 + $1481) | 0; $1483 = $1482 ^ $1481; $1484 = ($1483 + $x$0$i41$i) | 0; $1485 = (($1484 | 0) / ($w$0$i43$i | 0)) & -1; HEAP32[$34 >> 2] = $1485; $1486 = $y$0$i42$i >> 31; $1487 = ($1480 + $1486) | 0; $1488 = $1487 ^ $1486; $1489 = ($1488 + $y$0$i42$i) | 0; $1490 = (($1489 | 0) / ($w$0$i43$i | 0)) & -1; $storemerge64$i = $1490; } HEAP32[$35 >> 2] = $storemerge64$i; _qr_finder_edge_pts_hom_classify($ur$i, $hom$i); $1491 = HEAP32[$32 >> 2] | 0; $1492 = ($1491 - $1493) | 0; $1494 = _qr_finder_estimate_module_size_and_version($ur$i, $1492, $1492) | 0; $1495 = ($1494 | 0) < 0; if ($1495) { $$01$i = 0; $$1$i = $$0$i; break; } _qr_finder_edge_pts_hom_classify($dl$i, $hom$i); $1496 = HEAP32[$35 >> 2] | 0; $1497 = ($1496 - $1416) | 0; $1498 = _qr_finder_estimate_module_size_and_version($dl$i, $1497, $1497) | 0; $1499 = ($1498 | 0) < 0; if ($1499) { $$01$i = 0; $$1$i = $$0$i; break; } $1500 = HEAP32[$36 >> 2] | 0; $1501 = HEAP32[$37 >> 2] | 0; $1502 = ($1500 | 0) == ($1501 | 0); $1503 = ($1500 | 0) < 7; $or$cond$i = $1502 & $1503; do { if ($or$cond$i) { $1534 = $1500; $ur_version$1$i = $1500; } else { $1504 = ($1500 - $1501) | 0; $ispos6$i = ($1504 | 0) > -1; $neg7$i = (0 - $1504) | 0; $1505 = $ispos6$i ? $1504 : $neg7$i; $1506 = ($1505 | 0) > 3; if ($1506) { $$01$i = 0; $$1$i = $$0$i; break L19; } $1507 = ($1500 | 0) > 3; if ($1507) { $1508 = _qr_finder_version_decode($ur$i, $hom$i, $_img, $_width, $_height, 0) | 0; $1509 = ($1508 - $1500) | 0; $ispos14$i = ($1509 | 0) > -1; $neg15$i = (0 - $1509) | 0; $1510 = $ispos14$i ? $1509 : $neg15$i; $1511 = ($1510 | 0) > 3; $$$i = $1511 ? -1 : $1508; $ur_version$0$i = $$$i; } else { $ur_version$0$i = -1; } $1512 = ($1501 | 0) > 3; if ($1512) { $1513 = _qr_finder_version_decode($dl$i, $hom$i, $_img, $_width, $_height, 1) | 0; $1514 = ($1513 - $1501) | 0; $ispos12$i = ($1514 | 0) > -1; $neg13$i = (0 - $1514) | 0; $1515 = $ispos12$i ? $1514 : $neg13$i; $1516 = ($1515 | 0) > 3; $$16$i = $1516 ? -1 : $1513; $dl_version$0$i = $$16$i; } else { $dl_version$0$i = -1; } $1517 = ($ur_version$0$i | 0) > -1; $1518 = ($dl_version$0$i | 0) < 0; if ($1517) { $1519 = ($dl_version$0$i | 0) == ($ur_version$0$i | 0); $or$cond17$i = $1518 | $1519; if ($or$cond17$i) { $1534 = $1501; $ur_version$1$i = $ur_version$0$i; break; } else { $$01$i = 0; $$1$i = $$0$i; break L19; } } else { if ($1518) { $$01$i = 0; $$1$i = $$0$i; break L19; } else { $1534 = $1501; $ur_version$1$i = $dl_version$0$i; break; } } } } while (0); _qr_finder_edge_pts_hom_classify($ul$i, $hom$i); $1520 = HEAP32[$32 >> 2] | 0; $1521 = HEAP32[$34 >> 2] | 0; $1522 = ($1520 - $1521) | 0; $1523 = HEAP32[$35 >> 2] | 0; $1524 = HEAP32[$39 >> 2] | 0; $1525 = ($1523 - $1524) | 0; $1526 = _qr_finder_estimate_module_size_and_version($ul$i, $1522, $1525) | 0; $1527 = ($1526 | 0) < 0; if ($1527) { $$01$i = 0; $$1$i = $$0$i; break; } $1528 = HEAP32[$40 >> 2] | 0; $1529 = ($1528 - $1500) | 0; $ispos8$i = ($1529 | 0) > -1; $neg9$i = (0 - $1529) | 0; $1530 = $ispos8$i ? $1529 : $neg9$i; $1531 = ($1530 | 0) > 1; if ($1531) { $$01$i = 0; $$1$i = $$0$i; break; } $1532 = HEAP32[$41 >> 2] | 0; $1533 = ($1532 - $1534) | 0; $ispos10$i = ($1533 | 0) > -1; $neg11$i = (0 - $1533) | 0; $1535 = $ispos10$i ? $1533 : $neg11$i; $1536 = ($1535 | 0) > 1; if ($1536) { $$01$i = 0; $$1$i = $$0$i; break; } $1537 = _qr_finder_fmt_info_decode($ul$i, $ur$i, $dl$i, $hom$i, $_img, $_width, $_height) | 0; $1538 = ($1537 | 0) < 0; if ($1538) { label = 135; } else { $1539 = HEAP32[$14 >> 2] | 0; $1540 = HEAP32[$15 >> 2] | 0; $1541 = HEAP32[$16 >> 2] | 0; $1542 = _qr_code_decode( $qrdata, $_reader, $1539, $1540, $1541, $ur_version$1$i, $1537, $_img, $_width, $_height ) | 0; $1543 = ($1542 | 0) < 0; if ($1543) { label = 135; } } if ((label | 0) == 135) { label = 0; $1544 = HEAP32[$76 >> 2] | 0; $1545 = HEAP32[$78 >> 2] | 0; HEAP32[$76 >> 2] = $1545; HEAP32[$78 >> 2] = $1544; $1546 = HEAP32[$77 >> 2] | 0; $1547 = HEAP32[$79 >> 2] | 0; HEAP32[$77 >> 2] = $1547; HEAP32[$79 >> 2] = $1546; $1548 = HEAP32[$hom$i >> 2] | 0; $1549 = HEAP32[$68 >> 2] | 0; HEAP32[$hom$i >> 2] = $1549; HEAP32[$68 >> 2] = $1548; $1550 = HEAP32[$70 >> 2] | 0; $1551 = HEAP32[$71 >> 2] | 0; HEAP32[$70 >> 2] = $1551; HEAP32[$71 >> 2] = $1550; $1552 = HEAP32[$73 >> 2] | 0; $1553 = HEAP32[$74 >> 2] | 0; HEAP32[$73 >> 2] = $1553; HEAP32[$74 >> 2] = $1552; $1554 = HEAP32[$38 >> 2] | 0; $1555 = HEAP32[$39 >> 2] | 0; HEAP32[$38 >> 2] = $1555; HEAP32[$39 >> 2] = $1554; $1556 = HEAP32[$ul$i >> 2] | 0; $1557 = HEAP32[$85 >> 2] | 0; HEAP32[$ul$i >> 2] = $1557; HEAP32[$85 >> 2] = $1556; $1558 = HEAP32[$32 >> 2] | 0; $1559 = HEAP32[$33 >> 2] | 0; HEAP32[$32 >> 2] = $1559; HEAP32[$33 >> 2] = $1558; $1560 = HEAP32[$ur$i >> 2] | 0; $1561 = HEAP32[$44 >> 2] | 0; HEAP32[$ur$i >> 2] = $1561; HEAP32[$44 >> 2] = $1560; $1562 = HEAP32[$34 >> 2] | 0; $1563 = HEAP32[$35 >> 2] | 0; HEAP32[$34 >> 2] = $1563; HEAP32[$35 >> 2] = $1562; $1564 = HEAP32[$dl$i >> 2] | 0; $1565 = HEAP32[$49 >> 2] | 0; HEAP32[$dl$i >> 2] = $1565; HEAP32[$49 >> 2] = $1564; $1566 = _qr_finder_fmt_info_decode($ul$i, $dl$i, $ur$i, $hom$i, $_img, $_width, $_height) | 0; $1567 = ($1566 | 0) < 0; if ($1567) { $$01$i = 0; $$1$i = $$0$i; break; } $1568 = HEAP32[$63 >> 2] | 0; $1569 = HEAP32[$65 >> 2] | 0; HEAP32[$63 >> 2] = $1569; HEAP32[$65 >> 2] = $1568; $1570 = HEAP32[$64 >> 2] | 0; $1571 = HEAP32[$66 >> 2] | 0; HEAP32[$64 >> 2] = $1571; HEAP32[$66 >> 2] = $1570; HEAP32[($84 + 0) >> 2] = HEAP32[($bbox$i + 0) >> 2] | 0; HEAP32[($84 + 4) >> 2] = HEAP32[($bbox$i + 4) >> 2] | 0; HEAP32[($84 + 8) >> 2] = HEAP32[($bbox$i + 8) >> 2] | 0; HEAP32[($84 + 12) >> 2] = HEAP32[($bbox$i + 12) >> 2] | 0; HEAP32[($84 + 16) >> 2] = HEAP32[($bbox$i + 16) >> 2] | 0; HEAP32[($84 + 20) >> 2] = HEAP32[($bbox$i + 20) >> 2] | 0; HEAP32[($84 + 24) >> 2] = HEAP32[($bbox$i + 24) >> 2] | 0; HEAP32[($84 + 28) >> 2] = HEAP32[($bbox$i + 28) >> 2] | 0; $1572 = HEAP32[$14 >> 2] | 0; $1573 = HEAP32[$16 >> 2] | 0; $1574 = HEAP32[$15 >> 2] | 0; $1575 = _qr_code_decode( $qrdata, $_reader, $1572, $1573, $1574, $ur_version$1$i, $1566, $_img, $_width, $_height ) | 0; $1576 = ($1575 | 0) < 0; if ($1576) { $$01$i = 0; $$1$i = $$0$i; break; } } $$01$i = 1; $$1$i = $ur_version$1$i; } } } } } } while (0); if ($$01$i) { break; } else { $$0$i = $$1$i; $i$1$i = $150; } } $1577 = ($$1$i | 0) > -1; if ($1577) { $1578 = HEAP32[$88 >> 2] | 0; $1579 = HEAP32[$89 >> 2] | 0; $1580 = ($1578 | 0) < ($1579 | 0); if ($1580) { $$pre1$i = HEAP32[$_qrlist >> 2] | 0; $1587 = $1578; $1589 = $$pre1$i; } else { $1581 = $1579 << 1; $1582 = $1581 | 1; HEAP32[$89 >> 2] = $1582; $1583 = HEAP32[$_qrlist >> 2] | 0; $1584 = ($1582 * 48) | 0; $1585 = _realloc($1583, $1584) | 0; HEAP32[$_qrlist >> 2] = $1585; $$pre$i25 = HEAP32[$88 >> 2] | 0; $1587 = $$pre$i25; $1589 = $1585; } $1586 = ($1587 + 1) | 0; HEAP32[$88 >> 2] = $1586; $1588 = ($1589 + (($1587 * 48) | 0)) | 0; dest = ($1588 + 0) | 0; src = ($qrdata + 0) | 0; stop = (dest + 48) | 0; do { HEAP32[dest >> 2] = HEAP32[src >> 2] | 0; dest = (dest + 4) | 0; src = (src + 4) | 0; } while ((dest | 0) < (stop | 0)); $1590 = HEAP32[$_qrlist >> 2] | 0; $1591 = HEAP32[$88 >> 2] | 0; $1592 = ($1591 + -1) | 0; $1593 = ((($1590 + (($1592 * 48) | 0)) | 0) + 16) | 0; $1594 = HEAP32[$1593 >> 2] | 0; $1595 = $1594 >> 2; HEAP32[$1593 >> 2] = $1595; $1596 = HEAP32[$88 >> 2] | 0; $1597 = ($1596 + -1) | 0; $1598 = ((($1590 + (($1597 * 48) | 0)) | 0) + 20) | 0; $1599 = HEAP32[$1598 >> 2] | 0; $1600 = $1599 >> 2; HEAP32[$1598 >> 2] = $1600; $1601 = HEAP32[$88 >> 2] | 0; $1602 = ($1601 + -1) | 0; $1603 = ((($1590 + (($1602 * 48) | 0)) | 0) + 24) | 0; $1604 = HEAP32[$1603 >> 2] | 0; $1605 = $1604 >> 2; HEAP32[$1603 >> 2] = $1605; $1606 = HEAP32[$88 >> 2] | 0; $1607 = ($1606 + -1) | 0; $1608 = ((($1590 + (($1607 * 48) | 0)) | 0) + 28) | 0; $1609 = HEAP32[$1608 >> 2] | 0; $1610 = $1609 >> 2; HEAP32[$1608 >> 2] = $1610; $1611 = HEAP32[$88 >> 2] | 0; $1612 = ($1611 + -1) | 0; $1613 = ((($1590 + (($1612 * 48) | 0)) | 0) + 32) | 0; $1614 = HEAP32[$1613 >> 2] | 0; $1615 = $1614 >> 2; HEAP32[$1613 >> 2] = $1615; $1616 = HEAP32[$88 >> 2] | 0; $1617 = ($1616 + -1) | 0; $1618 = ((($1590 + (($1617 * 48) | 0)) | 0) + 36) | 0; $1619 = HEAP32[$1618 >> 2] | 0; $1620 = $1619 >> 2; HEAP32[$1618 >> 2] = $1620; $1621 = HEAP32[$88 >> 2] | 0; $1622 = ($1621 + -1) | 0; $1623 = ((($1590 + (($1622 * 48) | 0)) | 0) + 40) | 0; $1624 = HEAP32[$1623 >> 2] | 0; $1625 = $1624 >> 2; HEAP32[$1623 >> 2] = $1625; $1626 = HEAP32[$88 >> 2] | 0; $1627 = ($1626 + -1) | 0; $1628 = ((($1590 + (($1627 * 48) | 0)) | 0) + 44) | 0; $1629 = HEAP32[$1628 >> 2] | 0; $1630 = $1629 >> 2; HEAP32[$1628 >> 2] = $1630; HEAP8[$107 >> 0] = 1; HEAP8[$1631 >> 0] = 1; $1632 = ($0 + $i$261) | 0; HEAP8[$1632 >> 0] = 1; $$val19 = HEAP32[$90 >> 2] | 0; $$idx20$val = HEAP32[$$idx20 >> 2] | 0; $$val21 = HEAP32[$91 >> 2] | 0; $$idx22$val = HEAP32[$$idx22 >> 2] | 0; $1633 = ($$val21 - $$val19) | 0; $1634 = ($$idx22$val - $$idx20$val) | 0; $$val15 = HEAP32[$92 >> 2] | 0; $$idx16$val = HEAP32[$$idx16 >> 2] | 0; $1635 = ($$val15 - $$val21) | 0; $1636 = ($$idx16$val - $$idx22$val) | 0; $$val9 = HEAP32[$93 >> 2] | 0; $$idx10$val = HEAP32[$$idx10 >> 2] | 0; $1637 = ($$val9 - $$val15) | 0; $1638 = ($$idx10$val - $$idx16$val) | 0; $1639 = ($$val19 - $$val9) | 0; $1640 = ($$idx20$val - $$idx10$val) | 0; $l$147 = 0; $ninside$046 = 0; while (1) { $1641 = ($0 + $l$147) | 0; $1642 = HEAP8[$1641 >> 0] | 0; $1643 = ($1642 << 24) >> 24 == 0; do { if ($1643) { $1644 = ($_centers + ($l$147 << 4)) | 0; $$val23 = HEAP32[$1644 >> 2] | 0; $$idx24 = ((($_centers + ($l$147 << 4)) | 0) + 4) | 0; $$idx24$val = HEAP32[$$idx24 >> 2] | 0; $1645 = ($$idx24$val - $$idx20$val) | 0; $1646 = Math_imul($1645, $1633) | 0; $1647 = ($$val23 - $$val19) | 0; $1648 = Math_imul($1647, $1634) | 0; $1649 = ($1646 - $1648) | 0; $1650 = ($1649 | 0) > -1; if ($1650) { $1651 = ($$idx24$val - $$idx22$val) | 0; $1652 = Math_imul($1635, $1651) | 0; $1653 = ($$val23 - $$val21) | 0; $1654 = Math_imul($1636, $1653) | 0; $1655 = ($1652 - $1654) | 0; $1656 = ($1655 | 0) > -1; if ($1656) { $1657 = ($$idx24$val - $$idx16$val) | 0; $1658 = Math_imul($1637, $1657) | 0; $1659 = ($$val23 - $$val15) | 0; $1660 = Math_imul($1638, $1659) | 0; $1661 = ($1658 - $1660) | 0; $1662 = ($1661 | 0) > -1; if ($1662) { $1663 = ($$idx24$val - $$idx10$val) | 0; $1664 = Math_imul($1663, $1639) | 0; $1665 = ($$val23 - $$val9) | 0; $1666 = Math_imul($1640, $1665) | 0; $1667 = ($1664 - $1666) | 0; $1668 = ($1667 | 0) > -1; if (!$1668) { $ninside$1 = $ninside$046; break; } HEAP8[$1641 >> 0] = 2; $1669 = ($ninside$046 + 1) | 0; $ninside$1 = $1669; } else { $ninside$1 = $ninside$046; } } else { $ninside$1 = $ninside$046; } } else { $ninside$1 = $ninside$046; } } else { $ninside$1 = $ninside$046; } } while (0); $1670 = ($l$147 + 1) | 0; $exitcond = ($1670 | 0) == ($_ncenters | 0); if ($exitcond) { break; } else { $l$147 = $1670; $ninside$046 = $ninside$1; } } $1671 = ($ninside$1 | 0) > 2; if ($1671) { $1672 = $ninside$1 << 4; $1673 = _malloc($1672) | 0; $l$249 = 0; $ninside$248 = 0; while (1) { $1674 = ($0 + $l$249) | 0; $1675 = HEAP8[$1674 >> 0] | 0; $1676 = ($1675 << 24) >> 24 == 2; if ($1676) { $1677 = ($ninside$248 + 1) | 0; $1678 = ($1673 + ($ninside$248 << 4)) | 0; $1679 = ($_centers + ($l$249 << 4)) | 0; HEAP32[($1678 + 0) >> 2] = HEAP32[($1679 + 0) >> 2] | 0; HEAP32[($1678 + 4) >> 2] = HEAP32[($1679 + 4) >> 2] | 0; HEAP32[($1678 + 8) >> 2] = HEAP32[($1679 + 8) >> 2] | 0; HEAP32[($1678 + 12) >> 2] = HEAP32[($1679 + 12) >> 2] | 0; $ninside$3 = $1677; } else { $ninside$3 = $ninside$248; } $1680 = ($l$249 + 1) | 0; $exitcond93 = ($1680 | 0) == ($_ncenters | 0); if ($exitcond93) { break; } else { $l$249 = $1680; $ninside$248 = $ninside$3; } } _qr_reader_match_centers($_reader, $_qrlist, $1673, $ninside$3, $_img, $_width, $_height); _free($1673); $l$354 = 0; } else { $l$354 = 0; } while (1) { $1681 = ($0 + $l$354) | 0; $1682 = HEAP8[$1681 >> 0] | 0; $1683 = ($1682 << 24) >> 24 == 2; if ($1683) { HEAP8[$1681 >> 0] = 1; } $1684 = ($l$354 + 1) | 0; $exitcond94 = ($1684 | 0) == ($_ncenters | 0); if ($exitcond94) { $i$4 = $i$261; $j$3 = $j$157; $k$2 = $k$059; $nfailures$4 = 0; break L12; } else { $l$354 = $1684; } } } } } while (0); $1685 = ($nfailures$263 + 1) | 0; $1686 = ($nfailures$263 | 0) < ($4 | 0); $j$1$_ncenters = $1686 ? $j$157 : $_ncenters; $k$0$_ncenters = $1686 ? $k$059 : $_ncenters; $i$2$_ncenters = $1686 ? $i$261 : $_ncenters; $i$4 = $i$2$_ncenters; $j$3 = $j$1$_ncenters; $k$2 = $k$0$_ncenters; $nfailures$4 = $1685; } else { $i$4 = $i$261; $j$3 = $j$157; $k$2 = $k$059; $nfailures$4 = $nfailures$263; } } while (0); $1687 = ($k$2 + 1) | 0; $1688 = ($0 + $j$3) | 0; $1689 = HEAP8[$1688 >> 0] | 0; $1690 = ($1689 << 24) >> 24 == 0; $1691 = ($1687 | 0) < ($_ncenters | 0); $or$cond2 = $1690 & $1691; if ($or$cond2) { $1631 = $1688; $i$261 = $i$4; $j$157 = $j$3; $k$059 = $1687; $nfailures$263 = $nfailures$4; } else { $i$2$lcssa = $i$4; $j$1$lcssa = $j$3; $nfailures$2$lcssa = $nfailures$4; break; } } } else { $i$2$lcssa = $i$172; $j$1$lcssa = $j$074; $nfailures$2$lcssa = $nfailures$173; } $j$0 = ($j$1$lcssa + 1) | 0; $98 = ($0 + $i$2$lcssa) | 0; $99 = HEAP8[$98 >> 0] | 0; $100 = ($99 << 24) >> 24 == 0; $101 = ($j$0 | 0) < ($_ncenters | 0); $or$cond = $100 & $101; if ($or$cond) { $i$172 = $i$2$lcssa; $j$0$in71 = $j$1$lcssa; $j$074 = $j$0; $nfailures$173 = $nfailures$2$lcssa; } else { $i$1$lcssa = $i$2$lcssa; $nfailures$1$lcssa = $nfailures$2$lcssa; break; } } } else { $i$1$lcssa = $i$078; $nfailures$1$lcssa = $nfailures$079; } $1692 = ($i$1$lcssa + 1) | 0; $1693 = ($1692 | 0) < ($_ncenters | 0); if ($1693) { $i$078 = $1692; $nfailures$079 = $nfailures$1$lcssa; } else { break; } } _free($0); STACKTOP = sp; return; } function __zbar_qr_found_line($reader, $dir, $line) { $reader = $reader | 0; $dir = $dir | 0; $line = $line | 0; var $$pre = 0, $$pre1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ((($reader + (($dir * 12) | 0)) | 0) + 2832) | 0; $1 = ((($reader + (($dir * 12) | 0)) | 0) + 2836) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ((($reader + (($dir * 12) | 0)) | 0) + 2840) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($2 | 0) < ($4 | 0); if ($5) { $$pre1 = HEAP32[$0 >> 2] | 0; $12 = $2; $14 = $$pre1; } else { $6 = $4 << 1; $7 = HEAP32[$0 >> 2] | 0; $8 = $6 | 1; HEAP32[$3 >> 2] = $8; $9 = ($8 * 20) | 0; $10 = _realloc($7, $9) | 0; HEAP32[$0 >> 2] = $10; $$pre = HEAP32[$1 >> 2] | 0; $12 = $$pre; $14 = $10; } $11 = ($12 + 1) | 0; HEAP32[$1 >> 2] = $11; $13 = ($14 + (($12 * 20) | 0)) | 0; HEAP32[($13 + 0) >> 2] = HEAP32[($line + 0) >> 2] | 0; HEAP32[($13 + 4) >> 2] = HEAP32[($line + 4) >> 2] | 0; HEAP32[($13 + 8) >> 2] = HEAP32[($line + 8) >> 2] | 0; HEAP32[($13 + 12) >> 2] = HEAP32[($line + 12) >> 2] | 0; HEAP32[($13 + 16) >> 2] = HEAP32[($line + 16) >> 2] | 0; STACKTOP = sp; return 0; } function __zbar_qr_decode($reader, $iscn, $img) { $reader = $reader | 0; $iscn = $iscn | 0; $img = $img | 0; var $$0 = 0, $$04$i$i$i = 0, $$04$i1$i$i = 0, $$046$i$i = 0, $$1$i$i = 0, $$1$lcssa$i$i$i = 0, $$1$lcssa$i9$i$i = 0, $$12$i$i$i = 0, $$12$i5$i$i = 0, $$2$i$i$i = 0, $$2$i7$i$i = 0, $$3$i$i$i = 0, $$3$i8$i$i = 0, $$lcssa$i$i = 0, $$lcssa3$i = 0, $$pr = 0, $$pre$i$i = 0, $$pre3$i$i = 0, $0 = 0, $1 = 0; var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond$i = 0, $exitcond$i$i = 0, $exitcond$i$i$i = 0, $exitcond$i10$i$i = 0, $exitcond31$i = 0, $exitcond61$i$i = 0, $exitcond62$i$i = 0, $exitcond63$i$i = 0, $i$01$i$i = 0, $i$017$i = 0, $i$03$i$i$i = 0, $i$03$i2$i$i = 0; var $i$04$i = 0, $i$043$i$i = 0, $i$114$i = 0, $j$01$i$i$i = 0, $j$01$i6$i$i = 0, $j$022$i$i = 0, $j$1$i$i = 0, $j$130$i$i = 0, $j$13037$i$i = 0, $j$13040$i$i = 0, $j$131$i$i = 0, $ncenters$0$i = 0, $ncenters$0$lcssa$i$i = 0, $ncenters$045$i$i = 0, $ncenters$1$i$i = 0, $nedge_pts$0$lcssa$i = 0, $nedge_pts$016$i = 0, $nedge_pts$1$lcssa$i = 0, $nedge_pts$113$i = 0, $nhneighbors$0$ph34$i$i = 0; var $nhneighbors$0$ph38$i$i = 0, $nqrdata$04 = 0, $nqrdata$1 = 0, $nvneighbors$023$i$i = 0, $nvneighbors$1$i$i = 0, $or$cond$i = 0, $qrlist = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $x$0$i$i = 0, $x$1$ph36$i$i = 0, $x$1$ph39$i$i = 0, $x$2$i$i = 0, $y$024$i$i = 0, $y$1$i$i = 0, $y$2$i$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer = sp; $qrlist = (sp + 16) | 0; $0 = ($reader + 2836) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) < 9; if ($2) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $3 = ($reader + 2848) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($4 | 0) < 9; if ($5) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $6 = ($reader + 2832) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($reader + 2844) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = $1 << 2; $11 = _malloc($10) | 0; $12 = $1 >>> 1; $13 = $12 << 3; $14 = _malloc($13) | 0; $15 = _qr_finder_cluster_lines($14, $11, $7, $1, 0) | 0; _qsort($9, $4, 20, 3); $16 = $4 << 2; $17 = _malloc($16) | 0; $18 = $4 >>> 1; $19 = $18 << 3; $20 = _malloc($19) | 0; $21 = _qr_finder_cluster_lines($20, $17, $9, $4, 1) | 0; $22 = ($15 | 0) > 2; $23 = ($21 | 0) > 2; $or$cond$i = $22 & $23; if ($or$cond$i) { $24 = ($15 | 0) > 0; if ($24) { $i$017$i = 0; $nedge_pts$016$i = 0; while (1) { $26 = ((($14 + ($i$017$i << 3)) | 0) + 4) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ($27 + $nedge_pts$016$i) | 0; $29 = ($i$017$i + 1) | 0; $exitcond31$i = ($29 | 0) == ($15 | 0); if ($exitcond31$i) { $nedge_pts$0$lcssa$i = $28; break; } else { $i$017$i = $29; $nedge_pts$016$i = $28; } } } else { $nedge_pts$0$lcssa$i = 0; } $25 = ($21 | 0) > 0; if ($25) { $i$114$i = 0; $nedge_pts$113$i = $nedge_pts$0$lcssa$i; while (1) { $30 = ((($20 + ($i$114$i << 3)) | 0) + 4) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($31 + $nedge_pts$113$i) | 0; $33 = ($i$114$i + 1) | 0; $exitcond$i = ($33 | 0) == ($21 | 0); if ($exitcond$i) { $nedge_pts$1$lcssa$i = $32; break; } else { $i$114$i = $33; $nedge_pts$113$i = $32; } } } else { $nedge_pts$1$lcssa$i = $nedge_pts$0$lcssa$i; } $34 = $nedge_pts$1$lcssa$i << 5; $35 = _malloc($34) | 0; $36 = ($21 | 0) < ($15 | 0); $37 = $36 ? $21 : $15; $38 = $37 << 4; $39 = _malloc($38) | 0; $40 = $15 << 2; $41 = _malloc($40) | 0; $42 = $21 << 2; $43 = _malloc($42) | 0; $44 = _calloc($15, 1) | 0; $45 = _calloc($21, 1) | 0; if ($24) { $$046$i$i = $35; $i$043$i$i = 0; $ncenters$045$i$i = 0; while (1) { $46 = ($44 + $i$043$i$i) | 0; $47 = HEAP8[$46 >> 0] | 0; $48 = ($47 << 24) >> 24 == 0; if ($48) { $49 = ($14 + ($i$043$i$i << 3)) | 0; $50 = ((($14 + ($i$043$i$i << 3)) | 0) + 4) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = $51 >> 1; $53 = HEAP32[$49 >> 2] | 0; $54 = ($53 + ($52 << 2)) | 0; $55 = HEAP32[$54 >> 2] | 0; if ($25) { $56 = ($55 + 8) | 0; $57 = ($55 + 4) | 0; $j$022$i$i = 0; $nvneighbors$023$i$i = 0; $y$024$i$i = 0; while (1) { $58 = ($45 + $j$022$i$i) | 0; $59 = HEAP8[$58 >> 0] | 0; $60 = ($59 << 24) >> 24 == 0; if ($60) { $61 = ($20 + ($j$022$i$i << 3)) | 0; $62 = ((($20 + ($j$022$i$i << 3)) | 0) + 4) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = $63 >> 1; $65 = HEAP32[$61 >> 2] | 0; $66 = ($65 + ($64 << 2)) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = HEAP32[$55 >> 2] | 0; $69 = HEAP32[$67 >> 2] | 0; $70 = ($68 | 0) > ($69 | 0); if ($70) { $nvneighbors$1$i$i = $nvneighbors$023$i$i; $y$2$i$i = $y$024$i$i; } else { $71 = HEAP32[$56 >> 2] | 0; $72 = ($71 + $68) | 0; $73 = ($69 | 0) < ($72 | 0); if ($73) { $74 = ($67 + 4) | 0; $75 = HEAP32[$74 >> 2] | 0; $76 = HEAP32[$57 >> 2] | 0; $77 = ($75 | 0) > ($76 | 0); if ($77) { $nvneighbors$1$i$i = $nvneighbors$023$i$i; $y$2$i$i = $y$024$i$i; } else { $78 = ($67 + 8) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ($79 + $75) | 0; $81 = ($76 | 0) < ($80 | 0); if ($81) { HEAP8[$58 >> 0] = 1; $82 = $75 << 1; $83 = ($82 + $y$024$i$i) | 0; $84 = ($83 + $79) | 0; $85 = ($67 + 12) | 0; $86 = HEAP32[$85 >> 2] | 0; $87 = ($86 | 0) > 0; do { if ($87) { $88 = ($67 + 16) | 0; $89 = HEAP32[$88 >> 2] | 0; $90 = ($89 | 0) > 0; if (!$90) { $y$1$i$i = $84; break; } $91 = ($84 - $86) | 0; $92 = ($91 + $89) | 0; $y$1$i$i = $92; } else { $y$1$i$i = $84; } } while (0); $93 = ($nvneighbors$023$i$i + 1) | 0; $94 = ($43 + ($nvneighbors$023$i$i << 2)) | 0; HEAP32[$94 >> 2] = $61; $nvneighbors$1$i$i = $93; $y$2$i$i = $y$1$i$i; } else { $nvneighbors$1$i$i = $nvneighbors$023$i$i; $y$2$i$i = $y$024$i$i; } } } else { $nvneighbors$1$i$i = $nvneighbors$023$i$i; $y$2$i$i = $y$024$i$i; } } } else { $nvneighbors$1$i$i = $nvneighbors$023$i$i; $y$2$i$i = $y$024$i$i; } $95 = ($j$022$i$i + 1) | 0; $exitcond$i$i = ($95 | 0) == ($21 | 0); if ($exitcond$i$i) { break; } else { $j$022$i$i = $95; $nvneighbors$023$i$i = $nvneighbors$1$i$i; $y$024$i$i = $y$2$i$i; } } $96 = ($nvneighbors$1$i$i | 0) > 0; if ($96) { $97 = HEAP32[$55 >> 2] | 0; $98 = $97 << 1; $99 = HEAP32[$56 >> 2] | 0; $100 = ($98 + $99) | 0; $101 = ($55 + 12) | 0; $102 = HEAP32[$101 >> 2] | 0; $103 = ($102 | 0) > 0; if ($103) { $104 = ($55 + 16) | 0; $105 = HEAP32[$104 >> 2] | 0; $106 = ($105 | 0) > 0; if ($106) { $107 = ($100 - $102) | 0; $108 = ($107 + $105) | 0; $x$0$i$i = $108; } else { $x$0$i$i = $100; } } else { $x$0$i$i = $100; } HEAP32[$41 >> 2] = $49; $109 = $nvneighbors$1$i$i >> 1; $110 = ($43 + ($109 << 2)) | 0; $111 = HEAP32[$110 >> 2] | 0; $112 = ($111 + 4) | 0; $113 = HEAP32[$112 >> 2] | 0; $114 = $113 >> 1; $115 = HEAP32[$111 >> 2] | 0; $116 = ($115 + ($114 << 2)) | 0; $117 = HEAP32[$116 >> 2] | 0; $j$13037$i$i = ($i$043$i$i + 1) | 0; $118 = ($j$13037$i$i | 0) < ($15 | 0); L42: do { if ($118) { $119 = ($117 + 4) | 0; $120 = ($117 + 8) | 0; $j$13040$i$i = $j$13037$i$i; $nhneighbors$0$ph38$i$i = 1; $x$1$ph39$i$i = $x$0$i$i; while (1) { $j$131$i$i = $j$13040$i$i; L46: while (1) { $121 = ($44 + $j$131$i$i) | 0; $122 = HEAP8[$121 >> 0] | 0; $123 = ($122 << 24) >> 24 == 0; do { if ($123) { $125 = ($14 + ($j$131$i$i << 3)) | 0; $126 = ((($14 + ($j$131$i$i << 3)) | 0) + 4) | 0; $127 = HEAP32[$126 >> 2] | 0; $128 = $127 >> 1; $129 = HEAP32[$125 >> 2] | 0; $130 = ($129 + ($128 << 2)) | 0; $131 = HEAP32[$130 >> 2] | 0; $132 = HEAP32[$131 >> 2] | 0; $133 = HEAP32[$117 >> 2] | 0; $134 = ($132 | 0) > ($133 | 0); if ($134) { break; } $135 = ($131 + 8) | 0; $136 = HEAP32[$135 >> 2] | 0; $137 = ($136 + $132) | 0; $138 = ($133 | 0) < ($137 | 0); if (!$138) { break; } $139 = HEAP32[$119 >> 2] | 0; $140 = ($131 + 4) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($139 | 0) > ($141 | 0); if ($142) { break; } $143 = HEAP32[$120 >> 2] | 0; $144 = ($143 + $139) | 0; $145 = ($141 | 0) < ($144 | 0); if ($145) { break L46; } } } while (0); $j$1$i$i = ($j$131$i$i + 1) | 0; $124 = ($j$1$i$i | 0) < ($15 | 0); if ($124) { $j$131$i$i = $j$1$i$i; } else { $nhneighbors$0$ph34$i$i = $nhneighbors$0$ph38$i$i; $x$1$ph36$i$i = $x$1$ph39$i$i; break L42; } } HEAP8[$121 >> 0] = 1; $146 = $132 << 1; $147 = ($146 + $x$1$ph39$i$i) | 0; $148 = ($147 + $136) | 0; $149 = ($131 + 12) | 0; $150 = HEAP32[$149 >> 2] | 0; $151 = ($150 | 0) > 0; if ($151) { $152 = ($131 + 16) | 0; $153 = HEAP32[$152 >> 2] | 0; $154 = ($153 | 0) > 0; if ($154) { $155 = ($148 - $150) | 0; $156 = ($155 + $153) | 0; $x$2$i$i = $156; } else { $x$2$i$i = $148; } } else { $x$2$i$i = $148; } $157 = ($nhneighbors$0$ph38$i$i + 1) | 0; $158 = ($41 + ($nhneighbors$0$ph38$i$i << 2)) | 0; HEAP32[$158 >> 2] = $125; $j$130$i$i = ($j$131$i$i + 1) | 0; $159 = ($j$130$i$i | 0) < ($15 | 0); if ($159) { $j$13040$i$i = $j$130$i$i; $nhneighbors$0$ph38$i$i = $157; $x$1$ph39$i$i = $x$2$i$i; } else { $nhneighbors$0$ph34$i$i = $157; $x$1$ph36$i$i = $x$2$i$i; break; } } } else { $nhneighbors$0$ph34$i$i = 1; $x$1$ph36$i$i = $x$0$i$i; } } while (0); $160 = ($ncenters$045$i$i + 1) | 0; $161 = ($nhneighbors$0$ph34$i$i + $x$1$ph36$i$i) | 0; $162 = $nhneighbors$0$ph34$i$i << 1; $163 = (($161 | 0) / ($162 | 0)) & -1; $164 = ($39 + ($ncenters$045$i$i << 4)) | 0; HEAP32[$164 >> 2] = $163; $165 = ($y$2$i$i + $nvneighbors$1$i$i) | 0; $166 = $nvneighbors$1$i$i << 1; $167 = (($165 | 0) / ($166 | 0)) & -1; $168 = ((($39 + ($ncenters$045$i$i << 4)) | 0) + 4) | 0; HEAP32[$168 >> 2] = $167; $169 = ((($39 + ($ncenters$045$i$i << 4)) | 0) + 8) | 0; HEAP32[$169 >> 2] = $$046$i$i; $170 = ($nhneighbors$0$ph34$i$i | 0) > 0; if ($170) { $$04$i1$i$i = 0; $i$03$i2$i$i = 0; while (1) { $171 = ($41 + ($i$03$i2$i$i << 2)) | 0; $172 = HEAP32[$171 >> 2] | 0; $173 = ($172 + 4) | 0; $174 = HEAP32[$173 >> 2] | 0; $175 = ($174 | 0) > 0; if ($175) { $176 = HEAP32[$172 >> 2] | 0; $$12$i5$i$i = $$04$i1$i$i; $j$01$i6$i$i = 0; while (1) { $177 = ($176 + ($j$01$i6$i$i << 2)) | 0; $178 = HEAP32[$177 >> 2] | 0; $179 = ($178 + 12) | 0; $180 = HEAP32[$179 >> 2] | 0; $181 = ($180 | 0) > 0; if ($181) { $182 = HEAP32[$178 >> 2] | 0; $183 = ($$046$i$i + ($$12$i5$i$i << 4)) | 0; HEAP32[$183 >> 2] = $182; $184 = ($178 + 4) | 0; $185 = HEAP32[$184 >> 2] | 0; $186 = ((($$046$i$i + ($$12$i5$i$i << 4)) | 0) + 4) | 0; HEAP32[$186 >> 2] = $185; $187 = ($182 - $180) | 0; HEAP32[$183 >> 2] = $187; $188 = ($$12$i5$i$i + 1) | 0; $$2$i7$i$i = $188; } else { $$2$i7$i$i = $$12$i5$i$i; } $189 = ($178 + 16) | 0; $190 = HEAP32[$189 >> 2] | 0; $191 = ($190 | 0) > 0; if ($191) { $192 = HEAP32[$178 >> 2] | 0; $193 = ($$046$i$i + ($$2$i7$i$i << 4)) | 0; HEAP32[$193 >> 2] = $192; $194 = ($178 + 4) | 0; $195 = HEAP32[$194 >> 2] | 0; $196 = ((($$046$i$i + ($$2$i7$i$i << 4)) | 0) + 4) | 0; HEAP32[$196 >> 2] = $195; $197 = ($178 + 8) | 0; $198 = HEAP32[$197 >> 2] | 0; $199 = ($192 + $190) | 0; $200 = ($199 + $198) | 0; HEAP32[$193 >> 2] = $200; $201 = ($$2$i7$i$i + 1) | 0; $$3$i8$i$i = $201; } else { $$3$i8$i$i = $$2$i7$i$i; } $202 = ($j$01$i6$i$i + 1) | 0; $exitcond61$i$i = ($202 | 0) == ($174 | 0); if ($exitcond61$i$i) { $$1$lcssa$i9$i$i = $$3$i8$i$i; break; } else { $$12$i5$i$i = $$3$i8$i$i; $j$01$i6$i$i = $202; } } } else { $$1$lcssa$i9$i$i = $$04$i1$i$i; } $203 = ($i$03$i2$i$i + 1) | 0; $exitcond$i10$i$i = ($203 | 0) == ($nhneighbors$0$ph34$i$i | 0); if ($exitcond$i10$i$i) { $$04$i$i$i = $$1$lcssa$i9$i$i; $i$03$i$i$i = 0; break; } else { $$04$i1$i$i = $$1$lcssa$i9$i$i; $i$03$i2$i$i = $203; } } } else { $$04$i$i$i = 0; $i$03$i$i$i = 0; } while (1) { $204 = ($43 + ($i$03$i$i$i << 2)) | 0; $205 = HEAP32[$204 >> 2] | 0; $206 = ($205 + 4) | 0; $207 = HEAP32[$206 >> 2] | 0; $208 = ($207 | 0) > 0; if ($208) { $209 = HEAP32[$205 >> 2] | 0; $$12$i$i$i = $$04$i$i$i; $j$01$i$i$i = 0; while (1) { $210 = ($209 + ($j$01$i$i$i << 2)) | 0; $211 = HEAP32[$210 >> 2] | 0; $212 = ($211 + 12) | 0; $213 = HEAP32[$212 >> 2] | 0; $214 = ($213 | 0) > 0; if ($214) { $215 = HEAP32[$211 >> 2] | 0; $216 = ($$046$i$i + ($$12$i$i$i << 4)) | 0; HEAP32[$216 >> 2] = $215; $217 = ($211 + 4) | 0; $218 = HEAP32[$217 >> 2] | 0; $219 = ((($$046$i$i + ($$12$i$i$i << 4)) | 0) + 4) | 0; $220 = ($218 - $213) | 0; HEAP32[$219 >> 2] = $220; $221 = ($$12$i$i$i + 1) | 0; $$2$i$i$i = $221; } else { $$2$i$i$i = $$12$i$i$i; } $222 = ($211 + 16) | 0; $223 = HEAP32[$222 >> 2] | 0; $224 = ($223 | 0) > 0; if ($224) { $225 = HEAP32[$211 >> 2] | 0; $226 = ($$046$i$i + ($$2$i$i$i << 4)) | 0; HEAP32[$226 >> 2] = $225; $227 = ($211 + 4) | 0; $228 = HEAP32[$227 >> 2] | 0; $229 = ((($$046$i$i + ($$2$i$i$i << 4)) | 0) + 4) | 0; HEAP32[$229 >> 2] = $228; $230 = ($211 + 8) | 0; $231 = HEAP32[$230 >> 2] | 0; $232 = ($228 + $223) | 0; $233 = ($232 + $231) | 0; HEAP32[$229 >> 2] = $233; $234 = ($$2$i$i$i + 1) | 0; $$3$i$i$i = $234; } else { $$3$i$i$i = $$2$i$i$i; } $235 = ($j$01$i$i$i + 1) | 0; $exitcond62$i$i = ($235 | 0) == ($207 | 0); if ($exitcond62$i$i) { $$1$lcssa$i$i$i = $$3$i$i$i; break; } else { $$12$i$i$i = $$3$i$i$i; $j$01$i$i$i = $235; } } } else { $$1$lcssa$i$i$i = $$04$i$i$i; } $236 = ($i$03$i$i$i + 1) | 0; $exitcond$i$i$i = ($236 | 0) == ($nvneighbors$1$i$i | 0); if ($exitcond$i$i$i) { break; } else { $$04$i$i$i = $$1$lcssa$i$i$i; $i$03$i$i$i = $236; } } $237 = ((($39 + ($ncenters$045$i$i << 4)) | 0) + 12) | 0; HEAP32[$237 >> 2] = $$1$lcssa$i$i$i; $238 = ($$046$i$i + ($$1$lcssa$i$i$i << 4)) | 0; $$1$i$i = $238; $ncenters$1$i$i = $160; } else { $$1$i$i = $$046$i$i; $ncenters$1$i$i = $ncenters$045$i$i; } } else { $$1$i$i = $$046$i$i; $ncenters$1$i$i = $ncenters$045$i$i; } } else { $$1$i$i = $$046$i$i; $ncenters$1$i$i = $ncenters$045$i$i; } $239 = ($i$043$i$i + 1) | 0; $exitcond63$i$i = ($239 | 0) == ($15 | 0); if ($exitcond63$i$i) { $ncenters$0$lcssa$i$i = $ncenters$1$i$i; break; } else { $$046$i$i = $$1$i$i; $i$043$i$i = $239; $ncenters$045$i$i = $ncenters$1$i$i; } } } else { $ncenters$0$lcssa$i$i = 0; } _free($45); _free($44); _free($43); _free($41); _qsort($39, $ncenters$0$lcssa$i$i, 16, 4); $257 = $39; $286 = $35; $ncenters$0$i = $ncenters$0$lcssa$i$i; } else { $257 = 0; $286 = 0; $ncenters$0$i = 0; } _free($20); _free($17); _free($14); _free($11); $240 = HEAP32[80 >> 2] | 0; $241 = ($240 | 0) > 13; if ($241) { $242 = HEAP32[_stderr >> 2] | 0; $243 = HEAP32[$0 >> 2] | 0; $244 = HEAP32[$3 >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 7280; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = $243; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = $244; $vararg_ptr3 = ($vararg_buffer + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = $ncenters$0$i; _fprintf($242 | 0, 7248 | 0, $vararg_buffer | 0) | 0; } $245 = ($ncenters$0$i | 0) > 2; if ($245) { $246 = ($img + 12) | 0; $247 = HEAP32[$246 >> 2] | 0; $248 = ($img + 4) | 0; $249 = HEAP32[$248 >> 2] | 0; $250 = ($img + 8) | 0; $251 = HEAP32[$250 >> 2] | 0; $252 = _qr_binarize($247, $249, $251) | 0; HEAP32[$qrlist >> 2] = 0; $253 = ($qrlist + 8) | 0; HEAP32[$253 >> 2] = 0; $254 = ($qrlist + 4) | 0; HEAP32[$254 >> 2] = 0; $255 = HEAP32[$248 >> 2] | 0; $256 = HEAP32[$250 >> 2] | 0; _qr_reader_match_centers($reader, $qrlist, $257, $ncenters$0$i, $252, $255, $256); $258 = HEAP32[$254 >> 2] | 0; $259 = ($258 | 0) > 0; if ($259) { $261 = _qr_code_data_list_extract_text($qrlist, $iscn, $img) | 0; $$pr = HEAP32[$254 >> 2] | 0; $262 = ($$pr | 0) > 0; $263 = HEAP32[$qrlist >> 2] | 0; if ($262) { $265 = $263; $i$04$i = 0; while (1) { $264 = ((($265 + (($i$04$i * 48) | 0)) | 0) + 4) | 0; $266 = HEAP32[$264 >> 2] | 0; $267 = ($266 | 0) > 0; $268 = ($265 + (($i$04$i * 48) | 0)) | 0; $269 = HEAP32[$268 >> 2] | 0; if ($267) { $271 = $269; $288 = $266; $i$01$i$i = 0; while (1) { $270 = ($271 + (($i$01$i$i * 12) | 0)) | 0; $272 = HEAP32[$270 >> 2] | 0; $273 = ($272 + -1) | 0; $274 = $273 & $272; $275 = ($274 | 0) == 0; if ($275) { $276 = ((($271 + (($i$01$i$i * 12) | 0)) | 0) + 4) | 0; $277 = HEAP32[$276 >> 2] | 0; _free($277); $$pre$i$i = HEAP32[$264 >> 2] | 0; $$pre3$i$i = HEAP32[$268 >> 2] | 0; $280 = $$pre$i$i; $289 = $$pre3$i$i; } else { $280 = $288; $289 = $271; } $278 = ($i$01$i$i + 1) | 0; $279 = ($278 | 0) < ($280 | 0); if ($279) { $271 = $289; $288 = $280; $i$01$i$i = $278; } else { $$lcssa$i$i = $289; break; } } } else { $$lcssa$i$i = $269; } _free($$lcssa$i$i); $281 = ($i$04$i + 1) | 0; $282 = HEAP32[$254 >> 2] | 0; $283 = ($281 | 0) < ($282 | 0); $284 = HEAP32[$qrlist >> 2] | 0; if ($283) { $265 = $284; $i$04$i = $281; } else { $$lcssa3$i = $284; $nqrdata$04 = $261; break; } } } else { $$lcssa3$i = $263; $nqrdata$04 = $261; } } else { $260 = HEAP32[$qrlist >> 2] | 0; $$lcssa3$i = $260; $nqrdata$04 = 0; } _free($$lcssa3$i); HEAP32[$qrlist >> 2] = 0; HEAP32[$253 >> 2] = 0; HEAP32[$254 >> 2] = 0; _free($252); $nqrdata$1 = $nqrdata$04; } else { $nqrdata$1 = 0; } $285 = ($257 | 0) == (0 | 0); if (!$285) { _free($257); } $287 = ($286 | 0) == (0 | 0); if ($287) { $$0 = $nqrdata$1; STACKTOP = sp; return $$0 | 0; } _free($286); $$0 = $nqrdata$1; STACKTOP = sp; return $$0 | 0; } function _qr_finder_cluster_lines($_clusters, $_neighbors, $_lines, $_nlines, $_v) { $_clusters = $_clusters | 0; $_neighbors = $_neighbors | 0; $_lines = $_lines | 0; $_nlines = $_nlines | 0; $_v = $_v | 0; var $$pre = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $exitcond = 0, $exitcond53 = 0, $i$035 = 0, $ispos = 0, $ispos1 = 0, $ispos3 = 0, $ispos5 = 0, $ispos7 = 0, $j$0 = 0; var $j$016 = 0, $j$01629 = 0, $j$01632 = 0, $j$017 = 0, $j$118 = 0, $len$0$ph24 = 0, $len$0$ph30 = 0, $nclusters$0$lcssa = 0, $nclusters$036 = 0, $nclusters$1 = 0, $neg = 0, $neg2 = 0, $neg4 = 0, $neg6 = 0, $neg8 = 0, $neighbors$037 = 0, $neighbors$1 = 0, $nneighbors$0$ph27 = 0, $nneighbors$0$ph31 = 0, label = 0; var sp = 0; sp = STACKTOP; $0 = _calloc($_nlines, 1) | 0; $1 = ($_nlines + -1) | 0; $2 = ($1 | 0) > 0; if (!$2) { $nclusters$0$lcssa = 0; _free($0); STACKTOP = sp; return $nclusters$0$lcssa | 0; } $3 = $_lines; $4 = (1 - $_v) | 0; $i$035 = 0; $nclusters$036 = 0; $neighbors$037 = $_neighbors; while (1) { $5 = ($0 + $i$035) | 0; $6 = HEAP8[$5 >> 0] | 0; $7 = ($6 << 24) >> 24 == 0; if ($7) { $8 = ($_lines + (($i$035 * 20) | 0)) | 0; HEAP32[$neighbors$037 >> 2] = $8; $9 = ((($_lines + (($i$035 * 20) | 0)) | 0) + 8) | 0; $10 = HEAP32[$9 >> 2] | 0; $j$01629 = ($i$035 + 1) | 0; $11 = ($j$01629 | 0) < ($_nlines | 0); if ($11) { $18 = $8; $j$01632 = $j$01629; $len$0$ph30 = $10; $nneighbors$0$ph31 = 1; L8: while (1) { $j$017 = $j$01632; L10: while (1) { $12 = ($0 + $j$017) | 0; $13 = HEAP8[$12 >> 0] | 0; $14 = ($13 << 24) >> 24 == 0; do { if ($14) { $16 = ($_lines + (($j$017 * 20) | 0)) | 0; $17 = ($18 + 8) | 0; $19 = HEAP32[$17 >> 2] | 0; $20 = ($19 + 7) | 0; $21 = $20 >> 2; $22 = ($18 + ($4 << 2)) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ((($_lines + (($j$017 * 20) | 0)) | 0) + ($4 << 2)) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($23 - $25) | 0; $ispos = ($26 | 0) > -1; $neg = (0 - $26) | 0; $27 = $ispos ? $26 : $neg; $28 = ($27 | 0) > ($21 | 0); if ($28) { $len$0$ph24 = $len$0$ph30; $nneighbors$0$ph27 = $nneighbors$0$ph31; break L8; } $29 = ($18 + ($_v << 2)) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = ((($_lines + (($j$017 * 20) | 0)) | 0) + ($_v << 2)) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($30 - $32) | 0; $ispos1 = ($33 | 0) > -1; $neg2 = (0 - $33) | 0; $34 = $ispos1 ? $33 : $neg2; $35 = ($34 | 0) > ($21 | 0); if (!$35) { $36 = ($30 + $19) | 0; $37 = ($36 - $32) | 0; $38 = ((($_lines + (($j$017 * 20) | 0)) | 0) + 8) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($37 - $39) | 0; $ispos3 = ($40 | 0) > -1; $neg4 = (0 - $40) | 0; $41 = $ispos3 ? $40 : $neg4; $42 = ($41 | 0) > ($21 | 0); if (!$42) { $43 = ($18 + 12) | 0; $44 = HEAP32[$43 >> 2] | 0; $45 = ($44 | 0) > 0; if ($45) { $46 = ((($_lines + (($j$017 * 20) | 0)) | 0) + 12) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = ($47 | 0) > 0; if ($48) { $49 = ($33 - $44) | 0; $50 = ($49 + $47) | 0; $ispos7 = ($50 | 0) > -1; $neg8 = (0 - $50) | 0; $51 = $ispos7 ? $50 : $neg8; $52 = ($51 | 0) > ($21 | 0); if ($52) { break; } } } $53 = ($18 + 16) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($54 | 0) > 0; if (!$55) { break L10; } $56 = ((($_lines + (($j$017 * 20) | 0)) | 0) + 16) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 | 0) > 0; if (!$58) { break L10; } $59 = ($54 - $57) | 0; $60 = ($59 + $30) | 0; $61 = ($60 + $19) | 0; $62 = ($61 - $32) | 0; $63 = ($62 - $39) | 0; $ispos5 = ($63 | 0) > -1; $neg6 = (0 - $63) | 0; $64 = $ispos5 ? $63 : $neg6; $65 = ($64 | 0) > ($21 | 0); if (!$65) { break L10; } } } } } while (0); $j$0 = ($j$017 + 1) | 0; $15 = ($j$0 | 0) < ($_nlines | 0); if ($15) { $j$017 = $j$0; } else { $len$0$ph24 = $len$0$ph30; $nneighbors$0$ph27 = $nneighbors$0$ph31; break L8; } } $66 = ($nneighbors$0$ph31 + 1) | 0; $67 = ($neighbors$037 + ($nneighbors$0$ph31 << 2)) | 0; HEAP32[$67 >> 2] = $16; $68 = ($39 + $len$0$ph30) | 0; $j$016 = ($j$017 + 1) | 0; $69 = ($j$016 | 0) < ($_nlines | 0); if ($69) { $18 = $16; $j$01632 = $j$016; $len$0$ph30 = $68; $nneighbors$0$ph31 = $66; } else { $len$0$ph24 = $68; $nneighbors$0$ph27 = $66; break; } } $70 = ($nneighbors$0$ph27 | 0) < 3; if ($70) { $$pre$phiZ2D = $j$01629; $nclusters$1 = $nclusters$036; $neighbors$1 = $neighbors$037; } else { $71 = $len$0$ph24 << 1; $72 = ($nneighbors$0$ph27 + $71) | 0; $73 = $nneighbors$0$ph27 << 1; $74 = (($72 | 0) / ($73 | 0)) & -1; $75 = ($nneighbors$0$ph27 * 20) | 0; $76 = ($75 | 0) < ($74 | 0); if ($76) { $$pre$phiZ2D = $j$01629; $nclusters$1 = $nclusters$036; $neighbors$1 = $neighbors$037; } else { $77 = ($_clusters + ($nclusters$036 << 3)) | 0; HEAP32[$77 >> 2] = $neighbors$037; $78 = ((($_clusters + ($nclusters$036 << 3)) | 0) + 4) | 0; HEAP32[$78 >> 2] = $nneighbors$0$ph27; $79 = ($nneighbors$0$ph27 | 0) > 0; if ($79) { $j$118 = 0; while (1) { $80 = ($neighbors$037 + ($j$118 << 2)) | 0; $81 = HEAP32[$80 >> 2] | 0; $82 = $81; $83 = ($82 - $3) | 0; $84 = (($83 | 0) / 20) & -1; $85 = ($0 + $84) | 0; HEAP8[$85 >> 0] = 1; $86 = ($j$118 + 1) | 0; $exitcond = ($86 | 0) == ($nneighbors$0$ph27 | 0); if ($exitcond) { break; } else { $j$118 = $86; } } } $87 = ($neighbors$037 + ($nneighbors$0$ph27 << 2)) | 0; $88 = ($nclusters$036 + 1) | 0; $$pre$phiZ2D = $j$01629; $nclusters$1 = $88; $neighbors$1 = $87; } } } else { $$pre$phiZ2D = $j$01629; $nclusters$1 = $nclusters$036; $neighbors$1 = $neighbors$037; } } else { $$pre = ($i$035 + 1) | 0; $$pre$phiZ2D = $$pre; $nclusters$1 = $nclusters$036; $neighbors$1 = $neighbors$037; } $exitcond53 = ($$pre$phiZ2D | 0) == ($1 | 0); if ($exitcond53) { $nclusters$0$lcssa = $nclusters$1; break; } else { $i$035 = $$pre$phiZ2D; $nclusters$036 = $nclusters$1; $neighbors$037 = $neighbors$1; } } _free($0); STACKTOP = sp; return $nclusters$0$lcssa | 0; } function _qr_finder_vline_cmp($_a, $_b) { $_a = $_a | 0; $_b = $_b | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP32[$_a >> 2] | 0; $1 = HEAP32[$_b >> 2] | 0; $2 = ($0 | 0) > ($1 | 0); $3 = $2 & 1; $4 = ($0 | 0) < ($1 | 0); $5 = $4 & 1; $6 = ($3 - $5) | 0; $7 = $6 << 1; $8 = ($_a + 4) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($_b + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($9 | 0) > ($11 | 0); $13 = $12 & 1; $14 = $7 | $13; $15 = ($9 | 0) < ($11 | 0); $16 = $15 & 1; $17 = ($14 - $16) | 0; STACKTOP = sp; return $17 | 0; } function _qr_finder_center_cmp($_a, $_b) { $_a = $_a | 0; $_b = $_b | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_b + 12) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($_a + 12) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($1 | 0) > ($3 | 0); $5 = $4 & 1; $6 = ($1 | 0) < ($3 | 0); $7 = $6 & 1; $8 = ($5 - $7) | 0; $9 = $8 << 2; $10 = ($_a + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($_b + 4) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($11 | 0) > ($13 | 0); $15 = $14 & 1; $16 = ($11 | 0) < ($13 | 0); $17 = $16 & 1; $18 = ($15 - $17) | 0; $19 = $18 << 1; $20 = ($19 + $9) | 0; $21 = HEAP32[$_a >> 2] | 0; $22 = HEAP32[$_b >> 2] | 0; $23 = ($21 | 0) > ($22 | 0); $24 = $23 & 1; $25 = $20 | $24; $26 = ($21 | 0) < ($22 | 0); $27 = $26 & 1; $28 = ($25 - $27) | 0; STACKTOP = sp; return $28 | 0; } function _qr_finder_edge_pts_aff_classify($_f, $_aff) { $_f = $_f | 0; $_aff = $_aff | 0; var $$lcssa = 0, $$lobit = 0, $$phi$trans$insert = 0, $$phi$trans$insert11 = 0, $$phi$trans$insert9 = 0, $$pre = 0, $$pre10 = 0, $$pre12 = 0, $$pre8 = 0, $$sum = 0, $$sum16 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0; var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, $i$04 = 0, $ispos = 0, $ispos1 = 0, $neg = 0, $neg2 = 0, $q = 0, $scevgep = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $q = sp; $0 = ($_f + 72) | 0; $1 = HEAP32[$0 >> 2] | 0; $scevgep = ($_f + 32) | 0; HEAP32[($scevgep + 0) >> 2] = 0 | 0; HEAP32[($scevgep + 4) >> 2] = 0 | 0; HEAP32[($scevgep + 8) >> 2] = 0 | 0; HEAP32[($scevgep + 12) >> 2] = 0 | 0; $2 = ($1 + 12) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) > 0; if (!$4) { $$phi$trans$insert11 = ($1 + 8) | 0; $$pre12 = HEAP32[$$phi$trans$insert11 >> 2] | 0; $$lcssa = $3; $64 = $$pre12; $68 = 0; $70 = 0; $73 = 0; $63 = ($1 + 8) | 0; _qsort($64, $$lcssa, 16, 5); $65 = HEAP32[$63 >> 2] | 0; $66 = ($_f + 16) | 0; HEAP32[$66 >> 2] = $65; $67 = ($65 + ($68 << 4)) | 0; $69 = ($_f + 20) | 0; HEAP32[$69 >> 2] = $67; $$sum = ($68 + $70) | 0; $71 = ($65 + ($$sum << 4)) | 0; $72 = ($_f + 24) | 0; HEAP32[$72 >> 2] = $71; $$sum16 = ($$sum + $73) | 0; $74 = ($65 + ($$sum16 << 4)) | 0; $75 = ($_f + 28) | 0; HEAP32[$75 >> 2] = $74; STACKTOP = sp; return; } $5 = ($1 + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($_aff + 16) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($_aff + 32) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($_aff + 20) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($_aff + 36) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($_aff + 44) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = 1 << $16; $18 = $17 >> 1; $19 = ($_aff + 24) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($_aff + 28) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($q + 4) | 0; $24 = ($_f + 64) | 0; $25 = ($_f + 68) | 0; $i$04 = 0; while (1) { $26 = ($6 + ($i$04 << 4)) | 0; $27 = HEAP32[$26 >> 2] | 0; $28 = ((($6 + ($i$04 << 4)) | 0) + 4) | 0; $29 = HEAP32[$28 >> 2] | 0; $30 = ($27 - $10) | 0; $31 = Math_imul($30, $8) | 0; $32 = ($29 - $14) | 0; $33 = Math_imul($32, $12) | 0; $34 = ($33 + $31) | 0; $35 = ($34 + $18) | 0; $36 = $35 >> $16; $37 = Math_imul($20, $30) | 0; $38 = Math_imul($22, $32) | 0; $39 = ($18 + $37) | 0; $40 = ($39 + $38) | 0; $41 = $40 >> $16; $42 = HEAP32[$24 >> 2] | 0; $43 = HEAP32[$25 >> 2] | 0; $44 = ($36 - $42) | 0; HEAP32[$q >> 2] = $44; $45 = ($41 - $43) | 0; HEAP32[$23 >> 2] = $45; $ispos = ($45 | 0) > -1; $neg = (0 - $45) | 0; $46 = $ispos ? $45 : $neg; $ispos1 = ($44 | 0) > -1; $neg2 = (0 - $44) | 0; $47 = $ispos1 ? $44 : $neg2; $48 = ($46 | 0) > ($47 | 0); $49 = $48 & 1; $50 = $49 << 1; $51 = ($q + ($49 << 2)) | 0; $52 = HEAP32[$51 >> 2] | 0; $$lobit = $52 >>> 31; $53 = $50 | $$lobit; $54 = $53 ^ 1; $55 = ((($_f + ($54 << 2)) | 0) + 32) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = ($56 + 1) | 0; HEAP32[$55 >> 2] = $57; $58 = ((($6 + ($i$04 << 4)) | 0) + 8) | 0; HEAP32[$58 >> 2] = $54; $59 = ((($6 + ($i$04 << 4)) | 0) + 12) | 0; HEAP32[$59 >> 2] = $52; $60 = ($i$04 + 1) | 0; $61 = HEAP32[$2 >> 2] | 0; $62 = ($60 | 0) < ($61 | 0); if ($62) { $i$04 = $60; } else { break; } } $$pre = HEAP32[$scevgep >> 2] | 0; $$phi$trans$insert = ($_f + 36) | 0; $$pre8 = HEAP32[$$phi$trans$insert >> 2] | 0; $$phi$trans$insert9 = ($_f + 40) | 0; $$pre10 = HEAP32[$$phi$trans$insert9 >> 2] | 0; $$lcssa = $61; $64 = $6; $68 = $$pre; $70 = $$pre8; $73 = $$pre10; $63 = ($1 + 8) | 0; _qsort($64, $$lcssa, 16, 5); $65 = HEAP32[$63 >> 2] | 0; $66 = ($_f + 16) | 0; HEAP32[$66 >> 2] = $65; $67 = ($65 + ($68 << 4)) | 0; $69 = ($_f + 20) | 0; HEAP32[$69 >> 2] = $67; $$sum = ($68 + $70) | 0; $71 = ($65 + ($$sum << 4)) | 0; $72 = ($_f + 24) | 0; HEAP32[$72 >> 2] = $71; $$sum16 = ($$sum + $73) | 0; $74 = ($65 + ($$sum16 << 4)) | 0; $75 = ($_f + 28) | 0; HEAP32[$75 >> 2] = $74; STACKTOP = sp; return; } function _qr_finder_estimate_module_size_and_version($_f, $_width, $_height) { $_f = $_f | 0; $_width = $_width | 0; $_height = $_height | 0; var $$0 = 0, $$off = 0, $$off4 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $e$07 = 0, $exitcond = 0, $exitcond8 = 0, $i$06 = 0, $ispos = 0, $neg = 0, $nsums = 0, $offs = 0, $sum$0$lcssa = 0, $sum$05 = 0, $sums = 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 48) | 0; $offs = (sp + 32) | 0; $sums = (sp + 16) | 0; $nsums = sp; $0 = ($offs + 4) | 0; HEAP32[$0 >> 2] = 0; HEAP32[$offs >> 2] = 0; $e$07 = 0; while (1) { $1 = ((($_f + ($e$07 << 2)) | 0) + 32) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 | 0) > 0; if ($3) { $4 = ((($_f + ($e$07 << 2)) | 0) + 16) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = $2 >> 2; $7 = ($2 - $6) | 0; $8 = ($6 | 0) < ($7 | 0); if ($8) { $i$06 = $6; $sum$05 = 0; while (1) { $9 = ((($5 + ($i$06 << 4)) | 0) + 12) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($10 + $sum$05) | 0; $12 = ($i$06 + 1) | 0; $exitcond = ($12 | 0) == ($7 | 0); if ($exitcond) { $sum$0$lcssa = $11; break; } else { $i$06 = $12; $sum$05 = $11; } } } else { $sum$0$lcssa = 0; } $13 = $6 << 1; $14 = ($2 - $13) | 0; $15 = $14 >> 1; $16 = $sum$0$lcssa >> 31; $17 = ($16 + $15) | 0; $18 = $17 ^ $16; $19 = ($18 + $sum$0$lcssa) | 0; $20 = (($19 | 0) / ($14 | 0)) & -1; $21 = $e$07 >> 1; $22 = ($offs + ($21 << 2)) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($23 + $20) | 0; HEAP32[$22 >> 2] = $24; $25 = ($sums + ($e$07 << 2)) | 0; HEAP32[$25 >> 2] = $sum$0$lcssa; $26 = ($nsums + ($e$07 << 2)) | 0; HEAP32[$26 >> 2] = $14; } else { $27 = ($sums + ($e$07 << 2)) | 0; HEAP32[$27 >> 2] = 0; $28 = ($nsums + ($e$07 << 2)) | 0; HEAP32[$28 >> 2] = 0; } $29 = ($e$07 + 1) | 0; $exitcond8 = ($29 | 0) == 4; if ($exitcond8) { break; } else { $e$07 = $29; } } $30 = ($_f + 32) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($31 | 0) > 0; if ($32) { $33 = ($_f + 36) | 0; $34 = HEAP32[$33 >> 2] | 0; $35 = ($34 | 0) > 0; if ($35) { $36 = HEAP32[$offs >> 2] | 0; $37 = $36 >> 1; $38 = ($_f + 64) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($39 - $37) | 0; HEAP32[$38 >> 2] = $40; $41 = HEAP32[$nsums >> 2] | 0; $42 = Math_imul($41, $36) | 0; $43 = $42 >> 1; $44 = HEAP32[$sums >> 2] | 0; $45 = ($44 - $43) | 0; HEAP32[$sums >> 2] = $45; $46 = ($nsums + 4) | 0; $47 = HEAP32[$46 >> 2] | 0; $48 = Math_imul($47, $36) | 0; $49 = $48 >> 1; $50 = ($sums + 4) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = ($51 - $49) | 0; HEAP32[$50 >> 2] = $52; } } $53 = ($_f + 40) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($54 | 0) > 0; if ($55) { $56 = ($_f + 44) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 | 0) > 0; if ($58) { $59 = HEAP32[$0 >> 2] | 0; $60 = $59 >> 1; $61 = ($_f + 68) | 0; $62 = HEAP32[$61 >> 2] | 0; $63 = ($62 - $60) | 0; HEAP32[$61 >> 2] = $63; $64 = ($nsums + 8) | 0; $65 = HEAP32[$64 >> 2] | 0; $66 = Math_imul($65, $59) | 0; $67 = $66 >> 1; $68 = ($sums + 8) | 0; $69 = HEAP32[$68 >> 2] | 0; $70 = ($69 - $67) | 0; HEAP32[$68 >> 2] = $70; $71 = ($nsums + 12) | 0; $72 = HEAP32[$71 >> 2] | 0; $73 = Math_imul($72, $59) | 0; $74 = $73 >> 1; $75 = ($sums + 12) | 0; $76 = HEAP32[$75 >> 2] | 0; $77 = ($76 - $74) | 0; HEAP32[$75 >> 2] = $77; } } $78 = HEAP32[$nsums >> 2] | 0; $79 = ($nsums + 4) | 0; $80 = HEAP32[$79 >> 2] | 0; $81 = ($80 + $78) | 0; $82 = ($81 | 0) < 1; if ($82) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $83 = ($81 * 3) | 0; $84 = ($sums + 4) | 0; $85 = HEAP32[$84 >> 2] | 0; $86 = HEAP32[$sums >> 2] | 0; $87 = ($85 - $86) | 0; $88 = $87 << 1; $89 = ($88 + $83) | 0; $90 = ($81 * 6) | 0; $91 = (($89 | 0) / ($90 | 0)) & -1; $92 = ($91 | 0) < 1; if ($92) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $93 = $91 << 3; $94 = ($_width - $93) | 0; $95 = $91 << 2; $96 = (($94 | 0) / ($95 | 0)) & -1; $$off = ($96 + -1) | 0; $97 = $$off >>> 0 > 42; if ($97) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $98 = ($nsums + 8) | 0; $99 = HEAP32[$98 >> 2] | 0; $100 = ($nsums + 12) | 0; $101 = HEAP32[$100 >> 2] | 0; $102 = ($101 + $99) | 0; $103 = ($102 | 0) < 1; if ($103) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $104 = ($102 * 3) | 0; $105 = ($sums + 12) | 0; $106 = HEAP32[$105 >> 2] | 0; $107 = ($sums + 8) | 0; $108 = HEAP32[$107 >> 2] | 0; $109 = ($106 - $108) | 0; $110 = $109 << 1; $111 = ($110 + $104) | 0; $112 = ($102 * 6) | 0; $113 = (($111 | 0) / ($112 | 0)) & -1; $114 = ($113 | 0) < 1; if ($114) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $115 = $113 << 3; $116 = ($_height - $115) | 0; $117 = $113 << 2; $118 = (($116 | 0) / ($117 | 0)) & -1; $$off4 = ($118 + -1) | 0; $119 = $$off4 >>> 0 > 42; if ($119) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $120 = ($96 - $118) | 0; $ispos = ($120 | 0) > -1; $neg = (0 - $120) | 0; $121 = $ispos ? $120 : $neg; $122 = ($121 | 0) > 3; if ($122) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } HEAP32[$_f >> 2] = $91; $123 = ($_f + 4) | 0; HEAP32[$123 >> 2] = $113; $124 = ($_f + 8) | 0; HEAP32[$124 >> 2] = $96; $125 = ($_f + 12) | 0; HEAP32[$125 >> 2] = $118; $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _qr_finder_edge_pts_hom_classify($_f, $_hom) { $_f = $_f | 0; $_hom = $_hom | 0; var $$lcssa = 0, $$lobit = 0, $$phi$trans$insert = 0, $$phi$trans$insert10 = 0, $$phi$trans$insert12 = 0, $$pre = 0, $$pre11 = 0, $$pre13 = 0, $$pre9 = 0, $$sum = 0, $$sum17 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; var $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i$04 = 0; var $ispos = 0, $ispos1 = 0, $neg = 0, $neg2 = 0, $q = 0, $scevgep = 0, $w$0$i = 0, $x$0$i = 0, $y$0$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $q = sp; $0 = ($_f + 72) | 0; $1 = HEAP32[$0 >> 2] | 0; $scevgep = ($_f + 32) | 0; HEAP32[($scevgep + 0) >> 2] = 0 | 0; HEAP32[($scevgep + 4) >> 2] = 0 | 0; HEAP32[($scevgep + 8) >> 2] = 0 | 0; HEAP32[($scevgep + 12) >> 2] = 0 | 0; $2 = ($1 + 12) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) > 0; if (!$4) { $$phi$trans$insert12 = ($1 + 8) | 0; $$pre13 = HEAP32[$$phi$trans$insert12 >> 2] | 0; $$lcssa = $3; $100 = 0; $102 = 0; $105 = 0; $96 = $$pre13; $95 = ($1 + 8) | 0; _qsort($96, $$lcssa, 16, 5); $97 = HEAP32[$95 >> 2] | 0; $98 = ($_f + 16) | 0; HEAP32[$98 >> 2] = $97; $99 = ($97 + ($100 << 4)) | 0; $101 = ($_f + 20) | 0; HEAP32[$101 >> 2] = $99; $$sum = ($100 + $102) | 0; $103 = ($97 + ($$sum << 4)) | 0; $104 = ($_f + 24) | 0; HEAP32[$104 >> 2] = $103; $$sum17 = ($$sum + $105) | 0; $106 = ($97 + ($$sum17 << 4)) | 0; $107 = ($_f + 28) | 0; HEAP32[$107 >> 2] = $106; STACKTOP = sp; return; } $5 = ($1 + 8) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($_hom + 56) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($_hom + 60) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($_hom + 24) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($_hom + 28) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($_hom + 32) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($_hom + 36) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($_hom + 40) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = ($_hom + 44) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ($_hom + 52) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = ($_hom + 64) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = ($26 + -1) | 0; $28 = 1 << $27; $29 = ($q + 4) | 0; $30 = ($_f + 64) | 0; $31 = ($_f + 68) | 0; $i$04 = 0; while (1) { $32 = ($6 + ($i$04 << 4)) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = ((($6 + ($i$04 << 4)) | 0) + 4) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($33 - $8) | 0; $37 = ($35 - $10) | 0; $38 = Math_imul($12, $36) | 0; $39 = Math_imul($14, $37) | 0; $40 = ($39 + $38) | 0; $41 = Math_imul($16, $36) | 0; $42 = Math_imul($18, $37) | 0; $43 = ($42 + $41) | 0; $44 = Math_imul($20, $36) | 0; $45 = Math_imul($22, $37) | 0; $46 = ($45 + $44) | 0; $47 = ($46 + $24) | 0; $48 = ($47 + $28) | 0; $49 = $48 >> $26; $50 = ($49 | 0) == 0; if ($50) { $85 = $40 >>> 31; $86 = ($85 + 2147483647) | 0; HEAP32[$q >> 2] = $86; $87 = $43 >>> 31; $88 = ($87 + 2147483647) | 0; HEAP32[$29 >> 2] = $88; $89 = ((($6 + ($i$04 << 4)) | 0) + 8) | 0; HEAP32[$89 >> 2] = 4; $90 = HEAP32[$q >> 2] | 0; $91 = ((($6 + ($i$04 << 4)) | 0) + 12) | 0; HEAP32[$91 >> 2] = $90; } else { $51 = ($49 | 0) < 0; if ($51) { $52 = (0 - $40) | 0; $53 = (0 - $43) | 0; $54 = (0 - $49) | 0; $w$0$i = $54; $x$0$i = $52; $y$0$i = $53; } else { $w$0$i = $49; $x$0$i = $40; $y$0$i = $43; } $55 = $w$0$i >> 1; $56 = $x$0$i >> 31; $57 = ($55 + $56) | 0; $58 = $57 ^ $56; $59 = ($58 + $x$0$i) | 0; $60 = (($59 | 0) / ($w$0$i | 0)) & -1; $61 = $y$0$i >> 31; $62 = ($55 + $61) | 0; $63 = $62 ^ $61; $64 = ($63 + $y$0$i) | 0; $65 = (($64 | 0) / ($w$0$i | 0)) & -1; $66 = HEAP32[$30 >> 2] | 0; $67 = HEAP32[$31 >> 2] | 0; $68 = ($60 - $66) | 0; HEAP32[$q >> 2] = $68; $69 = ($65 - $67) | 0; HEAP32[$29 >> 2] = $69; $ispos = ($69 | 0) > -1; $neg = (0 - $69) | 0; $70 = $ispos ? $69 : $neg; $ispos1 = ($68 | 0) > -1; $neg2 = (0 - $68) | 0; $71 = $ispos1 ? $68 : $neg2; $72 = ($70 | 0) > ($71 | 0); $73 = $72 & 1; $74 = $73 << 1; $75 = ($q + ($73 << 2)) | 0; $76 = HEAP32[$75 >> 2] | 0; $$lobit = $76 >>> 31; $77 = $74 | $$lobit; $78 = $77 ^ 1; $79 = ((($_f + ($78 << 2)) | 0) + 32) | 0; $80 = HEAP32[$79 >> 2] | 0; $81 = ($80 + 1) | 0; HEAP32[$79 >> 2] = $81; $82 = ((($6 + ($i$04 << 4)) | 0) + 8) | 0; HEAP32[$82 >> 2] = $78; $83 = HEAP32[$75 >> 2] | 0; $84 = ((($6 + ($i$04 << 4)) | 0) + 12) | 0; HEAP32[$84 >> 2] = $83; } $92 = ($i$04 + 1) | 0; $93 = HEAP32[$2 >> 2] | 0; $94 = ($92 | 0) < ($93 | 0); if ($94) { $i$04 = $92; } else { break; } } $$pre = HEAP32[$scevgep >> 2] | 0; $$phi$trans$insert = ($_f + 36) | 0; $$pre9 = HEAP32[$$phi$trans$insert >> 2] | 0; $$phi$trans$insert10 = ($_f + 40) | 0; $$pre11 = HEAP32[$$phi$trans$insert10 >> 2] | 0; $$lcssa = $93; $100 = $$pre; $102 = $$pre9; $105 = $$pre11; $96 = $6; $95 = ($1 + 8) | 0; _qsort($96, $$lcssa, 16, 5); $97 = HEAP32[$95 >> 2] | 0; $98 = ($_f + 16) | 0; HEAP32[$98 >> 2] = $97; $99 = ($97 + ($100 << 4)) | 0; $101 = ($_f + 20) | 0; HEAP32[$101 >> 2] = $99; $$sum = ($100 + $102) | 0; $103 = ($97 + ($$sum << 4)) | 0; $104 = ($_f + 24) | 0; HEAP32[$104 >> 2] = $103; $$sum17 = ($$sum + $105) | 0; $106 = ($97 + ($$sum17 << 4)) | 0; $107 = ($_f + 28) | 0; HEAP32[$107 >> 2] = $106; STACKTOP = sp; return; } function _qr_finder_version_decode($_f, $_hom, $_img, $_width, $_height, $_dir) { $_f = $_f | 0; $_hom = $_hom | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; $_dir = $_dir | 0; var $$0$i = 0, $$0$i1 = 0, $$01$i = 0, $$02$i = 0, $$off$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; var $148 = 0, $149 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond23 = 0, $i$016 = 0, $indvars$iv = 0, $indvars$iv$next = 0; var $k$017 = 0, $k$18 = 0, $or$cond$i$i = 0, $or$cond$i5$i = 0, $q = 0, $ret$03$i$i = 0, $ret$03$i3$i = 0, $w$011 = 0, $w0$013 = 0, $x$011$i = 0, $x$09 = 0, $x0$015 = 0, $y$010 = 0, $y$02$i$i = 0, $y$02$i4$i = 0, $y0$014 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $q = sp; $0 = ((($_f + ($_dir << 2)) | 0) + 64) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($_f + ($_dir << 2)) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = Math_imul($3, -7) | 0; $5 = ($4 + $1) | 0; $6 = ($q + ($_dir << 2)) | 0; HEAP32[$6 >> 2] = $5; $7 = (1 - $_dir) | 0; $8 = ((($_f + ($7 << 2)) | 0) + 64) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($_f + ($7 << 2)) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = Math_imul($11, -3) | 0; $13 = ($12 + $9) | 0; $14 = ($q + ($7 << 2)) | 0; HEAP32[$14 >> 2] = $13; $15 = HEAP32[$_hom >> 2] | 0; $16 = HEAP32[$q >> 2] | 0; $17 = Math_imul($16, $15) | 0; $18 = ($_hom + 4) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($q + 4) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = Math_imul($21, $19) | 0; $23 = ($22 + $17) | 0; $24 = ($_hom + 8) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = Math_imul($25, $16) | 0; $27 = ($_hom + 12) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = Math_imul($28, $21) | 0; $30 = ($29 + $26) | 0; $31 = ($_hom + 16) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = Math_imul($32, $16) | 0; $34 = ($_hom + 20) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = Math_imul($35, $21) | 0; $37 = ($36 + $33) | 0; $38 = ($_hom + 48) | 0; $39 = HEAP32[$38 >> 2] | 0; $40 = ($37 + $39) | 0; $41 = ($_hom + ($7 << 2)) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = Math_imul($11, $42) | 0; $44 = ((($_hom + ($7 << 2)) | 0) + 8) | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = Math_imul($45, $11) | 0; $47 = ((($_hom + ($7 << 2)) | 0) + 16) | 0; $48 = HEAP32[$47 >> 2] | 0; $49 = Math_imul($48, $11) | 0; $50 = ($_hom + ($_dir << 2)) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = Math_imul($3, $51) | 0; $53 = ((($_hom + ($_dir << 2)) | 0) + 8) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = Math_imul($54, $3) | 0; $56 = ((($_hom + ($_dir << 2)) | 0) + 16) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = Math_imul($57, $3) | 0; $59 = ($_height + -1) | 0; $60 = ($_width + -1) | 0; $61 = ($_hom + 56) | 0; $62 = ($_hom + 60) | 0; $148 = 0; $i$016 = 0; $indvars$iv = 3; $k$017 = 0; $w0$013 = $40; $x0$015 = $23; $y0$014 = $30; while (1) { $107 = $148; $k$18 = $k$017; $w$011 = $w0$013; $x$09 = $x0$015; $y$010 = $y0$014; while (1) { $63 = ($w$011 | 0) == 0; if ($63) { $64 = $x$09 >>> 31; $65 = ($64 + 2147483647) | 0; $66 = $y$010 >>> 31; $67 = ($66 + 2147483647) | 0; $88 = $65; $90 = $67; } else { $68 = ($w$011 | 0) < 0; if ($68) { $69 = (0 - $x$09) | 0; $70 = (0 - $y$010) | 0; $71 = (0 - $w$011) | 0; $$0$i = $71; $$01$i = $70; $$02$i = $69; } else { $$0$i = $w$011; $$01$i = $y$010; $$02$i = $x$09; } $72 = $$0$i >> 1; $73 = $$02$i >> 31; $74 = ($72 + $73) | 0; $75 = $74 ^ $73; $76 = ($75 + $$02$i) | 0; $77 = (($76 | 0) / ($$0$i | 0)) & -1; $78 = HEAP32[$61 >> 2] | 0; $79 = ($78 + $77) | 0; $80 = $$01$i >> 31; $81 = ($72 + $80) | 0; $82 = $81 ^ $80; $83 = ($82 + $$01$i) | 0; $84 = (($83 | 0) / ($$0$i | 0)) & -1; $85 = HEAP32[$62 >> 2] | 0; $86 = ($85 + $84) | 0; $88 = $79; $90 = $86; } $87 = $88 >> 2; $89 = $90 >> 2; $91 = ($89 | 0) >= ($_height | 0); $92 = $91 ? $59 : $89; $93 = ($92 | 0) > 0; $94 = $93 ? $92 : 0; $95 = Math_imul($94, $_width) | 0; $96 = ($87 | 0) >= ($_width | 0); $97 = $96 ? $60 : $87; $98 = ($97 | 0) > 0; $99 = $98 ? $97 : 0; $100 = ($95 + $99) | 0; $101 = ($_img + $100) | 0; $102 = HEAP8[$101 >> 0] | 0; $103 = ($102 << 24) >> 24 != 0; $104 = $103 & 1; $105 = $104 << $k$18; $106 = $105 | $107; $108 = ($x$09 + $52) | 0; $109 = ($y$010 + $55) | 0; $110 = ($w$011 + $58) | 0; $111 = ($k$18 + 1) | 0; $exitcond = ($111 | 0) == ($indvars$iv | 0); if ($exitcond) { break; } else { $107 = $106; $k$18 = $111; $w$011 = $110; $x$09 = $108; $y$010 = $109; } } $112 = ($k$017 + 3) | 0; $113 = ($x0$015 + $43) | 0; $114 = ($y0$014 + $46) | 0; $115 = ($w0$013 + $49) | 0; $116 = ($i$016 + 1) | 0; $indvars$iv$next = ($indvars$iv + 3) | 0; $exitcond23 = ($116 | 0) == 6; if ($exitcond23) { break; } else { $148 = $106; $i$016 = $116; $indvars$iv = $indvars$iv$next; $k$017 = $112; $w0$013 = $115; $x0$015 = $113; $y0$014 = $114; } } $117 = $106 >>> 12; $$off$i = ($106 + -28672) | 0; $118 = $$off$i >>> 0 < 139264; if ($118) { $119 = ($117 + -7) | 0; $120 = (7752 + ($119 << 2)) | 0; $121 = HEAP32[$120 >> 2] | 0; $122 = ($121 | 0) == ($106 | 0); if ($122) { $146 = $106; } else { $123 = $121 ^ $106; $ret$03$i$i = 0; $y$02$i$i = $123; while (1) { $124 = ($y$02$i$i + -1) | 0; $125 = $124 & $y$02$i$i; $126 = ($ret$03$i$i + 1) | 0; $127 = ($ret$03$i$i | 0) > 2; $128 = ($125 | 0) == 0; $or$cond$i$i = $127 | $128; if ($or$cond$i$i) { break; } else { $ret$03$i$i = $126; $y$02$i$i = $125; } } $129 = ($126 | 0) < 4; if ($129) { $$0$i1 = $126; $149 = $121; label = 21; } else { $x$011$i = 0; label = 15; } } } else { $x$011$i = 0; label = 15; } L20: do { if ((label | 0) == 15) { while (1) { label = 0; $130 = ($x$011$i + 7) | 0; $131 = ($130 | 0) == ($117 | 0); if (!$131) { $132 = (7752 + ($x$011$i << 2)) | 0; $133 = HEAP32[$132 >> 2] | 0; $134 = ($133 | 0) == ($106 | 0); if ($134) { $146 = $106; break L20; } $135 = $133 ^ $106; $ret$03$i3$i = 0; $y$02$i4$i = $135; while (1) { $136 = ($y$02$i4$i + -1) | 0; $137 = $136 & $y$02$i4$i; $138 = ($ret$03$i3$i + 1) | 0; $139 = ($ret$03$i3$i | 0) > 2; $140 = ($137 | 0) == 0; $or$cond$i5$i = $139 | $140; if ($or$cond$i5$i) { break; } else { $ret$03$i3$i = $138; $y$02$i4$i = $137; } } $141 = ($138 | 0) < 4; if ($141) { $$0$i1 = $138; $149 = $133; label = 21; break L20; } } $142 = ($x$011$i + 1) | 0; $143 = $142 >>> 0 < 34; if ($143) { $x$011$i = $142; label = 15; } else { $147 = -1; break; } } STACKTOP = sp; return $147 | 0; } } while (0); if ((label | 0) == 21) { $144 = ($$0$i1 | 0) > -1; if ($144) { $146 = $149; } else { $147 = $$0$i1; STACKTOP = sp; return $147 | 0; } } $145 = $146 >>> 12; $147 = $145; STACKTOP = sp; return $147 | 0; } function _qr_finder_fmt_info_decode($_ul, $_ur, $_dl, $_hom, $_img, $_width, $_height) { $_ul = $_ul | 0; $_ur = $_ur | 0; $_dl = $_dl | 0; $_hom = $_hom | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $$ = 0, $$0$i = 0, $$0$i11 = 0, $$0$i3 = 0, $$0$i7 = 0, $$01$i = 0, $$01$i10 = 0, $$01$i2 = 0, $$01$i6 = 0, $$02$i = 0, $$02$i1 = 0, $$02$i5 = 0, $$02$i9 = 0, $$lcssa = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0; var $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0; var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0; var $247 = 0, $248 = 0, $249 = 0, $25 = 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; var $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0; var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0; var $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0; var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0; var $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0; var $355 = 0, $356 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $besti$0$lcssa = 0, $besti$013 = 0, $besti$1 = 0, $count = 0, $exitcond = 0, $exitcond56 = 0, $exitcond58 = 0, $fmt_info = 0; var $hi = 0, $i$0 = 0, $i$1 = 0, $i$1$ph = 0, $i$226 = 0, $i$314 = 0, $j$0$lcssa = 0, $j$019 = 0, $k$0 = 0, $k$1 = 0, $k$2$ph = 0, $k$338 = 0, $k$433 = 0, $lo = 0, $nerrs = 0, $nfmt_info$024 = 0, $nfmt_info$1 = 0, $v1 = 0, $w$0 = 0, $w$1 = 0; var $w$1$ph = 0, $w$237 = 0, $w$332 = 0, $x$0 = 0, $x$1 = 0, $x$1$ph = 0, $x$235 = 0, $x$330 = 0, $y$0 = 0, $y$1 = 0, $y$1$ph = 0, $y$236 = 0, $y$331 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 80) | 0; $lo = (sp + 64) | 0; $hi = (sp + 56) | 0; $fmt_info = (sp + 40) | 0; $count = (sp + 24) | 0; $nerrs = (sp + 8) | 0; $v1 = sp; HEAP32[$lo >> 2] = 0; $0 = ($_ul + 64) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = HEAP32[$_ul >> 2] | 0; $3 = ($2 * 5) | 0; $4 = ($3 + $1) | 0; $5 = ($_ul + 68) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($_ul + 4) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = Math_imul($8, -3) | 0; $10 = ($9 + $6) | 0; $11 = HEAP32[$_hom >> 2] | 0; $12 = Math_imul($11, $4) | 0; $13 = ($_hom + 4) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = Math_imul($14, $10) | 0; $16 = ($15 + $12) | 0; $17 = ($_hom + 8) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = Math_imul($18, $4) | 0; $20 = ($_hom + 12) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = Math_imul($21, $10) | 0; $23 = ($22 + $19) | 0; $24 = ($_hom + 16) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = Math_imul($25, $4) | 0; $27 = ($_hom + 20) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = Math_imul($28, $10) | 0; $30 = ($29 + $26) | 0; $31 = ($_hom + 48) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = ($30 + $32) | 0; $34 = Math_imul($14, $8) | 0; $35 = Math_imul($21, $8) | 0; $36 = Math_imul($28, $8) | 0; $37 = ($_height + -1) | 0; $38 = ($_width + -1) | 0; $39 = ($_hom + 56) | 0; $40 = ($_hom + 60) | 0; $87 = 0; $i$0 = 0; $k$0 = 0; $w$0 = $33; $x$0 = $16; $y$0 = $23; while (1) { $41 = ($i$0 | 0) == 6; if ($41) { $356 = $87; $k$1 = $k$0; } else { $42 = ($w$0 | 0) == 0; if ($42) { $43 = $x$0 >>> 31; $44 = ($43 + 2147483647) | 0; $45 = $y$0 >>> 31; $46 = ($45 + 2147483647) | 0; $67 = $44; $69 = $46; } else { $47 = ($w$0 | 0) < 0; if ($47) { $48 = (0 - $x$0) | 0; $49 = (0 - $y$0) | 0; $50 = (0 - $w$0) | 0; $$0$i = $50; $$01$i = $49; $$02$i = $48; } else { $$0$i = $w$0; $$01$i = $y$0; $$02$i = $x$0; } $51 = $$0$i >> 1; $52 = $$02$i >> 31; $53 = ($51 + $52) | 0; $54 = $53 ^ $52; $55 = ($54 + $$02$i) | 0; $56 = (($55 | 0) / ($$0$i | 0)) & -1; $57 = HEAP32[$39 >> 2] | 0; $58 = ($57 + $56) | 0; $59 = $$01$i >> 31; $60 = ($51 + $59) | 0; $61 = $60 ^ $59; $62 = ($61 + $$01$i) | 0; $63 = (($62 | 0) / ($$0$i | 0)) & -1; $64 = HEAP32[$40 >> 2] | 0; $65 = ($64 + $63) | 0; $67 = $58; $69 = $65; } $66 = $67 >> 2; $68 = $69 >> 2; $70 = ($68 | 0) >= ($_height | 0); $71 = $70 ? $37 : $68; $72 = ($71 | 0) > 0; $73 = $72 ? $71 : 0; $74 = Math_imul($73, $_width) | 0; $75 = ($66 | 0) >= ($_width | 0); $76 = $75 ? $38 : $66; $77 = ($76 | 0) > 0; $78 = $77 ? $76 : 0; $79 = ($74 + $78) | 0; $80 = ($_img + $79) | 0; $81 = HEAP8[$80 >> 0] | 0; $82 = ($81 << 24) >> 24 != 0; $83 = $82 & 1; $84 = ($k$0 + 1) | 0; $85 = $83 << $k$0; $86 = $85 | $87; $88 = ($i$0 | 0) > 7; if ($88) { break; } else { $356 = $86; $k$1 = $84; } } $89 = ($x$0 + $34) | 0; $90 = ($y$0 + $35) | 0; $91 = ($w$0 + $36) | 0; $92 = ($i$0 + 1) | 0; $87 = $356; $i$0 = $92; $k$0 = $k$1; $w$0 = $91; $x$0 = $89; $y$0 = $90; } HEAP32[$lo >> 2] = $86; HEAP32[$hi >> 2] = 0; $93 = Math_imul($2, $11) | 0; $94 = Math_imul($18, $2) | 0; $95 = Math_imul($25, $2) | 0; $147 = 0; $i$1$ph = $i$0; $k$2$ph = $84; $w$1$ph = $w$0; $x$1$ph = $x$0; $y$1$ph = $y$0; L14: while (1) { $i$1 = $i$1$ph; $w$1 = $w$1$ph; $x$1 = $x$1$ph; $y$1 = $y$1$ph; while (1) { $96 = ($i$1 + -1) | 0; $97 = ($i$1 | 0) > 0; if (!$97) { break L14; } $98 = ($x$1 - $93) | 0; $99 = ($y$1 - $94) | 0; $100 = ($w$1 - $95) | 0; $101 = ($96 | 0) == 6; if ($101) { $i$1 = 6; $w$1 = $100; $x$1 = $98; $y$1 = $99; } else { break; } } $102 = ($w$1 | 0) == ($95 | 0); if ($102) { $103 = $98 >>> 31; $104 = ($103 + 2147483647) | 0; $105 = $99 >>> 31; $106 = ($105 + 2147483647) | 0; $127 = $104; $129 = $106; } else { $107 = ($100 | 0) < 0; if ($107) { $108 = (0 - $98) | 0; $109 = (0 - $99) | 0; $110 = (0 - $100) | 0; $$0$i11 = $110; $$01$i10 = $109; $$02$i9 = $108; } else { $$0$i11 = $100; $$01$i10 = $99; $$02$i9 = $98; } $111 = $$0$i11 >> 1; $112 = $$02$i9 >> 31; $113 = ($111 + $112) | 0; $114 = $113 ^ $112; $115 = ($114 + $$02$i9) | 0; $116 = (($115 | 0) / ($$0$i11 | 0)) & -1; $117 = HEAP32[$39 >> 2] | 0; $118 = ($117 + $116) | 0; $119 = $$01$i10 >> 31; $120 = ($111 + $119) | 0; $121 = $120 ^ $119; $122 = ($121 + $$01$i10) | 0; $123 = (($122 | 0) / ($$0$i11 | 0)) & -1; $124 = HEAP32[$40 >> 2] | 0; $125 = ($124 + $123) | 0; $127 = $118; $129 = $125; } $126 = $127 >> 2; $128 = $129 >> 2; $130 = ($128 | 0) >= ($_height | 0); $131 = $130 ? $37 : $128; $132 = ($131 | 0) > 0; $133 = $132 ? $131 : 0; $134 = Math_imul($133, $_width) | 0; $135 = ($126 | 0) >= ($_width | 0); $136 = $135 ? $38 : $126; $137 = ($136 | 0) > 0; $138 = $137 ? $136 : 0; $139 = ($134 + $138) | 0; $140 = ($_img + $139) | 0; $141 = HEAP8[$140 >> 0] | 0; $142 = ($141 << 24) >> 24 != 0; $143 = $142 & 1; $144 = ($k$2$ph + 1) | 0; $145 = $143 << $k$2$ph; $146 = $145 | $147; HEAP32[$hi >> 2] = $146; $147 = $146; $i$1$ph = $96; $k$2$ph = $144; $w$1$ph = $100; $x$1$ph = $98; $y$1$ph = $99; } $148 = ($lo + 4) | 0; HEAP32[$148 >> 2] = 0; $149 = ($_ur + 64) | 0; $150 = HEAP32[$149 >> 2] | 0; $151 = HEAP32[$_ur >> 2] | 0; $152 = ($151 * 3) | 0; $153 = ($152 + $150) | 0; $154 = ($_ur + 68) | 0; $155 = HEAP32[$154 >> 2] | 0; $156 = ($_ur + 4) | 0; $157 = HEAP32[$156 >> 2] | 0; $158 = ($157 * 5) | 0; $159 = ($158 + $155) | 0; $160 = Math_imul($11, $153) | 0; $161 = Math_imul($14, $159) | 0; $162 = ($161 + $160) | 0; $163 = Math_imul($18, $153) | 0; $164 = Math_imul($21, $159) | 0; $165 = ($164 + $163) | 0; $166 = Math_imul($25, $153) | 0; $167 = Math_imul($28, $159) | 0; $168 = ($167 + $166) | 0; $169 = ($168 + $32) | 0; $170 = Math_imul($11, $151) | 0; $171 = Math_imul($18, $151) | 0; $172 = Math_imul($25, $151) | 0; $217 = 0; $k$338 = 0; $w$237 = $169; $x$235 = $162; $y$236 = $165; while (1) { $173 = ($w$237 | 0) == 0; if ($173) { $174 = $x$235 >>> 31; $175 = ($174 + 2147483647) | 0; $176 = $y$236 >>> 31; $177 = ($176 + 2147483647) | 0; $198 = $175; $200 = $177; } else { $178 = ($w$237 | 0) < 0; if ($178) { $179 = (0 - $x$235) | 0; $180 = (0 - $y$236) | 0; $181 = (0 - $w$237) | 0; $$0$i7 = $181; $$01$i6 = $180; $$02$i5 = $179; } else { $$0$i7 = $w$237; $$01$i6 = $y$236; $$02$i5 = $x$235; } $182 = $$0$i7 >> 1; $183 = $$02$i5 >> 31; $184 = ($182 + $183) | 0; $185 = $184 ^ $183; $186 = ($185 + $$02$i5) | 0; $187 = (($186 | 0) / ($$0$i7 | 0)) & -1; $188 = HEAP32[$39 >> 2] | 0; $189 = ($188 + $187) | 0; $190 = $$01$i6 >> 31; $191 = ($182 + $190) | 0; $192 = $191 ^ $190; $193 = ($192 + $$01$i6) | 0; $194 = (($193 | 0) / ($$0$i7 | 0)) & -1; $195 = HEAP32[$40 >> 2] | 0; $196 = ($195 + $194) | 0; $198 = $189; $200 = $196; } $197 = $198 >> 2; $199 = $200 >> 2; $201 = ($199 | 0) >= ($_height | 0); $202 = $201 ? $37 : $199; $203 = ($202 | 0) > 0; $204 = $203 ? $202 : 0; $205 = Math_imul($204, $_width) | 0; $206 = ($197 | 0) >= ($_width | 0); $207 = $206 ? $38 : $197; $208 = ($207 | 0) > 0; $209 = $208 ? $207 : 0; $210 = ($205 + $209) | 0; $211 = ($_img + $210) | 0; $212 = HEAP8[$211 >> 0] | 0; $213 = ($212 << 24) >> 24 != 0; $214 = $213 & 1; $215 = $214 << $k$338; $216 = $215 | $217; $218 = ($x$235 - $170) | 0; $219 = ($y$236 - $171) | 0; $220 = ($w$237 - $172) | 0; $221 = ($k$338 + 1) | 0; $exitcond58 = ($221 | 0) == 8; if ($exitcond58) { break; } else { $217 = $216; $k$338 = $221; $w$237 = $220; $x$235 = $218; $y$236 = $219; } } HEAP32[$148 >> 2] = $216; $222 = ($hi + 4) | 0; HEAP32[$222 >> 2] = 0; $223 = ($_dl + 64) | 0; $224 = HEAP32[$223 >> 2] | 0; $225 = HEAP32[$_dl >> 2] | 0; $226 = ($225 * 5) | 0; $227 = ($226 + $224) | 0; $228 = ($_dl + 68) | 0; $229 = HEAP32[$228 >> 2] | 0; $230 = ($_dl + 4) | 0; $231 = HEAP32[$230 >> 2] | 0; $232 = Math_imul($231, -3) | 0; $233 = ($232 + $229) | 0; $234 = Math_imul($11, $227) | 0; $235 = Math_imul($14, $233) | 0; $236 = ($235 + $234) | 0; $237 = Math_imul($18, $227) | 0; $238 = Math_imul($21, $233) | 0; $239 = ($238 + $237) | 0; $240 = Math_imul($25, $227) | 0; $241 = Math_imul($28, $233) | 0; $242 = ($241 + $240) | 0; $243 = ($242 + $32) | 0; $244 = Math_imul($14, $231) | 0; $245 = Math_imul($21, $231) | 0; $246 = Math_imul($28, $231) | 0; $291 = 0; $k$433 = 8; $w$332 = $243; $x$330 = $236; $y$331 = $239; while (1) { $247 = ($w$332 | 0) == 0; if ($247) { $248 = $x$330 >>> 31; $249 = ($248 + 2147483647) | 0; $250 = $y$331 >>> 31; $251 = ($250 + 2147483647) | 0; $272 = $249; $274 = $251; } else { $252 = ($w$332 | 0) < 0; if ($252) { $253 = (0 - $x$330) | 0; $254 = (0 - $y$331) | 0; $255 = (0 - $w$332) | 0; $$0$i3 = $255; $$01$i2 = $254; $$02$i1 = $253; } else { $$0$i3 = $w$332; $$01$i2 = $y$331; $$02$i1 = $x$330; } $256 = $$0$i3 >> 1; $257 = $$02$i1 >> 31; $258 = ($256 + $257) | 0; $259 = $258 ^ $257; $260 = ($259 + $$02$i1) | 0; $261 = (($260 | 0) / ($$0$i3 | 0)) & -1; $262 = HEAP32[$39 >> 2] | 0; $263 = ($262 + $261) | 0; $264 = $$01$i2 >> 31; $265 = ($256 + $264) | 0; $266 = $265 ^ $264; $267 = ($266 + $$01$i2) | 0; $268 = (($267 | 0) / ($$0$i3 | 0)) & -1; $269 = HEAP32[$40 >> 2] | 0; $270 = ($269 + $268) | 0; $272 = $263; $274 = $270; } $271 = $272 >> 2; $273 = $274 >> 2; $275 = ($273 | 0) >= ($_height | 0); $276 = $275 ? $37 : $273; $277 = ($276 | 0) > 0; $278 = $277 ? $276 : 0; $279 = Math_imul($278, $_width) | 0; $280 = ($271 | 0) >= ($_width | 0); $281 = $280 ? $38 : $271; $282 = ($281 | 0) > 0; $283 = $282 ? $281 : 0; $284 = ($279 + $283) | 0; $285 = ($_img + $284) | 0; $286 = HEAP8[$285 >> 0] | 0; $287 = ($286 << 24) >> 24 != 0; $288 = $287 & 1; $289 = $288 << $k$433; $290 = $289 | $291; $292 = ($x$330 + $244) | 0; $293 = ($y$331 + $245) | 0; $294 = ($w$332 + $246) | 0; $295 = ($k$433 + 1) | 0; $exitcond56 = ($295 | 0) == 15; if ($exitcond56) { break; } else { $291 = $290; $k$433 = $295; $w$332 = $294; $x$330 = $292; $y$331 = $293; } } HEAP32[$222 >> 2] = $290; $296 = ($147 | 0) != ($290 | 0); $297 = $296 & 1; $298 = 2 << $297; $299 = ($86 | 0) == ($216 | 0); $300 = $299 ? 2 : 1; $301 = ($298 | 0) > 0; if ($301) { $i$226 = 0; $nfmt_info$024 = 0; } else { $355 = -1; STACKTOP = sp; return $355 | 0; } while (1) { $303 = $i$226 & 1; $304 = ($lo + ($303 << 2)) | 0; $305 = HEAP32[$304 >> 2] | 0; $306 = $i$226 >> 1; $307 = ($hi + ($306 << 2)) | 0; $308 = HEAP32[$307 >> 2] | 0; $309 = $308 | $305; $310 = $309 ^ 21522; HEAP32[$v1 >> 2] = $310; $311 = _bch15_5_correct($v1) | 0; $312 = HEAP32[$v1 >> 2] | 0; $313 = $312 >>> 10; HEAP32[$v1 >> 2] = $313; $314 = ($311 | 0) < 0; $$ = $314 ? 4 : $311; $315 = ($nfmt_info$024 | 0) > 0; L52: do { if ($315) { $j$019 = 0; while (1) { $322 = ($fmt_info + ($j$019 << 2)) | 0; $323 = HEAP32[$322 >> 2] | 0; $324 = ($323 | 0) == ($313 | 0); $316 = ($j$019 + 1) | 0; if ($324) { break; } $317 = ($316 | 0) < ($nfmt_info$024 | 0); if ($317) { $j$019 = $316; } else { $j$0$lcssa = $316; label = 38; break L52; } } $325 = ($count + ($j$019 << 2)) | 0; $326 = HEAP32[$325 >> 2] | 0; $327 = ($326 + 1) | 0; HEAP32[$325 >> 2] = $327; $328 = ($nerrs + ($j$019 << 2)) | 0; $329 = HEAP32[$328 >> 2] | 0; $330 = ($$ | 0) < ($329 | 0); if ($330) { HEAP32[$328 >> 2] = $$; $nfmt_info$1 = $nfmt_info$024; } else { $nfmt_info$1 = $nfmt_info$024; } } else { $j$0$lcssa = 0; label = 38; } } while (0); if ((label | 0) == 38) { label = 0; $318 = ($fmt_info + ($j$0$lcssa << 2)) | 0; HEAP32[$318 >> 2] = $313; $319 = ($count + ($j$0$lcssa << 2)) | 0; HEAP32[$319 >> 2] = 1; $320 = ($nerrs + ($j$0$lcssa << 2)) | 0; HEAP32[$320 >> 2] = $$; $321 = ($nfmt_info$024 + 1) | 0; $nfmt_info$1 = $321; } $331 = ($i$226 + $300) | 0; $332 = ($331 | 0) < ($298 | 0); if ($332) { $i$226 = $331; $nfmt_info$024 = $nfmt_info$1; } else { break; } } $$pre = HEAP32[$nerrs >> 2] | 0; $302 = ($nfmt_info$1 | 0) > 1; if ($302) { $333 = $$pre; $347 = $nerrs; $besti$013 = 0; $i$314 = 1; while (1) { $334 = ($333 | 0) > 3; if ($334) { $335 = ($nerrs + ($i$314 << 2)) | 0; $336 = HEAP32[$335 >> 2] | 0; $337 = ($336 | 0) < 4; if ($337) { label = 48; } else { label = 45; } } else { label = 45; } if ((label | 0) == 45) { label = 0; $338 = ($count + ($i$314 << 2)) | 0; $339 = HEAP32[$338 >> 2] | 0; $340 = ($count + ($besti$013 << 2)) | 0; $341 = HEAP32[$340 >> 2] | 0; $342 = ($339 | 0) > ($341 | 0); if ($342) { label = 48; } else { $343 = ($339 | 0) == ($341 | 0); if ($343) { $344 = ($nerrs + ($i$314 << 2)) | 0; $345 = HEAP32[$344 >> 2] | 0; $346 = HEAP32[$347 >> 2] | 0; $348 = ($345 | 0) < ($346 | 0); if ($348) { label = 48; } else { $besti$1 = $besti$013; } } else { $besti$1 = $besti$013; } } } if ((label | 0) == 48) { label = 0; $besti$1 = $i$314; } $349 = ($i$314 + 1) | 0; $350 = ($nerrs + ($besti$1 << 2)) | 0; $351 = HEAP32[$350 >> 2] | 0; $exitcond = ($349 | 0) == ($nfmt_info$1 | 0); if ($exitcond) { $$lcssa = $351; $besti$0$lcssa = $besti$1; break; } else { $333 = $351; $347 = $350; $besti$013 = $besti$1; $i$314 = $349; } } } else { $$lcssa = $$pre; $besti$0$lcssa = 0; } $352 = ($$lcssa | 0) < 4; if (!$352) { $355 = -1; STACKTOP = sp; return $355 | 0; } $353 = ($fmt_info + ($besti$0$lcssa << 2)) | 0; $354 = HEAP32[$353 >> 2] | 0; $355 = $354; STACKTOP = sp; return $355 | 0; } function _qr_code_decode($_qrdata, $_gf, $_ul_pos, $_ur_pos, $_dl_pos, $_version, $_fmt_info, $_img, $_width, $_height) { $_qrdata = $_qrdata | 0; $_gf = $_gf | 0; $_ul_pos = $_ul_pos | 0; $_ur_pos = $_ur_pos | 0; $_dl_pos = $_dl_pos | 0; $_version = $_version | 0; $_fmt_info = $_fmt_info | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $$$i = 0, $$$i17 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i18 = 0, $$0$i102105$i = 0, $$0$i2128 = 0, $$0$i27$i = 0, $$0$i32134$i = 0, $$0$i52$i = 0, $$0$i57123$i = 0, $$0$i67119$i = 0, $$0$i72117$i = 0, $$0$i77115$i = 0, $$0$i82113$i = 0, $$0$i87111$i = 0, $$0$i92109$i = 0, $$0$i97107$i = 0, $$01$i$i = 0, $$02$i$i = 0; var $$58$i = 0, $$59$i = 0, $$be$i = 0, $$be193$i = 0, $$c$i = 0, $$in$i = 0, $$in$i15 = 0, $$in203$i = 0, $$in204$i = 0, $$lcssa$i = 0, $$lcssa163$i = 0, $$lcssa165$i = 0, $$lcssa177$i = 0, $$lcssa179$i = 0, $$off$i = 0, $$off6$i = 0, $$old = 0, $$old2 = 0, $$pn$i = 0, $$pre = 0; var $$pre$i = 0, $$pre$i13 = 0, $$pre$i23 = 0, $$pre114 = 0, $$pre223$i = 0, $$pre228$i = 0, $$pre229$i = 0, $$pre231$i = 0, $$pre233$i = 0, $$pre3$i = 0, $$sum = 0, $$sum$i = 0, $$sum$i$i = 0, $$sum$i24$i = 0, $$sum$i29$i = 0, $$sum$i34$i = 0, $$sum$i49$i = 0, $$sum$i54$i = 0, $$sum$i59$i = 0, $$sum$i64$i = 0; var $$sum$i69$i = 0, $$sum$i74$i = 0, $$sum$i79$i = 0, $$sum$i84$i = 0, $$sum$i89$i = 0, $$sum$i94$i = 0, $$sum$i99$i = 0, $$sum1 = 0, $$sum1$i100$i = 0, $$sum1$i25$i = 0, $$sum1$i30$i = 0, $$sum1$i50$i = 0, $$sum1$i55$i = 0, $$sum1$i65$i = 0, $$sum1$i70$i = 0, $$sum1$i75$i = 0, $$sum1$i80$i = 0, $$sum1$i85$i = 0, $$sum1$i90$i = 0, $$sum1$i95$i = 0; var $$sum2$i = 0, $$sum3$i = 0, $$sum4$i = 0, $$sum5$i = 0, $$sum6$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0; var $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0; var $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0; var $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0; var $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0; var $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0; var $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0; var $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0; var $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0; var $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0; var $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0; var $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0; var $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0; var $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0; var $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0; var $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0, $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0; var $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0; var $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0; var $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0, $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0; var $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0; var $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0, $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0; var $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0; var $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0; var $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0, $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0; var $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0, $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0; var $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0; var $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0, $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0; var $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0, $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0; var $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0, $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0; var $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0, $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0; var $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0; var $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0, $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0; var $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0; var $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0, $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0; var $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0, $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0; var $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0; var $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0; var $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0, $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; var $248 = 0, $249 = 0, $25 = 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; var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0; var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0; var $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0; var $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0; var $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0; var $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0; var $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0; var $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0; var $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0; var $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0; var $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0; var $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0; var $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0; var $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0; var $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0; var $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0; var $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0; var $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0; var $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0; var $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0; var $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0; var $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0; var $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0; var $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0; var $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0; var $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0; var $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0; var $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0; var $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0; var $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0; var $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0; var $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0; var $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0; var $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0; var $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0; var $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0; var $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0; var $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0; var $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0; var $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $_grid$idx$val$i = 0, $_nshort_blocks$$i = 0, $align_pos$i = 0, $base_cell$i = 0, $biti$037$i = 0, $biti$16$i = 0; var $biti$2$i = 0, $biti$2$ph$i = 0, $biti$2$ph$ph$i = 0, $biti$3$i = 0, $biti$4$i = 0, $biti$5$lcssa$i = 0, $biti$525$i = 0, $biti$6$i = 0, $biti$6$ph$i = 0, $biti$6$ph$ph$i = 0, $biti$7$i = 0, $biti$8$i = 0, $bits$036$i = 0, $bits$15$i = 0, $bits$2$i = 0, $bits$2$ph$i = 0, $bits$2$ph$ph$i = 0, $bits$3$i = 0, $bits$4$i = 0, $bits$5$lcssa$i = 0; var $bits$524$i = 0, $bits$6$i = 0, $bits$6$ph$i = 0, $bits$6$ph$ph$i = 0, $bits$7$i = 0, $bits$8$i = 0, $blocki$038$i = 0, $blocki$17$i = 0, $blocki$2$ph$i = 0, $blocki$2$ph$ph$i = 0, $blocki$3$lcssa$i = 0, $blocki$326$i = 0, $blocki$4$ph$i = 0, $blocki$4$ph$ph$i = 0, $blockj$039$i = 0, $blockj$18$i = 0, $blockj$2$ph$ph$i = 0, $blockj$3$lcssa$i = 0, $blockj$327$i = 0, $blockj$4$ph$ph$i = 0; var $buf$0$lcssa$i = 0, $buf$0183$i = 0, $buf1$0$lcssa$i = 0, $buf1$0169$i = 0, $buf12$0150$i = 0, $buf8$0156$i = 0, $cell$0$i = 0, $centries$0197$i = 0, $centries$1$i = 0, $data1$0$i = 0, $data1$0$ph$i = 0, $data1$0$ph$ph$i = 0, $data2$0$i = 0, $data2$0$ph$i = 0, $data2$0$ph$ph$i = 0, $exitcond = 0, $exitcond$i = 0, $exitcond$i$i = 0, $exitcond$i12 = 0, $exitcond$i7 = 0; var $exitcond112 = 0, $exitcond25$i = 0, $exitcond66$i$i = 0, $exitcond67$i$i = 0, $exitcond68$i$i = 0, $exitcond69$i$i = 0, $exitcond70$i$i = 0, $exitcond72$i$i = 0, $exitcond74$i$i = 0, $exitcond75$i$i = 0, $exitcond77$i$i = 0, $exitcond78$i$i = 0, $fold$i = 0, $fold135$i = 0, $fold136$i = 0, $fold137$i = 0, $fp_mask1$0$i = 0, $fp_mask1$0$ph$i = 0, $fp_mask1$0$ph$ph$i = 0, $fp_mask2$0$i = 0; var $fp_mask2$0$ph$i = 0, $fp_mask2$0$ph$ph$i = 0, $grid = 0, $i$01$i = 0, $i$01$us$i12$1$i = 0, $i$01$us$i12$2$i = 0, $i$01$us$i12$3$i = 0, $i$01$us$i12$4$i = 0, $i$01$us$i12$5$i = 0, $i$01$us$i12$6$i = 0, $i$01$us$i12$7$i = 0, $i$01$us$i12$8$i = 0, $i$01$us$i12$i = 0, $i$01$us$i20$1$i = 0, $i$01$us$i20$2$i = 0, $i$01$us$i20$3$i = 0, $i$01$us$i20$4$i = 0, $i$01$us$i20$5$i = 0, $i$01$us$i20$i = 0, $i$01$us$i33$i = 0; var $i$01$us$i38$i = 0, $i$011$i = 0, $i$051$i = 0, $i$069 = 0, $i$106$i$i = 0, $i$122$i$i = 0, $i$128$i = 0, $i$149 = 0, $i$445$i$i = 0, $i$759$i$i = 0, $j$013$i$i = 0, $j$015$i = 0, $j$02$us$i17$i = 0, $j$02$us$i25$i = 0, $j$02$us$i29$i = 0, $j$02$us$i39$i = 0, $j$040$i = 0, $j$043$i = 0, $j$118$i$i = 0, $j$228$i$i = 0; var $j$335$i$i = 0, $j$451$i$i = 0, $j$565$i$i = 0, $j$610$i$i = 0, $k$044$i = 0, $len10$0158$i = 0, $m$014$i$i = 0, $m1$019$i$i = 0, $m2$036$i$i = 0, $m3$246$i$i = 0, $m4$260$i$i = 0, $m5$27$i$i = 0, $mi$023$i$i = 0, $mj$129$i$i = 0, $nbits$09$i = 0, $nbits$1$i = 0, $nbits$1$ph$i = 0, $nbits$1$ph$ph$i = 0, $nbits$2$i = 0, $nbits$2$ph$i = 0; var $nbits$2$ph$ph$i = 0, $ncodewords$051 = 0, $ndata$0$lcssa116 = 0, $ndata$050 = 0, $or$cond$i = 0, $or$cond$i19 = 0, $or$cond10$i = 0, $or$cond11$i = 0, $or$cond139$i = 0, $or$cond141$i = 0, $or$cond143$i = 0, $or$cond145$i = 0, $or$cond147$i = 0, $or$cond4 = 0, $or$cond9$i = 0, $or$cond9$i20 = 0, $p0$i = 0, $p1$i = 0, $p2$i = 0, $phitmp115 = 0; var $ret$0$i$i = 0, $ret$0$i101$i = 0, $ret$0$i26$i = 0, $ret$0$i31$i = 0, $ret$0$i36$i = 0, $ret$0$i41$i = 0, $ret$0$i46$i = 0, $ret$0$i51$i = 0, $ret$0$i56$i = 0, $ret$0$i61$i = 0, $ret$0$i66$i = 0, $ret$0$i71$i = 0, $ret$0$i76$i = 0, $ret$0$i81$i = 0, $ret$0$i86$i = 0, $ret$0$i91$i = 0, $ret$0$i96$i = 0, $ret$2 = 0, $self_parity$0$be$i = 0, $self_parity$0$lcssa$i = 0; var $self_parity$0$lcssa$i$ph = 0, $self_parity$0198$i = 0, $self_parity$1$lcssa$i = 0, $self_parity$1184$i = 0, $self_parity$2$lcssa$i = 0, $self_parity$2170$i = 0, $self_parity$3157$i = 0, $self_parity$4149$i = 0, $u$08$i = 0, $u0$017$i = 0, $v$04$i = 0, $v0$010$i = 0, $val$0$c$i = 0, $val$0$i = 0, $w$03$i = 0, $w0$07$i = 0, $x$01$i = 0, $x0$05$i = 0, $y$02$i = 0, $y0$06$i = 0; var dest = 0, label = 0, sp = 0, src = 0, stop = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 160) | 0; $base_cell$i = (sp + 108) | 0; $align_pos$i = (sp + 80) | 0; $p0$i = (sp + 72) | 0; $p1$i = (sp + 64) | 0; $p2$i = (sp + 56) | 0; $grid = sp; $0 = $_version << 2; $1 = ($0 + 17) | 0; $2 = (($_version | 0) / 7) & -1; $3 = ($2 + 2) | 0; $4 = ($0 + 16) | 0; $5 = ($_qrdata + 16) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($_qrdata + 20) | 0; $8 = HEAP32[$7 >> 2] | 0; $9 = ($_qrdata + 24) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = ($_qrdata + 28) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($_qrdata + 32) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($_qrdata + 36) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($_qrdata + 40) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($_qrdata + 44) | 0; $20 = HEAP32[$19 >> 2] | 0; _qr_hom_cell_init($base_cell$i, 0, 0, $4, 0, 0, $4, $4, $4, $6, $8, $10, $12, $14, $16, $18, $20); $21 = ($2 + 1) | 0; $22 = ($grid + 52) | 0; HEAP32[$22 >> 2] = $21; $23 = ($21 * 52) | 0; $24 = Math_imul($23, $21) | 0; $25 = _malloc($24) | 0; HEAP32[$grid >> 2] = $25; $26 = ($_version | 0) > 6; if ($26) { $28 = $25; $29 = $21; $i$051$i = 1; while (1) { $27 = ($28 + (($29 * 52) | 0)) | 0; $30 = ($grid + ($i$051$i << 2)) | 0; HEAP32[$30 >> 2] = $27; $31 = ($i$051$i + 1) | 0; $32 = HEAP32[$22 >> 2] | 0; $33 = ($31 | 0) < ($32 | 0); if ($33) { $28 = $27; $29 = $32; $i$051$i = $31; } else { $$pre$i = $32; break; } } } else { $$pre$i = $21; } $34 = ($0 + 48) | 0; $35 = $34 >> 5; $36 = $35 << 2; $37 = _calloc($1, $36) | 0; $38 = ($grid + 24) | 0; HEAP32[$38 >> 2] = $37; $39 = HEAP32[$37 >> 2] | 0; $40 = $39 | 511; HEAP32[$37 >> 2] = $40; $41 = ($37 + ($35 << 2)) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = $42 | 511; HEAP32[$41 >> 2] = $43; $44 = $35 << 1; $45 = ($37 + ($44 << 2)) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = $46 | 511; HEAP32[$45 >> 2] = $47; $48 = ($35 * 3) | 0; $49 = ($37 + ($48 << 2)) | 0; $50 = HEAP32[$49 >> 2] | 0; $51 = $50 | 511; HEAP32[$49 >> 2] = $51; $52 = $35 << 2; $53 = ($37 + ($52 << 2)) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = $54 | 511; HEAP32[$53 >> 2] = $55; $56 = ($35 * 5) | 0; $57 = ($37 + ($56 << 2)) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = $58 | 511; HEAP32[$57 >> 2] = $59; $60 = ($35 * 6) | 0; $61 = ($37 + ($60 << 2)) | 0; $62 = HEAP32[$61 >> 2] | 0; $63 = $62 | 511; HEAP32[$61 >> 2] = $63; $64 = ($35 * 7) | 0; $65 = ($37 + ($64 << 2)) | 0; $66 = HEAP32[$65 >> 2] | 0; $67 = $66 | 511; HEAP32[$65 >> 2] = $67; $68 = $35 << 3; $69 = ($37 + ($68 << 2)) | 0; $70 = HEAP32[$69 >> 2] | 0; $71 = $70 | 511; HEAP32[$69 >> 2] = $71; $72 = ($0 + 9) | 0; $i$01$us$i12$i = $72; while (1) { $73 = $i$01$us$i12$i & 31; $74 = 1 << $73; $75 = $i$01$us$i12$i >> 5; $76 = ($37 + ($75 << 2)) | 0; $77 = HEAP32[$76 >> 2] | 0; $78 = $74 | $77; HEAP32[$76 >> 2] = $78; $79 = ($i$01$us$i12$i + 1) | 0; $80 = ($79 | 0) < ($1 | 0); if ($80) { $i$01$us$i12$i = $79; } else { $i$01$us$i12$1$i = $72; break; } } while (1) { $366 = $i$01$us$i12$1$i & 31; $367 = 1 << $366; $368 = $i$01$us$i12$1$i >> 5; $369 = ($368 + $35) | 0; $370 = ($37 + ($369 << 2)) | 0; $371 = HEAP32[$370 >> 2] | 0; $372 = $367 | $371; HEAP32[$370 >> 2] = $372; $373 = ($i$01$us$i12$1$i + 1) | 0; $374 = ($373 | 0) < ($1 | 0); if ($374) { $i$01$us$i12$1$i = $373; } else { break; } } $333 = $35 << 1; $i$01$us$i12$2$i = $72; while (1) { $375 = $i$01$us$i12$2$i & 31; $376 = 1 << $375; $377 = $i$01$us$i12$2$i >> 5; $378 = ($377 + $333) | 0; $379 = ($37 + ($378 << 2)) | 0; $380 = HEAP32[$379 >> 2] | 0; $381 = $376 | $380; HEAP32[$379 >> 2] = $381; $382 = ($i$01$us$i12$2$i + 1) | 0; $383 = ($382 | 0) < ($1 | 0); if ($383) { $i$01$us$i12$2$i = $382; } else { $i$01$us$i12$3$i = $72; break; } } while (1) { $384 = $i$01$us$i12$3$i & 31; $385 = 1 << $384; $386 = $i$01$us$i12$3$i >> 5; $387 = ($386 + $48) | 0; $388 = ($37 + ($387 << 2)) | 0; $389 = HEAP32[$388 >> 2] | 0; $390 = $385 | $389; HEAP32[$388 >> 2] = $390; $391 = ($i$01$us$i12$3$i + 1) | 0; $392 = ($391 | 0) < ($1 | 0); if ($392) { $i$01$us$i12$3$i = $391; } else { $i$01$us$i12$4$i = $72; break; } } while (1) { $393 = $i$01$us$i12$4$i & 31; $394 = 1 << $393; $395 = $i$01$us$i12$4$i >> 5; $396 = ($395 + $36) | 0; $397 = ($37 + ($396 << 2)) | 0; $398 = HEAP32[$397 >> 2] | 0; $399 = $394 | $398; HEAP32[$397 >> 2] = $399; $400 = ($i$01$us$i12$4$i + 1) | 0; $401 = ($400 | 0) < ($1 | 0); if ($401) { $i$01$us$i12$4$i = $400; } else { $i$01$us$i12$5$i = $72; break; } } while (1) { $402 = $i$01$us$i12$5$i & 31; $403 = 1 << $402; $404 = $i$01$us$i12$5$i >> 5; $405 = ($404 + $56) | 0; $406 = ($37 + ($405 << 2)) | 0; $407 = HEAP32[$406 >> 2] | 0; $408 = $403 | $407; HEAP32[$406 >> 2] = $408; $409 = ($i$01$us$i12$5$i + 1) | 0; $410 = ($409 | 0) < ($1 | 0); if ($410) { $i$01$us$i12$5$i = $409; } else { $i$01$us$i12$6$i = $72; break; } } while (1) { $411 = $i$01$us$i12$6$i & 31; $412 = 1 << $411; $413 = $i$01$us$i12$6$i >> 5; $414 = ($413 + $60) | 0; $415 = ($37 + ($414 << 2)) | 0; $416 = HEAP32[$415 >> 2] | 0; $417 = $412 | $416; HEAP32[$415 >> 2] = $417; $418 = ($i$01$us$i12$6$i + 1) | 0; $419 = ($418 | 0) < ($1 | 0); if ($419) { $i$01$us$i12$6$i = $418; } else { $i$01$us$i12$7$i = $72; break; } } while (1) { $420 = $i$01$us$i12$7$i & 31; $421 = 1 << $420; $422 = $i$01$us$i12$7$i >> 5; $423 = ($422 + $64) | 0; $424 = ($37 + ($423 << 2)) | 0; $425 = HEAP32[$424 >> 2] | 0; $426 = $421 | $425; HEAP32[$424 >> 2] = $426; $427 = ($i$01$us$i12$7$i + 1) | 0; $428 = ($427 | 0) < ($1 | 0); if ($428) { $i$01$us$i12$7$i = $427; } else { break; } } $429 = $35 << 3; $i$01$us$i12$8$i = $72; while (1) { $430 = $i$01$us$i12$8$i & 31; $431 = 1 << $430; $432 = $i$01$us$i12$8$i >> 5; $433 = ($432 + $429) | 0; $434 = ($37 + ($433 << 2)) | 0; $435 = HEAP32[$434 >> 2] | 0; $436 = $431 | $435; HEAP32[$434 >> 2] = $436; $437 = ($i$01$us$i12$8$i + 1) | 0; $438 = ($437 | 0) < ($1 | 0); if ($438) { $i$01$us$i12$8$i = $437; } else { $j$02$us$i17$i = $72; break; } } while (1) { $81 = Math_imul($j$02$us$i17$i, $35) | 0; $82 = ($37 + ($81 << 2)) | 0; $83 = HEAP32[$82 >> 2] | 0; $84 = $83 | 511; HEAP32[$82 >> 2] = $84; $85 = ($j$02$us$i17$i + 1) | 0; $86 = ($85 | 0) < ($1 | 0); if ($86) { $j$02$us$i17$i = $85; } else { break; } } if ($26) { $87 = ($0 + 6) | 0; $i$01$us$i20$i = $87; while (1) { $88 = $i$01$us$i20$i & 31; $89 = 1 << $88; $90 = $i$01$us$i20$i >> 5; $91 = ($37 + ($90 << 2)) | 0; $92 = HEAP32[$91 >> 2] | 0; $93 = $89 | $92; HEAP32[$91 >> 2] = $93; $94 = ($i$01$us$i20$i + 1) | 0; $95 = ($94 | 0) < ($72 | 0); if ($95) { $i$01$us$i20$i = $94; } else { $i$01$us$i20$1$i = $87; break; } } while (1) { $320 = $i$01$us$i20$1$i & 31; $321 = 1 << $320; $322 = $i$01$us$i20$1$i >> 5; $323 = ($322 + $35) | 0; $324 = ($37 + ($323 << 2)) | 0; $325 = HEAP32[$324 >> 2] | 0; $326 = $321 | $325; HEAP32[$324 >> 2] = $326; $327 = ($i$01$us$i20$1$i + 1) | 0; $328 = ($327 | 0) < ($72 | 0); if ($328) { $i$01$us$i20$1$i = $327; } else { $i$01$us$i20$2$i = $87; break; } } while (1) { $329 = $i$01$us$i20$2$i & 31; $330 = 1 << $329; $331 = $i$01$us$i20$2$i >> 5; $332 = ($331 + $333) | 0; $334 = ($37 + ($332 << 2)) | 0; $335 = HEAP32[$334 >> 2] | 0; $336 = $330 | $335; HEAP32[$334 >> 2] = $336; $337 = ($i$01$us$i20$2$i + 1) | 0; $338 = ($337 | 0) < ($72 | 0); if ($338) { $i$01$us$i20$2$i = $337; } else { $i$01$us$i20$3$i = $87; break; } } while (1) { $339 = $i$01$us$i20$3$i & 31; $340 = 1 << $339; $341 = $i$01$us$i20$3$i >> 5; $342 = ($341 + $48) | 0; $343 = ($37 + ($342 << 2)) | 0; $344 = HEAP32[$343 >> 2] | 0; $345 = $340 | $344; HEAP32[$343 >> 2] = $345; $346 = ($i$01$us$i20$3$i + 1) | 0; $347 = ($346 | 0) < ($72 | 0); if ($347) { $i$01$us$i20$3$i = $346; } else { $i$01$us$i20$4$i = $87; break; } } while (1) { $348 = $i$01$us$i20$4$i & 31; $349 = 1 << $348; $350 = $i$01$us$i20$4$i >> 5; $351 = ($350 + $36) | 0; $352 = ($37 + ($351 << 2)) | 0; $353 = HEAP32[$352 >> 2] | 0; $354 = $349 | $353; HEAP32[$352 >> 2] = $354; $355 = ($i$01$us$i20$4$i + 1) | 0; $356 = ($355 | 0) < ($72 | 0); if ($356) { $i$01$us$i20$4$i = $355; } else { $i$01$us$i20$5$i = $87; break; } } while (1) { $357 = $i$01$us$i20$5$i & 31; $358 = 1 << $357; $359 = $i$01$us$i20$5$i >> 5; $360 = ($359 + $56) | 0; $361 = ($37 + ($360 << 2)) | 0; $362 = HEAP32[$361 >> 2] | 0; $363 = $358 | $362; HEAP32[$361 >> 2] = $363; $364 = ($i$01$us$i20$5$i + 1) | 0; $365 = ($364 | 0) < ($72 | 0); if ($365) { $i$01$us$i20$5$i = $364; } else { $j$02$us$i25$i = $87; break; } } while (1) { $96 = Math_imul($j$02$us$i25$i, $35) | 0; $97 = ($37 + ($96 << 2)) | 0; $98 = HEAP32[$97 >> 2] | 0; $99 = $98 | 63; HEAP32[$97 >> 2] = $99; $100 = ($j$02$us$i25$i + 1) | 0; $101 = ($100 | 0) < ($72 | 0); if ($101) { $j$02$us$i25$i = $100; } else { break; } } } $102 = ($0 | 0) > 0; if ($102) { $j$02$us$i29$i = 9; while (1) { $103 = Math_imul($j$02$us$i29$i, $35) | 0; $104 = ($37 + ($103 << 2)) | 0; $105 = HEAP32[$104 >> 2] | 0; $106 = $105 | 64; HEAP32[$104 >> 2] = $106; $107 = ($j$02$us$i29$i + 1) | 0; $108 = ($107 | 0) < ($72 | 0); if ($108) { $j$02$us$i29$i = $107; } else { $i$01$us$i33$i = 9; break; } } while (1) { $109 = $i$01$us$i33$i & 31; $110 = 1 << $109; $111 = $i$01$us$i33$i >> 5; $112 = ($111 + $60) | 0; $113 = ($37 + ($112 << 2)) | 0; $114 = HEAP32[$113 >> 2] | 0; $115 = $110 | $114; HEAP32[$113 >> 2] = $115; $116 = ($i$01$us$i33$i + 1) | 0; $117 = ($116 | 0) < ($72 | 0); if ($117) { $i$01$us$i33$i = $116; } else { break; } } } $118 = ($_version | 0) < 2; if ($118) { $119 = HEAP32[$grid >> 2] | 0; dest = ($119 + 0) | 0; src = ($base_cell$i + 0) | 0; stop = (dest + 52) | 0; do { HEAP32[dest >> 2] = HEAP32[src >> 2] | 0; dest = (dest + 4) | 0; src = (src + 4) | 0; } while ((dest | 0) < (stop | 0)); } else { $120 = $3 << 3; $121 = Math_imul($120, $3) | 0; $122 = _malloc($121) | 0; $123 = _malloc($121) | 0; HEAP32[$align_pos$i >> 2] = 6; $124 = ($0 + 10) | 0; $125 = ($align_pos$i + ($21 << 2)) | 0; HEAP32[$125 >> 2] = $124; if ($26) { $126 = ($_version + -7) | 0; $127 = (7632 + $126) | 0; $128 = HEAP8[$127 >> 0] | 0; $129 = $128 & 255; $131 = $124; $133 = $2; while (1) { $130 = ($131 - $129) | 0; $132 = ($align_pos$i + ($133 << 2)) | 0; HEAP32[$132 >> 2] = $130; $134 = ($133 + -1) | 0; $135 = ($133 | 0) > 1; if ($135) { $131 = $130; $133 = $134; } else { break; } } } HEAP32[$122 >> 2] = 3; $136 = ($122 + 4) | 0; HEAP32[$136 >> 2] = 3; $137 = HEAP32[$_ul_pos >> 2] | 0; HEAP32[$123 >> 2] = $137; $138 = ($_ul_pos + 4) | 0; $139 = HEAP32[$138 >> 2] | 0; $140 = ($123 + 4) | 0; HEAP32[$140 >> 2] = $139; $141 = ($0 + 13) | 0; $142 = ($122 + ($21 << 3)) | 0; HEAP32[$142 >> 2] = $141; $143 = ((($122 + ($21 << 3)) | 0) + 4) | 0; HEAP32[$143 >> 2] = 3; $144 = HEAP32[$_ur_pos >> 2] | 0; $145 = ($123 + ($21 << 3)) | 0; HEAP32[$145 >> 2] = $144; $146 = ($_ur_pos + 4) | 0; $147 = HEAP32[$146 >> 2] | 0; $148 = ((($123 + ($21 << 3)) | 0) + 4) | 0; HEAP32[$148 >> 2] = $147; $149 = Math_imul($21, $3) | 0; $150 = ($122 + ($149 << 3)) | 0; HEAP32[$150 >> 2] = 3; $151 = ((($122 + ($149 << 3)) | 0) + 4) | 0; HEAP32[$151 >> 2] = $141; $152 = HEAP32[$_dl_pos >> 2] | 0; $153 = ($123 + ($149 << 3)) | 0; HEAP32[$153 >> 2] = $152; $154 = ($_dl_pos + 4) | 0; $155 = HEAP32[$154 >> 2] | 0; $156 = ((($123 + ($149 << 3)) | 0) + 4) | 0; HEAP32[$156 >> 2] = $155; $157 = $3 << 1; $158 = ($157 + -1) | 0; $159 = ($158 | 0) > 1; if ($159) { $160 = ($p0$i + 4) | 0; $161 = ($p1$i + 4) | 0; $162 = ($p2$i + 4) | 0; $163 = $2 << 1; $164 = ($163 + 2) | 0; $k$044$i = 1; while (1) { $165 = ($21 | 0) < ($k$044$i | 0); $166 = $165 ? $21 : $k$044$i; $167 = ($k$044$i | 0) == ($21 | 0); $168 = $167 & 1; $169 = ($166 - $168) | 0; $170 = ($k$044$i - $21) | 0; $171 = ($170 | 0) > 0; $172 = $171 ? $170 : 0; $173 = ($172 + $168) | 0; $174 = ($173 | 0) > ($169 | 0); if (!$174) { $j$043$i = $173; while (1) { $175 = ($173 - $j$043$i) | 0; $176 = ($175 + $169) | 0; $177 = Math_imul($176, $3) | 0; $178 = ($177 + $j$043$i) | 0; $179 = ($align_pos$i + ($j$043$i << 2)) | 0; $180 = HEAP32[$179 >> 2] | 0; $181 = ($align_pos$i + ($176 << 2)) | 0; $182 = HEAP32[$181 >> 2] | 0; $183 = ($122 + ($178 << 3)) | 0; HEAP32[$183 >> 2] = $180; $184 = ((($122 + ($178 << 3)) | 0) + 4) | 0; HEAP32[$184 >> 2] = $182; $185 = ($180 + -2) | 0; $186 = ($182 + -2) | 0; $187 = ($182 + 2) | 0; $188 = ($180 + 2) | 0; $j$02$us$i39$i = $185; while (1) { $195 = Math_imul($j$02$us$i39$i, $35) | 0; $i$01$us$i38$i = $186; while (1) { $191 = $i$01$us$i38$i & 31; $192 = 1 << $191; $193 = $i$01$us$i38$i >> 5; $194 = ($193 + $195) | 0; $196 = ($37 + ($194 << 2)) | 0; $197 = HEAP32[$196 >> 2] | 0; $198 = $192 | $197; HEAP32[$196 >> 2] = $198; $199 = ($i$01$us$i38$i + 1) | 0; $200 = ($i$01$us$i38$i | 0) < ($187 | 0); if ($200) { $i$01$us$i38$i = $199; } else { break; } } $189 = ($j$02$us$i39$i + 1) | 0; $190 = ($j$02$us$i39$i | 0) < ($188 | 0); if ($190) { $j$02$us$i39$i = $189; } else { break; } } $201 = ($176 | 0) > 1; $202 = ($j$043$i | 0) > 1; $or$cond$i = $201 & $202; do { if ($or$cond$i) { $203 = ($176 + -2) | 0; $204 = ($grid + ($203 << 2)) | 0; $205 = HEAP32[$204 >> 2] | 0; $$sum5$i = ($j$043$i + -1) | 0; $206 = ($205 + (($$sum5$i * 52) | 0)) | 0; _qr_hom_cell_project($p0$i, $206, $180, $182, 0); $$sum6$i = ($j$043$i + -2) | 0; $207 = ($205 + (($$sum6$i * 52) | 0)) | 0; _qr_hom_cell_project($p1$i, $207, $180, $182, 0); $208 = ($176 + -1) | 0; $209 = ($grid + ($208 << 2)) | 0; $210 = HEAP32[$209 >> 2] | 0; $211 = ($210 + (($$sum6$i * 52) | 0)) | 0; _qr_hom_cell_project($p2$i, $211, $180, $182, 0); $212 = HEAP32[$p0$i >> 2] | 0; $213 = HEAP32[$p1$i >> 2] | 0; $214 = ($213 | 0) < ($212 | 0); $215 = $214 ? $213 : $212; $216 = $213 ^ $212; $217 = $216 ^ $215; $218 = HEAP32[$160 >> 2] | 0; $219 = HEAP32[$161 >> 2] | 0; $220 = ($219 | 0) < ($218 | 0); $221 = $220 ? $219 : $218; $222 = $219 ^ $218; $223 = $222 ^ $221; $224 = HEAP32[$p2$i >> 2] | 0; $225 = ($224 | 0) < ($217 | 0); $226 = $225 ? $224 : $217; $227 = $224 ^ $217; $228 = $227 ^ $226; HEAP32[$p2$i >> 2] = $228; $229 = HEAP32[$162 >> 2] | 0; $230 = ($229 | 0) < ($223 | 0); $231 = $230 ? $229 : $223; $232 = $223 ^ $229; $233 = $232 ^ $231; HEAP32[$162 >> 2] = $233; $234 = ($226 | 0) < ($215 | 0); $235 = $234 ? $226 : $215; HEAP32[$p0$i >> 2] = $235; $236 = $226 ^ $215; $237 = $236 ^ $235; HEAP32[$p1$i >> 2] = $237; $238 = ($231 | 0) < ($221 | 0); $239 = $238 ? $231 : $221; HEAP32[$160 >> 2] = $239; $240 = $231 ^ $221; $241 = $240 ^ $239; HEAP32[$161 >> 2] = $241; $242 = ($210 + (($$sum5$i * 52) | 0)) | 0; $243 = ($178 - $3) | 0; $244 = ($243 + -1) | 0; $245 = ($122 + ($244 << 3)) | 0; $246 = HEAP32[$245 >> 2] | 0; $247 = ((($122 + ($244 << 3)) | 0) + 4) | 0; $248 = HEAP32[$247 >> 2] | 0; $249 = ($122 + ($243 << 3)) | 0; $250 = HEAP32[$249 >> 2] | 0; $251 = ((($122 + ($243 << 3)) | 0) + 4) | 0; $252 = HEAP32[$251 >> 2] | 0; $253 = ($178 + -1) | 0; $254 = ($122 + ($253 << 3)) | 0; $255 = HEAP32[$254 >> 2] | 0; $256 = ((($122 + ($253 << 3)) | 0) + 4) | 0; $257 = HEAP32[$256 >> 2] | 0; $258 = ($123 + ($244 << 3)) | 0; $259 = HEAP32[$258 >> 2] | 0; $260 = ((($123 + ($244 << 3)) | 0) + 4) | 0; $261 = HEAP32[$260 >> 2] | 0; $262 = ($123 + ($243 << 3)) | 0; $263 = HEAP32[$262 >> 2] | 0; $264 = ((($123 + ($243 << 3)) | 0) + 4) | 0; $265 = HEAP32[$264 >> 2] | 0; $266 = ($123 + ($253 << 3)) | 0; $267 = HEAP32[$266 >> 2] | 0; $268 = ((($123 + ($253 << 3)) | 0) + 4) | 0; $269 = HEAP32[$268 >> 2] | 0; _qr_hom_cell_init($242, $246, $248, $250, $252, $255, $257, $180, $182, $259, $261, $263, $265, $267, $269, $237, $241); $cell$0$i = $242; } else { $270 = ($j$043$i | 0) > 0; $or$cond9$i = $201 & $270; if ($or$cond9$i) { $271 = ($176 + -2) | 0; $272 = ($grid + ($271 << 2)) | 0; $273 = HEAP32[$272 >> 2] | 0; $$sum4$i = ($j$043$i + -1) | 0; $274 = ($273 + (($$sum4$i * 52) | 0)) | 0; $cell$0$i = $274; break; } $275 = ($176 | 0) > 0; $or$cond10$i = $275 & $202; if ($or$cond10$i) { $276 = ($176 + -1) | 0; $277 = ($grid + ($276 << 2)) | 0; $278 = HEAP32[$277 >> 2] | 0; $$sum3$i = ($j$043$i + -2) | 0; $279 = ($278 + (($$sum3$i * 52) | 0)) | 0; $cell$0$i = $279; } else { $cell$0$i = $base_cell$i; } } } while (0); $280 = ($123 + ($178 << 3)) | 0; _qr_alignment_pattern_search($280, $cell$0$i, $180, $182, 2, $_img, $_width, $_height) | 0; $281 = ($176 | 0) > 0; $282 = ($j$043$i | 0) > 0; $or$cond11$i = $281 & $282; if ($or$cond11$i) { $283 = ($176 + -1) | 0; $284 = ($grid + ($283 << 2)) | 0; $285 = HEAP32[$284 >> 2] | 0; $$sum2$i = ($j$043$i + -1) | 0; $286 = ($285 + (($$sum2$i * 52) | 0)) | 0; $287 = ($178 - $3) | 0; $288 = ($287 + -1) | 0; $289 = ($122 + ($288 << 3)) | 0; $290 = HEAP32[$289 >> 2] | 0; $291 = ((($122 + ($288 << 3)) | 0) + 4) | 0; $292 = HEAP32[$291 >> 2] | 0; $293 = ($122 + ($287 << 3)) | 0; $294 = HEAP32[$293 >> 2] | 0; $295 = ((($122 + ($287 << 3)) | 0) + 4) | 0; $296 = HEAP32[$295 >> 2] | 0; $297 = ($178 + -1) | 0; $298 = ($122 + ($297 << 3)) | 0; $299 = HEAP32[$298 >> 2] | 0; $300 = ((($122 + ($297 << 3)) | 0) + 4) | 0; $301 = HEAP32[$300 >> 2] | 0; $302 = ($123 + ($288 << 3)) | 0; $303 = HEAP32[$302 >> 2] | 0; $304 = ((($123 + ($288 << 3)) | 0) + 4) | 0; $305 = HEAP32[$304 >> 2] | 0; $306 = ($123 + ($287 << 3)) | 0; $307 = HEAP32[$306 >> 2] | 0; $308 = ((($123 + ($287 << 3)) | 0) + 4) | 0; $309 = HEAP32[$308 >> 2] | 0; $310 = ($123 + ($297 << 3)) | 0; $311 = HEAP32[$310 >> 2] | 0; $312 = ((($123 + ($297 << 3)) | 0) + 4) | 0; $313 = HEAP32[$312 >> 2] | 0; $314 = HEAP32[$280 >> 2] | 0; $315 = ((($123 + ($178 << 3)) | 0) + 4) | 0; $316 = HEAP32[$315 >> 2] | 0; _qr_hom_cell_init($286, $290, $292, $294, $296, $299, $301, $180, $182, $303, $305, $307, $309, $311, $313, $314, $316); } $317 = ($j$043$i + 1) | 0; $318 = ($j$043$i | 0) < ($169 | 0); if ($318) { $j$043$i = $317; } else { break; } } } $319 = ($k$044$i + 1) | 0; $exitcond$i = ($k$044$i | 0) == ($164 | 0); if ($exitcond$i) { break; } else { $k$044$i = $319; } } } _free($122); _free($123); } $439 = ($grid + 28) | 0; $440 = ($align_pos$i + 4) | 0; $441 = $$pre$i << 2; $442 = ($441 + -4) | 0; _memcpy($439 | 0, $440 | 0, $442 | 0) | 0; $443 = HEAP32[$22 >> 2] | 0; $444 = ($443 + -1) | 0; $445 = ((($grid + ($444 << 2)) | 0) + 28) | 0; HEAP32[$445 >> 2] = $1; $446 = HEAP32[$grid >> 2] | 0; _qr_hom_cell_project($5, $446, -1, -1, 1); $447 = HEAP32[$22 >> 2] | 0; $$sum$i = ($447 + -1) | 0; $448 = ($446 + (($$sum$i * 52) | 0)) | 0; $449 = $1 << 1; $450 = ($449 + -1) | 0; _qr_hom_cell_project($9, $448, $450, -1, 1); $451 = ($grid + ($$sum$i << 2)) | 0; $452 = HEAP32[$451 >> 2] | 0; _qr_hom_cell_project($13, $452, -1, $450, 1); $453 = ($452 + (($$sum$i * 52) | 0)) | 0; _qr_hom_cell_project($17, $453, $450, $450, 1); $454 = (0 - $_width) | 0; $455 = $454 << 2; $456 = $_width << 3; $457 = (0 - $_height) | 0; $458 = $457 << 2; $459 = $_height << 3; $460 = HEAP32[$5 >> 2] | 0; $461 = ($456 | 0) < ($460 | 0); $462 = $461 ? $456 : $460; $463 = ($455 - $462) | 0; $464 = ($462 | 0) > ($455 | 0); $465 = $464 ? $463 : 0; $466 = ($455 - $465) | 0; HEAP32[$5 >> 2] = $466; $467 = HEAP32[$7 >> 2] | 0; $468 = ($459 | 0) < ($467 | 0); $469 = $468 ? $459 : $467; $470 = ($458 - $469) | 0; $471 = ($469 | 0) > ($458 | 0); $472 = $471 ? $470 : 0; $473 = ($458 - $472) | 0; HEAP32[$7 >> 2] = $473; $474 = HEAP32[$9 >> 2] | 0; $475 = ($456 | 0) < ($474 | 0); $476 = $475 ? $456 : $474; $477 = ($455 - $476) | 0; $478 = ($476 | 0) > ($455 | 0); $479 = $478 ? $477 : 0; $480 = ($455 - $479) | 0; HEAP32[$9 >> 2] = $480; $481 = HEAP32[$11 >> 2] | 0; $482 = ($459 | 0) < ($481 | 0); $483 = $482 ? $459 : $481; $484 = ($458 - $483) | 0; $485 = ($483 | 0) > ($458 | 0); $486 = $485 ? $484 : 0; $487 = ($458 - $486) | 0; HEAP32[$11 >> 2] = $487; $488 = HEAP32[$13 >> 2] | 0; $489 = ($456 | 0) < ($488 | 0); $490 = $489 ? $456 : $488; $491 = ($455 - $490) | 0; $492 = ($490 | 0) > ($455 | 0); $493 = $492 ? $491 : 0; $494 = ($455 - $493) | 0; HEAP32[$13 >> 2] = $494; $495 = HEAP32[$15 >> 2] | 0; $496 = ($459 | 0) < ($495 | 0); $497 = $496 ? $459 : $495; $498 = ($458 - $497) | 0; $499 = ($497 | 0) > ($458 | 0); $500 = $499 ? $498 : 0; $501 = ($458 - $500) | 0; HEAP32[$15 >> 2] = $501; $502 = HEAP32[$17 >> 2] | 0; $503 = ($456 | 0) < ($502 | 0); $504 = $503 ? $456 : $502; $505 = ($455 - $504) | 0; $506 = ($504 | 0) > ($455 | 0); $507 = $506 ? $505 : 0; $508 = ($455 - $507) | 0; HEAP32[$17 >> 2] = $508; $509 = HEAP32[$19 >> 2] | 0; $510 = ($459 | 0) < ($509 | 0); $511 = $510 ? $459 : $509; $512 = ($458 - $511) | 0; $513 = ($511 | 0) > ($458 | 0); $514 = $513 ? $512 : 0; $515 = ($458 - $514) | 0; HEAP32[$19 >> 2] = $515; $516 = $1 << 2; $517 = Math_imul($516, $35) | 0; $518 = _malloc($517) | 0; $519 = $_fmt_info & 7; switch ($519 | 0) { case 6: { $520 = ($1 | 0) > 0; if ($520) { $521 = ($35 | 0) > 0; $j$565$i$i = 0; while (1) { $607 = ($j$565$i$i | 0) % 3 & -1; $608 = ($607 + $j$565$i$i) | 0; $609 = $608 << 1; $610 = $609 & 2; $611 = $j$565$i$i << 1; $612 = ($611 | 0) % 3 & -1; $613 = ($612 + $611) | 0; $614 = $613 << 2; $615 = $614 & 4; $616 = $615 | $610; $617 = ($j$565$i$i * 3) | 0; $618 = ($617 | 0) % 3 & -1; $619 = ($618 + $617) | 0; $620 = $619 << 3; $621 = $620 & 8; $622 = $616 | $621; $623 = $j$565$i$i << 2; $624 = ($623 | 0) % 3 & -1; $625 = ($624 + $623) | 0; $626 = $625 << 4; $627 = $626 & 16; $628 = $622 | $627; $629 = ($j$565$i$i * 5) | 0; $630 = ($629 | 0) % 3 & -1; $631 = ($630 + $629) | 0; $632 = $631 << 5; $633 = $632 & 32; $634 = $628 | $633; $635 = $634 ^ 63; $636 = $635 << 6; $637 = $636 | $635; if ($521) { $638 = $637 << 12; $639 = $637 << 24; $640 = $638 | $637; $641 = $640 | $639; $642 = Math_imul($j$565$i$i, $35) | 0; $i$759$i$i = 0; $m4$260$i$i = $641; while (1) { $643 = ($i$759$i$i + $642) | 0; $644 = ($518 + ($643 << 2)) | 0; HEAP32[$644 >> 2] = $m4$260$i$i; $645 = $m4$260$i$i >>> 2; $646 = $m4$260$i$i << 4; $647 = $645 | $646; $648 = ($i$759$i$i + 1) | 0; $exitcond77$i$i = ($648 | 0) == ($35 | 0); if ($exitcond77$i$i) { break; } else { $i$759$i$i = $648; $m4$260$i$i = $647; } } } $649 = ($j$565$i$i + 1) | 0; $exitcond78$i$i = ($649 | 0) == ($1 | 0); if ($exitcond78$i$i) { break; } else { $j$565$i$i = $649; } } } break; } case 5: { $522 = ($1 | 0) > 0; if ($522) { $523 = ($35 | 0) > 0; $j$451$i$i = 0; while (1) { $564 = ($j$451$i$i | 0) % 6 & -1; $565 = ($564 | 0) == 0; $566 = $565 & 1; $567 = $566 << 1; $568 = $j$451$i$i << 1; $569 = ($568 | 0) % 6 & -1; $570 = ($569 | 0) == 0; $571 = $570 & 1; $572 = $571 << 2; $573 = ($j$451$i$i * 3) | 0; $574 = ($573 | 0) % 6 & -1; $575 = ($574 | 0) == 0; $576 = $575 & 1; $577 = $576 << 3; $578 = $j$451$i$i << 2; $579 = ($578 | 0) % 6 & -1; $580 = ($579 | 0) == 0; $581 = $580 & 1; $582 = $581 << 4; $583 = ($j$451$i$i * 5) | 0; $584 = ($583 | 0) % 6 & -1; $585 = ($584 | 0) == 0; $586 = $585 & 1; $587 = $586 << 5; $588 = $567 | $572; $589 = $588 | $577; $590 = $589 | $582; $591 = $590 | $587; $592 = $591 | 1; $593 = $592 << 6; $594 = $593 | $592; if ($523) { $595 = $594 << 12; $596 = $594 << 24; $597 = $595 | $594; $598 = $597 | $596; $599 = Math_imul($j$451$i$i, $35) | 0; $i$445$i$i = 0; $m3$246$i$i = $598; while (1) { $600 = ($i$445$i$i + $599) | 0; $601 = ($518 + ($600 << 2)) | 0; HEAP32[$601 >> 2] = $m3$246$i$i; $602 = $m3$246$i$i >>> 2; $603 = $m3$246$i$i << 4; $604 = $602 | $603; $605 = ($i$445$i$i + 1) | 0; $exitcond74$i$i = ($605 | 0) == ($35 | 0); if ($exitcond74$i$i) { break; } else { $i$445$i$i = $605; $m3$246$i$i = $604; } } } $606 = ($j$451$i$i + 1) | 0; $exitcond75$i$i = ($606 | 0) == ($1 | 0); if ($exitcond75$i$i) { break; } else { $j$451$i$i = $606; } } } break; } case 4: { $524 = ($1 | 0) > 0; if ($524) { $j$335$i$i = 0; $m2$036$i$i = 7; while (1) { $554 = Math_imul($j$335$i$i, $35) | 0; $555 = ($518 + ($554 << 2)) | 0; $556 = $m2$036$i$i & 1; $557 = (0 - $556) | 0; $558 = $557 ^ 204; $559 = $558 & 255; _memset($555 | 0, $559 | 0, $36 | 0) | 0; $560 = $m2$036$i$i >>> 1; $561 = $m2$036$i$i << 5; $562 = $560 | $561; $563 = ($j$335$i$i + 1) | 0; $exitcond72$i$i = ($563 | 0) == ($1 | 0); if ($exitcond72$i$i) { break; } else { $j$335$i$i = $563; $m2$036$i$i = $562; } } } break; } case 3: { $525 = ($1 | 0) > 0; if ($525) { $542 = ($35 | 0) > 0; $j$228$i$i = 0; $mj$129$i$i = 1227133513; while (1) { if ($542) { $543 = Math_imul($j$228$i$i, $35) | 0; $i$122$i$i = 0; $mi$023$i$i = $mj$129$i$i; while (1) { $544 = ($i$122$i$i + $543) | 0; $545 = ($518 + ($544 << 2)) | 0; HEAP32[$545 >> 2] = $mi$023$i$i; $546 = $mi$023$i$i >>> 2; $547 = $mi$023$i$i << 1; $548 = $546 | $547; $549 = ($i$122$i$i + 1) | 0; $exitcond69$i$i = ($549 | 0) == ($35 | 0); if ($exitcond69$i$i) { break; } else { $i$122$i$i = $549; $mi$023$i$i = $548; } } } $550 = $mj$129$i$i >>> 1; $551 = $mj$129$i$i << 2; $552 = $550 | $551; $553 = ($j$228$i$i + 1) | 0; $exitcond70$i$i = ($553 | 0) == ($1 | 0); if ($exitcond70$i$i) { break; } else { $j$228$i$i = $553; $mj$129$i$i = $552; } } } break; } case 2: { $526 = ($1 | 0) > 0; if ($526) { $j$118$i$i = 0; $m1$019$i$i = 255; while (1) { $535 = Math_imul($j$118$i$i, $35) | 0; $536 = ($518 + ($535 << 2)) | 0; $537 = $m1$019$i$i & 255; _memset($536 | 0, $537 | 0, $36 | 0) | 0; $538 = $m1$019$i$i << 8; $539 = $m1$019$i$i >>> 16; $540 = $538 | $539; $541 = ($j$118$i$i + 1) | 0; $exitcond68$i$i = ($541 | 0) == ($1 | 0); if ($exitcond68$i$i) { break; } else { $j$118$i$i = $541; $m1$019$i$i = $540; } } } break; } case 0: { $527 = ($1 | 0) > 0; if ($527) { $j$013$i$i = 0; $m$014$i$i = 85; while (1) { $530 = Math_imul($j$013$i$i, $35) | 0; $531 = ($518 + ($530 << 2)) | 0; $532 = $m$014$i$i & 255; _memset($531 | 0, $532 | 0, $36 | 0) | 0; $533 = $m$014$i$i ^ 255; $534 = ($j$013$i$i + 1) | 0; $exitcond67$i$i = ($534 | 0) == ($1 | 0); if ($exitcond67$i$i) { break; } else { $j$013$i$i = $534; $m$014$i$i = $533; } } } break; } case 1: { _memset($518 | 0, 85, $517 | 0) | 0; break; } default: { $528 = ($1 | 0) > 0; if ($528) { $529 = ($35 | 0) > 0; $j$610$i$i = 0; while (1) { $650 = $j$610$i$i & 1; $651 = ($j$610$i$i | 0) % 3 & -1; $652 = ($j$610$i$i + 1) | 0; $653 = ($652 + $651) | 0; $654 = $653 << 1; $655 = $654 & 2; $656 = $655 | $650; $657 = $j$610$i$i << 1; $658 = ($657 | 0) % 3 & -1; $659 = ($658 + $j$610$i$i) | 0; $660 = $659 << 2; $661 = $660 & 4; $662 = $656 | $661; $663 = ($j$610$i$i * 3) | 0; $664 = ($663 | 0) % 3 & -1; $665 = ($664 + $652) | 0; $666 = $665 << 3; $667 = $666 & 8; $668 = $662 | $667; $669 = $j$610$i$i << 2; $670 = ($669 | 0) % 3 & -1; $671 = ($670 + $j$610$i$i) | 0; $672 = $671 << 4; $673 = $672 & 16; $674 = $668 | $673; $675 = ($j$610$i$i * 5) | 0; $676 = ($675 | 0) % 3 & -1; $677 = ($676 + $652) | 0; $678 = $677 << 5; $679 = $678 & 32; $680 = $674 | $679; $681 = $680 ^ 63; $682 = $681 << 6; $683 = $682 | $681; if ($529) { $684 = $683 << 12; $685 = $683 << 24; $686 = $684 | $683; $687 = $686 | $685; $688 = Math_imul($j$610$i$i, $35) | 0; $i$106$i$i = 0; $m5$27$i$i = $687; while (1) { $689 = ($i$106$i$i + $688) | 0; $690 = ($518 + ($689 << 2)) | 0; HEAP32[$690 >> 2] = $m5$27$i$i; $691 = $m5$27$i$i >>> 2; $692 = $m5$27$i$i << 4; $693 = $691 | $692; $694 = ($i$106$i$i + 1) | 0; $exitcond$i$i = ($694 | 0) == ($35 | 0); if ($exitcond$i$i) { break; } else { $i$106$i$i = $694; $m5$27$i$i = $693; } } } $exitcond66$i$i = ($652 | 0) == ($1 | 0); if ($exitcond66$i$i) { break; } else { $j$610$i$i = $652; } } } } } $695 = ($447 | 0) > 0; if ($695) { $696 = ($_height + -1) | 0; $697 = ($_width + -1) | 0; $_grid$idx$val$i = HEAP32[$38 >> 2] | 0; $j$015$i = 0; $u0$017$i = 0; while (1) { $698 = ((($grid + ($j$015$i << 2)) | 0) + 28) | 0; $699 = HEAP32[$698 >> 2] | 0; $700 = ($u0$017$i | 0) < ($699 | 0); $i$011$i = 0; $v0$010$i = 0; while (1) { $701 = ((($grid + ($i$011$i << 2)) | 0) + 28) | 0; $702 = HEAP32[$701 >> 2] | 0; $703 = ($grid + ($i$011$i << 2)) | 0; $704 = HEAP32[$703 >> 2] | 0; $705 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 44) | 0; $706 = HEAP32[$705 >> 2] | 0; $707 = ($u0$017$i - $706) | 0; $708 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 48) | 0; $709 = HEAP32[$708 >> 2] | 0; $710 = ($v0$010$i - $709) | 0; if ($700) { $711 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 28) | 0; $712 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 24) | 0; $713 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 16) | 0; $714 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 12) | 0; $715 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 4) | 0; $716 = ($704 + (($j$015$i * 52) | 0)) | 0; $717 = HEAP32[$711 >> 2] | 0; $718 = HEAP32[$712 >> 2] | 0; $719 = HEAP32[$713 >> 2] | 0; $720 = HEAP32[$714 >> 2] | 0; $721 = HEAP32[$715 >> 2] | 0; $722 = HEAP32[$716 >> 2] | 0; $723 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 32) | 0; $724 = Math_imul($717, $710) | 0; $725 = Math_imul($718, $707) | 0; $726 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 20) | 0; $727 = Math_imul($719, $710) | 0; $728 = Math_imul($720, $707) | 0; $729 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 8) | 0; $730 = Math_imul($721, $710) | 0; $731 = Math_imul($722, $707) | 0; $732 = HEAP32[$723 >> 2] | 0; $733 = ($725 + $724) | 0; $734 = HEAP32[$726 >> 2] | 0; $735 = ($728 + $727) | 0; $736 = HEAP32[$729 >> 2] | 0; $737 = ($731 + $730) | 0; $738 = ($733 + $732) | 0; $739 = ($735 + $734) | 0; $740 = ($737 + $736) | 0; $741 = ($v0$010$i | 0) < ($702 | 0); $742 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 36) | 0; $743 = ((($704 + (($j$015$i * 52) | 0)) | 0) + 40) | 0; $u$08$i = $u0$017$i; $w0$07$i = $738; $x0$05$i = $740; $y0$06$i = $739; while (1) { if ($741) { $744 = Math_imul($u$08$i, $35) | 0; $v$04$i = $v0$010$i; $w$03$i = $w0$07$i; $x$01$i = $x0$05$i; $y$02$i = $y0$06$i; while (1) { $745 = $v$04$i >> 5; $746 = ($745 + $744) | 0; $747 = ($_grid$idx$val$i + ($746 << 2)) | 0; $748 = HEAP32[$747 >> 2] | 0; $749 = $v$04$i & 31; $750 = 1 << $749; $751 = $748 & $750; $752 = ($751 | 0) == 0; if ($752) { $753 = ($w$03$i | 0) == 0; if ($753) { $754 = $x$01$i >>> 31; $755 = ($754 + 2147483647) | 0; $756 = $y$02$i >>> 31; $757 = ($756 + 2147483647) | 0; $778 = $755; $780 = $757; } else { $758 = ($w$03$i | 0) < 0; if ($758) { $759 = (0 - $x$01$i) | 0; $760 = (0 - $y$02$i) | 0; $761 = (0 - $w$03$i) | 0; $$0$i$i = $761; $$01$i$i = $760; $$02$i$i = $759; } else { $$0$i$i = $w$03$i; $$01$i$i = $y$02$i; $$02$i$i = $x$01$i; } $762 = $$0$i$i >> 1; $763 = $$02$i$i >> 31; $764 = ($762 + $763) | 0; $765 = $764 ^ $763; $766 = ($765 + $$02$i$i) | 0; $767 = (($766 | 0) / ($$0$i$i | 0)) & -1; $768 = HEAP32[$742 >> 2] | 0; $769 = ($768 + $767) | 0; $770 = $$01$i$i >> 31; $771 = ($762 + $770) | 0; $772 = $771 ^ $770; $773 = ($772 + $$01$i$i) | 0; $774 = (($773 | 0) / ($$0$i$i | 0)) & -1; $775 = HEAP32[$743 >> 2] | 0; $776 = ($775 + $774) | 0; $778 = $769; $780 = $776; } $777 = $778 >> 2; $779 = $780 >> 2; $781 = ($779 | 0) >= ($_height | 0); $782 = $781 ? $696 : $779; $783 = ($782 | 0) > 0; $784 = $783 ? $782 : 0; $785 = Math_imul($784, $_width) | 0; $786 = ($777 | 0) >= ($_width | 0); $787 = $786 ? $697 : $777; $788 = ($787 | 0) > 0; $789 = $788 ? $787 : 0; $790 = ($785 + $789) | 0; $791 = ($_img + $790) | 0; $792 = HEAP8[$791 >> 0] | 0; $793 = ($792 << 24) >> 24 != 0; $794 = $793 & 1; $795 = $794 << $749; $796 = ($518 + ($746 << 2)) | 0; $797 = HEAP32[$796 >> 2] | 0; $798 = $795 ^ $797; HEAP32[$796 >> 2] = $798; } $799 = ($x$01$i + $721) | 0; $800 = ($y$02$i + $719) | 0; $801 = ($w$03$i + $717) | 0; $802 = ($v$04$i + 1) | 0; $exitcond$i7 = ($802 | 0) == ($702 | 0); if ($exitcond$i7) { break; } else { $v$04$i = $802; $w$03$i = $801; $x$01$i = $799; $y$02$i = $800; } } } $803 = ($x0$05$i + $722) | 0; $804 = ($y0$06$i + $720) | 0; $805 = ($w0$07$i + $718) | 0; $806 = ($u$08$i + 1) | 0; $exitcond25$i = ($806 | 0) == ($699 | 0); if ($exitcond25$i) { break; } else { $u$08$i = $806; $w0$07$i = $805; $x0$05$i = $803; $y0$06$i = $804; } } } $807 = ($i$011$i + 1) | 0; $exitcond = ($807 | 0) == ($447 | 0); if ($exitcond) { break; } else { $i$011$i = $807; $v0$010$i = $702; } } $808 = ($j$015$i + 1) | 0; $exitcond112 = ($808 | 0) == ($447 | 0); if ($exitcond112) { break; } else { $j$015$i = $808; $u0$017$i = $699; } } } $809 = $_fmt_info >> 3; $810 = $809 ^ 1; $811 = ($_version + -1) | 0; $812 = (((7296 + ($811 << 2)) | 0) + $810) | 0; $813 = HEAP8[$812 >> 0] | 0; $814 = $813 & 255; $815 = (7528 + $811) | 0; $816 = HEAP8[$815 >> 0] | 0; $817 = $816 & 255; $$sum = ($817 + $810) | 0; $818 = (7456 + $$sum) | 0; $819 = HEAP8[$818 >> 0] | 0; $820 = $819 & 255; $821 = ($_version | 0) == 1; if ($821) { $$0$i = 26; } else { $822 = (($_version >>> 0) / 7) & -1; $823 = $_version << 4; $824 = ($_version + 8) | 0; $825 = Math_imul($823, $824) | 0; $826 = ($822 * 5) | 0; $827 = ($826 + 10) | 0; $828 = ($826 + 8) | 0; $829 = Math_imul($827, $828) | 0; $830 = $_version >>> 0 < 7; $831 = $830 ? 36 : 0; $832 = ($825 + 83) | 0; $833 = ($832 + $831) | 0; $834 = ($833 - $829) | 0; $835 = $834 >>> 3; $$0$i = $835; } $836 = (($$0$i >>> 0) / ($814 >>> 0)) & -1; $837 = ($$0$i >>> 0) % ($814 >>> 0) & -1; $838 = ($814 - $837) | 0; $839 = $814 << 2; $840 = _malloc($839) | 0; $841 = _malloc($$0$i) | 0; HEAP32[$840 >> 2] = $841; $842 = ($813 & 255) > 1; if ($842) { $846 = $841; $i$069 = 1; while (1) { $843 = ($i$069 | 0) > ($838 | 0); $844 = $843 & 1; $$sum1 = ($844 + $836) | 0; $845 = ($846 + $$sum1) | 0; $847 = ($840 + ($i$069 << 2)) | 0; HEAP32[$847 >> 2] = $845; $848 = ($i$069 + 1) | 0; $849 = ($848 | 0) < ($814 | 0); if ($849) { $846 = $845; $i$069 = $848; } else { break; } } } $850 = ($836 - $820) | 0; $851 = HEAP32[$38 >> 2] | 0; $852 = ($837 | 0) != 0; $_nshort_blocks$$i = $852 ? $838 : 0; $853 = ($4 | 0) > 0; if ($853) { $854 = $4 & 28; $855 = $854 | 1; $856 = ($35 | 0) > 0; $biti$037$i = 0; $bits$036$i = 0; $blocki$038$i = 0; $blockj$039$i = 0; $j$040$i = $4; while (1) { $857 = Math_imul($j$040$i, $35) | 0; if ($856) { $$in$i = $35; $biti$16$i = $biti$037$i; $bits$15$i = $bits$036$i; $blocki$17$i = $blocki$038$i; $blockj$18$i = $blockj$039$i; $nbits$09$i = $855; while (1) { $861 = ($$in$i + -1) | 0; $863 = ($861 + $857) | 0; $864 = ($518 + ($863 << 2)) | 0; $865 = HEAP32[$864 >> 2] | 0; $866 = ($851 + ($863 << 2)) | 0; $867 = HEAP32[$866 >> 2] | 0; $868 = ($863 - $35) | 0; $869 = ($518 + ($868 << 2)) | 0; $870 = HEAP32[$869 >> 2] | 0; $871 = ($851 + ($868 << 2)) | 0; $872 = HEAP32[$871 >> 2] | 0; $biti$2$ph$ph$i = $biti$16$i; $bits$2$ph$ph$i = $bits$15$i; $blocki$2$ph$ph$i = $blocki$17$i; $blockj$2$ph$ph$i = $blockj$18$i; $nbits$1$ph$ph$i = $nbits$09$i; L177: while (1) { $biti$2$ph$i = $biti$2$ph$ph$i; $bits$2$ph$i = $bits$2$ph$ph$i; $blocki$2$ph$i = $blocki$2$ph$ph$i; $nbits$1$ph$i = $nbits$1$ph$ph$i; while (1) { $biti$2$i = $biti$2$ph$i; $bits$2$i = $bits$2$ph$i; $nbits$1$i = $nbits$1$ph$i; while (1) { $873 = ($nbits$1$i + -1) | 0; $874 = ($nbits$1$i | 0) > 0; if (!$874) { break L177; } $875 = 1 << $873; $876 = $875 & $867; $877 = ($876 | 0) == 0; if ($877) { $878 = $bits$2$i << 1; $879 = $865 >>> $873; $880 = $879 & 1; $881 = $880 | $878; $882 = ($biti$2$i + 1) | 0; $biti$3$i = $882; $bits$3$i = $881; } else { $biti$3$i = $biti$2$i; $bits$3$i = $bits$2$i; } $883 = $875 & $872; $884 = ($883 | 0) == 0; if ($884) { $885 = $bits$3$i << 1; $886 = $870 >>> $873; $887 = $886 & 1; $888 = $885 | $887; $889 = ($biti$3$i + 1) | 0; $biti$4$i = $889; $bits$4$i = $888; } else { $biti$4$i = $biti$3$i; $bits$4$i = $bits$3$i; } $890 = ($biti$4$i | 0) > 7; if ($890) { break; } else { $biti$2$i = $biti$4$i; $bits$2$i = $bits$4$i; $nbits$1$i = $873; } } $891 = ($biti$4$i + -8) | 0; $892 = $bits$4$i >>> $891; $893 = $892 & 255; $894 = ($blocki$2$ph$i + 1) | 0; $895 = ($840 + ($blocki$2$ph$i << 2)) | 0; $896 = HEAP32[$895 >> 2] | 0; $897 = ($896 + 1) | 0; HEAP32[$895 >> 2] = $897; HEAP8[$896 >> 0] = $893; $898 = ($894 | 0) < ($814 | 0); if ($898) { $biti$2$ph$i = $891; $bits$2$ph$i = $bits$4$i; $blocki$2$ph$i = $894; $nbits$1$ph$i = $873; } else { break; } } $899 = ($blockj$2$ph$ph$i + 1) | 0; $900 = ($899 | 0) == ($850 | 0); $901 = $900 ? $_nshort_blocks$$i : 0; $biti$2$ph$ph$i = $891; $bits$2$ph$ph$i = $bits$4$i; $blocki$2$ph$ph$i = $901; $blockj$2$ph$ph$i = $899; $nbits$1$ph$ph$i = $873; } $862 = ($861 | 0) > 0; if ($862) { $$in$i = $861; $biti$16$i = $biti$2$i; $bits$15$i = $bits$2$i; $blocki$17$i = $blocki$2$ph$i; $blockj$18$i = $blockj$2$ph$ph$i; $nbits$09$i = 32; } else { break; } } $902 = ($j$040$i + -2) | 0; $903 = ($902 | 0) == 6; $904 = ($j$040$i + -3) | 0; $$$i = $903 ? $904 : $902; $905 = Math_imul($$$i, $35) | 0; $biti$525$i = $biti$2$i; $bits$524$i = $bits$2$i; $blocki$326$i = $blocki$2$ph$i; $blockj$327$i = $blockj$2$ph$ph$i; $i$128$i = 0; while (1) { $906 = ($i$128$i + $905) | 0; $907 = ($518 + ($906 << 2)) | 0; $908 = HEAP32[$907 >> 2] | 0; $909 = ($851 + ($906 << 2)) | 0; $910 = HEAP32[$909 >> 2] | 0; $911 = ($906 - $35) | 0; $912 = ($518 + ($911 << 2)) | 0; $913 = HEAP32[$912 >> 2] | 0; $914 = ($851 + ($911 << 2)) | 0; $915 = HEAP32[$914 >> 2] | 0; $916 = $i$128$i << 5; $917 = ($1 - $916) | 0; $918 = ($917 | 0) > 32; $919 = $918 ? 32 : $917; $biti$6$ph$ph$i = $biti$525$i; $bits$6$ph$ph$i = $bits$524$i; $blocki$4$ph$ph$i = $blocki$326$i; $blockj$4$ph$ph$i = $blockj$327$i; $data1$0$ph$ph$i = $908; $data2$0$ph$ph$i = $913; $fp_mask1$0$ph$ph$i = $910; $fp_mask2$0$ph$ph$i = $915; $nbits$2$ph$ph$i = $919; L196: while (1) { $biti$6$ph$i = $biti$6$ph$ph$i; $bits$6$ph$i = $bits$6$ph$ph$i; $blocki$4$ph$i = $blocki$4$ph$ph$i; $data1$0$ph$i = $data1$0$ph$ph$i; $data2$0$ph$i = $data2$0$ph$ph$i; $fp_mask1$0$ph$i = $fp_mask1$0$ph$ph$i; $fp_mask2$0$ph$i = $fp_mask2$0$ph$ph$i; $nbits$2$ph$i = $nbits$2$ph$ph$i; while (1) { $biti$6$i = $biti$6$ph$i; $bits$6$i = $bits$6$ph$i; $data1$0$i = $data1$0$ph$i; $data2$0$i = $data2$0$ph$i; $fp_mask1$0$i = $fp_mask1$0$ph$i; $fp_mask2$0$i = $fp_mask2$0$ph$i; $nbits$2$i = $nbits$2$ph$i; while (1) { $920 = ($nbits$2$i + -1) | 0; $921 = ($nbits$2$i | 0) > 0; if (!$921) { break L196; } $922 = $fp_mask1$0$i & 1; $923 = ($922 | 0) == 0; if ($923) { $924 = $bits$6$i << 1; $925 = $data1$0$i & 1; $926 = $925 | $924; $927 = ($biti$6$i + 1) | 0; $biti$7$i = $927; $bits$7$i = $926; } else { $biti$7$i = $biti$6$i; $bits$7$i = $bits$6$i; } $928 = $data1$0$i >>> 1; $929 = $fp_mask1$0$i >>> 1; $930 = $fp_mask2$0$i & 1; $931 = ($930 | 0) == 0; if ($931) { $932 = $bits$7$i << 1; $933 = $data2$0$i & 1; $934 = $932 | $933; $935 = ($biti$7$i + 1) | 0; $biti$8$i = $935; $bits$8$i = $934; } else { $biti$8$i = $biti$7$i; $bits$8$i = $bits$7$i; } $936 = $data2$0$i >>> 1; $937 = $fp_mask2$0$i >>> 1; $938 = ($biti$8$i | 0) > 7; if ($938) { break; } else { $biti$6$i = $biti$8$i; $bits$6$i = $bits$8$i; $data1$0$i = $928; $data2$0$i = $936; $fp_mask1$0$i = $929; $fp_mask2$0$i = $937; $nbits$2$i = $920; } } $939 = ($biti$8$i + -8) | 0; $940 = $bits$8$i >>> $939; $941 = $940 & 255; $942 = ($blocki$4$ph$i + 1) | 0; $943 = ($840 + ($blocki$4$ph$i << 2)) | 0; $944 = HEAP32[$943 >> 2] | 0; $945 = ($944 + 1) | 0; HEAP32[$943 >> 2] = $945; HEAP8[$944 >> 0] = $941; $946 = ($942 | 0) < ($814 | 0); if ($946) { $biti$6$ph$i = $939; $bits$6$ph$i = $bits$8$i; $blocki$4$ph$i = $942; $data1$0$ph$i = $928; $data2$0$ph$i = $936; $fp_mask1$0$ph$i = $929; $fp_mask2$0$ph$i = $937; $nbits$2$ph$i = $920; } else { break; } } $947 = ($blockj$4$ph$ph$i + 1) | 0; $948 = ($947 | 0) == ($850 | 0); $949 = $948 ? $_nshort_blocks$$i : 0; $biti$6$ph$ph$i = $939; $bits$6$ph$ph$i = $bits$8$i; $blocki$4$ph$ph$i = $949; $blockj$4$ph$ph$i = $947; $data1$0$ph$ph$i = $928; $data2$0$ph$ph$i = $936; $fp_mask1$0$ph$ph$i = $929; $fp_mask2$0$ph$ph$i = $937; $nbits$2$ph$ph$i = $920; } $950 = ($i$128$i + 1) | 0; $exitcond$i12 = ($950 | 0) == ($35 | 0); if ($exitcond$i12) { $$59$i = $$$i; $biti$5$lcssa$i = $biti$6$i; $bits$5$lcssa$i = $bits$6$i; $blocki$3$lcssa$i = $blocki$4$ph$i; $blockj$3$lcssa$i = $blockj$4$ph$ph$i; break; } else { $biti$525$i = $biti$6$i; $bits$524$i = $bits$6$i; $blocki$326$i = $blocki$4$ph$i; $blockj$327$i = $blockj$4$ph$ph$i; $i$128$i = $950; } } } else { $858 = ($j$040$i + -2) | 0; $859 = ($858 | 0) == 6; $860 = ($j$040$i + -3) | 0; $$58$i = $859 ? $860 : $858; $$59$i = $$58$i; $biti$5$lcssa$i = $biti$037$i; $bits$5$lcssa$i = $bits$036$i; $blocki$3$lcssa$i = $blocki$038$i; $blockj$3$lcssa$i = $blockj$039$i; } $951 = ($$59$i + -2) | 0; $952 = ($951 | 0) > 0; if ($952) { $biti$037$i = $biti$5$lcssa$i; $bits$036$i = $bits$5$lcssa$i; $blocki$038$i = $blocki$3$lcssa$i; $blockj$039$i = $blockj$3$lcssa$i; $j$040$i = $951; } else { break; } } } _free($851); _free($446); _free($840); _free($518); $953 = ($813 << 24) >> 24 == 0; do { if ($953) { $ndata$0$lcssa116 = 0; } else { $954 = $810 << 1; $955 = ($954 + 2) | 0; $$old = ($809 | 0) == 1; $i$149 = 0; $ncodewords$051 = 0; $ndata$050 = 0; while (1) { $956 = ($i$149 | 0) >= ($838 | 0); $957 = $956 & 1; $958 = ($957 + $836) | 0; $959 = ($841 + $ncodewords$051) | 0; $960 = _rs_correct($_gf, 0, $959, $958, $820, 0, 0) | 0; $961 = ($960 | 0) < 0; if ($961) { $ret$2 = -1; label = 288; break; } if (($_version | 0) == 1) { $962 = ($960 | 0) > ($955 | 0); if ($962) { $ret$2 = -1; label = 288; break; } } else if (($_version | 0) == 2) { $$old2 = ($960 | 0) > 4; $or$cond4 = $$old & $$old2; if ($or$cond4) { $ret$2 = -1; label = 288; break; } } $963 = ($958 - $820) | 0; $964 = ($841 + $ndata$050) | 0; _memmove($964 | 0, $959 | 0, $963 | 0) | 0; $965 = ($ncodewords$051 + $958) | 0; $966 = ($963 + $ndata$050) | 0; $967 = ($i$149 + 1) | 0; $968 = ($967 | 0) < ($814 | 0); if ($968) { $i$149 = $967; $ncodewords$051 = $965; $ndata$050 = $966; } else { label = 142; break; } } if ((label | 0) == 142) { $969 = ($960 | 0) > -1; if ($969) { $ndata$0$lcssa116 = $966; break; } else { $ret$2 = $960; } _free($841); STACKTOP = sp; return $ret$2 | 0; } else if ((label | 0) == 288) { _free($841); STACKTOP = sp; return $ret$2 | 0; } } } while (0); HEAP32[$_qrdata >> 2] = 0; $970 = ($_qrdata + 4) | 0; HEAP32[$970 >> 2] = 0; $971 = ($_qrdata + 11) | 0; HEAP8[$971 >> 0] = 0; $972 = ($_version | 0) > 9; $973 = $972 & 1; $974 = ($_version | 0) > 26; $975 = $974 & 1; $976 = ($973 + $975) | 0; $977 = $ndata$0$lcssa116 << 3; $978 = ($977 | 0) > 3; do { if ($978) { $979 = (7568 + ($976 << 2)) | 0; $980 = (((7568 + ($976 << 2)) | 0) + 1) | 0; $981 = ($_qrdata + 10) | 0; $982 = ($_qrdata + 12) | 0; $983 = (((7568 + ($976 << 2)) | 0) + 2) | 0; $984 = (((7568 + ($976 << 2)) | 0) + 3) | 0; $986 = 0; $987 = $ndata$0$lcssa116; $993 = 0; $centries$0197$i = 0; $self_parity$0198$i = 0; L232: while (1) { $985 = ($986 + 4) | 0; $988 = ($987 | 0) < 3; if ($988) { $989 = $987 << 3; $990 = ($989 | 0) < ($985 | 0); if ($990) { $$0$i102105$i = -1; } else { $991 = ($985 | 0) == 0; if ($991) { $self_parity$0$lcssa$i$ph = $self_parity$0198$i; label = 280; break; } else { label = 148; } } } else { label = 148; } if ((label | 0) == 148) { label = 0; $992 = ($841 + $993) | 0; $994 = HEAP8[$992 >> 0] | 0; $995 = $994 & 255; $996 = ($986 + 8) | 0; $997 = $995 << $996; $998 = ($985 | 0) > 8; if ($998) { $$sum$i99$i = ($993 + 1) | 0; $999 = ($841 + $$sum$i99$i) | 0; $1000 = HEAP8[$999 >> 0] | 0; $1001 = $1000 & 255; $1002 = $1001 << $986; $1003 = $1002 | $997; $1004 = ($985 | 0) > 16; if ($1004) { $$sum1$i100$i = ($993 + 2) | 0; $1005 = ($841 + $$sum1$i100$i) | 0; $1006 = HEAP8[$1005 >> 0] | 0; $1007 = $1006 & 255; $1008 = (8 - $986) | 0; $1009 = $1007 >>> $1008; $1010 = $1009 | $1003; $ret$0$i101$i = $1010; } else { $ret$0$i101$i = $1003; } } else { $ret$0$i101$i = $997; } $1011 = $ret$0$i101$i >>> 12; $1012 = $1011 & 15; $1013 = ($1012 | 0) == 0; if ($1013) { $self_parity$0$lcssa$i$ph = $self_parity$0198$i; label = 280; break; } else { $$0$i102105$i = $1012; } } $$pn$i = $985 >> 3; $1014 = $985 & 7; $1015 = ($$pn$i + $993) | 0; $1016 = HEAP32[$970 >> 2] | 0; $1017 = ($1016 | 0) < ($centries$0197$i | 0); if ($1017) { $$pre223$i = HEAP32[$_qrdata >> 2] | 0; $1024 = $1016; $1026 = $$pre223$i; $centries$1$i = $centries$0197$i; } else { $1018 = $centries$0197$i << 1; $1019 = $1018 | 1; $1020 = HEAP32[$_qrdata >> 2] | 0; $1021 = ($1019 * 12) | 0; $1022 = _realloc($1020, $1021) | 0; HEAP32[$_qrdata >> 2] = $1022; $$pre$i13 = HEAP32[$970 >> 2] | 0; $1024 = $$pre$i13; $1026 = $1022; $centries$1$i = $1019; } $1023 = ($1024 + 1) | 0; HEAP32[$970 >> 2] = $1023; $1025 = ($1026 + (($1024 * 12) | 0)) | 0; HEAP32[$1025 >> 2] = $$0$i102105$i; $1027 = ((($1026 + (($1024 * 12) | 0)) | 0) + 4) | 0; HEAP32[$1027 >> 2] = 0; L248: do { switch ($$0$i102105$i | 0) { case 1: { $1028 = HEAP8[$979 >> 0] | 0; $1029 = $1028 & 255; $1030 = (16 - $1029) | 0; $1031 = ($1029 + $1014) | 0; $1032 = ($ndata$0$lcssa116 - $1015) | 0; $1033 = ($1032 | 0) < 3; if ($1033) { $1034 = $1032 << 3; $1035 = ($1034 | 0) < ($1031 | 0); if ($1035) { break L232; } $1036 = ($1031 | 0) == 0; if ($1036) { $$0$i97107$i = 0; $1064 = $1015; $1067 = $1014; } else { label = 159; } } else { label = 159; } if ((label | 0) == 159) { label = 0; $1037 = ($841 + $1015) | 0; $1038 = HEAP8[$1037 >> 0] | 0; $1039 = $1038 & 255; $1040 = $1014 | 8; $1041 = $1039 << $1040; $1042 = ($1031 | 0) > 8; if ($1042) { $$sum$i94$i = ($1015 + 1) | 0; $1043 = ($841 + $$sum$i94$i) | 0; $1044 = HEAP8[$1043 >> 0] | 0; $1045 = $1044 & 255; $1046 = $1045 << $1014; $1047 = $1046 | $1041; $1048 = ($1031 | 0) > 16; if ($1048) { $$sum1$i95$i = ($1015 + 2) | 0; $1049 = ($841 + $$sum1$i95$i) | 0; $1050 = HEAP8[$1049 >> 0] | 0; $1051 = $1050 & 255; $1052 = (8 - $1014) | 0; $1053 = $1051 >>> $1052; $1054 = $1053 | $1047; $ret$0$i96$i = $1054; } else { $ret$0$i96$i = $1047; } } else { $ret$0$i96$i = $1041; } $1055 = $1031 >>> 3; $1056 = ($1055 + $1015) | 0; $fold137$i = ($1029 + $985) | 0; $1057 = $fold137$i & 7; $1058 = $ret$0$i96$i & 65535; $1059 = $1058 >>> $1030; $1060 = ($1059 | 0) < 0; if ($1060) { break L232; } else { $$0$i97107$i = $1059; $1064 = $1056; $1067 = $1057; } } $1061 = (($$0$i97107$i | 0) / 3) & -1; $1062 = ($$0$i97107$i | 0) % 3 & -1; $1063 = ($ndata$0$lcssa116 - $1064) | 0; $1065 = $1063 << 3; $1066 = ($1065 - $1067) | 0; $1068 = ($1061 * 10) | 0; $1069 = $1062 >>> 1; $1070 = $1069 & 1; $1071 = (0 - $1070) | 0; $1072 = $1071 & 7; $1073 = $1062 << 2; $1074 = $1073 & 4; $1075 = ($1074 + $1068) | 0; $1076 = ($1075 + $1072) | 0; $1077 = ($1066 | 0) < ($1076 | 0); if ($1077) { break L232; } $1078 = _malloc($$0$i97107$i) | 0; HEAP32[$1027 >> 2] = $1078; $1079 = ((($1026 + (($1024 * 12) | 0)) | 0) + 8) | 0; HEAP32[$1079 >> 2] = $$0$i97107$i; $1080 = ($$0$i97107$i | 0) > 2; if ($1080) { $$in204$i = $1061; $1083 = $1067; $1085 = $1064; $buf$0183$i = $1078; $self_parity$1184$i = $self_parity$0198$i; while (1) { $1081 = ($$in204$i + -1) | 0; $1082 = ($1083 + 10) | 0; $1084 = ($ndata$0$lcssa116 - $1085) | 0; $1086 = ($1084 | 0) < 3; if ($1086) { $1087 = $1084 << 3; $1088 = ($1087 | 0) < ($1082 | 0); if ($1088) { break L232; } $1089 = ($1082 | 0) == 0; if ($1089) { $$0$i92109$i = 0; $1652 = $1085; $1653 = $1083; } else { label = 168; } } else { label = 168; } if ((label | 0) == 168) { label = 0; $1090 = ($841 + $1085) | 0; $1091 = HEAP8[$1090 >> 0] | 0; $1092 = $1091 & 255; $1093 = ($1083 + 8) | 0; $1094 = $1092 << $1093; $1095 = ($1082 | 0) > 8; do { if ($1095) { $$sum$i89$i = ($1085 + 1) | 0; $1096 = ($841 + $$sum$i89$i) | 0; $1097 = HEAP8[$1096 >> 0] | 0; $1098 = $1097 & 255; $1099 = $1098 << $1083; $1100 = $1099 | $1094; $1101 = ($1082 | 0) > 16; if (!$1101) { $ret$0$i91$i = $1100; break; } $$sum1$i90$i = ($1085 + 2) | 0; $1102 = ($841 + $$sum1$i90$i) | 0; $1103 = HEAP8[$1102 >> 0] | 0; $1104 = $1103 & 255; $1105 = (8 - $1083) | 0; $1106 = $1104 >>> $1105; $1107 = $1106 | $1100; $ret$0$i91$i = $1107; } else { $ret$0$i91$i = $1094; } } while (0); $1108 = $1082 >> 3; $1109 = ($1108 + $1085) | 0; $1110 = $1082 & 7; $1111 = $ret$0$i91$i >>> 6; $1112 = $1111 & 1023; $1113 = $1112 >>> 0 > 999; if ($1113) { break L232; } else { $$0$i92109$i = $1112; $1652 = $1109; $1653 = $1110; } } $1114 = (($$0$i92109$i >>> 0) / 100) & -1; $1115 = $1114 | 48; $1116 = $1115 ^ $self_parity$1184$i; $1117 = $1115 & 255; $1118 = ($buf$0183$i + 1) | 0; HEAP8[$buf$0183$i >> 0] = $1117; $1119 = ($$0$i92109$i >>> 0) % 100 & -1; $1120 = (($1119 >>> 0) / 10) & -1; $1121 = $1120 | 48; $1122 = $1116 ^ $1121; $1123 = $1121 & 255; $1124 = ($buf$0183$i + 2) | 0; HEAP8[$1118 >> 0] = $1123; $1125 = ($1119 >>> 0) % 10 & -1; $1126 = $1125 | 48; $1127 = $1122 ^ $1126; $1128 = $1126 & 255; $1129 = ($buf$0183$i + 3) | 0; HEAP8[$1124 >> 0] = $1128; $1130 = ($1081 | 0) > 0; if ($1130) { $$in204$i = $1081; $1083 = $1653; $1085 = $1652; $buf$0183$i = $1129; $self_parity$1184$i = $1127; } else { $$lcssa177$i = $1653; $$lcssa179$i = $1652; $buf$0$lcssa$i = $1129; $self_parity$1$lcssa$i = $1127; break; } } } else { $$lcssa177$i = $1067; $$lcssa179$i = $1064; $buf$0$lcssa$i = $1078; $self_parity$1$lcssa$i = $self_parity$0198$i; } $1131 = ($1062 | 0) > 1; if ($1131) { $1132 = ($$lcssa177$i + 7) | 0; $1133 = ($ndata$0$lcssa116 - $$lcssa179$i) | 0; $1134 = ($1133 | 0) < 3; if ($1134) { $1135 = $1133 << 3; $1136 = ($1135 | 0) < ($1132 | 0); if ($1136) { break L232; } $1137 = ($1132 | 0) == 0; if ($1137) { $$0$i87111$i = 0; $1654 = $$lcssa179$i; $1655 = $$lcssa177$i; } else { label = 177; } } else { label = 177; } if ((label | 0) == 177) { label = 0; $1138 = ($841 + $$lcssa179$i) | 0; $1139 = HEAP8[$1138 >> 0] | 0; $1140 = $1139 & 255; $1141 = ($$lcssa177$i + 8) | 0; $1142 = $1140 << $1141; $1143 = ($1132 | 0) > 8; do { if ($1143) { $$sum$i84$i = ($$lcssa179$i + 1) | 0; $1144 = ($841 + $$sum$i84$i) | 0; $1145 = HEAP8[$1144 >> 0] | 0; $1146 = $1145 & 255; $1147 = $1146 << $$lcssa177$i; $1148 = $1147 | $1142; $1149 = ($1132 | 0) > 16; if (!$1149) { $ret$0$i86$i = $1148; break; } $$sum1$i85$i = ($$lcssa179$i + 2) | 0; $1150 = ($841 + $$sum1$i85$i) | 0; $1151 = HEAP8[$1150 >> 0] | 0; $1152 = $1151 & 255; $1153 = (8 - $$lcssa177$i) | 0; $1154 = $1152 >>> $1153; $1155 = $1154 | $1148; $ret$0$i86$i = $1155; } else { $ret$0$i86$i = $1142; } } while (0); $1156 = $1132 >> 3; $1157 = ($1156 + $$lcssa179$i) | 0; $1158 = $1132 & 7; $1159 = $ret$0$i86$i >>> 9; $1160 = $1159 & 127; $1161 = $1160 >>> 0 > 99; if ($1161) { break L232; } else { $$0$i87111$i = $1160; $1654 = $1157; $1655 = $1158; } } $1162 = (($$0$i87111$i >>> 0) / 10) & -1; $1163 = $1162 | 48; $1164 = $1163 ^ $self_parity$1$lcssa$i; $1165 = $1163 & 255; $1166 = ($buf$0$lcssa$i + 1) | 0; HEAP8[$buf$0$lcssa$i >> 0] = $1165; $1167 = ($$0$i87111$i >>> 0) % 10 & -1; $1168 = $1167 | 48; $1169 = $1164 ^ $1168; $1170 = $1168 & 255; HEAP8[$1166 >> 0] = $1170; $$be$i = $1655; $$be193$i = $1654; $self_parity$0$be$i = $1169; break L248; } $1171 = ($1062 | 0) == 0; if ($1171) { $$be$i = $$lcssa177$i; $$be193$i = $$lcssa179$i; $self_parity$0$be$i = $self_parity$1$lcssa$i; } else { $1172 = ($$lcssa177$i + 4) | 0; $1173 = ($ndata$0$lcssa116 - $$lcssa179$i) | 0; $1174 = ($1173 | 0) < 3; if ($1174) { $1175 = $1173 << 3; $1176 = ($1175 | 0) < ($1172 | 0); if ($1176) { break L232; } $1177 = ($1172 | 0) == 0; if ($1177) { $$0$i82113$i = 0; $1656 = $$lcssa179$i; $1657 = $$lcssa177$i; } else { label = 186; } } else { label = 186; } if ((label | 0) == 186) { label = 0; $1178 = ($841 + $$lcssa179$i) | 0; $1179 = HEAP8[$1178 >> 0] | 0; $1180 = $1179 & 255; $1181 = ($$lcssa177$i + 8) | 0; $1182 = $1180 << $1181; $1183 = ($1172 | 0) > 8; do { if ($1183) { $$sum$i79$i = ($$lcssa179$i + 1) | 0; $1184 = ($841 + $$sum$i79$i) | 0; $1185 = HEAP8[$1184 >> 0] | 0; $1186 = $1185 & 255; $1187 = $1186 << $$lcssa177$i; $1188 = $1187 | $1182; $1189 = ($1172 | 0) > 16; if (!$1189) { $ret$0$i81$i = $1188; break; } $$sum1$i80$i = ($$lcssa179$i + 2) | 0; $1190 = ($841 + $$sum1$i80$i) | 0; $1191 = HEAP8[$1190 >> 0] | 0; $1192 = $1191 & 255; $1193 = (8 - $$lcssa177$i) | 0; $1194 = $1192 >>> $1193; $1195 = $1194 | $1188; $ret$0$i81$i = $1195; } else { $ret$0$i81$i = $1182; } } while (0); $1196 = $1172 >> 3; $1197 = ($1196 + $$lcssa179$i) | 0; $1198 = $1172 & 7; $1199 = $ret$0$i81$i >>> 12; $1200 = $1199 & 15; $1201 = $1200 >>> 0 > 9; if ($1201) { break L232; } else { $$0$i82113$i = $1200; $1656 = $1197; $1657 = $1198; } } $1202 = $$0$i82113$i | 48; $1203 = $1202 ^ $self_parity$1$lcssa$i; $1204 = $1202 & 255; HEAP8[$buf$0$lcssa$i >> 0] = $1204; $$be$i = $1657; $$be193$i = $1656; $self_parity$0$be$i = $1203; } break; } case 2: { $1205 = HEAP8[$980 >> 0] | 0; $1206 = $1205 & 255; $1207 = (16 - $1206) | 0; $1208 = ($1206 + $1014) | 0; $1209 = ($ndata$0$lcssa116 - $1015) | 0; $1210 = ($1209 | 0) < 3; if ($1210) { $1211 = $1209 << 3; $1212 = ($1211 | 0) < ($1208 | 0); if ($1212) { break L232; } $1213 = ($1208 | 0) == 0; if ($1213) { $$0$i77115$i = 0; $1241 = $1015; $1244 = $1014; } else { label = 194; } } else { label = 194; } if ((label | 0) == 194) { label = 0; $1214 = ($841 + $1015) | 0; $1215 = HEAP8[$1214 >> 0] | 0; $1216 = $1215 & 255; $1217 = $1014 | 8; $1218 = $1216 << $1217; $1219 = ($1208 | 0) > 8; if ($1219) { $$sum$i74$i = ($1015 + 1) | 0; $1220 = ($841 + $$sum$i74$i) | 0; $1221 = HEAP8[$1220 >> 0] | 0; $1222 = $1221 & 255; $1223 = $1222 << $1014; $1224 = $1223 | $1218; $1225 = ($1208 | 0) > 16; if ($1225) { $$sum1$i75$i = ($1015 + 2) | 0; $1226 = ($841 + $$sum1$i75$i) | 0; $1227 = HEAP8[$1226 >> 0] | 0; $1228 = $1227 & 255; $1229 = (8 - $1014) | 0; $1230 = $1228 >>> $1229; $1231 = $1230 | $1224; $ret$0$i76$i = $1231; } else { $ret$0$i76$i = $1224; } } else { $ret$0$i76$i = $1218; } $1232 = $1208 >>> 3; $1233 = ($1232 + $1015) | 0; $fold136$i = ($1206 + $985) | 0; $1234 = $fold136$i & 7; $1235 = $ret$0$i76$i & 65535; $1236 = $1235 >>> $1207; $1237 = ($1236 | 0) < 0; if ($1237) { break L232; } else { $$0$i77115$i = $1236; $1241 = $1233; $1244 = $1234; } } $1238 = $$0$i77115$i >> 1; $1239 = $$0$i77115$i & 1; $1240 = ($ndata$0$lcssa116 - $1241) | 0; $1242 = $1240 << 3; $1243 = ($1242 - $1244) | 0; $1245 = ($1238 * 11) | 0; $1246 = (0 - $1239) | 0; $1247 = $1246 & 6; $1248 = ($1245 + $1247) | 0; $1249 = ($1243 | 0) < ($1248 | 0); if ($1249) { break L232; } $1250 = _malloc($$0$i77115$i) | 0; HEAP32[$1027 >> 2] = $1250; $1251 = ((($1026 + (($1024 * 12) | 0)) | 0) + 8) | 0; HEAP32[$1251 >> 2] = $$0$i77115$i; $1252 = ($1238 | 0) > 0; if ($1252) { $$in203$i = $1238; $1255 = $1244; $1257 = $1241; $buf1$0169$i = $1250; $self_parity$2170$i = $self_parity$0198$i; while (1) { $1253 = ($$in203$i + -1) | 0; $1254 = ($1255 + 11) | 0; $1256 = ($ndata$0$lcssa116 - $1257) | 0; $1258 = ($1256 | 0) < 3; if ($1258) { $1259 = $1256 << 3; $1260 = ($1259 | 0) < ($1254 | 0); if ($1260) { break L232; } $1261 = ($1254 | 0) == 0; if ($1261) { $$0$i72117$i = 0; $1658 = $1257; $1659 = $1255; } else { label = 203; } } else { label = 203; } if ((label | 0) == 203) { label = 0; $1262 = ($841 + $1257) | 0; $1263 = HEAP8[$1262 >> 0] | 0; $1264 = $1263 & 255; $1265 = ($1255 + 8) | 0; $1266 = $1264 << $1265; $1267 = ($1254 | 0) > 8; do { if ($1267) { $$sum$i69$i = ($1257 + 1) | 0; $1268 = ($841 + $$sum$i69$i) | 0; $1269 = HEAP8[$1268 >> 0] | 0; $1270 = $1269 & 255; $1271 = $1270 << $1255; $1272 = $1271 | $1266; $1273 = ($1254 | 0) > 16; if (!$1273) { $ret$0$i71$i = $1272; break; } $$sum1$i70$i = ($1257 + 2) | 0; $1274 = ($841 + $$sum1$i70$i) | 0; $1275 = HEAP8[$1274 >> 0] | 0; $1276 = $1275 & 255; $1277 = (8 - $1255) | 0; $1278 = $1276 >>> $1277; $1279 = $1278 | $1272; $ret$0$i71$i = $1279; } else { $ret$0$i71$i = $1266; } } while (0); $1280 = $1254 >> 3; $1281 = ($1280 + $1257) | 0; $1282 = $1254 & 7; $1283 = $ret$0$i71$i >>> 5; $1284 = $1283 & 2047; $1285 = $1284 >>> 0 > 2024; if ($1285) { break L232; } else { $$0$i72117$i = $1284; $1658 = $1281; $1659 = $1282; } } $1286 = (($$0$i72117$i >>> 0) / 45) & -1; $1287 = (7584 + $1286) | 0; $1288 = HEAP8[$1287 >> 0] | 0; $1289 = $1288 & 255; $1290 = $1289 ^ $self_parity$2170$i; $1291 = ($buf1$0169$i + 1) | 0; HEAP8[$buf1$0169$i >> 0] = $1288; $1292 = ($$0$i72117$i >>> 0) % 45 & -1; $1293 = (7584 + $1292) | 0; $1294 = HEAP8[$1293 >> 0] | 0; $1295 = $1294 & 255; $1296 = $1290 ^ $1295; $1297 = ($buf1$0169$i + 2) | 0; HEAP8[$1291 >> 0] = $1294; $1298 = ($1253 | 0) > 0; if ($1298) { $$in203$i = $1253; $1255 = $1659; $1257 = $1658; $buf1$0169$i = $1297; $self_parity$2170$i = $1296; } else { $$lcssa163$i = $1659; $$lcssa165$i = $1658; $buf1$0$lcssa$i = $1297; $self_parity$2$lcssa$i = $1296; break; } } } else { $$lcssa163$i = $1244; $$lcssa165$i = $1241; $buf1$0$lcssa$i = $1250; $self_parity$2$lcssa$i = $self_parity$0198$i; } $1299 = ($1239 | 0) == 0; if ($1299) { $$be$i = $$lcssa163$i; $$be193$i = $$lcssa165$i; $self_parity$0$be$i = $self_parity$2$lcssa$i; } else { $1300 = ($$lcssa163$i + 6) | 0; $1301 = ($ndata$0$lcssa116 - $$lcssa165$i) | 0; $1302 = ($1301 | 0) < 3; if ($1302) { $1303 = $1301 << 3; $1304 = ($1303 | 0) < ($1300 | 0); if ($1304) { break L232; } $1305 = ($1300 | 0) == 0; if ($1305) { $$0$i67119$i = 0; $1660 = $$lcssa165$i; $1661 = $$lcssa163$i; } else { label = 212; } } else { label = 212; } if ((label | 0) == 212) { label = 0; $1306 = ($841 + $$lcssa165$i) | 0; $1307 = HEAP8[$1306 >> 0] | 0; $1308 = $1307 & 255; $1309 = ($$lcssa163$i + 8) | 0; $1310 = $1308 << $1309; $1311 = ($1300 | 0) > 8; do { if ($1311) { $$sum$i64$i = ($$lcssa165$i + 1) | 0; $1312 = ($841 + $$sum$i64$i) | 0; $1313 = HEAP8[$1312 >> 0] | 0; $1314 = $1313 & 255; $1315 = $1314 << $$lcssa163$i; $1316 = $1315 | $1310; $1317 = ($1300 | 0) > 16; if (!$1317) { $ret$0$i66$i = $1316; break; } $$sum1$i65$i = ($$lcssa165$i + 2) | 0; $1318 = ($841 + $$sum1$i65$i) | 0; $1319 = HEAP8[$1318 >> 0] | 0; $1320 = $1319 & 255; $1321 = (8 - $$lcssa163$i) | 0; $1322 = $1320 >>> $1321; $1323 = $1322 | $1316; $ret$0$i66$i = $1323; } else { $ret$0$i66$i = $1310; } } while (0); $1324 = $1300 >> 3; $1325 = ($1324 + $$lcssa165$i) | 0; $1326 = $1300 & 7; $1327 = $ret$0$i66$i >>> 10; $1328 = $1327 & 63; $1329 = $1328 >>> 0 > 44; if ($1329) { break L232; } else { $$0$i67119$i = $1328; $1660 = $1325; $1661 = $1326; } } $1330 = (7584 + $$0$i67119$i) | 0; $1331 = HEAP8[$1330 >> 0] | 0; $1332 = $1331 & 255; $1333 = $1332 ^ $self_parity$2$lcssa$i; HEAP8[$buf1$0$lcssa$i >> 0] = $1331; $$be$i = $1661; $$be193$i = $1660; $self_parity$0$be$i = $1333; } break; } case 3: { $1334 = $1014 | 16; $1335 = ($ndata$0$lcssa116 - $1015) | 0; $1336 = ($1335 | 0) < 3; $1337 = $1335 << 3; $1338 = ($1337 | 0) < ($1334 | 0); $or$cond139$i = $1336 & $1338; if ($or$cond139$i) { break L232; } $1339 = ($841 + $1015) | 0; $1340 = HEAP8[$1339 >> 0] | 0; $1341 = $1340 & 255; $1342 = $1014 | 8; $1343 = $1341 << $1342; $$sum$i59$i = ($1015 + 1) | 0; $1344 = ($841 + $$sum$i59$i) | 0; $1345 = HEAP8[$1344 >> 0] | 0; $1346 = $1345 & 255; $1347 = $1346 << $1014; $1348 = $1347 | $1343; $1349 = ($1334 | 0) == 16; $$pre228$i = ($1015 + 2) | 0; if ($1349) { $ret$0$i61$i = $1348; } else { $1350 = ($841 + $$pre228$i) | 0; $1351 = HEAP8[$1350 >> 0] | 0; $1352 = $1351 & 255; $1353 = (8 - $1014) | 0; $1354 = $1352 >>> $1353; $1355 = $1354 | $1348; $ret$0$i61$i = $1355; } $1356 = HEAP8[$971 >> 0] | 0; $1357 = ($1356 << 24) >> 24 == 0; if ($1357) { $1362 = $ret$0$i61$i >>> 12; $1363 = $1362 & 15; $1364 = $1363 & 255; HEAP8[$1027 >> 0] = $1364; HEAP8[$981 >> 0] = $1364; $1365 = $ret$0$i61$i >>> 8; $1366 = $1365 & 15; $1367 = ($1366 + 1) | 0; $1368 = $1367 & 255; $1369 = ($1027 + 1) | 0; HEAP8[$1369 >> 0] = $1368; HEAP8[$971 >> 0] = $1368; $1370 = $ret$0$i61$i & 255; $1371 = ($1027 + 2) | 0; HEAP8[$1371 >> 0] = $1370; HEAP8[$982 >> 0] = $1370; $$be$i = $1014; $$be193$i = $$pre228$i; $self_parity$0$be$i = $self_parity$0198$i; } else { $$be$i = $1014; $$be193$i = $$pre228$i; $self_parity$0$be$i = $self_parity$0198$i; } break; } case 4: { $1372 = HEAP8[$983 >> 0] | 0; $1373 = $1372 & 255; $1374 = (16 - $1373) | 0; $1375 = ($1373 + $1014) | 0; $1376 = ($ndata$0$lcssa116 - $1015) | 0; $1377 = ($1376 | 0) < 3; if ($1377) { $1378 = $1376 << 3; $1379 = ($1378 | 0) < ($1375 | 0); if ($1379) { break L232; } $1380 = ($1375 | 0) == 0; if ($1380) { $$0$i57123$i = 0; $1406 = $1015; $1409 = $1014; } else { label = 226; } } else { label = 226; } if ((label | 0) == 226) { label = 0; $1381 = ($841 + $1015) | 0; $1382 = HEAP8[$1381 >> 0] | 0; $1383 = $1382 & 255; $1384 = $1014 | 8; $1385 = $1383 << $1384; $1386 = ($1375 | 0) > 8; if ($1386) { $$sum$i54$i = ($1015 + 1) | 0; $1387 = ($841 + $$sum$i54$i) | 0; $1388 = HEAP8[$1387 >> 0] | 0; $1389 = $1388 & 255; $1390 = $1389 << $1014; $1391 = $1390 | $1385; $1392 = ($1375 | 0) > 16; if ($1392) { $$sum1$i55$i = ($1015 + 2) | 0; $1393 = ($841 + $$sum1$i55$i) | 0; $1394 = HEAP8[$1393 >> 0] | 0; $1395 = $1394 & 255; $1396 = (8 - $1014) | 0; $1397 = $1395 >>> $1396; $1398 = $1397 | $1391; $ret$0$i56$i = $1398; } else { $ret$0$i56$i = $1391; } } else { $ret$0$i56$i = $1385; } $1399 = $1375 >>> 3; $1400 = ($1399 + $1015) | 0; $fold135$i = ($1373 + $985) | 0; $1401 = $fold135$i & 7; $1402 = $ret$0$i56$i & 65535; $1403 = $1402 >>> $1374; $1404 = ($1403 | 0) < 0; if ($1404) { break L232; } else { $$0$i57123$i = $1403; $1406 = $1400; $1409 = $1401; } } $1405 = ($ndata$0$lcssa116 - $1406) | 0; $1407 = $1405 << 3; $1408 = ($1407 - $1409) | 0; $1410 = $$0$i57123$i << 3; $1411 = ($1408 | 0) < ($1410 | 0); if ($1411) { break L232; } $1412 = _malloc($$0$i57123$i) | 0; HEAP32[$1027 >> 2] = $1412; $1413 = ((($1026 + (($1024 * 12) | 0)) | 0) + 8) | 0; HEAP32[$1413 >> 2] = $$0$i57123$i; $1414 = ($$0$i57123$i | 0) > 0; if ($1414) { $1417 = $1409; $1419 = $1406; $buf8$0156$i = $1412; $len10$0158$i = $$0$i57123$i; $self_parity$3157$i = $self_parity$0198$i; while (1) { $1415 = ($len10$0158$i + -1) | 0; $1416 = ($1417 + 8) | 0; $1418 = ($ndata$0$lcssa116 - $1419) | 0; $1420 = ($1418 | 0) < 3; do { if ($1420) { $1421 = $1418 << 3; $1422 = ($1421 | 0) < ($1416 | 0); if ($1422) { $1423 = $1416 >> 3; $1424 = ($1423 + $1419) | 0; $1425 = $1416 & 7; $$0$i52$i = -1; $1662 = $1425; $1663 = $1424; break; } else { $1426 = ($1416 | 0) == 0; if ($1426) { $$0$i52$i = 0; $1662 = $1417; $1663 = $1419; break; } else { label = 236; break; } } } else { label = 236; } } while (0); if ((label | 0) == 236) { label = 0; $1427 = ($841 + $1419) | 0; $1428 = HEAP8[$1427 >> 0] | 0; $1429 = $1428 & 255; $1430 = $1429 << $1416; $1431 = ($1417 | 0) > 0; do { if ($1431) { $$sum$i49$i = ($1419 + 1) | 0; $1432 = ($841 + $$sum$i49$i) | 0; $1433 = HEAP8[$1432 >> 0] | 0; $1434 = $1433 & 255; $1435 = $1434 << $1417; $1436 = $1435 | $1430; $1437 = ($1416 | 0) > 16; if (!$1437) { $ret$0$i51$i = $1436; break; } $$sum1$i50$i = ($1419 + 2) | 0; $1438 = ($841 + $$sum1$i50$i) | 0; $1439 = HEAP8[$1438 >> 0] | 0; $1440 = $1439 & 255; $1441 = (8 - $1417) | 0; $1442 = $1440 >>> $1441; $1443 = $1442 | $1436; $ret$0$i51$i = $1443; } else { $ret$0$i51$i = $1430; } } while (0); $1444 = $1416 >> 3; $1445 = ($1444 + $1419) | 0; $1446 = $1416 & 7; $1447 = $ret$0$i51$i >>> 8; $1448 = $1447 & 255; $$0$i52$i = $1448; $1662 = $1446; $1663 = $1445; } $1449 = $$0$i52$i ^ $self_parity$3157$i; $1450 = $$0$i52$i & 255; $1451 = ($buf8$0156$i + 1) | 0; HEAP8[$buf8$0156$i >> 0] = $1450; $1452 = ($1415 | 0) > 0; if ($1452) { $1417 = $1662; $1419 = $1663; $buf8$0156$i = $1451; $len10$0158$i = $1415; $self_parity$3157$i = $1449; } else { $$be$i = $1662; $$be193$i = $1663; $self_parity$0$be$i = $1449; break; } } } else { $$be$i = $1409; $$be193$i = $1406; $self_parity$0$be$i = $self_parity$0198$i; } break; } case 5: { $$be$i = $1014; $$be193$i = $1015; $self_parity$0$be$i = $self_parity$0198$i; break; } case 7: { $1453 = $1014 | 8; $1454 = ($ndata$0$lcssa116 - $1015) | 0; $1455 = ($1454 | 0) < 3; $1456 = $1454 << 3; $1457 = ($1456 | 0) < ($1453 | 0); $or$cond141$i = $1455 & $1457; if ($or$cond141$i) { break L232; } $1458 = ($841 + $1015) | 0; $1459 = HEAP8[$1458 >> 0] | 0; $1460 = $1459 & 255; $1461 = $1460 << $1453; $1462 = ($1453 | 0) == 8; $$pre229$i = ($1015 + 1) | 0; if ($1462) { $ret$0$i46$i = $1461; } else { $1463 = ($841 + $$pre229$i) | 0; $1464 = HEAP8[$1463 >> 0] | 0; $1465 = $1464 & 255; $1466 = $1465 << $1014; $1467 = $1466 | $1461; $ret$0$i46$i = $1467; } $1468 = $ret$0$i46$i >>> 8; $1469 = $1468 & 255; $1470 = $1468 & 128; $1471 = ($1470 | 0) == 0; do { if ($1471) { $1664 = $$pre229$i; $val$0$i = $1469; } else { $1472 = $1468 & 64; $1473 = ($1472 | 0) == 0; if ($1473) { $1474 = ($ndata$0$lcssa116 - $$pre229$i) | 0; $1475 = ($1474 | 0) < 3; $1476 = $1474 << 3; $1477 = ($1476 | 0) < ($1453 | 0); $or$cond143$i = $1475 & $1477; if ($or$cond143$i) { break L232; } $1478 = ($841 + $$pre229$i) | 0; $1479 = HEAP8[$1478 >> 0] | 0; $1480 = $1479 & 255; $1481 = $1480 << $1453; $$pre231$i = ($1015 + 2) | 0; if ($1462) { $ret$0$i41$i = $1481; } else { $1482 = ($841 + $$pre231$i) | 0; $1483 = HEAP8[$1482 >> 0] | 0; $1484 = $1483 & 255; $1485 = $1484 << $1014; $1486 = $1485 | $1481; $ret$0$i41$i = $1486; } $1487 = $ret$0$i41$i >>> 8; $1488 = $1487 & 255; $1664 = $$pre231$i; $val$0$i = $1488; break; } $1489 = $1468 & 32; $1490 = ($1489 | 0) == 0; if (!$1490) { break L232; } $1491 = $1014 | 16; $1492 = ($ndata$0$lcssa116 - $$pre229$i) | 0; $1493 = ($1492 | 0) < 3; $1494 = $1492 << 3; $1495 = ($1494 | 0) < ($1491 | 0); $or$cond145$i = $1493 & $1495; if ($or$cond145$i) { break L232; } $1496 = ($841 + $$pre229$i) | 0; $1497 = HEAP8[$1496 >> 0] | 0; $1498 = $1497 & 255; $1499 = $1498 << $1453; $$sum$i34$i = ($1015 + 2) | 0; $1500 = ($841 + $$sum$i34$i) | 0; $1501 = HEAP8[$1500 >> 0] | 0; $1502 = $1501 & 255; $1503 = $1502 << $1014; $1504 = $1503 | $1499; $1505 = ($1491 | 0) == 16; $$pre233$i = ($1015 + 3) | 0; if ($1505) { $ret$0$i36$i = $1504; } else { $1506 = ($841 + $$pre233$i) | 0; $1507 = HEAP8[$1506 >> 0] | 0; $1508 = $1507 & 255; $1509 = (8 - $1014) | 0; $1510 = $1508 >>> $1509; $1511 = $1510 | $1504; $ret$0$i36$i = $1511; } $1512 = $ret$0$i36$i & 65535; $1664 = $$pre233$i; $val$0$i = $1512; } } while (0); $val$0$c$i = $val$0$i; HEAP32[$1027 >> 2] = $val$0$c$i; $$be$i = $1014; $$be193$i = $1664; $self_parity$0$be$i = $self_parity$0198$i; break; } case 8: { $1513 = HEAP8[$984 >> 0] | 0; $1514 = $1513 & 255; $1515 = (16 - $1514) | 0; $1516 = ($1514 + $1014) | 0; $1517 = ($ndata$0$lcssa116 - $1015) | 0; $1518 = ($1517 | 0) < 3; if ($1518) { $1519 = $1517 << 3; $1520 = ($1519 | 0) < ($1516 | 0); if ($1520) { break L232; } $1521 = ($1516 | 0) == 0; if ($1521) { $$0$i32134$i = 0; $1547 = $1015; $1550 = $1014; } else { label = 259; } } else { label = 259; } if ((label | 0) == 259) { label = 0; $1522 = ($841 + $1015) | 0; $1523 = HEAP8[$1522 >> 0] | 0; $1524 = $1523 & 255; $1525 = $1014 | 8; $1526 = $1524 << $1525; $1527 = ($1516 | 0) > 8; if ($1527) { $$sum$i29$i = ($1015 + 1) | 0; $1528 = ($841 + $$sum$i29$i) | 0; $1529 = HEAP8[$1528 >> 0] | 0; $1530 = $1529 & 255; $1531 = $1530 << $1014; $1532 = $1531 | $1526; $1533 = ($1516 | 0) > 16; if ($1533) { $$sum1$i30$i = ($1015 + 2) | 0; $1534 = ($841 + $$sum1$i30$i) | 0; $1535 = HEAP8[$1534 >> 0] | 0; $1536 = $1535 & 255; $1537 = (8 - $1014) | 0; $1538 = $1536 >>> $1537; $1539 = $1538 | $1532; $ret$0$i31$i = $1539; } else { $ret$0$i31$i = $1532; } } else { $ret$0$i31$i = $1526; } $1540 = $1516 >>> 3; $1541 = ($1540 + $1015) | 0; $fold$i = ($1514 + $985) | 0; $1542 = $fold$i & 7; $1543 = $ret$0$i31$i & 65535; $1544 = $1543 >>> $1515; $1545 = ($1544 | 0) < 0; if ($1545) { break L232; } else { $$0$i32134$i = $1544; $1547 = $1541; $1550 = $1542; } } $1546 = ($ndata$0$lcssa116 - $1547) | 0; $1548 = $1546 << 3; $1549 = ($1548 - $1550) | 0; $1551 = ($$0$i32134$i * 13) | 0; $1552 = ($1549 | 0) < ($1551 | 0); if ($1552) { break L232; } $1553 = $$0$i32134$i << 1; $1554 = _malloc($1553) | 0; HEAP32[$1027 >> 2] = $1554; $1555 = ((($1026 + (($1024 * 12) | 0)) | 0) + 8) | 0; HEAP32[$1555 >> 2] = $1553; $1556 = ($$0$i32134$i | 0) > 0; if ($1556) { $$in$i15 = $$0$i32134$i; $1559 = $1550; $1561 = $1547; $buf12$0150$i = $1554; $self_parity$4149$i = $self_parity$0198$i; while (1) { $1557 = ($$in$i15 + -1) | 0; $1558 = ($1559 + 13) | 0; $1560 = ($ndata$0$lcssa116 - $1561) | 0; $1562 = ($1560 | 0) < 3; do { if ($1562) { $1563 = $1560 << 3; $1564 = ($1563 | 0) < ($1558 | 0); if ($1564) { $1565 = $1558 >> 3; $1566 = ($1565 + $1561) | 0; $1567 = $1558 & 7; $$0$i27$i = -1; $1665 = $1567; $1666 = $1566; break; } else { $1568 = ($1558 | 0) == 0; if ($1568) { $$0$i27$i = 0; $1665 = $1559; $1666 = $1561; break; } else { label = 269; break; } } } else { label = 269; } } while (0); if ((label | 0) == 269) { label = 0; $1569 = ($841 + $1561) | 0; $1570 = HEAP8[$1569 >> 0] | 0; $1571 = $1570 & 255; $1572 = ($1559 + 8) | 0; $1573 = $1571 << $1572; $1574 = ($1558 | 0) > 8; do { if ($1574) { $$sum$i24$i = ($1561 + 1) | 0; $1575 = ($841 + $$sum$i24$i) | 0; $1576 = HEAP8[$1575 >> 0] | 0; $1577 = $1576 & 255; $1578 = $1577 << $1559; $1579 = $1578 | $1573; $1580 = ($1558 | 0) > 16; if (!$1580) { $ret$0$i26$i = $1579; break; } $$sum1$i25$i = ($1561 + 2) | 0; $1581 = ($841 + $$sum1$i25$i) | 0; $1582 = HEAP8[$1581 >> 0] | 0; $1583 = $1582 & 255; $1584 = (8 - $1559) | 0; $1585 = $1583 >>> $1584; $1586 = $1585 | $1579; $ret$0$i26$i = $1586; } else { $ret$0$i26$i = $1573; } } while (0); $1587 = $1558 >> 3; $1588 = ($1587 + $1561) | 0; $1589 = $1558 & 7; $1590 = $ret$0$i26$i >>> 3; $1591 = $1590 & 8191; $$0$i27$i = $1591; $1665 = $1589; $1666 = $1588; } $1592 = (($$0$i27$i >>> 0) / 192) & -1; $1593 = $1592 << 8; $1594 = ($$0$i27$i >>> 0) % 192 & -1; $1595 = $1593 | $1594; $1596 = ($1595 + 33088) | 0; $1597 = $1596 >>> 0 > 40959; $1598 = ($1595 + 49472) | 0; $$$i17 = $1597 ? $1598 : $1596; $1599 = $$$i17 ^ $self_parity$4149$i; $1600 = $$$i17 >>> 8; $1601 = $1600 & 255; $1602 = ($buf12$0150$i + 1) | 0; HEAP8[$buf12$0150$i >> 0] = $1601; $1603 = $$$i17 & 255; $1604 = ($buf12$0150$i + 2) | 0; HEAP8[$1602 >> 0] = $1603; $1605 = ($1557 | 0) > 0; if ($1605) { $$in$i15 = $1557; $1559 = $1665; $1561 = $1666; $buf12$0150$i = $1604; $self_parity$4149$i = $1599; } else { $$be$i = $1665; $$be193$i = $1666; $self_parity$0$be$i = $1599; break; } } } else { $$be$i = $1550; $$be193$i = $1547; $self_parity$0$be$i = $self_parity$0198$i; } break; } case 9: { $1606 = $1014 | 8; $1607 = ($ndata$0$lcssa116 - $1015) | 0; $1608 = ($1607 | 0) < 3; $1609 = $1607 << 3; $1610 = ($1609 | 0) < ($1606 | 0); $or$cond147$i = $1608 & $1610; if ($or$cond147$i) { $$0$i$i18 = -1; } else { $1611 = ($841 + $1015) | 0; $1612 = HEAP8[$1611 >> 0] | 0; $1613 = $1612 & 255; $1614 = $1613 << $1606; $1615 = ($1606 | 0) == 8; if ($1615) { $ret$0$i$i = $1614; } else { $$sum$i$i = ($1015 + 1) | 0; $1616 = ($841 + $$sum$i$i) | 0; $1617 = HEAP8[$1616 >> 0] | 0; $1618 = $1617 & 255; $1619 = $1618 << $1014; $1620 = $1619 | $1614; $ret$0$i$i = $1620; } $1621 = $ret$0$i$i >>> 8; $1622 = $1621 & 255; $$0$i$i18 = $1622; } $1623 = $$0$i$i18 >>> 0 < 100; $$off$i = ($$0$i$i18 + -165) | 0; $1624 = $$off$i >>> 0 < 26; $or$cond$i19 = $1623 | $1624; $$off6$i = ($$0$i$i18 + -197) | 0; $1625 = $$off6$i >>> 0 < 26; $or$cond9$i20 = $or$cond$i19 | $1625; if (!$or$cond9$i20) { break L232; } $1626 = ($1015 + 1) | 0; $$c$i = $$0$i$i18; HEAP32[$1027 >> 2] = $$c$i; $$be$i = $1014; $$be193$i = $1626; $self_parity$0$be$i = $self_parity$0198$i; break; } default: { break L232; } } } while (0); $1358 = ($ndata$0$lcssa116 - $$be193$i) | 0; $1359 = $1358 << 3; $1360 = ($1359 - $$be$i) | 0; $1361 = ($1360 | 0) > 3; if ($1361) { $986 = $$be$i; $987 = $1358; $993 = $$be193$i; $centries$0197$i = $centries$1$i; $self_parity$0198$i = $self_parity$0$be$i; } else { $self_parity$0$lcssa$i$ph = $self_parity$0$be$i; label = 280; break; } } if ((label | 0) == 280) { $$pre = HEAP32[$_qrdata >> 2] | 0; $$pre114 = HEAP32[$970 >> 2] | 0; $phitmp115 = ($$pre114 * 12) | 0; $1631 = $$pre; $1632 = $phitmp115; $self_parity$0$lcssa$i = $self_parity$0$lcssa$i$ph; label = 281; break; } $1634 = HEAP32[$970 >> 2] | 0; $1635 = ($1634 | 0) > 0; $1636 = HEAP32[$_qrdata >> 2] | 0; if ($1635) { $1638 = $1636; $1667 = $1634; $i$01$i = 0; while (1) { $1637 = ($1638 + (($i$01$i * 12) | 0)) | 0; $1639 = HEAP32[$1637 >> 2] | 0; $1640 = ($1639 + -1) | 0; $1641 = $1640 & $1639; $1642 = ($1641 | 0) == 0; if ($1642) { $1643 = ((($1638 + (($i$01$i * 12) | 0)) | 0) + 4) | 0; $1644 = HEAP32[$1643 >> 2] | 0; _free($1644); $$pre$i23 = HEAP32[$970 >> 2] | 0; $$pre3$i = HEAP32[$_qrdata >> 2] | 0; $1647 = $$pre$i23; $1668 = $$pre3$i; } else { $1647 = $1667; $1668 = $1638; } $1645 = ($i$01$i + 1) | 0; $1646 = ($1645 | 0) < ($1647 | 0); if ($1646) { $1638 = $1668; $1667 = $1647; $i$01$i = $1645; } else { $$lcssa$i = $1668; break; } } } else { $$lcssa$i = $1636; } _free($$lcssa$i); $$0$i2128 = -1; } else { $1631 = 0; $1632 = 0; $self_parity$0$lcssa$i = 0; label = 281; } } while (0); if ((label | 0) == 281) { $1627 = $self_parity$0$lcssa$i >>> 8; $1628 = $1627 ^ $self_parity$0$lcssa$i; $1629 = $1628 & 255; $1630 = ($_qrdata + 13) | 0; HEAP8[$1630 >> 0] = $1629; $1633 = _realloc($1631, $1632) | 0; HEAP32[$_qrdata >> 2] = $1633; $$0$i2128 = 0; } $1648 = $_version & 255; $1649 = ($_qrdata + 8) | 0; HEAP8[$1649 >> 0] = $1648; $1650 = $810 & 255; $1651 = ($_qrdata + 9) | 0; HEAP8[$1651 >> 0] = $1650; $ret$2 = $$0$i2128; _free($841); STACKTOP = sp; return $ret$2 | 0; } function _qr_hom_cell_init($_cell, $_u0, $_v0, $_u1, $_v1, $_u2, $_v2, $_u3, $_v3, $_x0, $_y0, $_x1, $_y1, $_x2, $_y2, $_x3, $_y3) { $_cell = $_cell | 0; $_u0 = $_u0 | 0; $_v0 = $_v0 | 0; $_u1 = $_u1 | 0; $_v1 = $_v1 | 0; $_u2 = $_u2 | 0; $_v2 = $_v2 | 0; $_u3 = $_u3 | 0; $_v3 = $_v3 | 0; $_x0 = $_x0 | 0; $_y0 = $_y0 | 0; $_x1 = $_x1 | 0; $_y1 = $_y1 | 0; $_x2 = $_x2 | 0; $_y2 = $_y2 | 0; $_x3 = $_x3 | 0; $_y3 = $_y3 | 0; var $$neg82 = 0, $$neg85 = 0, $$neg88 = 0, $$neg91 = 0, $$neg94 = 0, $$neg97 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0; var $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0; var $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0; var $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0; var $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0; var $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0; var $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0; var $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0; var $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0; var $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0; var $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0; var $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0; var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0; var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0; var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0; var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0; var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a22$0 = 0, $i00$0 = 0, $i01$0 = 0, $i10$0 = 0, $i11$0 = 0, $i20$0 = 0, $i21$0 = 0, $ispos = 0, $ispos11 = 0; var $ispos15 = 0, $ispos21 = 0, $ispos23 = 0, $ispos27 = 0, $ispos3 = 0, $ispos43 = 0, $ispos57 = 0, $ispos61 = 0, $ispos65 = 0, $ispos69 = 0, $ispos73 = 0, $ispos77 = 0, $ispos9 = 0, $neg = 0, $neg10 = 0, $neg12 = 0, $neg16 = 0, $neg22 = 0, $neg24 = 0, $neg28 = 0; var $neg4 = 0, $neg44 = 0, $neg58 = 0, $neg62 = 0, $neg66 = 0, $neg70 = 0, $neg74 = 0, $neg78 = 0, $or$cond = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_u1 - $_u0) | 0; $1 = ($_u2 - $_u0) | 0; $2 = ($_u3 - $_u0) | 0; $3 = ($_u3 - $_u1) | 0; $4 = ($_u3 - $_u2) | 0; $5 = ($_v1 - $_v0) | 0; $6 = ($_v2 - $_v0) | 0; $7 = ($_v3 - $_v0) | 0; $8 = ($_v3 - $_v1) | 0; $9 = ($_v3 - $_v2) | 0; $10 = Math_imul($4, $5) | 0; $11 = Math_imul($9, $0) | 0; $12 = ($10 - $11) | 0; $13 = Math_imul($8, $1) | 0; $14 = Math_imul($3, $6) | 0; $15 = ($13 - $14) | 0; $16 = ($10 | 0) == ($11 | 0); $17 = ($13 | 0) == ($14 | 0); $or$cond = $16 & $17; if ($or$cond) { $a22$0 = 1; } else { $18 = Math_imul($8, $4) | 0; $19 = Math_imul($9, $3) | 0; $20 = ($18 - $19) | 0; $a22$0 = $20; } $21 = ($a22$0 + $12) | 0; $22 = Math_imul($21, $0) | 0; $23 = ($a22$0 + $15) | 0; $24 = Math_imul($23, $1) | 0; $25 = Math_imul($21, $5) | 0; $26 = Math_imul($23, $6) | 0; $27 = Math_imul($26, $a22$0) | 0; $28 = (0 - $a22$0) | 0; $29 = Math_imul($24, $28) | 0; $30 = Math_imul($25, $28) | 0; $31 = Math_imul($22, $a22$0) | 0; $32 = Math_imul($25, $15) | 0; $33 = Math_imul($26, $12) | 0; $34 = ($32 - $33) | 0; $35 = Math_imul($24, $12) | 0; $36 = Math_imul($22, $15) | 0; $37 = ($35 - $36) | 0; $38 = Math_imul($22, $26) | 0; $39 = Math_imul($24, $25) | 0; $40 = ($38 - $39) | 0; $41 = ($27 | 0) == 0; if ($41) { $i00$0 = 0; } else { $ispos77 = ($27 | 0) > -1; $neg78 = (0 - $27) | 0; $42 = $ispos77 ? $27 : $neg78; $43 = $42 >> 1; $44 = $40 >> 31; $45 = ($43 + $44) | 0; $46 = $45 ^ $44; $47 = ($46 + $40) | 0; $48 = (($47 | 0) / ($42 | 0)) & -1; $49 = $27 >> 31; $50 = ($48 + $49) | 0; $51 = $50 ^ $49; $i00$0 = $51; } $52 = ($29 | 0) == 0; if ($52) { $i01$0 = 0; } else { $ispos73 = ($29 | 0) > -1; $neg74 = (0 - $29) | 0; $53 = $ispos73 ? $29 : $neg74; $54 = $53 >> 1; $55 = $40 >> 31; $56 = ($54 + $55) | 0; $57 = $56 ^ $55; $58 = ($57 + $40) | 0; $59 = (($58 | 0) / ($53 | 0)) & -1; $60 = $29 >> 31; $61 = ($59 + $60) | 0; $62 = $61 ^ $60; $i01$0 = $62; } $63 = ($30 | 0) == 0; if ($63) { $i10$0 = 0; } else { $ispos69 = ($30 | 0) > -1; $neg70 = (0 - $30) | 0; $64 = $ispos69 ? $30 : $neg70; $65 = $64 >> 1; $66 = $40 >> 31; $67 = ($65 + $66) | 0; $68 = $67 ^ $66; $69 = ($68 + $40) | 0; $70 = (($69 | 0) / ($64 | 0)) & -1; $71 = $30 >> 31; $72 = ($70 + $71) | 0; $73 = $72 ^ $71; $i10$0 = $73; } $74 = ($31 | 0) == 0; if ($74) { $i11$0 = 0; } else { $ispos65 = ($31 | 0) > -1; $neg66 = (0 - $31) | 0; $75 = $ispos65 ? $31 : $neg66; $76 = $75 >> 1; $77 = $40 >> 31; $78 = ($76 + $77) | 0; $79 = $78 ^ $77; $80 = ($79 + $40) | 0; $81 = (($80 | 0) / ($75 | 0)) & -1; $82 = $31 >> 31; $83 = ($81 + $82) | 0; $84 = $83 ^ $82; $i11$0 = $84; } $85 = ($32 | 0) == ($33 | 0); if ($85) { $i20$0 = $34; } else { $ispos61 = ($34 | 0) > -1; $neg62 = (0 - $34) | 0; $86 = $ispos61 ? $34 : $neg62; $87 = $86 >> 1; $88 = $40 >> 31; $89 = ($87 + $88) | 0; $90 = $89 ^ $88; $91 = ($90 + $40) | 0; $92 = (($91 | 0) / ($86 | 0)) & -1; $93 = $34 >> 31; $94 = ($92 + $93) | 0; $95 = $94 ^ $93; $i20$0 = $95; } $96 = ($35 | 0) == ($36 | 0); if ($96) { $i21$0 = $37; } else { $ispos57 = ($37 | 0) > -1; $neg58 = (0 - $37) | 0; $97 = $ispos57 ? $37 : $neg58; $98 = $97 >> 1; $99 = $40 >> 31; $100 = ($98 + $99) | 0; $101 = $100 ^ $99; $102 = ($101 + $40) | 0; $103 = (($102 | 0) / ($97 | 0)) & -1; $104 = $37 >> 31; $105 = ($103 + $104) | 0; $106 = $105 ^ $104; $i21$0 = $106; } $107 = ($_x1 - $_x0) | 0; $108 = ($_x2 - $_x0) | 0; $109 = ($_x3 - $_x0) | 0; $110 = ($_x3 - $_x1) | 0; $111 = ($_x3 - $_x2) | 0; $112 = ($_y1 - $_y0) | 0; $113 = ($_y2 - $_y0) | 0; $114 = ($_y3 - $_y0) | 0; $115 = ($_y3 - $_y1) | 0; $116 = ($_y3 - $_y2) | 0; $117 = Math_imul($111, $112) | 0; $118 = Math_imul($116, $107) | 0; $119 = ($117 - $118) | 0; $120 = Math_imul($115, $108) | 0; $121 = Math_imul($110, $113) | 0; $122 = ($120 - $121) | 0; $123 = Math_imul($115, $111) | 0; $124 = Math_imul($116, $110) | 0; $125 = ($123 - $124) | 0; $ispos = ($107 | 0) > -1; $neg = (0 - $107) | 0; $126 = $ispos ? $107 : $neg; $ispos3 = ($112 | 0) > -1; $neg4 = (0 - $112) | 0; $127 = $ispos3 ? $112 : $neg4; $128 = ($126 - $127) | 0; $129 = ($127 | 0) > ($126 | 0); $130 = $129 ? $128 : 0; $131 = ($126 - $130) | 0; $132 = _qr_ilog($131) | 0; $133 = ($119 + $125) | 0; $ispos9 = ($133 | 0) > -1; $neg10 = (0 - $133) | 0; $134 = $ispos9 ? $133 : $neg10; $135 = _qr_ilog($134) | 0; $136 = ($135 + $132) | 0; $ispos11 = ($108 | 0) > -1; $neg12 = (0 - $108) | 0; $137 = $ispos11 ? $108 : $neg12; $ispos15 = ($113 | 0) > -1; $neg16 = (0 - $113) | 0; $138 = $ispos15 ? $113 : $neg16; $139 = ($137 - $138) | 0; $140 = ($138 | 0) > ($137 | 0); $141 = $140 ? $139 : 0; $142 = ($137 - $141) | 0; $143 = _qr_ilog($142) | 0; $144 = ($122 + $125) | 0; $ispos21 = ($144 | 0) > -1; $neg22 = (0 - $144) | 0; $145 = $ispos21 ? $144 : $neg22; $146 = _qr_ilog($145) | 0; $147 = ($146 + $143) | 0; $ispos23 = ($119 | 0) > -1; $neg24 = (0 - $119) | 0; $148 = $ispos23 ? $119 : $neg24; $ispos27 = ($122 | 0) > -1; $neg28 = (0 - $122) | 0; $149 = $ispos27 ? $122 : $neg28; $150 = ($148 - $149) | 0; $151 = ($149 | 0) > ($148 | 0); $152 = $151 ? $150 : 0; $153 = ($148 - $152) | 0; $ispos43 = ($125 | 0) > -1; $neg44 = (0 - $125) | 0; $154 = $ispos43 ? $125 : $neg44; $155 = ($153 - $154) | 0; $156 = ($154 | 0) > ($153 | 0); $157 = $156 ? $155 : 0; $158 = ($153 - $157) | 0; $159 = _qr_ilog($158) | 0; $160 = ($136 - $147) | 0; $161 = ($147 | 0) > ($136 | 0); $162 = $161 ? $160 : 0; $163 = ($136 - $162) | 0; $164 = ($163 - $159) | 0; $165 = ($159 | 0) > ($163 | 0); $166 = $165 ? $164 : 0; $167 = ($163 - $166) | 0; $168 = ($167 + -27) | 0; $169 = ($168 | 0) > 0; $170 = $169 ? $168 : 0; $171 = 1 << $170; $172 = $171 >> 1; $173 = ($107 | 0) < 0; $174 = ($173 << 31) >> 31; $175 = ($133 | 0) < 0; $176 = ($175 << 31) >> 31; $177 = ___muldi3($133 | 0, $176 | 0, $107 | 0, $174 | 0) | 0; $178 = tempRet0; $179 = ($172 | 0) < 0; $180 = ($179 << 31) >> 31; $181 = _i64Add($172 | 0, $180 | 0, $177 | 0, $178 | 0) | 0; $182 = tempRet0; $183 = _bitshift64Ashr($181 | 0, $182 | 0, $170 | 0) | 0; $184 = tempRet0; $185 = ($108 | 0) < 0; $186 = ($185 << 31) >> 31; $187 = ($144 | 0) < 0; $188 = ($187 << 31) >> 31; $189 = ___muldi3($144 | 0, $188 | 0, $108 | 0, $186 | 0) | 0; $190 = tempRet0; $191 = _i64Add($172 | 0, $180 | 0, $189 | 0, $190 | 0) | 0; $192 = tempRet0; $193 = _bitshift64Ashr($191 | 0, $192 | 0, $170 | 0) | 0; $194 = tempRet0; $195 = ($112 | 0) < 0; $196 = ($195 << 31) >> 31; $197 = ___muldi3($133 | 0, $176 | 0, $112 | 0, $196 | 0) | 0; $198 = tempRet0; $199 = _i64Add($172 | 0, $180 | 0, $197 | 0, $198 | 0) | 0; $200 = tempRet0; $201 = _bitshift64Ashr($199 | 0, $200 | 0, $170 | 0) | 0; $202 = tempRet0; $203 = ($113 | 0) < 0; $204 = ($203 << 31) >> 31; $205 = ___muldi3($144 | 0, $188 | 0, $113 | 0, $204 | 0) | 0; $206 = tempRet0; $207 = _i64Add($172 | 0, $180 | 0, $205 | 0, $206 | 0) | 0; $208 = tempRet0; $209 = _bitshift64Ashr($207 | 0, $208 | 0, $170 | 0) | 0; $210 = tempRet0; $211 = ($i00$0 | 0) != 0; if ($211) { $212 = $i00$0 >> 1; $213 = $183 >> 31; $214 = ($213 + $212) | 0; $215 = $214 ^ $213; $216 = ($215 + $183) | 0; $217 = (($216 | 0) / ($i00$0 | 0)) & -1; $226 = $217; } else { $226 = 0; } $218 = ($i10$0 | 0) != 0; if ($218) { $219 = $i10$0 >> 1; $220 = $193 >> 31; $221 = ($220 + $219) | 0; $222 = $221 ^ $220; $223 = ($222 + $193) | 0; $224 = (($223 | 0) / ($i10$0 | 0)) & -1; $227 = $224; } else { $227 = 0; } $225 = ($227 + $226) | 0; HEAP32[$_cell >> 2] = $225; $228 = ($i01$0 | 0) != 0; if ($228) { $229 = $i01$0 >> 1; $230 = $183 >> 31; $231 = ($230 + $229) | 0; $232 = $231 ^ $230; $233 = ($232 + $183) | 0; $234 = (($233 | 0) / ($i01$0 | 0)) & -1; $243 = $234; } else { $243 = 0; } $235 = ($i11$0 | 0) != 0; if ($235) { $236 = $i11$0 >> 1; $237 = $193 >> 31; $238 = ($237 + $236) | 0; $239 = $238 ^ $237; $240 = ($239 + $193) | 0; $241 = (($240 | 0) / ($i11$0 | 0)) & -1; $244 = $241; } else { $244 = 0; } $242 = ($244 + $243) | 0; $245 = ($_cell + 4) | 0; HEAP32[$245 >> 2] = $242; if ($211) { $246 = $i00$0 >> 1; $247 = $201 >> 31; $248 = ($247 + $246) | 0; $249 = $248 ^ $247; $250 = ($249 + $201) | 0; $251 = (($250 | 0) / ($i00$0 | 0)) & -1; $259 = $251; } else { $259 = 0; } if ($218) { $252 = $i10$0 >> 1; $253 = $209 >> 31; $254 = ($253 + $252) | 0; $255 = $254 ^ $253; $256 = ($255 + $209) | 0; $257 = (($256 | 0) / ($i10$0 | 0)) & -1; $260 = $257; } else { $260 = 0; } $258 = ($260 + $259) | 0; $261 = ($_cell + 12) | 0; HEAP32[$261 >> 2] = $258; if ($228) { $262 = $i01$0 >> 1; $263 = $201 >> 31; $264 = ($263 + $262) | 0; $265 = $264 ^ $263; $266 = ($265 + $201) | 0; $267 = (($266 | 0) / ($i01$0 | 0)) & -1; $275 = $267; } else { $275 = 0; } if ($235) { $268 = $i11$0 >> 1; $269 = $209 >> 31; $270 = ($269 + $268) | 0; $271 = $270 ^ $269; $272 = ($271 + $209) | 0; $273 = (($272 | 0) / ($i11$0 | 0)) & -1; $276 = $273; } else { $276 = 0; } $274 = ($276 + $275) | 0; $277 = ($_cell + 16) | 0; HEAP32[$277 >> 2] = $274; if ($211) { $278 = $i00$0 >> 1; $279 = $119 >> 31; $280 = ($278 + $279) | 0; $281 = $280 ^ $279; $282 = ($281 + $119) | 0; $283 = (($282 | 0) / ($i00$0 | 0)) & -1; $298 = $283; } else { $298 = 0; } if ($218) { $284 = $i10$0 >> 1; $285 = $122 >> 31; $286 = ($284 + $285) | 0; $287 = $286 ^ $285; $288 = ($287 + $122) | 0; $289 = (($288 | 0) / ($i10$0 | 0)) & -1; $300 = $289; } else { $300 = 0; } $290 = ($i20$0 | 0) == 0; if ($290) { $302 = 0; } else { $291 = $i20$0 >> 1; $292 = $125 >> 31; $293 = ($291 + $292) | 0; $294 = $293 ^ $292; $295 = ($294 + $125) | 0; $296 = (($295 | 0) / ($i20$0 | 0)) & -1; $302 = $296; } $297 = ($298 + $172) | 0; $299 = ($297 + $300) | 0; $301 = ($299 + $302) | 0; $303 = $301 >> $170; $304 = ($_cell + 24) | 0; HEAP32[$304 >> 2] = $303; if ($228) { $305 = $i01$0 >> 1; $306 = $119 >> 31; $307 = ($305 + $306) | 0; $308 = $307 ^ $306; $309 = ($308 + $119) | 0; $310 = (($309 | 0) / ($i01$0 | 0)) & -1; $325 = $310; } else { $325 = 0; } if ($235) { $311 = $i11$0 >> 1; $312 = $122 >> 31; $313 = ($311 + $312) | 0; $314 = $313 ^ $312; $315 = ($314 + $122) | 0; $316 = (($315 | 0) / ($i11$0 | 0)) & -1; $327 = $316; } else { $327 = 0; } $317 = ($i21$0 | 0) == 0; if ($317) { $329 = 0; $324 = ($325 + $172) | 0; $326 = ($324 + $327) | 0; $328 = ($326 + $329) | 0; $330 = $328 >> $170; $331 = ($_cell + 28) | 0; HEAP32[$331 >> 2] = $330; $332 = ($172 + $125) | 0; $333 = $332 >> $170; $334 = ($_cell + 32) | 0; HEAP32[$334 >> 2] = $333; $335 = Math_imul($225, $0) | 0; $336 = Math_imul($242, $5) | 0; $337 = Math_imul($258, $0) | 0; $338 = Math_imul($274, $5) | 0; $339 = Math_imul($303, $0) | 0; $340 = Math_imul($330, $5) | 0; $341 = ($339 + $333) | 0; $342 = ($341 + $340) | 0; $343 = Math_imul($342, $107) | 0; $344 = Math_imul($342, $112) | 0; $345 = Math_imul($225, $1) | 0; $346 = Math_imul($242, $6) | 0; $347 = Math_imul($258, $1) | 0; $348 = Math_imul($274, $6) | 0; $349 = Math_imul($303, $1) | 0; $350 = Math_imul($330, $6) | 0; $351 = ($349 + $333) | 0; $352 = ($351 + $350) | 0; $353 = Math_imul($352, $108) | 0; $354 = Math_imul($352, $113) | 0; $355 = Math_imul($225, $2) | 0; $356 = Math_imul($242, $7) | 0; $357 = Math_imul($258, $2) | 0; $358 = Math_imul($274, $7) | 0; $359 = Math_imul($303, $2) | 0; $360 = Math_imul($330, $7) | 0; $361 = ($359 + $333) | 0; $362 = ($361 + $360) | 0; $363 = Math_imul($362, $109) | 0; $364 = Math_imul($362, $114) | 0; $$neg94 = (2 - $335) | 0; $365 = ($$neg94 - $345) | 0; $$neg88 = ($365 - $355) | 0; $366 = ($$neg88 - $336) | 0; $$neg82 = ($366 - $346) | 0; $367 = ($$neg82 - $356) | 0; $368 = ($367 + $343) | 0; $369 = ($368 + $353) | 0; $370 = ($369 + $363) | 0; $371 = $370 >> 2; $372 = ($_cell + 8) | 0; HEAP32[$372 >> 2] = $371; $$neg97 = (2 - $337) | 0; $373 = ($$neg97 - $347) | 0; $$neg91 = ($373 - $357) | 0; $374 = ($$neg91 - $338) | 0; $$neg85 = ($374 - $348) | 0; $375 = ($$neg85 - $358) | 0; $376 = ($375 + $344) | 0; $377 = ($376 + $354) | 0; $378 = ($377 + $364) | 0; $379 = $378 >> 2; $380 = ($_cell + 20) | 0; HEAP32[$380 >> 2] = $379; $381 = ($_cell + 36) | 0; HEAP32[$381 >> 2] = $_x0; $382 = ($_cell + 40) | 0; HEAP32[$382 >> 2] = $_y0; $383 = ($_cell + 44) | 0; HEAP32[$383 >> 2] = $_u0; $384 = ($_cell + 48) | 0; HEAP32[$384 >> 2] = $_v0; STACKTOP = sp; return; } $318 = $i21$0 >> 1; $319 = $125 >> 31; $320 = ($318 + $319) | 0; $321 = $320 ^ $319; $322 = ($321 + $125) | 0; $323 = (($322 | 0) / ($i21$0 | 0)) & -1; $329 = $323; $324 = ($325 + $172) | 0; $326 = ($324 + $327) | 0; $328 = ($326 + $329) | 0; $330 = $328 >> $170; $331 = ($_cell + 28) | 0; HEAP32[$331 >> 2] = $330; $332 = ($172 + $125) | 0; $333 = $332 >> $170; $334 = ($_cell + 32) | 0; HEAP32[$334 >> 2] = $333; $335 = Math_imul($225, $0) | 0; $336 = Math_imul($242, $5) | 0; $337 = Math_imul($258, $0) | 0; $338 = Math_imul($274, $5) | 0; $339 = Math_imul($303, $0) | 0; $340 = Math_imul($330, $5) | 0; $341 = ($339 + $333) | 0; $342 = ($341 + $340) | 0; $343 = Math_imul($342, $107) | 0; $344 = Math_imul($342, $112) | 0; $345 = Math_imul($225, $1) | 0; $346 = Math_imul($242, $6) | 0; $347 = Math_imul($258, $1) | 0; $348 = Math_imul($274, $6) | 0; $349 = Math_imul($303, $1) | 0; $350 = Math_imul($330, $6) | 0; $351 = ($349 + $333) | 0; $352 = ($351 + $350) | 0; $353 = Math_imul($352, $108) | 0; $354 = Math_imul($352, $113) | 0; $355 = Math_imul($225, $2) | 0; $356 = Math_imul($242, $7) | 0; $357 = Math_imul($258, $2) | 0; $358 = Math_imul($274, $7) | 0; $359 = Math_imul($303, $2) | 0; $360 = Math_imul($330, $7) | 0; $361 = ($359 + $333) | 0; $362 = ($361 + $360) | 0; $363 = Math_imul($362, $109) | 0; $364 = Math_imul($362, $114) | 0; $$neg94 = (2 - $335) | 0; $365 = ($$neg94 - $345) | 0; $$neg88 = ($365 - $355) | 0; $366 = ($$neg88 - $336) | 0; $$neg82 = ($366 - $346) | 0; $367 = ($$neg82 - $356) | 0; $368 = ($367 + $343) | 0; $369 = ($368 + $353) | 0; $370 = ($369 + $363) | 0; $371 = $370 >> 2; $372 = ($_cell + 8) | 0; HEAP32[$372 >> 2] = $371; $$neg97 = (2 - $337) | 0; $373 = ($$neg97 - $347) | 0; $$neg91 = ($373 - $357) | 0; $374 = ($$neg91 - $338) | 0; $$neg85 = ($374 - $348) | 0; $375 = ($$neg85 - $358) | 0; $376 = ($375 + $344) | 0; $377 = ($376 + $354) | 0; $378 = ($377 + $364) | 0; $379 = $378 >> 2; $380 = ($_cell + 20) | 0; HEAP32[$380 >> 2] = $379; $381 = ($_cell + 36) | 0; HEAP32[$381 >> 2] = $_x0; $382 = ($_cell + 40) | 0; HEAP32[$382 >> 2] = $_y0; $383 = ($_cell + 44) | 0; HEAP32[$383 >> 2] = $_u0; $384 = ($_cell + 48) | 0; HEAP32[$384 >> 2] = $_v0; STACKTOP = sp; return; } function _qr_hom_cell_project($_p, $_cell, $_u, $_v, $_res) { $_p = $_p | 0; $_cell = $_cell | 0; $_u = $_u | 0; $_v = $_v | 0; $_res = $_res | 0; var $$0$i = 0, $$01$i = 0, $$02$i = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_cell + 44) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = $1 << $_res; $3 = ($_u - $2) | 0; $4 = ($_cell + 48) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = $5 << $_res; $7 = ($_v - $6) | 0; $8 = HEAP32[$_cell >> 2] | 0; $9 = Math_imul($8, $3) | 0; $10 = ($_cell + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = Math_imul($11, $7) | 0; $13 = ($12 + $9) | 0; $14 = ($_cell + 8) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = $15 << $_res; $17 = ($13 + $16) | 0; $18 = ($_cell + 12) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = Math_imul($19, $3) | 0; $21 = ($_cell + 16) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = Math_imul($22, $7) | 0; $24 = ($23 + $20) | 0; $25 = ($_cell + 20) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = $26 << $_res; $28 = ($24 + $27) | 0; $29 = ($_cell + 24) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = Math_imul($30, $3) | 0; $32 = ($_cell + 28) | 0; $33 = HEAP32[$32 >> 2] | 0; $34 = Math_imul($33, $7) | 0; $35 = ($34 + $31) | 0; $36 = ($_cell + 32) | 0; $37 = HEAP32[$36 >> 2] | 0; $38 = $37 << $_res; $39 = ($35 + $38) | 0; $40 = ($39 | 0) == 0; if ($40) { $41 = $17 >>> 31; $42 = ($41 + 2147483647) | 0; HEAP32[$_p >> 2] = $42; $43 = $28 >>> 31; $44 = ($43 + 2147483647) | 0; $45 = ($_p + 4) | 0; HEAP32[$45 >> 2] = $44; STACKTOP = sp; return; } $46 = ($39 | 0) < 0; if ($46) { $47 = (0 - $17) | 0; $48 = (0 - $28) | 0; $49 = (0 - $39) | 0; $$0$i = $49; $$01$i = $48; $$02$i = $47; } else { $$0$i = $39; $$01$i = $28; $$02$i = $17; } $50 = $$0$i >> 1; $51 = $$02$i >> 31; $52 = ($50 + $51) | 0; $53 = $52 ^ $51; $54 = ($53 + $$02$i) | 0; $55 = (($54 | 0) / ($$0$i | 0)) & -1; $56 = ($_cell + 36) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 + $55) | 0; HEAP32[$_p >> 2] = $58; $59 = $$01$i >> 31; $60 = ($50 + $59) | 0; $61 = $60 ^ $59; $62 = ($61 + $$01$i) | 0; $63 = (($62 | 0) / ($$0$i | 0)) & -1; $64 = ($_cell + 40) | 0; $65 = HEAP32[$64 >> 2] | 0; $66 = ($65 + $63) | 0; $67 = ($_p + 4) | 0; HEAP32[$67 >> 2] = $66; STACKTOP = sp; return; } function _qr_alignment_pattern_search($_p, $_cell, $_u, $_v, $_r, $_img, $_width, $_height) { $_p = $_p | 0; $_cell = $_cell | 0; $_u = $_u | 0; $_v = $_v | 0; $_r = $_r | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $$0 = 0, $$0$i = 0, $$0$i13 = 0, $$01$i = 0, $$01$i12 = 0, $$02$i = 0, $$02$i11 = 0, $$best_match$156 = 0, $$bestx$153 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0; var $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0; var $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0; var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; var $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; var $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0; var $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0; var $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, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; var $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; var $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0; var $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0; var $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $best_dist$0$lcssa = 0, $best_dist$078 = 0, $best_dist$1$lcssa = 0, $best_dist$154 = 0, $best_dist$425 = 0, $best_match$0$lcssa = 0, $best_match$079 = 0, $best_match$1$lcssa = 0, $best_match$156 = 0, $best_match$426 = 0, $bestx$0$lcssa = 0, $bestx$077 = 0, $bestx$1$lcssa = 0, $bestx$153 = 0, $bestx$4$ = 0; var $bestx$424 = 0, $bestx$5 = 0, $besty$0$lcssa = 0, $besty$076 = 0, $besty$1$lcssa = 0, $besty$152 = 0, $besty$4$ = 0, $besty$423 = 0, $besty$5 = 0, $c = 0, $cx$0 = 0, $cy$0 = 0, $exitcond = 0, $exitcond113 = 0, $exitcond114 = 0, $i$097 = 0, $i$175 = 0, $i$238 = 0, $j$092 = 0, $j$151 = 0; var $nc = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i19 = 0, $or$cond$i8 = 0, $or$cond1 = 0, $or$cond1$i = 0, $or$cond1$i15 = 0, $or$cond2 = 0, $or$cond3 = 0, $or$cond4 = 0, $or$cond4$1 = 0, $p = 0, $pc = 0, $ret$0$lcssa$i = 0, $ret$0$lcssa$i20 = 0, $ret$0$lcssa$i20$best_dist$154 = 0, $ret$03$i = 0, $ret$03$i17 = 0, $ret$03$i6 = 0; var $storemerge = 0, $storemerge$1 = 0, $storemerge$besty$152 = 0, $sum = 0, $sum98 = 0, $sum99 = 0, $w$089 = 0, $w$172 = 0, $w$2$lcssa = 0, $w$248 = 0, $w$3 = 0, $w0$094 = 0, $w3$0 = 0, $x$091 = 0, $x$174 = 0, $x$2$lcssa = 0, $x$250 = 0, $x$3 = 0, $x0$096 = 0, $y$02$i = 0; var $y$02$i18 = 0, $y$02$i7 = 0, $y$090 = 0, $y$173 = 0, $y$2$lcssa = 0, $y$249 = 0, $y$3 = 0, $y0$095 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 256) | 0; $c = (sp + 224) | 0; $nc = (sp + 208) | 0; $p = (sp + 8) | 0; $pc = sp; $0 = ($_u + -2) | 0; $1 = ($_cell + 44) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($0 - $2) | 0; $4 = ($_v + -2) | 0; $5 = ($_cell + 48) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($4 - $6) | 0; $8 = HEAP32[$_cell >> 2] | 0; $9 = Math_imul($8, $3) | 0; $10 = ($_cell + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = Math_imul($11, $7) | 0; $13 = ($12 + $9) | 0; $14 = ($_cell + 8) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = ($13 + $15) | 0; $17 = ($_cell + 12) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = Math_imul($18, $3) | 0; $20 = ($_cell + 16) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = Math_imul($21, $7) | 0; $23 = ($22 + $19) | 0; $24 = ($_cell + 20) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($23 + $25) | 0; $27 = ($_cell + 24) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = Math_imul($28, $3) | 0; $30 = ($_cell + 28) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = Math_imul($31, $7) | 0; $33 = ($32 + $29) | 0; $34 = ($_cell + 32) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($33 + $35) | 0; $37 = ($_cell + 36) | 0; $38 = ($_cell + 40) | 0; $i$097 = 0; $w0$094 = $36; $x0$096 = $16; $y0$095 = $26; while (1) { $j$092 = 0; $w$089 = $w0$094; $x$091 = $x0$096; $y$090 = $y0$095; while (1) { $39 = ((($p + (($i$097 * 40) | 0)) | 0) + ($j$092 << 3)) | 0; $40 = ($w$089 | 0) == 0; if ($40) { $41 = $x$091 >>> 31; $42 = ($41 + 2147483647) | 0; HEAP32[$39 >> 2] = $42; $43 = $y$090 >>> 31; $44 = ($43 + 2147483647) | 0; $45 = ((((($p + (($i$097 * 40) | 0)) | 0) + ($j$092 << 3)) | 0) + 4) | 0; HEAP32[$45 >> 2] = $44; } else { $46 = ($w$089 | 0) < 0; if ($46) { $47 = (0 - $x$091) | 0; $48 = (0 - $y$090) | 0; $49 = (0 - $w$089) | 0; $$0$i = $49; $$01$i = $48; $$02$i = $47; } else { $$0$i = $w$089; $$01$i = $y$090; $$02$i = $x$091; } $50 = $$0$i >> 1; $51 = $$02$i >> 31; $52 = ($50 + $51) | 0; $53 = $52 ^ $51; $54 = ($53 + $$02$i) | 0; $55 = (($54 | 0) / ($$0$i | 0)) & -1; $56 = HEAP32[$37 >> 2] | 0; $57 = ($56 + $55) | 0; HEAP32[$39 >> 2] = $57; $58 = $$01$i >> 31; $59 = ($50 + $58) | 0; $60 = $59 ^ $58; $61 = ($60 + $$01$i) | 0; $62 = (($61 | 0) / ($$0$i | 0)) & -1; $63 = HEAP32[$38 >> 2] | 0; $64 = ($63 + $62) | 0; $65 = ((((($p + (($i$097 * 40) | 0)) | 0) + ($j$092 << 3)) | 0) + 4) | 0; HEAP32[$65 >> 2] = $64; } $66 = ($x$091 + $8) | 0; $67 = ($y$090 + $18) | 0; $68 = ($w$089 + $28) | 0; $69 = ($j$092 + 1) | 0; $exitcond113 = ($69 | 0) == 5; if ($exitcond113) { break; } else { $j$092 = $69; $w$089 = $68; $x$091 = $66; $y$090 = $67; } } $70 = ($x0$096 + $11) | 0; $71 = ($y0$095 + $21) | 0; $72 = ($w0$094 + $31) | 0; $73 = ($i$097 + 1) | 0; $exitcond114 = ($73 | 0) == 5; if ($exitcond114) { break; } else { $i$097 = $73; $w0$094 = $72; $x0$096 = $70; $y0$095 = $71; } } $74 = ($p + 96) | 0; $75 = HEAP32[$74 >> 2] | 0; $76 = ($p + 100) | 0; $77 = HEAP32[$76 >> 2] | 0; $78 = _qr_alignment_pattern_fetch($p, $75, $77, $_img, $_width, $_height) | 0; $79 = ($78 | 0) == 33084991; L14: do { if ($79) { $best_dist$425 = 0; $best_match$426 = 33084991; $bestx$424 = $75; $besty$423 = $77; } else { $80 = $78 ^ 33084991; $ret$03$i6 = 0; $y$02$i7 = $80; while (1) { $81 = ($y$02$i7 + -1) | 0; $82 = $81 & $y$02$i7; $83 = ($ret$03$i6 + 1) | 0; $84 = ($ret$03$i6 | 0) > 23; $85 = ($82 | 0) == 0; $or$cond$i8 = $84 | $85; if ($or$cond$i8) { break; } else { $ret$03$i6 = $83; $y$02$i7 = $82; } } $86 = ($ret$03$i6 | 0) > -1; if ($86) { $87 = ($_u - $2) | 0; $88 = ($_v - $6) | 0; $89 = $_r << 2; $90 = ($89 | 0) > 1; if ($90) { $91 = Math_imul($31, $88) | 0; $92 = Math_imul($28, $87) | 0; $93 = Math_imul($21, $88) | 0; $94 = Math_imul($18, $87) | 0; $95 = Math_imul($11, $88) | 0; $96 = Math_imul($8, $87) | 0; $97 = ($91 + $92) | 0; $98 = ($93 + $94) | 0; $99 = ($95 + $96) | 0; $100 = ($97 + $35) | 0; $101 = ($98 + $25) | 0; $102 = ($99 + $15) | 0; $103 = $100 << 2; $104 = $101 << 2; $105 = $102 << 2; $sum = ($11 + $8) | 0; $sum98 = ($21 + $18) | 0; $sum99 = ($31 + $28) | 0; $106 = ($pc + 4) | 0; $best_dist$078 = $83; $best_match$079 = $78; $bestx$077 = $75; $besty$076 = $77; $i$175 = 1; $w$172 = $103; $x$174 = $105; $y$173 = $104; while (1) { $109 = $i$175 << 1; $110 = ($109 + -1) | 0; $111 = ($x$174 - $sum) | 0; $112 = ($y$173 - $sum98) | 0; $113 = ($w$172 - $sum99) | 0; $114 = $110 << 2; $115 = ($110 | 0) > 0; if ($115) { $116 = $110 << 1; $117 = ($110 * 3) | 0; $best_dist$154 = $best_dist$078; $best_match$156 = $best_match$079; $bestx$153 = $bestx$077; $besty$152 = $besty$076; $j$151 = 0; $w$248 = $113; $x$250 = $111; $y$249 = $112; while (1) { $120 = ($w$248 | 0) == 0; if ($120) { $121 = $x$250 >>> 31; $122 = ($121 + 2147483647) | 0; HEAP32[$pc >> 2] = $122; $123 = $y$249 >>> 31; $124 = ($123 + 2147483647) | 0; $144 = $122; $storemerge = $124; } else { $125 = ($w$248 | 0) < 0; if ($125) { $126 = (0 - $x$250) | 0; $127 = (0 - $y$249) | 0; $128 = (0 - $w$248) | 0; $$0$i13 = $128; $$01$i12 = $127; $$02$i11 = $126; } else { $$0$i13 = $w$248; $$01$i12 = $y$249; $$02$i11 = $x$250; } $129 = $$0$i13 >> 1; $130 = $$02$i11 >> 31; $131 = ($129 + $130) | 0; $132 = $131 ^ $130; $133 = ($132 + $$02$i11) | 0; $134 = (($133 | 0) / ($$0$i13 | 0)) & -1; $135 = HEAP32[$37 >> 2] | 0; $136 = ($135 + $134) | 0; HEAP32[$pc >> 2] = $136; $137 = $$01$i12 >> 31; $138 = ($129 + $137) | 0; $139 = $138 ^ $137; $140 = ($139 + $$01$i12) | 0; $141 = (($140 | 0) / ($$0$i13 | 0)) & -1; $142 = HEAP32[$38 >> 2] | 0; $143 = ($142 + $141) | 0; $144 = $136; $storemerge = $143; } HEAP32[$106 >> 2] = $storemerge; $145 = _qr_alignment_pattern_fetch($p, $144, $storemerge, $_img, $_width, $_height) | 0; $146 = ($best_dist$154 | 0) < 0; $147 = ($145 | 0) == 33084991; $or$cond1$i15 = $146 | $147; if ($or$cond1$i15) { $ret$0$lcssa$i20 = 0; } else { $148 = $145 ^ 33084991; $ret$03$i17 = 0; $y$02$i18 = $148; while (1) { $149 = ($y$02$i18 + -1) | 0; $150 = $149 & $y$02$i18; $151 = ($ret$03$i17 + 1) | 0; $152 = ($ret$03$i17 | 0) >= ($best_dist$154 | 0); $153 = ($150 | 0) == 0; $or$cond$i19 = $152 | $153; if ($or$cond$i19) { $ret$0$lcssa$i20 = $151; break; } else { $ret$03$i17 = $151; $y$02$i18 = $150; } } } $154 = ($ret$0$lcssa$i20 | 0) < ($best_dist$154 | 0); $storemerge$besty$152 = $154 ? $storemerge : $besty$152; $$bestx$153 = $154 ? $144 : $bestx$153; $ret$0$lcssa$i20$best_dist$154 = $154 ? $ret$0$lcssa$i20 : $best_dist$154; $$best_match$156 = $154 ? $145 : $best_match$156; $155 = ($j$151 | 0) < ($116 | 0); if ($155) { $156 = ($j$151 | 0) >= ($110 | 0); $157 = $156 & 1; $158 = ($_cell + ($157 << 2)) | 0; $159 = HEAP32[$158 >> 2] | 0; $160 = ($159 + $x$250) | 0; $161 = ((($_cell + ($157 << 2)) | 0) + 12) | 0; $162 = HEAP32[$161 >> 2] | 0; $163 = ($162 + $y$249) | 0; $164 = ((($_cell + ($157 << 2)) | 0) + 24) | 0; $165 = HEAP32[$164 >> 2] | 0; $166 = ($165 + $w$248) | 0; $w$3 = $166; $x$3 = $160; $y$3 = $163; } else { $167 = ($j$151 | 0) >= ($117 | 0); $168 = $167 & 1; $169 = ($_cell + ($168 << 2)) | 0; $170 = HEAP32[$169 >> 2] | 0; $171 = ($x$250 - $170) | 0; $172 = ((($_cell + ($168 << 2)) | 0) + 12) | 0; $173 = HEAP32[$172 >> 2] | 0; $174 = ($y$249 - $173) | 0; $175 = ((($_cell + ($168 << 2)) | 0) + 24) | 0; $176 = HEAP32[$175 >> 2] | 0; $177 = ($w$248 - $176) | 0; $w$3 = $177; $x$3 = $171; $y$3 = $174; } $178 = ($ret$0$lcssa$i20$best_dist$154 | 0) == 0; $118 = ($j$151 + 1) | 0; if ($178) { $best_dist$425 = 0; $best_match$426 = $$best_match$156; $bestx$424 = $$bestx$153; $besty$423 = $storemerge$besty$152; break L14; } $119 = ($118 | 0) < ($114 | 0); if ($119) { $best_dist$154 = $ret$0$lcssa$i20$best_dist$154; $best_match$156 = $$best_match$156; $bestx$153 = $$bestx$153; $besty$152 = $storemerge$besty$152; $j$151 = $118; $w$248 = $w$3; $x$250 = $x$3; $y$249 = $y$3; } else { $best_dist$1$lcssa = $ret$0$lcssa$i20$best_dist$154; $best_match$1$lcssa = $$best_match$156; $bestx$1$lcssa = $$bestx$153; $besty$1$lcssa = $storemerge$besty$152; $w$2$lcssa = $w$3; $x$2$lcssa = $x$3; $y$2$lcssa = $y$3; break; } } } else { $best_dist$1$lcssa = $best_dist$078; $best_match$1$lcssa = $best_match$079; $bestx$1$lcssa = $bestx$077; $besty$1$lcssa = $besty$076; $w$2$lcssa = $113; $x$2$lcssa = $111; $y$2$lcssa = $112; } $179 = ($best_dist$1$lcssa | 0) == 0; $107 = ($i$175 + 1) | 0; if ($179) { $best_dist$425 = 0; $best_match$426 = $best_match$1$lcssa; $bestx$424 = $bestx$1$lcssa; $besty$423 = $besty$1$lcssa; break L14; } $108 = ($107 | 0) < ($89 | 0); if ($108) { $best_dist$078 = $best_dist$1$lcssa; $best_match$079 = $best_match$1$lcssa; $bestx$077 = $bestx$1$lcssa; $besty$076 = $besty$1$lcssa; $i$175 = $107; $w$172 = $w$2$lcssa; $x$174 = $x$2$lcssa; $y$173 = $y$2$lcssa; } else { $best_dist$0$lcssa = $best_dist$1$lcssa; $best_match$0$lcssa = $best_match$1$lcssa; $bestx$0$lcssa = $bestx$1$lcssa; $besty$0$lcssa = $besty$1$lcssa; break; } } } else { $best_dist$0$lcssa = $83; $best_match$0$lcssa = $78; $bestx$0$lcssa = $75; $besty$0$lcssa = $77; } $180 = ($best_dist$0$lcssa | 0) > 6; if ($180) { HEAP32[$_p >> 2] = $75; $181 = ($_p + 4) | 0; HEAP32[$181 >> 2] = $77; $$0 = -1; STACKTOP = sp; return $$0 | 0; } else { $best_dist$425 = $best_dist$0$lcssa; $best_match$426 = $best_match$0$lcssa; $bestx$424 = $bestx$0$lcssa; $besty$423 = $besty$0$lcssa; } } else { $best_dist$425 = $83; $best_match$426 = $78; $bestx$424 = $75; $besty$423 = $77; } } } while (0); $182 = ($bestx$424 - $75) | 0; $183 = ($besty$423 - $77) | 0; HEAP32[($nc + 0) >> 2] = 0 | 0; HEAP32[($nc + 4) >> 2] = 0 | 0; HEAP32[($nc + 8) >> 2] = 0 | 0; HEAP32[($nc + 12) >> 2] = 0 | 0; HEAP32[($c + 0) >> 2] = 0 | 0; HEAP32[($c + 4) >> 2] = 0 | 0; HEAP32[($c + 8) >> 2] = 0 | 0; HEAP32[($c + 12) >> 2] = 0 | 0; HEAP32[($c + 16) >> 2] = 0 | 0; HEAP32[($c + 20) >> 2] = 0 | 0; HEAP32[($c + 24) >> 2] = 0 | 0; HEAP32[($c + 28) >> 2] = 0 | 0; $184 = ($pc + 4) | 0; $i$238 = 0; while (1) { $190 = (7672 + ($i$238 << 3)) | 0; $191 = HEAP32[$190 >> 2] | 0; $192 = $191 & $best_match$426; $193 = (((7672 + ($i$238 << 3)) | 0) + 4) | 0; $194 = HEAP32[$193 >> 2] | 0; $195 = ($192 | 0) == ($194 | 0); if ($195) { $196 = (7736 + ($i$238 << 1)) | 0; $197 = HEAP8[$196 >> 0] | 0; $198 = $197 & 255; $199 = (((7736 + ($i$238 << 1)) | 0) + 1) | 0; $200 = HEAP8[$199 >> 0] | 0; $201 = $200 & 255; $202 = ((($p + (($201 * 40) | 0)) | 0) + ($198 << 3)) | 0; $203 = HEAP32[$202 >> 2] | 0; $204 = ($203 + $182) | 0; $205 = $204 >> 2; $206 = ($205 | 0) > -1; $207 = ($205 | 0) < ($_width | 0); $or$cond = $206 & $207; if ($or$cond) { $208 = ((((($p + (($201 * 40) | 0)) | 0) + ($198 << 3)) | 0) + 4) | 0; $209 = HEAP32[$208 >> 2] | 0; $210 = ($209 + $183) | 0; $211 = $210 >> 2; $212 = ($211 | 0) > -1; $213 = ($211 | 0) < ($_height | 0); $or$cond1 = $212 & $213; if ($or$cond1) { $214 = (4 - $198) | 0; $215 = (4 - $201) | 0; $216 = ((($p + (($215 * 40) | 0)) | 0) + ($214 << 3)) | 0; $217 = HEAP32[$216 >> 2] | 0; $218 = ($217 + $182) | 0; $219 = $218 >> 2; $220 = ($219 | 0) > -1; $221 = ($219 | 0) < ($_width | 0); $or$cond2 = $220 & $221; if ($or$cond2) { $222 = ((((($p + (($215 * 40) | 0)) | 0) + ($214 << 3)) | 0) + 4) | 0; $223 = HEAP32[$222 >> 2] | 0; $224 = ($223 + $183) | 0; $225 = $224 >> 2; $226 = ($225 | 0) > -1; $227 = ($225 | 0) < ($_height | 0); $or$cond3 = $226 & $227; if ($or$cond3) { $228 = $i$238 & 1; $229 = _qr_finder_locate_crossing($_img, $_width, $205, $211, $219, $225, $228, $pc) | 0; $230 = ($229 | 0) == 0; if ($230) { $231 = HEAP32[$pc >> 2] | 0; $232 = ($231 - $bestx$424) | 0; $233 = HEAP32[$184 >> 2] | 0; $234 = ($233 - $besty$423) | 0; $235 = ($228 | 0) == 0; if ($235) { $cx$0 = $232; $cy$0 = $234; $w3$0 = 1; } else { $236 = ($232 * 3) | 0; $237 = ($234 * 3) | 0; $cx$0 = $236; $cy$0 = $237; $w3$0 = 3; } $238 = $i$238 >> 1; $239 = ($nc + ($238 << 2)) | 0; $240 = HEAP32[$239 >> 2] | 0; $241 = ($240 + $w3$0) | 0; HEAP32[$239 >> 2] = $241; $242 = ($c + ($238 << 3)) | 0; $243 = HEAP32[$242 >> 2] | 0; $244 = ($243 + $cx$0) | 0; HEAP32[$242 >> 2] = $244; $245 = ((($c + ($238 << 3)) | 0) + 4) | 0; $246 = HEAP32[$245 >> 2] | 0; $247 = ($246 + $cy$0) | 0; HEAP32[$245 >> 2] = $247; } } } } } } $248 = ($i$238 + 1) | 0; $exitcond = ($248 | 0) == 8; if ($exitcond) { break; } else { $i$238 = $248; } } $185 = HEAP32[$nc >> 2] | 0; $186 = ($nc + 4) | 0; $187 = HEAP32[$186 >> 2] | 0; $188 = ($185 | 0) == 0; $189 = ($187 | 0) == 0; $or$cond4 = $188 | $189; if ($or$cond4) { $281 = ($c + 8) | 0; $282 = HEAP32[$281 >> 2] | 0; $283 = HEAP32[$c >> 2] | 0; $284 = ($283 + $282) | 0; HEAP32[$c >> 2] = $284; $285 = ($c + 12) | 0; $286 = HEAP32[$285 >> 2] | 0; $287 = ($c + 4) | 0; $288 = HEAP32[$287 >> 2] | 0; $289 = ($288 + $286) | 0; HEAP32[$287 >> 2] = $289; $290 = ($185 + $187) | 0; $291 = $290; $371 = $284; $374 = $289; } else { $249 = ($185 - $187) | 0; $250 = ($187 | 0) > ($185 | 0); $251 = $250 ? $249 : 0; $252 = ($185 - $251) | 0; $253 = HEAP32[$c >> 2] | 0; $254 = Math_imul($253, $187) | 0; $255 = ($c + 8) | 0; $256 = HEAP32[$255 >> 2] | 0; $257 = Math_imul($256, $185) | 0; $258 = ($257 + $254) | 0; $259 = Math_imul($258, $252) | 0; $260 = Math_imul($187, $185) | 0; $261 = $260 >> 1; $262 = $259 >> 31; $263 = ($262 + $261) | 0; $264 = $263 ^ $262; $265 = ($264 + $259) | 0; $266 = (($265 | 0) / ($260 | 0)) & -1; HEAP32[$c >> 2] = $266; $267 = ($c + 4) | 0; $268 = HEAP32[$267 >> 2] | 0; $269 = Math_imul($268, $187) | 0; $270 = ($c + 12) | 0; $271 = HEAP32[$270 >> 2] | 0; $272 = Math_imul($271, $185) | 0; $273 = ($272 + $269) | 0; $274 = Math_imul($273, $252) | 0; $275 = $274 >> 31; $276 = ($275 + $261) | 0; $277 = $276 ^ $275; $278 = ($277 + $274) | 0; $279 = (($278 | 0) / ($260 | 0)) & -1; HEAP32[$267 >> 2] = $279; $280 = $252 << 1; $291 = $280; $371 = $266; $374 = $279; } HEAP32[$nc >> 2] = $291; $292 = ($nc + 8) | 0; $293 = HEAP32[$292 >> 2] | 0; $294 = ($nc + 12) | 0; $295 = HEAP32[$294 >> 2] | 0; $296 = ($293 | 0) == 0; $297 = ($295 | 0) == 0; $or$cond4$1 = $296 | $297; if ($or$cond4$1) { $359 = ($c + 24) | 0; $360 = HEAP32[$359 >> 2] | 0; $361 = ($c + 16) | 0; $362 = HEAP32[$361 >> 2] | 0; $363 = ($362 + $360) | 0; HEAP32[$361 >> 2] = $363; $364 = ($c + 28) | 0; $365 = HEAP32[$364 >> 2] | 0; $366 = ($c + 20) | 0; $367 = HEAP32[$366 >> 2] | 0; $368 = ($367 + $365) | 0; HEAP32[$366 >> 2] = $368; $369 = ($293 + $295) | 0; $370 = $363; $373 = $368; $storemerge$1 = $369; } else { $326 = ($293 - $295) | 0; $327 = ($295 | 0) > ($293 | 0); $328 = $327 ? $326 : 0; $329 = ($293 - $328) | 0; $330 = ($c + 16) | 0; $331 = HEAP32[$330 >> 2] | 0; $332 = Math_imul($331, $295) | 0; $333 = ($c + 24) | 0; $334 = HEAP32[$333 >> 2] | 0; $335 = Math_imul($334, $293) | 0; $336 = ($335 + $332) | 0; $337 = Math_imul($336, $329) | 0; $338 = Math_imul($295, $293) | 0; $339 = $338 >> 1; $340 = $337 >> 31; $341 = ($340 + $339) | 0; $342 = $341 ^ $340; $343 = ($342 + $337) | 0; $344 = (($343 | 0) / ($338 | 0)) & -1; HEAP32[$330 >> 2] = $344; $345 = ($c + 20) | 0; $346 = HEAP32[$345 >> 2] | 0; $347 = Math_imul($346, $295) | 0; $348 = ($c + 28) | 0; $349 = HEAP32[$348 >> 2] | 0; $350 = Math_imul($349, $293) | 0; $351 = ($350 + $347) | 0; $352 = Math_imul($351, $329) | 0; $353 = $352 >> 31; $354 = ($353 + $339) | 0; $355 = $354 ^ $353; $356 = ($355 + $352) | 0; $357 = (($356 | 0) / ($338 | 0)) & -1; HEAP32[$345 >> 2] = $357; $358 = $329 << 1; $370 = $344; $373 = $357; $storemerge$1 = $358; } HEAP32[$292 >> 2] = $storemerge$1; $301 = ($371 + $370) | 0; HEAP32[$c >> 2] = $301; $372 = ($c + 4) | 0; $307 = ($374 + $373) | 0; HEAP32[$372 >> 2] = $307; $299 = ($291 + $storemerge$1) | 0; HEAP32[$nc >> 2] = $299; $375 = ($299 | 0) == 0; if ($375) { $bestx$5 = $bestx$424; $besty$5 = $besty$423; } else { $298 = $299 >> 1; $300 = $301 >> 31; $302 = ($300 + $298) | 0; $303 = $302 ^ $300; $304 = ($303 + $301) | 0; $305 = (($304 | 0) / ($299 | 0)) & -1; $306 = $307 >> 31; $308 = ($306 + $298) | 0; $309 = $308 ^ $306; $310 = ($309 + $307) | 0; $311 = (($310 | 0) / ($299 | 0)) & -1; $312 = ($305 + $bestx$424) | 0; $313 = ($311 + $besty$423) | 0; $314 = _qr_alignment_pattern_fetch($p, $312, $313, $_img, $_width, $_height) | 0; $315 = ($best_dist$425 + 1) | 0; $316 = ($best_dist$425 | 0) < 0; $317 = ($314 | 0) == 33084991; $or$cond1$i = $316 | $317; if ($or$cond1$i) { $ret$0$lcssa$i = 0; } else { $318 = $314 ^ 33084991; $ret$03$i = 0; $y$02$i = $318; while (1) { $319 = ($y$02$i + -1) | 0; $320 = $319 & $y$02$i; $321 = ($ret$03$i + 1) | 0; $322 = ($321 | 0) >= ($315 | 0); $323 = ($320 | 0) == 0; $or$cond$i = $322 | $323; if ($or$cond$i) { $ret$0$lcssa$i = $321; break; } else { $ret$03$i = $321; $y$02$i = $320; } } } $324 = ($ret$0$lcssa$i | 0) > ($315 | 0); $besty$4$ = $324 ? $besty$423 : $313; $bestx$4$ = $324 ? $bestx$424 : $312; $bestx$5 = $bestx$4$; $besty$5 = $besty$4$; } HEAP32[$_p >> 2] = $bestx$5; $325 = ($_p + 4) | 0; HEAP32[$325 >> 2] = $besty$5; $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _qr_alignment_pattern_fetch($_p, $_x0, $_y0, $_img, $_width, $_height) { $_p = $_p | 0; $_x0 = $_x0 | 0; $_y0 = $_y0 | 0; $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $i$06 = 0, $k$05 = 0, $v$07 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_p + 96) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($_x0 - $1) | 0; $3 = ($_p + 100) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = ($_y0 - $4) | 0; $6 = ($_height + -1) | 0; $7 = ($_width + -1) | 0; $i$06 = 0; $k$05 = 0; $v$07 = 0; while (1) { $8 = ($_p + (($i$06 * 40) | 0)) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($2 + $9) | 0; $11 = ((($_p + (($i$06 * 40) | 0)) | 0) + 4) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = ($5 + $12) | 0; $14 = $10 >> 2; $15 = $13 >> 2; $16 = ($15 | 0) >= ($_height | 0); $17 = $16 ? $6 : $15; $18 = ($17 | 0) > 0; $19 = $18 ? $17 : 0; $20 = Math_imul($19, $_width) | 0; $21 = ($14 | 0) >= ($_width | 0); $22 = $21 ? $7 : $14; $23 = ($22 | 0) > 0; $24 = $23 ? $22 : 0; $25 = ($20 + $24) | 0; $26 = ($_img + $25) | 0; $27 = HEAP8[$26 >> 0] | 0; $28 = ($27 << 24) >> 24 != 0; $29 = $28 & 1; $30 = $29 << $k$05; $31 = $30 | $v$07; $32 = ($k$05 + 1) | 0; $33 = ((($_p + (($i$06 * 40) | 0)) | 0) + 8) | 0; $34 = HEAP32[$33 >> 2] | 0; $35 = ($2 + $34) | 0; $36 = ((($_p + (($i$06 * 40) | 0)) | 0) + 12) | 0; $37 = HEAP32[$36 >> 2] | 0; $38 = ($5 + $37) | 0; $39 = $35 >> 2; $40 = $38 >> 2; $41 = ($40 | 0) >= ($_height | 0); $42 = $41 ? $6 : $40; $43 = ($42 | 0) > 0; $44 = $43 ? $42 : 0; $45 = Math_imul($44, $_width) | 0; $46 = ($39 | 0) >= ($_width | 0); $47 = $46 ? $7 : $39; $48 = ($47 | 0) > 0; $49 = $48 ? $47 : 0; $50 = ($45 + $49) | 0; $51 = ($_img + $50) | 0; $52 = HEAP8[$51 >> 0] | 0; $53 = ($52 << 24) >> 24 != 0; $54 = $53 & 1; $55 = $54 << $32; $56 = $55 | $31; $57 = ($k$05 + 2) | 0; $58 = ((($_p + (($i$06 * 40) | 0)) | 0) + 16) | 0; $59 = HEAP32[$58 >> 2] | 0; $60 = ($2 + $59) | 0; $61 = ((($_p + (($i$06 * 40) | 0)) | 0) + 20) | 0; $62 = HEAP32[$61 >> 2] | 0; $63 = ($5 + $62) | 0; $64 = $60 >> 2; $65 = $63 >> 2; $66 = ($65 | 0) >= ($_height | 0); $67 = $66 ? $6 : $65; $68 = ($67 | 0) > 0; $69 = $68 ? $67 : 0; $70 = Math_imul($69, $_width) | 0; $71 = ($64 | 0) >= ($_width | 0); $72 = $71 ? $7 : $64; $73 = ($72 | 0) > 0; $74 = $73 ? $72 : 0; $75 = ($70 + $74) | 0; $76 = ($_img + $75) | 0; $77 = HEAP8[$76 >> 0] | 0; $78 = ($77 << 24) >> 24 != 0; $79 = $78 & 1; $80 = $79 << $57; $81 = $80 | $56; $82 = ($k$05 + 3) | 0; $83 = ((($_p + (($i$06 * 40) | 0)) | 0) + 24) | 0; $84 = HEAP32[$83 >> 2] | 0; $85 = ($2 + $84) | 0; $86 = ((($_p + (($i$06 * 40) | 0)) | 0) + 28) | 0; $87 = HEAP32[$86 >> 2] | 0; $88 = ($5 + $87) | 0; $89 = $85 >> 2; $90 = $88 >> 2; $91 = ($90 | 0) >= ($_height | 0); $92 = $91 ? $6 : $90; $93 = ($92 | 0) > 0; $94 = $93 ? $92 : 0; $95 = Math_imul($94, $_width) | 0; $96 = ($89 | 0) >= ($_width | 0); $97 = $96 ? $7 : $89; $98 = ($97 | 0) > 0; $99 = $98 ? $97 : 0; $100 = ($95 + $99) | 0; $101 = ($_img + $100) | 0; $102 = HEAP8[$101 >> 0] | 0; $103 = ($102 << 24) >> 24 != 0; $104 = $103 & 1; $105 = $104 << $82; $106 = $105 | $81; $107 = ($k$05 + 4) | 0; $108 = ((($_p + (($i$06 * 40) | 0)) | 0) + 32) | 0; $109 = HEAP32[$108 >> 2] | 0; $110 = ($2 + $109) | 0; $111 = ((($_p + (($i$06 * 40) | 0)) | 0) + 36) | 0; $112 = HEAP32[$111 >> 2] | 0; $113 = ($5 + $112) | 0; $114 = $110 >> 2; $115 = $113 >> 2; $116 = ($115 | 0) >= ($_height | 0); $117 = $116 ? $6 : $115; $118 = ($117 | 0) > 0; $119 = $118 ? $117 : 0; $120 = Math_imul($119, $_width) | 0; $121 = ($114 | 0) >= ($_width | 0); $122 = $121 ? $7 : $114; $123 = ($122 | 0) > 0; $124 = $123 ? $122 : 0; $125 = ($120 + $124) | 0; $126 = ($_img + $125) | 0; $127 = HEAP8[$126 >> 0] | 0; $128 = ($127 << 24) >> 24 != 0; $129 = $128 & 1; $130 = $129 << $107; $131 = $130 | $106; $132 = ($k$05 + 5) | 0; $133 = ($i$06 + 1) | 0; $exitcond = ($133 | 0) == 5; if ($exitcond) { break; } else { $i$06 = $133; $k$05 = $132; $v$07 = $131; } } STACKTOP = sp; return $131 | 0; } function _qr_finder_locate_crossing($_img, $_width, $_x0, $_y0, $_x1, $_y1, $_v, $_p) { $_img = $_img | 0; $_width = $_width | 0; $_x0 = $_x0 | 0; $_y0 = $_y0 | 0; $_x1 = $_x1 | 0; $_y1 = $_y1 | 0; $_v = $_v | 0; $_p = $_p | 0; var $$0 = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $9 = 0, $dx = 0, $err$0 = 0, $err$1 = 0, $err$2 = 0, $err$3 = 0, $ispos = 0, $ispos1 = 0, $neg = 0, $neg2 = 0, $step = 0, $x0 = 0, $x1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $x0 = (sp + 24) | 0; $x1 = (sp + 16) | 0; $dx = (sp + 8) | 0; $step = sp; HEAP32[$x0 >> 2] = $_x0; $0 = ($x0 + 4) | 0; HEAP32[$0 >> 2] = $_y0; HEAP32[$x1 >> 2] = $_x1; $1 = ($x1 + 4) | 0; HEAP32[$1 >> 2] = $_y1; $2 = ($_x1 - $_x0) | 0; $ispos = ($2 | 0) > -1; $neg = (0 - $2) | 0; $3 = $ispos ? $2 : $neg; HEAP32[$dx >> 2] = $3; $4 = ($_y1 - $_y0) | 0; $ispos1 = ($4 | 0) > -1; $neg2 = (0 - $4) | 0; $5 = $ispos1 ? $4 : $neg2; $6 = ($dx + 4) | 0; HEAP32[$6 >> 2] = $5; $7 = ($5 | 0) > ($3 | 0); $8 = $7 & 1; $9 = $8 ^ 1; $10 = ($dx + ($9 << 2)) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($_x0 | 0) < ($_x1 | 0); $13 = $12 & 1; $14 = $13 << 1; $15 = ($14 + -1) | 0; HEAP32[$step >> 2] = $15; $16 = ($_y0 | 0) < ($_y1 | 0); $17 = $16 & 1; $18 = $17 << 1; $19 = ($18 + -1) | 0; $20 = ($step + 4) | 0; HEAP32[$20 >> 2] = $19; $21 = ($x0 + ($8 << 2)) | 0; $22 = ($x1 + ($8 << 2)) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($step + ($8 << 2)) | 0; $25 = ($dx + ($8 << 2)) | 0; $26 = ($step + ($9 << 2)) | 0; $27 = ($x0 + ($9 << 2)) | 0; $err$0 = 0; while (1) { $28 = HEAP32[$21 >> 2] | 0; $29 = ($28 | 0) == ($23 | 0); if ($29) { $$0 = -1; label = 13; break; } $30 = HEAP32[$24 >> 2] | 0; $31 = ($30 + $28) | 0; HEAP32[$21 >> 2] = $31; $32 = ($err$0 + $11) | 0; $33 = $32 << 1; $34 = HEAP32[$25 >> 2] | 0; $35 = ($33 | 0) > ($34 | 0); if ($35) { $36 = HEAP32[$26 >> 2] | 0; $37 = HEAP32[$27 >> 2] | 0; $38 = ($37 + $36) | 0; HEAP32[$27 >> 2] = $38; $39 = ($32 - $34) | 0; $err$1 = $39; } else { $err$1 = $32; } $40 = HEAP32[$0 >> 2] | 0; $41 = Math_imul($40, $_width) | 0; $42 = HEAP32[$x0 >> 2] | 0; $43 = ($41 + $42) | 0; $44 = ($_img + $43) | 0; $45 = HEAP8[$44 >> 0] | 0; $46 = ($45 << 24) >> 24 == 0; $47 = $46 & 1; $48 = ($47 | 0) == ($_v | 0); if ($48) { $err$0 = $err$1; } else { break; } } if ((label | 0) == 13) { STACKTOP = sp; return $$0 | 0; } $49 = HEAP32[$21 >> 2] | 0; $50 = ($x1 + ($9 << 2)) | 0; $52 = $23; $81 = $_y1; $82 = $_x1; $err$2 = 0; while (1) { $51 = ($49 | 0) == ($52 | 0); if ($51) { $71 = $82; $76 = $81; break; } $53 = ($52 - $30) | 0; HEAP32[$22 >> 2] = $53; $54 = ($err$2 + $11) | 0; $55 = $54 << 1; $56 = ($55 | 0) > ($34 | 0); if ($56) { $57 = HEAP32[$26 >> 2] | 0; $58 = HEAP32[$50 >> 2] | 0; $59 = ($58 - $57) | 0; HEAP32[$50 >> 2] = $59; $60 = ($54 - $34) | 0; $err$3 = $60; } else { $err$3 = $54; } $61 = HEAP32[$1 >> 2] | 0; $62 = Math_imul($61, $_width) | 0; $63 = HEAP32[$x1 >> 2] | 0; $64 = ($62 + $63) | 0; $65 = ($_img + $64) | 0; $66 = HEAP8[$65 >> 0] | 0; $67 = ($66 << 24) >> 24 == 0; $68 = $67 & 1; $69 = ($68 | 0) == ($_v | 0); if (!$69) { $71 = $63; $76 = $61; break; } $$pre = HEAP32[$22 >> 2] | 0; $52 = $$pre; $81 = $61; $82 = $63; $err$2 = $err$3; } $70 = ($71 + $42) | 0; $72 = $70 << 2; $73 = ($72 + 4) | 0; $74 = $73 >> 1; HEAP32[$_p >> 2] = $74; $75 = ($76 + $40) | 0; $77 = $75 << 2; $78 = ($77 + 4) | 0; $79 = $78 >> 1; $80 = ($_p + 4) | 0; HEAP32[$80 >> 2] = $79; $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _qr_cmp_edge_pt($_a, $_b) { $_a = $_a | 0; $_b = $_b | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; var label = 0, sp = 0; sp = STACKTOP; $0 = ($_a + 8) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($_b + 8) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($1 | 0) > ($3 | 0); $5 = $4 & 1; $6 = ($1 | 0) < ($3 | 0); $7 = $6 & 1; $8 = ($5 - $7) | 0; $9 = $8 << 1; $10 = ($_a + 12) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($_b + 12) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($11 | 0) > ($13 | 0); $15 = $14 & 1; $16 = $9 | $15; $17 = ($11 | 0) < ($13 | 0); $18 = $17 & 1; $19 = ($16 - $18) | 0; STACKTOP = sp; return $19 | 0; } function _qr_finder_ransac($_f, $_hom, $_isaac, $_e) { $_f = $_f | 0; $_hom = $_hom | 0; $_isaac = $_isaac | 0; $_e = $_e | 0; var $$$us = 0, $$idx$val$us = 0, $$idx6$val$us = 0, $$idx8$us = 0, $$idx8$val$us = 0, $$val$us = 0, $$val5$us = 0, $$val7$us = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; var $best_ninliers$025$us = 0, $best_ninliers$1$us = 0, $best_ninliers$2 = 0, $exitcond = 0, $exitcond26 = 0, $i$023$us = 0, $i$114 = 0, $ispos$us = 0, $ispos1$us = 0, $ispos3$us = 0, $j$013 = 0, $j$1 = 0, $j1$016$us = 0, $j1$119$us = 0, $max_iters$024$us = 0, $max_iters$1$us = 0, $neg$us = 0, $neg2$us = 0, $neg4$us = 0, $ninliers$015$us = 0; var $ninliers$1$us = 0, $not$$us = 0, $q0 = 0, $q1 = 0, $tmp = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $q0 = (sp + 24) | 0; $q1 = (sp + 16) | 0; $tmp = sp; $0 = ((($_f + ($_e << 2)) | 0) + 16) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ((($_f + ($_e << 2)) | 0) + 32) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) > 1; if (!$4) { $best_ninliers$2 = 0; $131 = ((($_f + ($_e << 2)) | 0) + 48) | 0; HEAP32[$131 >> 2] = $best_ninliers$2; STACKTOP = sp; return; } $5 = ($3 + -1) | 0; $6 = ($_hom + 16) | 0; $7 = HEAP32[$6 >> 2] | 0; $8 = ($_hom + 32) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($_hom + 20) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($_hom + 36) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($_hom + 44) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = 1 << $15; $17 = $16 >> 1; $18 = ($_hom + 24) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($_hom + 28) | 0; $21 = HEAP32[$20 >> 2] | 0; $22 = ($q0 + 4) | 0; $23 = ($q1 + 4) | 0; $24 = ($_f + 64) | 0; $25 = ($_f + 68) | 0; $26 = $_e >> 1; $27 = ($q0 + ($26 << 2)) | 0; $28 = ($q1 + ($26 << 2)) | 0; $29 = (1 - $26) | 0; $30 = ($q0 + ($29 << 2)) | 0; $31 = ($q1 + ($29 << 2)) | 0; $32 = $3 >> 1; $33 = ($3 * 67) | 0; $34 = ($33 + -1) | 0; $35 = $3 << 1; $best_ninliers$025$us = 0; $i$023$us = 0; $max_iters$024$us = 17; while (1) { $36 = _isaac_next_uint($_isaac, $3) | 0; $37 = _isaac_next_uint($_isaac, $5) | 0; $not$$us = ($37 | 0) >= ($36 | 0); $38 = $not$$us & 1; $$$us = ($38 + $37) | 0; $39 = ($1 + ($36 << 4)) | 0; $40 = ($1 + ($$$us << 4)) | 0; $41 = HEAP32[$39 >> 2] | 0; $42 = ((($1 + ($36 << 4)) | 0) + 4) | 0; $43 = HEAP32[$42 >> 2] | 0; $44 = ($41 - $9) | 0; $45 = Math_imul($44, $7) | 0; $46 = ($43 - $13) | 0; $47 = Math_imul($46, $11) | 0; $48 = ($47 + $45) | 0; $49 = ($48 + $17) | 0; $50 = $49 >> $15; $51 = Math_imul($19, $44) | 0; $52 = Math_imul($21, $46) | 0; $53 = ($17 + $51) | 0; $54 = ($53 + $52) | 0; $55 = $54 >> $15; $56 = HEAP32[$40 >> 2] | 0; $57 = ((($1 + ($$$us << 4)) | 0) + 4) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = ($56 - $9) | 0; $60 = Math_imul($59, $7) | 0; $61 = ($58 - $13) | 0; $62 = Math_imul($61, $11) | 0; $63 = ($62 + $60) | 0; $64 = ($63 + $17) | 0; $65 = $64 >> $15; $66 = Math_imul($19, $59) | 0; $67 = Math_imul($21, $61) | 0; $68 = ($17 + $66) | 0; $69 = ($68 + $67) | 0; $70 = $69 >> $15; $71 = HEAP32[$24 >> 2] | 0; $72 = HEAP32[$25 >> 2] | 0; $73 = ($50 - $71) | 0; HEAP32[$q0 >> 2] = $73; $74 = ($55 - $72) | 0; HEAP32[$22 >> 2] = $74; $75 = ($65 - $71) | 0; HEAP32[$q1 >> 2] = $75; $76 = ($70 - $72) | 0; HEAP32[$23 >> 2] = $76; $77 = HEAP32[$27 >> 2] | 0; $78 = HEAP32[$28 >> 2] | 0; $79 = ($77 - $78) | 0; $ispos$us = ($79 | 0) > -1; $neg$us = (0 - $79) | 0; $80 = $ispos$us ? $79 : $neg$us; $81 = HEAP32[$30 >> 2] | 0; $82 = HEAP32[$31 >> 2] | 0; $83 = ($81 - $82) | 0; $ispos1$us = ($83 | 0) > -1; $neg2$us = (0 - $83) | 0; $84 = $ispos1$us ? $83 : $neg2$us; $85 = ($80 | 0) > ($84 | 0); if ($85) { $best_ninliers$1$us = $best_ninliers$025$us; $max_iters$1$us = $max_iters$024$us; } else { $114 = ($41 - $56) | 0; $115 = Math_imul($114, $114) | 0; $116 = ($43 - $58) | 0; $117 = Math_imul($116, $116) | 0; $118 = ($117 + $115) | 0; $119 = $118 << 5; $105 = _qr_isqrt($119) | 0; $$val$us = HEAP32[$39 >> 2] | 0; $$idx$val$us = HEAP32[$42 >> 2] | 0; $$val5$us = HEAP32[$40 >> 2] | 0; $$idx6$val$us = HEAP32[$57 >> 2] | 0; $98 = ($$val5$us - $$val$us) | 0; $101 = ($$idx6$val$us - $$idx$val$us) | 0; $j1$016$us = 0; $ninliers$015$us = 0; while (1) { $95 = ($1 + ($j1$016$us << 4)) | 0; $$val7$us = HEAP32[$95 >> 2] | 0; $$idx8$us = ((($1 + ($j1$016$us << 4)) | 0) + 4) | 0; $$idx8$val$us = HEAP32[$$idx8$us >> 2] | 0; $96 = ($$idx8$val$us - $$idx$val$us) | 0; $97 = Math_imul($96, $98) | 0; $99 = ($$val7$us - $$val$us) | 0; $100 = Math_imul($99, $101) | 0; $102 = ($97 - $100) | 0; $ispos3$us = ($102 | 0) > -1; $neg4$us = (0 - $102) | 0; $103 = $ispos3$us ? $102 : $neg4$us; $104 = ($103 | 0) > ($105 | 0); $106 = ((($1 + ($j1$016$us << 4)) | 0) + 12) | 0; $107 = HEAP32[$106 >> 2] | 0; if ($104) { $110 = $107 & -2; HEAP32[$106 >> 2] = $110; $ninliers$1$us = $ninliers$015$us; } else { $108 = $107 | 1; HEAP32[$106 >> 2] = $108; $109 = ($ninliers$015$us + 1) | 0; $ninliers$1$us = $109; } $111 = ($j1$016$us + 1) | 0; $exitcond = ($111 | 0) == ($3 | 0); if ($exitcond) { break; } else { $j1$016$us = $111; $ninliers$015$us = $ninliers$1$us; } } $86 = ($ninliers$1$us | 0) > ($best_ninliers$025$us | 0); if ($86) { $j1$119$us = 0; while (1) { $91 = ((($1 + ($j1$119$us << 4)) | 0) + 12) | 0; $92 = HEAP32[$91 >> 2] | 0; $93 = $92 << 1; HEAP32[$91 >> 2] = $93; $94 = ($j1$119$us + 1) | 0; $exitcond26 = ($94 | 0) == ($3 | 0); if ($exitcond26) { break; } else { $j1$119$us = $94; } } $87 = ($ninliers$1$us | 0) > ($32 | 0); if ($87) { $88 = Math_imul($ninliers$1$us, -63) | 0; $89 = ($34 + $88) | 0; $90 = (($89 | 0) / ($35 | 0)) & -1; $best_ninliers$1$us = $ninliers$1$us; $max_iters$1$us = $90; } else { $best_ninliers$1$us = $ninliers$1$us; $max_iters$1$us = $max_iters$024$us; } } else { $best_ninliers$1$us = $best_ninliers$025$us; $max_iters$1$us = $max_iters$024$us; } } $112 = ($i$023$us + 1) | 0; $113 = ($112 | 0) < ($max_iters$1$us | 0); if ($113) { $best_ninliers$025$us = $best_ninliers$1$us; $i$023$us = $112; $max_iters$024$us = $max_iters$1$us; } else { break; } } $120 = ($best_ninliers$1$us | 0) > 0; if (!$120) { $best_ninliers$2 = $best_ninliers$1$us; $131 = ((($_f + ($_e << 2)) | 0) + 48) | 0; HEAP32[$131 >> 2] = $best_ninliers$2; STACKTOP = sp; return; } $i$114 = 0; $j$013 = 0; while (1) { $121 = ($1 + ($i$114 << 4)) | 0; $122 = ((($1 + ($i$114 << 4)) | 0) + 12) | 0; $123 = HEAP32[$122 >> 2] | 0; $124 = $123 & 2; $125 = ($124 | 0) == 0; if ($125) { $j$1 = $j$013; } else { $126 = ($j$013 | 0) < ($i$114 | 0); if ($126) { HEAP32[($tmp + 0) >> 2] = HEAP32[($121 + 0) >> 2] | 0; HEAP32[($tmp + 4) >> 2] = HEAP32[($121 + 4) >> 2] | 0; HEAP32[($tmp + 8) >> 2] = HEAP32[($121 + 8) >> 2] | 0; HEAP32[($tmp + 12) >> 2] = HEAP32[($121 + 12) >> 2] | 0; $127 = ($1 + ($j$013 << 4)) | 0; HEAP32[($127 + 0) >> 2] = HEAP32[($121 + 0) >> 2] | 0; HEAP32[($127 + 4) >> 2] = HEAP32[($121 + 4) >> 2] | 0; HEAP32[($127 + 8) >> 2] = HEAP32[($121 + 8) >> 2] | 0; HEAP32[($127 + 12) >> 2] = HEAP32[($121 + 12) >> 2] | 0; HEAP32[($121 + 0) >> 2] = HEAP32[($tmp + 0) >> 2] | 0; HEAP32[($121 + 4) >> 2] = HEAP32[($tmp + 4) >> 2] | 0; HEAP32[($121 + 8) >> 2] = HEAP32[($tmp + 8) >> 2] | 0; HEAP32[($121 + 12) >> 2] = HEAP32[($tmp + 12) >> 2] | 0; } $128 = ($j$013 + 1) | 0; $j$1 = $128; } $129 = ($i$114 + 1) | 0; $130 = ($j$1 | 0) < ($best_ninliers$1$us | 0); if ($130) { $i$114 = $129; $j$013 = $j$1; } else { $best_ninliers$2 = $best_ninliers$1$us; break; } } $131 = ((($_f + ($_e << 2)) | 0) + 48) | 0; HEAP32[$131 >> 2] = $best_ninliers$2; STACKTOP = sp; return; } function _qr_line_fit_finder_pair($_l, $_aff, $_f0, $_f1, $_e) { $_l = $_l | 0; $_aff = $_aff | 0; $_f0 = $_f0 | 0; $_f1 = $_f1 | 0; $_e = $_e | 0; var $$phi$trans$insert = 0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0; var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; var $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_l$idx$i = 0, $_l$idx$val$i = 0, $_l$idx1$i = 0, $_l$idx1$val$i = 0, $_l$val$i = 0, $exitcond = 0, $exitcond5 = 0, $i$03 = 0, $i$11 = 0, $n0$0 = 0, $q = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $q = sp; $0 = ((($_f0 + ($_e << 2)) | 0) + 48) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ((($_f1 + ($_e << 2)) | 0) + 48) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($1 + -1) | 0; $5 = ($1 | 0) < 1; $6 = $5 ? $4 : 0; $7 = ($1 - $6) | 0; $8 = ($3 + -1) | 0; $9 = ($3 | 0) < 1; $10 = $9 ? $8 : 0; $11 = ($3 - $10) | 0; $12 = ($11 + $7) | 0; $13 = $12 << 3; $14 = _malloc($13) | 0; $15 = ($1 | 0) > 0; if ($15) { $16 = ((($_f0 + ($_e << 2)) | 0) + 16) | 0; $17 = HEAP32[$16 >> 2] | 0; $i$03 = 0; while (1) { $18 = ($17 + ($i$03 << 4)) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($14 + ($i$03 << 3)) | 0; HEAP32[$20 >> 2] = $19; $21 = ((($17 + ($i$03 << 4)) | 0) + 4) | 0; $22 = HEAP32[$21 >> 2] | 0; $23 = ((($14 + ($i$03 << 3)) | 0) + 4) | 0; HEAP32[$23 >> 2] = $22; $24 = ($i$03 + 1) | 0; $exitcond5 = ($24 | 0) == ($1 | 0); if ($exitcond5) { $n0$0 = $1; break; } else { $i$03 = $24; } } } else { $25 = ($_f0 + 64) | 0; $26 = HEAP32[$25 >> 2] | 0; HEAP32[$q >> 2] = $26; $27 = ($_f0 + 68) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = ($q + 4) | 0; HEAP32[$29 >> 2] = $28; $30 = $_e >> 1; $31 = ($_f0 + ($30 << 2)) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = $_e << 1; $34 = $33 & 2; $35 = ($34 + -1) | 0; $36 = Math_imul($32, $35) | 0; $37 = ($q + ($30 << 2)) | 0; $38 = HEAP32[$37 >> 2] | 0; $39 = ($38 + $36) | 0; HEAP32[$37 >> 2] = $39; $40 = HEAP32[$q >> 2] | 0; $41 = HEAP32[$29 >> 2] | 0; $42 = HEAP32[$_aff >> 2] | 0; $43 = Math_imul($42, $40) | 0; $44 = ($_aff + 4) | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = Math_imul($45, $41) | 0; $47 = ($46 + $43) | 0; $48 = ($_aff + 40) | 0; $49 = HEAP32[$48 >> 2] | 0; $50 = ($49 + -1) | 0; $51 = 1 << $50; $52 = ($47 + $51) | 0; $53 = $52 >> $49; $54 = ($_aff + 32) | 0; $55 = HEAP32[$54 >> 2] | 0; $56 = ($53 + $55) | 0; HEAP32[$14 >> 2] = $56; $57 = ($_aff + 8) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = Math_imul($58, $40) | 0; $60 = ($_aff + 12) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = Math_imul($61, $41) | 0; $63 = ($59 + $51) | 0; $64 = ($63 + $62) | 0; $65 = $64 >> $49; $66 = ($_aff + 36) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = ($65 + $67) | 0; $69 = ($14 + 4) | 0; HEAP32[$69 >> 2] = $68; $70 = ($1 + 1) | 0; $n0$0 = $70; } $71 = ($3 | 0) > 0; if ($71) { $72 = ((($_f1 + ($_e << 2)) | 0) + 16) | 0; $73 = HEAP32[$72 >> 2] | 0; $i$11 = 0; while (1) { $74 = ($73 + ($i$11 << 4)) | 0; $75 = HEAP32[$74 >> 2] | 0; $76 = ($i$11 + $n0$0) | 0; $77 = ($14 + ($76 << 3)) | 0; HEAP32[$77 >> 2] = $75; $78 = ((($73 + ($i$11 << 4)) | 0) + 4) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ((($14 + ($76 << 3)) | 0) + 4) | 0; HEAP32[$80 >> 2] = $79; $81 = ($i$11 + 1) | 0; $exitcond = ($81 | 0) == ($3 | 0); if ($exitcond) { break; } else { $i$11 = $81; } } $$phi$trans$insert = ($_aff + 40) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $128 = $$pre; } else { $82 = ($_f1 + 64) | 0; $83 = HEAP32[$82 >> 2] | 0; HEAP32[$q >> 2] = $83; $84 = ($_f1 + 68) | 0; $85 = HEAP32[$84 >> 2] | 0; $86 = ($q + 4) | 0; HEAP32[$86 >> 2] = $85; $87 = $_e >> 1; $88 = ($_f1 + ($87 << 2)) | 0; $89 = HEAP32[$88 >> 2] | 0; $90 = $_e << 1; $91 = $90 & 2; $92 = ($91 + -1) | 0; $93 = Math_imul($89, $92) | 0; $94 = ($q + ($87 << 2)) | 0; $95 = HEAP32[$94 >> 2] | 0; $96 = ($95 + $93) | 0; HEAP32[$94 >> 2] = $96; $97 = ($14 + ($n0$0 << 3)) | 0; $98 = HEAP32[$q >> 2] | 0; $99 = HEAP32[$86 >> 2] | 0; $100 = HEAP32[$_aff >> 2] | 0; $101 = Math_imul($100, $98) | 0; $102 = ($_aff + 4) | 0; $103 = HEAP32[$102 >> 2] | 0; $104 = Math_imul($103, $99) | 0; $105 = ($104 + $101) | 0; $106 = ($_aff + 40) | 0; $107 = HEAP32[$106 >> 2] | 0; $108 = ($107 + -1) | 0; $109 = 1 << $108; $110 = ($105 + $109) | 0; $111 = $110 >> $107; $112 = ($_aff + 32) | 0; $113 = HEAP32[$112 >> 2] | 0; $114 = ($111 + $113) | 0; HEAP32[$97 >> 2] = $114; $115 = ($_aff + 8) | 0; $116 = HEAP32[$115 >> 2] | 0; $117 = Math_imul($116, $98) | 0; $118 = ($_aff + 12) | 0; $119 = HEAP32[$118 >> 2] | 0; $120 = Math_imul($119, $99) | 0; $121 = ($117 + $109) | 0; $122 = ($121 + $120) | 0; $123 = $122 >> $107; $124 = ($_aff + 36) | 0; $125 = HEAP32[$124 >> 2] | 0; $126 = ($123 + $125) | 0; $127 = ((($14 + ($n0$0 << 3)) | 0) + 4) | 0; HEAP32[$127 >> 2] = $126; $128 = $107; } _qr_line_fit_points($_l, $14, $12, $128); $129 = ($_f0 + 72) | 0; $130 = HEAP32[$129 >> 2] | 0; $131 = HEAP32[$130 >> 2] | 0; $132 = ($130 + 4) | 0; $133 = HEAP32[$132 >> 2] | 0; $_l$val$i = HEAP32[$_l >> 2] | 0; $_l$idx$i = ($_l + 4) | 0; $_l$idx$val$i = HEAP32[$_l$idx$i >> 2] | 0; $_l$idx1$i = ($_l + 8) | 0; $_l$idx1$val$i = HEAP32[$_l$idx1$i >> 2] | 0; $134 = Math_imul($_l$val$i, $131) | 0; $135 = Math_imul($_l$idx$val$i, $133) | 0; $136 = ($_l$idx1$val$i + $134) | 0; $137 = ($136 + $135) | 0; $138 = ($137 | 0) < 0; if (!$138) { _free($14); STACKTOP = sp; return; } $139 = (0 - $_l$val$i) | 0; HEAP32[$_l >> 2] = $139; $140 = (0 - $_l$idx$val$i) | 0; HEAP32[$_l$idx$i >> 2] = $140; $141 = (0 - $_l$idx1$val$i) | 0; HEAP32[$_l$idx1$i >> 2] = $141; _free($14); STACKTOP = sp; return; } function _qr_aff_line_step($_aff, $_l$val, $_l$1$val, $_v, $_du, $_dv) { $_aff = $_aff | 0; $_l$val = $_l$val | 0; $_l$1$val = $_l$1$val | 0; $_v = $_v | 0; $_du = $_du | 0; $_dv = $_dv | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $d$0 = 0, $ispos = 0, $ispos3 = 0, $ispos5 = 0, $n$0 = 0, $neg = 0, $neg4 = 0, $neg6 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_aff + ($_v << 2)) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = Math_imul($1, $_l$val) | 0; $3 = ((($_aff + ($_v << 2)) | 0) + 8) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = Math_imul($4, $_l$1$val) | 0; $6 = ($5 + $2) | 0; $7 = (1 - $_v) | 0; $8 = ($_aff + ($7 << 2)) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = Math_imul($9, $_l$val) | 0; $11 = ((($_aff + ($7 << 2)) | 0) + 8) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = Math_imul($12, $_l$1$val) | 0; $14 = ($13 + $10) | 0; $15 = ($14 | 0) < 0; if ($15) { $16 = (0 - $6) | 0; $17 = (0 - $14) | 0; $d$0 = $17; $n$0 = $16; } else { $d$0 = $14; $n$0 = $6; } $18 = _qr_ilog($_du) | 0; $ispos = ($n$0 | 0) > -1; $neg = (0 - $n$0) | 0; $19 = $ispos ? $n$0 : $neg; $20 = _qr_ilog($19) | 0; $21 = _qr_ilog($_du) | 0; $22 = _qr_ilog($19) | 0; $23 = ($21 + -29) | 0; $24 = ($23 + $22) | 0; $25 = ($24 | 0) > 0; $26 = ($18 + -29) | 0; $27 = ($26 + $20) | 0; $28 = $25 ? $27 : 0; $29 = 1 << $28; $30 = $29 >> 1; $31 = ($30 + $n$0) | 0; $32 = $31 >> $28; $33 = ($30 + $d$0) | 0; $34 = $33 >> $28; $ispos3 = ($32 | 0) > -1; $neg4 = (0 - $32) | 0; $35 = $ispos3 ? $32 : $neg4; $36 = ($35 | 0) < ($34 | 0); if (!$36) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $37 = (0 - $_du) | 0; $38 = Math_imul($32, $37) | 0; $39 = $34 >> 1; $40 = $38 >> 31; $41 = ($40 + $39) | 0; $42 = $41 ^ $40; $43 = ($42 + $38) | 0; $44 = (($43 | 0) / ($34 | 0)) & -1; $ispos5 = ($44 | 0) > -1; $neg6 = (0 - $44) | 0; $45 = $ispos5 ? $44 : $neg6; $46 = ($45 | 0) < ($_du | 0); if (!$46) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } HEAP32[$_dv >> 2] = $44; $$0 = 0; STACKTOP = sp; return $$0 | 0; } function _qr_line_fit_points($_l, $_p, $_np, $_res) { $_l = $_l | 0; $_p = $_p | 0; $_np = $_np | 0; $_res = $_res | 0; var $$neg$i = 0, $$neg9$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0; var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; var $exitcond = 0, $exitcond32 = 0, $i$014 = 0, $i$15 = 0, $ispos$i = 0, $ispos1$i = 0, $neg$i = 0, $neg2$i = 0, $sx$0$lcssa = 0, $sx$013 = 0, $sxx$0$lcssa = 0, $sxx$02 = 0, $sxy$0$lcssa = 0, $sxy$03 = 0, $sy$0$lcssa = 0, $sy$012 = 0, $syy$0$lcssa = 0, $syy$04 = 0, $xmax$0$lcssa = 0, $xmax$010 = 0; var $xmin$0$lcssa = 0, $xmin$011 = 0, $ymax$0$lcssa = 0, $ymax$08 = 0, $ymin$0$lcssa = 0, $ymin$09 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_np | 0) > 0; if ($0) { $i$014 = 0; $sx$013 = 0; $sy$012 = 0; $xmax$010 = -2147483648; $xmin$011 = 2147483647; $ymax$08 = -2147483648; $ymin$09 = 2147483647; while (1) { $1 = ($_p + ($i$014 << 3)) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = ($2 + $sx$013) | 0; $4 = ($2 | 0) < ($xmin$011 | 0); $5 = $4 ? $2 : $xmin$011; $6 = ($xmax$010 - $2) | 0; $7 = ($2 | 0) > ($xmax$010 | 0); $8 = $7 ? $6 : 0; $9 = ($xmax$010 - $8) | 0; $10 = ((($_p + ($i$014 << 3)) | 0) + 4) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 + $sy$012) | 0; $13 = ($11 | 0) < ($ymin$09 | 0); $14 = $13 ? $11 : $ymin$09; $15 = ($ymax$08 - $11) | 0; $16 = ($11 | 0) > ($ymax$08 | 0); $17 = $16 ? $15 : 0; $18 = ($ymax$08 - $17) | 0; $19 = ($i$014 + 1) | 0; $exitcond32 = ($19 | 0) == ($_np | 0); if ($exitcond32) { $sx$0$lcssa = $3; $sy$0$lcssa = $12; $xmax$0$lcssa = $9; $xmin$0$lcssa = $5; $ymax$0$lcssa = $18; $ymin$0$lcssa = $14; break; } else { $i$014 = $19; $sx$013 = $3; $sy$012 = $12; $xmax$010 = $9; $xmin$011 = $5; $ymax$08 = $18; $ymin$09 = $14; } } } else { $sx$0$lcssa = 0; $sy$0$lcssa = 0; $xmax$0$lcssa = -2147483648; $xmin$0$lcssa = 2147483647; $ymax$0$lcssa = -2147483648; $ymin$0$lcssa = 2147483647; } $20 = $_np >> 1; $21 = ($sx$0$lcssa + $20) | 0; $22 = (($21 | 0) / ($_np | 0)) & -1; $23 = ($sy$0$lcssa + $20) | 0; $24 = (($23 | 0) / ($_np | 0)) & -1; $25 = ($xmax$0$lcssa - $22) | 0; $26 = ($22 - $xmin$0$lcssa) | 0; $27 = ($25 - $26) | 0; $28 = ($26 | 0) > ($25 | 0); $29 = $28 ? $27 : 0; $30 = ($25 - $29) | 0; $31 = ($ymax$0$lcssa - $24) | 0; $32 = ($24 - $ymin$0$lcssa) | 0; $33 = ($31 - $32) | 0; $34 = ($32 | 0) > ($31 | 0); $35 = $34 ? $33 : 0; $36 = ($31 - $35) | 0; $37 = ($30 - $36) | 0; $38 = ($36 | 0) > ($30 | 0); $39 = $38 ? $37 : 0; $40 = ($30 - $39) | 0; $41 = Math_imul($40, $_np) | 0; $42 = _qr_ilog($41) | 0; $43 = _qr_ilog($41) | 0; $44 = ($43 + -15) | 0; $45 = ($44 | 0) > 0; $46 = ($42 + -15) | 0; $47 = $45 ? $46 : 0; $48 = 1 << $47; $49 = $48 >> 1; if ($0) { $50 = ($49 - $22) | 0; $51 = ($49 - $24) | 0; $i$15 = 0; $sxx$02 = 0; $sxy$03 = 0; $syy$04 = 0; while (1) { $52 = ($_p + ($i$15 << 3)) | 0; $53 = HEAP32[$52 >> 2] | 0; $54 = ($50 + $53) | 0; $55 = $54 >> $47; $56 = ((($_p + ($i$15 << 3)) | 0) + 4) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($51 + $57) | 0; $59 = $58 >> $47; $60 = Math_imul($55, $55) | 0; $61 = ($60 + $sxx$02) | 0; $62 = Math_imul($59, $55) | 0; $63 = ($62 + $sxy$03) | 0; $64 = Math_imul($59, $59) | 0; $65 = ($64 + $syy$04) | 0; $66 = ($i$15 + 1) | 0; $exitcond = ($66 | 0) == ($_np | 0); if ($exitcond) { $sxx$0$lcssa = $61; $sxy$0$lcssa = $63; $syy$0$lcssa = $65; break; } else { $i$15 = $66; $sxx$02 = $61; $sxy$03 = $63; $syy$04 = $65; } } } else { $sxx$0$lcssa = 0; $sxy$0$lcssa = 0; $syy$0$lcssa = 0; } $67 = ($sxx$0$lcssa - $syy$0$lcssa) | 0; $ispos$i = ($67 | 0) > -1; $neg$i = (0 - $67) | 0; $68 = $ispos$i ? $67 : $neg$i; $69 = (0 - $sxy$0$lcssa) | 0; $70 = $69 << 1; $71 = _qr_ihypot($68, $70) | 0; $72 = _qr_ilog($68) | 0; $73 = _qr_ilog($68) | 0; $ispos1$i = ($70 | 0) > -1; $neg2$i = (0 - $70) | 0; $74 = $ispos1$i ? $70 : $neg2$i; $75 = _qr_ilog($74) | 0; $76 = _qr_ilog($74) | 0; $77 = _qr_ilog($68) | 0; $78 = ($76 | 0) > ($77 | 0); $79 = ($75 - $73) | 0; $$neg$i = $78 ? $79 : 0; $80 = ($_res + 1) | 0; $81 = $80 >> 1; $82 = _qr_ilog($68) | 0; $83 = _qr_ilog($68) | 0; $84 = _qr_ilog($74) | 0; $85 = _qr_ilog($74) | 0; $86 = _qr_ilog($68) | 0; $87 = ($85 | 0) > ($86 | 0); $88 = ($84 - $83) | 0; $$neg9$i = $87 ? $88 : 0; $89 = (1 - $81) | 0; $90 = ($82 + $89) | 0; $91 = ($90 + $$neg9$i) | 0; $92 = ($91 | 0) > 0; $93 = ($72 + $89) | 0; $94 = ($93 + $$neg$i) | 0; $95 = $92 ? $94 : 0; $96 = 1 << $95; $97 = $96 >> 1; $98 = ($sxx$0$lcssa | 0) > ($syy$0$lcssa | 0); if ($98) { $99 = ($97 + $70) | 0; $100 = $99 >> $95; HEAP32[$_l >> 2] = $100; $101 = ($71 + $68) | 0; $102 = ($101 + $97) | 0; $103 = $102 >> $95; $104 = ($_l + 4) | 0; HEAP32[$104 >> 2] = $103; $112 = $100; $114 = $103; $111 = Math_imul($112, $22) | 0; $113 = Math_imul($114, $24) | 0; $115 = ($111 + $113) | 0; $116 = (0 - $115) | 0; $117 = ($_l + 8) | 0; HEAP32[$117 >> 2] = $116; STACKTOP = sp; return; } else { $105 = ($71 + $68) | 0; $106 = ($105 + $97) | 0; $107 = $106 >> $95; HEAP32[$_l >> 2] = $107; $108 = ($97 + $70) | 0; $109 = $108 >> $95; $110 = ($_l + 4) | 0; HEAP32[$110 >> 2] = $109; $112 = $107; $114 = $109; $111 = Math_imul($112, $22) | 0; $113 = Math_imul($114, $24) | 0; $115 = ($111 + $113) | 0; $116 = (0 - $115) | 0; $117 = ($_l + 8) | 0; HEAP32[$117 >> 2] = $116; STACKTOP = sp; return; } } function _qr_code_data_list_extract_text($_qrlist, $iscn, $img) { $_qrlist = $_qrlist | 0; $iscn = $iscn | 0; $img = $img | 0; var $$fnc1$1 = 0, $$in$i = 0, $$in$i26 = 0, $$in$i41 = 0, $$in$i54 = 0, $$lobit = 0, $$neg68 = 0, $$neg69 = 0, $$op = 0, $$op241 = 0, $$phi$trans$insert = 0, $$phi$trans$insert$i = 0, $$phi$trans$insert$i11 = 0, $$phi$trans$insert$i11$phi$trans$insert = 0, $$phi$trans$insert$i14 = 0, $$phi$trans$insert$i14$phi$trans$insert = 0, $$phi$trans$insert$i17 = 0, $$phi$trans$insert$i17$phi$trans$insert = 0, $$phi$trans$insert$i45 = 0, $$phi$trans$insert239 = 0; var $$pre = 0, $$pre$i = 0, $$pre$i12 = 0, $$pre$i12$pre = 0, $$pre$i15 = 0, $$pre$i15$pre = 0, $$pre$i18 = 0, $$pre$i18$pre = 0, $$pre$i21 = 0, $$pre$i31 = 0, $$pre$i36 = 0, $$pre$i46 = 0, $$pre219 = 0, $$pre221 = 0, $$pre223 = 0, $$pre225 = 0, $$pre226 = 0, $$pre240 = 0, $0 = 0, $1 = 0; var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0; var $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; var $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0; var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0; var $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0; var $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0; var $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0; var $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0; var $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0; var $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; var $98 = 0, $99 = 0, $buf = 0, $c$0 = 0, $dir = 0, $eci$0151 = 0, $eci$1$lcssa = 0, $eci$1128 = 0, $eci$2 = 0, $eci$3 = 0, $eci_cd$0146 = 0, $eci_cd$0155 = 0, $eci_cd$1$lcssa = 0, $eci_cd$1134 = 0, $eci_cd$2 = 0, $ei$0114 = 0, $ej$0 = 0, $ej$0$in107 = 0, $ej$0$in107$phi = 0, $ej$0106 = 0; var $ej$0108 = 0, $enc$0 = 0, $enc_list = 0, $err$1$lcssa = 0, $err$3113 = 0, $err$4 = 0, $err$5 = 0, $exitcond = 0, $exitcond203 = 0, $fnc1$0$lcssa248251264270 = 0, $fnc1$0$lcssa248254 = 0, $fnc1$088 = 0, $fnc1$177 = 0, $fnc1$2 = 0, $fnc1$3 = 0, $fnc1_2ai$089 = 0, $fnc1_2ai$178 = 0, $fnc1_2ai$2 = 0, $fnc1_2ai$3 = 0, $has_kanji$090 = 0; var $has_kanji$179 = 0, $has_kanji$2 = 0, $has_kanji$3 = 0, $has_kanji$4 = 0, $has_kanji$5 = 0, $i$01$i = 0, $i$01$i49 = 0, $i$0193 = 0, $i$03$i = 0, $i$03$i24 = 0, $i$03$i39 = 0, $i$03$i52 = 0, $in = 0, $inleft = 0, $ispos = 0, $ispos6 = 0, $j$173 = 0, $j$291 = 0, $j$3153 = 0, $j$4 = 0; var $j$4$in = 0, $j$5 = 0, $j$6164 = 0, $k$080 = 0, $k$1132 = 0, $neg = 0, $neg7 = 0, $or$cond = 0, $or$cond$i = 0, $or$cond10 = 0, $or$cond8 = 0, $or$cond9 = 0, $out = 0, $outleft = 0, $p$0 = 0, $phitmp = 0, $plen$0 = 0, $sa = 0, $sa_ctext$087 = 0, $sa_ctext$176 = 0; var $sa_ctext$2 = 0, $sa_ctext$3 = 0, $sa_ntext$0257 = 0, $sa_ntext$1144 = 0, $sa_ntext$1144266268 = 0, $sa_ntext$1150 = 0, $sa_ntext$2 = 0, $sa_ntext$3$lcssa = 0, $sa_ntext$3127 = 0, $sa_ntext$4123 = 0, $sa_ntext$5$ph = 0, $sa_ntext$6 = 0, $sa_size$0242 = 0, $sa_size$0244265269 = 0, $sa_sym$0 = 0, $sa_text$0 = 0, $shift$0 = 0, $sym$0154 = 0, $sym$1 = 0, $syms = 0; var $vararg_buffer = 0, $xmax$0183 = 0, $xmax$1166 = 0, $xmax$2 = 0, $xmax$3 = 0, $xmin$0182 = 0, $xmin$1$ = 0, $xmin$1165 = 0, $xmin$3 = 0, $ymax$0185 = 0, $ymax$1168 = 0, $ymax$2 = 0, $ymax$3 = 0, $ymin$0184 = 0, $ymin$1$ = 0, $ymin$1167 = 0, $ymin$3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 144) | 0; $vararg_buffer = sp; $enc_list = (sp + 104) | 0; $sa = (sp + 40) | 0; $syms = (sp + 32) | 0; $dir = (sp + 24) | 0; $inleft = (sp + 16) | 0; $outleft = (sp + 12) | 0; $in = (sp + 8) | 0; $out = (sp + 4) | 0; $buf = (sp + 120) | 0; $0 = HEAP32[$_qrlist >> 2] | 0; $1 = ($_qrlist + 4) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = _calloc($2, 1) | 0; $4 = _iconv_open(7888, 7896) | 0; $5 = _iconv_open(7888, 7912) | 0; $6 = _iconv_open(7888, 7888) | 0; $7 = ($2 | 0) > 0; L1: do { if ($7) { $8 = ($enc_list + 4) | 0; $9 = ($enc_list + 8) | 0; $10 = ($img + 4) | 0; $11 = ($img + 8) | 0; $12 = ($dir + 4) | 0; $13 = ($6 | 0) == (-1 | 0); $i$0193 = 0; L3: while (1) { $14 = ($3 + $i$0193) | 0; $15 = HEAP8[$14 >> 0] | 0; $16 = ($15 << 24) >> 24 == 0; L5: do { if ($16) { HEAP32[$syms >> 2] = 0; $17 = ((($0 + (($i$0193 * 48) | 0)) | 0) + 11) | 0; $18 = HEAP8[$17 >> 0] | 0; $19 = ($18 << 24) >> 24 == 0; if ($19) { HEAP32[$sa >> 2] = $i$0193; $sa_size$0242 = 1; label = 16; } else { $20 = $18 & 255; $21 = ((($0 + (($i$0193 * 48) | 0)) | 0) + 12) | 0; $22 = HEAP8[$21 >> 0] | 0; $23 = ($18 & 255) > 1; $$op241 = $20 << 2; $24 = $23 ? $$op241 : 4; _memset($sa | 0, -1, $24 | 0) | 0; $479 = 1; $j$173 = $i$0193; while (1) { $25 = ($3 + $j$173) | 0; if ($479) { $26 = ((($0 + (($j$173 * 48) | 0)) | 0) + 11) | 0; $27 = HEAP8[$26 >> 0] | 0; $28 = ($27 << 24) >> 24 == ($18 << 24) >> 24; if ($28) { $29 = ((($0 + (($j$173 * 48) | 0)) | 0) + 12) | 0; $30 = HEAP8[$29 >> 0] | 0; $31 = ($30 << 24) >> 24 == ($22 << 24) >> 24; if ($31) { $32 = ((($0 + (($j$173 * 48) | 0)) | 0) + 10) | 0; $33 = HEAP8[$32 >> 0] | 0; $34 = $33 & 255; $35 = ($sa + ($34 << 2)) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) < 0; if ($37) { HEAP32[$35 >> 2] = $j$173; HEAP8[$25 >> 0] = 1; } } } } $38 = ($j$173 + 1) | 0; $exitcond = ($38 | 0) == ($2 | 0); if ($exitcond) { break; } $$phi$trans$insert239 = ($3 + $38) | 0; $$pre240 = HEAP8[$$phi$trans$insert239 >> 0] | 0; $phitmp = ($$pre240 << 24) >> 24 == 0; $479 = $phitmp; $j$173 = $38; } $39 = ($18 << 24) >> 24 == 0; if ($39) { $40 = _malloc(1) | 0; HEAP32[$enc_list >> 2] = $5; HEAP32[$8 >> 2] = $4; HEAP32[$9 >> 2] = $6; $375 = $40; $376 = 1; $fnc1$0$lcssa248251264270 = 0; $sa_ntext$1144266268 = 0; $sa_size$0244265269 = 0; } else { $sa_size$0242 = $20; label = 16; } } do { if ((label | 0) == 16) { label = 0; $fnc1$088 = 0; $fnc1_2ai$089 = 0; $has_kanji$090 = 0; $j$291 = 0; $sa_ctext$087 = 0; while (1) { $41 = ($sa + ($j$291 << 2)) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($42 | 0) > -1; if ($43) { $44 = ((($0 + (($42 * 48) | 0)) | 0) + 4) | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = ($45 | 0) > 0; if ($46) { $47 = ($0 + (($42 * 48) | 0)) | 0; $48 = HEAP32[$47 >> 2] | 0; $fnc1$177 = $fnc1$088; $fnc1_2ai$178 = $fnc1_2ai$089; $has_kanji$179 = $has_kanji$090; $k$080 = 0; $sa_ctext$176 = $sa_ctext$087; while (1) { $49 = ($48 + (($k$080 * 12) | 0)) | 0; $50 = HEAP32[$49 >> 2] | 0; if (($50 | 0) == 5) { $51 = ($fnc1$177 | 0) == 0; $$fnc1$1 = $51 ? 1 : $fnc1$177; $fnc1$2 = $$fnc1$1; $fnc1_2ai$2 = $fnc1_2ai$178; $has_kanji$4 = $has_kanji$179; $sa_ctext$2 = $sa_ctext$176; } else if (($50 | 0) == 8) { $has_kanji$2 = 1; label = 25; } else if (($50 | 0) == 4) { $has_kanji$2 = $has_kanji$179; label = 25; } else if (($50 | 0) == 9) { $52 = ($fnc1$177 | 0) == 0; if ($52) { $53 = ((($48 + (($k$080 * 12) | 0)) | 0) + 4) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($sa_ctext$176 + 2) | 0; $fnc1$2 = 2; $fnc1_2ai$2 = $54; $has_kanji$4 = $has_kanji$179; $sa_ctext$2 = $55; } else { $fnc1$2 = $fnc1$177; $fnc1_2ai$2 = $fnc1_2ai$178; $has_kanji$4 = $has_kanji$179; $sa_ctext$2 = $sa_ctext$176; } } else { $has_kanji$3 = $has_kanji$179; $shift$0 = 0; label = 26; } if ((label | 0) == 25) { label = 0; $has_kanji$3 = $has_kanji$2; $shift$0 = 2; label = 26; } if ((label | 0) == 26) { label = 0; $56 = ($50 + -1) | 0; $57 = $56 & $50; $58 = ($57 | 0) == 0; if ($58) { $59 = ((($48 + (($k$080 * 12) | 0)) | 0) + 8) | 0; $60 = HEAP32[$59 >> 2] | 0; $61 = $60 << $shift$0; $62 = ($61 + $sa_ctext$176) | 0; $fnc1$2 = $fnc1$177; $fnc1_2ai$2 = $fnc1_2ai$178; $has_kanji$4 = $has_kanji$3; $sa_ctext$2 = $62; } else { $fnc1$2 = $fnc1$177; $fnc1_2ai$2 = $fnc1_2ai$178; $has_kanji$4 = $has_kanji$3; $sa_ctext$2 = $sa_ctext$176; } } $63 = ($k$080 + 1) | 0; $64 = ($63 | 0) < ($45 | 0); if ($64) { $fnc1$177 = $fnc1$2; $fnc1_2ai$178 = $fnc1_2ai$2; $has_kanji$179 = $has_kanji$4; $k$080 = $63; $sa_ctext$176 = $sa_ctext$2; } else { $fnc1$3 = $fnc1$2; $fnc1_2ai$3 = $fnc1_2ai$2; $has_kanji$5 = $has_kanji$4; $sa_ctext$3 = $sa_ctext$2; break; } } } else { $fnc1$3 = $fnc1$088; $fnc1_2ai$3 = $fnc1_2ai$089; $has_kanji$5 = $has_kanji$090; $sa_ctext$3 = $sa_ctext$087; } } else { $fnc1$3 = $fnc1$088; $fnc1_2ai$3 = $fnc1_2ai$089; $has_kanji$5 = $has_kanji$090; $sa_ctext$3 = $sa_ctext$087; } $65 = ($j$291 + 1) | 0; $66 = ($65 | 0) < ($sa_size$0242 | 0); if ($66) { $fnc1$088 = $fnc1$3; $fnc1_2ai$089 = $fnc1_2ai$3; $has_kanji$090 = $has_kanji$5; $j$291 = $65; $sa_ctext$087 = $sa_ctext$3; } else { break; } } $67 = ($sa_ctext$3 + 1) | 0; $68 = _malloc($67) | 0; $69 = ($fnc1$3 | 0) == 2; do { if ($69) { $70 = ($fnc1_2ai$3 | 0) < 100; if ($70) { $71 = (($fnc1_2ai$3 | 0) / 10) & -1; $72 = ($71 + 48) | 0; $73 = $72 & 255; HEAP8[$68 >> 0] = $73; $74 = ($fnc1_2ai$3 | 0) % 10 & -1; $75 = ($74 + 48) | 0; $76 = $75 & 255; $77 = ($68 + 1) | 0; HEAP8[$77 >> 0] = $76; HEAP32[$enc_list >> 2] = $5; HEAP32[$8 >> 2] = $4; HEAP32[$9 >> 2] = $6; $fnc1$0$lcssa248254 = $fnc1$3; $sa_ntext$0257 = 2; break; } else { $78 = ($fnc1_2ai$3 + 156) | 0; $79 = $78 & 255; HEAP8[$68 >> 0] = $79; HEAP32[$enc_list >> 2] = $5; HEAP32[$8 >> 2] = $4; HEAP32[$9 >> 2] = $6; $fnc1$0$lcssa248254 = 2; $sa_ntext$0257 = 1; break; } } else { HEAP32[$enc_list >> 2] = $5; HEAP32[$8 >> 2] = $4; HEAP32[$9 >> 2] = $6; $fnc1$0$lcssa248254 = $fnc1$3; $sa_ntext$0257 = 0; } } while (0); $80 = ($fnc1$0$lcssa248254 | 0) == 0; $81 = ($has_kanji$5 | 0) == 0; $82 = $68; $eci$0151 = -1; $eci_cd$0155 = -1; $j$3153 = 0; $sa_ntext$1150 = $sa_ntext$0257; $sym$0154 = $syms; L50: while (1) { $83 = __zbar_image_scanner_alloc_sym($iscn, 64, 0) | 0; HEAP32[$sym$0154 >> 2] = $83; $84 = ($83 + 16) | 0; HEAP32[$84 >> 2] = $sa_ntext$1150; $85 = ($sa + ($j$3153 << 2)) | 0; $86 = HEAP32[$85 >> 2] | 0; $87 = ($86 | 0) < 0; if ($87) { HEAP32[$83 >> 2] = 1; $j$4$in = $j$3153; while (1) { $j$4 = ($j$4$in + 1) | 0; $88 = ($j$4 | 0) < ($sa_size$0242 | 0); if (!$88) { $480 = 1; $eci_cd$0146 = $eci_cd$0155; $sa_ntext$1144 = $sa_ntext$1150; break L50; } $89 = ($sa + ($j$4 << 2)) | 0; $90 = HEAP32[$89 >> 2] | 0; $91 = ($90 | 0) < 0; if ($91) { $j$4$in = $j$4; } else { break; } } $92 = ($sa_ntext$1150 + 1) | 0; $93 = ($68 + $sa_ntext$1150) | 0; HEAP8[$93 >> 0] = 0; $94 = HEAP32[$sym$0154 >> 2] | 0; $95 = ($94 + 16) | 0; HEAP32[$95 >> 2] = $92; $96 = ($94 + 44) | 0; $97 = __zbar_image_scanner_alloc_sym($iscn, 64, 0) | 0; HEAP32[$96 >> 2] = $97; $104 = $97; $99 = $90; $j$5 = $j$4; $sa_ntext$2 = $92; $sym$1 = $96; } else { $104 = $83; $99 = $86; $j$5 = $j$3153; $sa_ntext$2 = $sa_ntext$1150; $sym$1 = $sym$0154; } $98 = ((($0 + (($99 * 48) | 0)) | 0) + 16) | 0; $100 = HEAP32[$98 >> 2] | 0; $101 = ((($0 + (($99 * 48) | 0)) | 0) + 20) | 0; $102 = HEAP32[$101 >> 2] | 0; $103 = ($104 + 28) | 0; $105 = HEAP32[$103 >> 2] | 0; $106 = ($105 + 1) | 0; HEAP32[$103 >> 2] = $106; $107 = ($104 + 24) | 0; $108 = HEAP32[$107 >> 2] | 0; $109 = $106 >>> 0 < $108 >>> 0; $$phi$trans$insert$i = ($104 + 32) | 0; $$pre$i = HEAP32[$$phi$trans$insert$i >> 2] | 0; if ($109) { $$pre$i12 = $$pre$i; $114 = $$pre$i; $121 = $104; } else { $110 = ($108 + 1) | 0; HEAP32[$107 >> 2] = $110; $111 = $110 << 3; $112 = _realloc($$pre$i, $111) | 0; HEAP32[$$phi$trans$insert$i >> 2] = $112; $$pre219 = HEAP32[$sym$1 >> 2] | 0; $$phi$trans$insert$i11$phi$trans$insert = ($$pre219 + 32) | 0; $$pre$i12$pre = HEAP32[$$phi$trans$insert$i11$phi$trans$insert >> 2] | 0; $$pre$i12 = $$pre$i12$pre; $114 = $112; $121 = $$pre219; } $113 = ($114 + ($105 << 3)) | 0; HEAP32[$113 >> 2] = $100; $115 = ((($114 + ($105 << 3)) | 0) + 4) | 0; HEAP32[$115 >> 2] = $102; $116 = ((($0 + (($99 * 48) | 0)) | 0) + 32) | 0; $117 = HEAP32[$116 >> 2] | 0; $118 = ((($0 + (($99 * 48) | 0)) | 0) + 36) | 0; $119 = HEAP32[$118 >> 2] | 0; $120 = ($121 + 28) | 0; $122 = HEAP32[$120 >> 2] | 0; $123 = ($122 + 1) | 0; HEAP32[$120 >> 2] = $123; $124 = ($121 + 24) | 0; $125 = HEAP32[$124 >> 2] | 0; $126 = $123 >>> 0 < $125 >>> 0; if ($126) { $$pre$i15 = $$pre$i12; $131 = $$pre$i12; $138 = $121; } else { $$phi$trans$insert$i11 = ($121 + 32) | 0; $127 = ($125 + 1) | 0; HEAP32[$124 >> 2] = $127; $128 = $127 << 3; $129 = _realloc($$pre$i12, $128) | 0; HEAP32[$$phi$trans$insert$i11 >> 2] = $129; $$pre221 = HEAP32[$sym$1 >> 2] | 0; $$phi$trans$insert$i14$phi$trans$insert = ($$pre221 + 32) | 0; $$pre$i15$pre = HEAP32[$$phi$trans$insert$i14$phi$trans$insert >> 2] | 0; $$pre$i15 = $$pre$i15$pre; $131 = $129; $138 = $$pre221; } $130 = ($131 + ($122 << 3)) | 0; HEAP32[$130 >> 2] = $117; $132 = ((($131 + ($122 << 3)) | 0) + 4) | 0; HEAP32[$132 >> 2] = $119; $133 = ((($0 + (($99 * 48) | 0)) | 0) + 40) | 0; $134 = HEAP32[$133 >> 2] | 0; $135 = ((($0 + (($99 * 48) | 0)) | 0) + 44) | 0; $136 = HEAP32[$135 >> 2] | 0; $137 = ($138 + 28) | 0; $139 = HEAP32[$137 >> 2] | 0; $140 = ($139 + 1) | 0; HEAP32[$137 >> 2] = $140; $141 = ($138 + 24) | 0; $142 = HEAP32[$141 >> 2] | 0; $143 = $140 >>> 0 < $142 >>> 0; if ($143) { $$pre$i18 = $$pre$i15; $148 = $$pre$i15; $155 = $138; } else { $$phi$trans$insert$i14 = ($138 + 32) | 0; $144 = ($142 + 1) | 0; HEAP32[$141 >> 2] = $144; $145 = $144 << 3; $146 = _realloc($$pre$i15, $145) | 0; HEAP32[$$phi$trans$insert$i14 >> 2] = $146; $$pre223 = HEAP32[$sym$1 >> 2] | 0; $$phi$trans$insert$i17$phi$trans$insert = ($$pre223 + 32) | 0; $$pre$i18$pre = HEAP32[$$phi$trans$insert$i17$phi$trans$insert >> 2] | 0; $$pre$i18 = $$pre$i18$pre; $148 = $146; $155 = $$pre223; } $147 = ($148 + ($139 << 3)) | 0; HEAP32[$147 >> 2] = $134; $149 = ((($148 + ($139 << 3)) | 0) + 4) | 0; HEAP32[$149 >> 2] = $136; $150 = ((($0 + (($99 * 48) | 0)) | 0) + 24) | 0; $151 = HEAP32[$150 >> 2] | 0; $152 = ((($0 + (($99 * 48) | 0)) | 0) + 28) | 0; $153 = HEAP32[$152 >> 2] | 0; $154 = ($155 + 28) | 0; $156 = HEAP32[$154 >> 2] | 0; $157 = ($156 + 1) | 0; HEAP32[$154 >> 2] = $157; $158 = ($155 + 24) | 0; $159 = HEAP32[$158 >> 2] | 0; $160 = $157 >>> 0 < $159 >>> 0; if ($160) { $165 = $$pre$i18; $191 = $155; } else { $$phi$trans$insert$i17 = ($155 + 32) | 0; $161 = ($159 + 1) | 0; HEAP32[$158 >> 2] = $161; $162 = $161 << 3; $163 = _realloc($$pre$i18, $162) | 0; HEAP32[$$phi$trans$insert$i17 >> 2] = $163; $$pre225 = HEAP32[$sym$1 >> 2] | 0; $165 = $163; $191 = $$pre225; } $164 = ($165 + ($156 << 3)) | 0; HEAP32[$164 >> 2] = $151; $166 = ((($165 + ($156 << 3)) | 0) + 4) | 0; HEAP32[$166 >> 2] = $153; $167 = HEAP32[$98 >> 2] | 0; $168 = HEAP32[$116 >> 2] | 0; $169 = ($167 - $168) | 0; $170 = HEAP32[$150 >> 2] | 0; $171 = ($169 + $170) | 0; $172 = HEAP32[$133 >> 2] | 0; $173 = ($171 - $172) | 0; HEAP32[$dir >> 2] = $173; $174 = HEAP32[$118 >> 2] | 0; $175 = HEAP32[$101 >> 2] | 0; $176 = ($174 - $175) | 0; $177 = HEAP32[$135 >> 2] | 0; $178 = ($176 + $177) | 0; $179 = HEAP32[$152 >> 2] | 0; $180 = ($178 - $179) | 0; HEAP32[$12 >> 2] = $180; $ispos = ($173 | 0) > -1; $neg = (0 - $173) | 0; $181 = $ispos ? $173 : $neg; $ispos6 = ($180 | 0) > -1; $neg7 = (0 - $180) | 0; $182 = $ispos6 ? $180 : $neg7; $183 = ($181 | 0) > ($182 | 0); $184 = $183 & 1; $185 = $184 ^ 1; $186 = ($dir + ($185 << 2)) | 0; $187 = HEAP32[$186 >> 2] | 0; $$lobit = $187 >>> 31; $188 = $$lobit << 1; $189 = $184 | $188; $190 = ($191 + 36) | 0; HEAP32[$190 >> 2] = $189; $192 = ((($0 + (($99 * 48) | 0)) | 0) + 4) | 0; $193 = HEAP32[$192 >> 2] | 0; $194 = ($193 | 0) > 0; L71: do { if ($194) { $195 = ($0 + (($99 * 48) | 0)) | 0; $eci$1128 = $eci$0151; $eci_cd$1134 = $eci_cd$0155; $k$1132 = 0; $sa_ntext$3127 = $sa_ntext$2; while (1) { $196 = HEAP32[$195 >> 2] | 0; $197 = ($196 + (($k$1132 * 12) | 0)) | 0; $198 = HEAP32[$197 >> 2] | 0; L75: do { switch ($198 | 0) { case 2: { $208 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 4) | 0; $209 = HEAP32[$208 >> 2] | 0; HEAP32[$in >> 2] = $209; $210 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 8) | 0; $211 = HEAP32[$210 >> 2] | 0; HEAP32[$inleft >> 2] = $211; do { if ($80) { $237 = $211; $239 = $209; $sa_ntext$5$ph = $sa_ntext$3127; } else { $212 = _memchr($209, 37, $211) | 0; $213 = ($212 | 0) == (0 | 0); if ($213) { $237 = $211; $239 = $209; $sa_ntext$5$ph = $sa_ntext$3127; break; } else { $214 = $212; $216 = $209; $225 = $211; $sa_ntext$4123 = $sa_ntext$3127; } while (1) { $215 = $214; $217 = $216; $218 = ($215 - $217) | 0; $219 = ($sa_ctext$3 - $sa_ntext$4123) | 0; $220 = ($218 + 1) | 0; $221 = $219 >>> 0 < $220 >>> 0; if ($221) { $eci$1$lcssa = $eci$1128; $eci_cd$1$lcssa = $eci_cd$1134; $err$1$lcssa = 1; $sa_ntext$3$lcssa = $sa_ntext$4123; break L71; } $222 = ($68 + $sa_ntext$4123) | 0; _memcpy($222 | 0, $216 | 0, $218 | 0) | 0; $223 = ($218 + $sa_ntext$4123) | 0; $224 = $220 >>> 0 < $225 >>> 0; if ($224) { $226 = ($214 + 1) | 0; $227 = HEAP8[$226 >> 0] | 0; $228 = ($227 << 24) >> 24 == 37; if ($228) { $c$0 = 37; $p$0 = $226; $plen$0 = $220; } else { label = 59; } } else { label = 59; } if ((label | 0) == 59) { label = 0; $c$0 = 29; $p$0 = $214; $plen$0 = $218; } $229 = ($223 + 1) | 0; $230 = ($68 + $223) | 0; HEAP8[$230 >> 0] = $c$0; $$neg68 = $plen$0 ^ -1; $231 = ($225 + $$neg68) | 0; HEAP32[$inleft >> 2] = $231; $232 = ($p$0 + 1) | 0; HEAP32[$in >> 2] = $232; $233 = _memchr($232, 37, $231) | 0; $234 = ($233 | 0) == (0 | 0); if ($234) { $237 = $231; $239 = $232; $sa_ntext$5$ph = $229; break; } else { $214 = $233; $216 = $232; $225 = $231; $sa_ntext$4123 = $229; } } } } while (0); $235 = ($sa_ctext$3 - $sa_ntext$5$ph) | 0; $236 = $235 >>> 0 < $237 >>> 0; if ($236) { $eci$1$lcssa = $eci$1128; $eci_cd$1$lcssa = $eci_cd$1134; $err$1$lcssa = 1; $sa_ntext$3$lcssa = $sa_ntext$5$ph; break L71; } $238 = ($68 + $sa_ntext$5$ph) | 0; _memcpy($238 | 0, $239 | 0, $237 | 0) | 0; $240 = ($237 + $sa_ntext$5$ph) | 0; $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = 0; $sa_ntext$6 = $240; break; } case 1: { $199 = ($sa_ctext$3 - $sa_ntext$3127) | 0; $200 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 8) | 0; $201 = HEAP32[$200 >> 2] | 0; $202 = $199 >>> 0 < $201 >>> 0; if ($202) { $eci$1$lcssa = $eci$1128; $eci_cd$1$lcssa = $eci_cd$1134; $err$1$lcssa = 1; $sa_ntext$3$lcssa = $sa_ntext$3127; break L71; } $203 = ($68 + $sa_ntext$3127) | 0; $204 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 4) | 0; $205 = HEAP32[$204 >> 2] | 0; _memcpy($203 | 0, $205 | 0, $201 | 0) | 0; $206 = HEAP32[$200 >> 2] | 0; $207 = ($206 + $sa_ntext$3127) | 0; $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = 0; $sa_ntext$6 = $207; break; } case 7: { $353 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 4) | 0; $354 = HEAP32[$353 >> 2] | 0; $355 = $354 >>> 0 < 19; $356 = ($354 | 0) != 14; $or$cond = $355 & $356; do { if ($or$cond) { if ((($354 | 0) == 0) | (($354 | 0) == 2)) { $enc$0 = 7936; break; } $357 = $354 >>> 0 < 3; $$op = (3 - $354) | 0; $$neg69 = $357 ? $$op : 0; $358 = ($354 + -2) | 0; $359 = ($358 + $$neg69) | 0; HEAP32[$vararg_buffer >> 2] = $359; _sprintf($buf, 7920, $vararg_buffer) | 0; $enc$0 = $buf; } else { if (($354 | 0) == 20) { $enc$0 = 7912; break; } else if (!(($354 | 0) == 26)) { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = 0; $sa_ntext$6 = $sa_ntext$3127; break L75; } $enc$0 = 7888; } } while (0); $360 = _iconv_open(7888, $enc$0) | 0; $eci$2 = $354; $eci_cd$2 = $360; $err$5 = 0; $sa_ntext$6 = $sa_ntext$3127; break; } case 8: case 4: { $241 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 4) | 0; $242 = HEAP32[$241 >> 2] | 0; HEAP32[$in >> 2] = $242; $243 = ((($196 + (($k$1132 * 12) | 0)) | 0) + 8) | 0; $244 = HEAP32[$243 >> 2] | 0; HEAP32[$inleft >> 2] = $244; $245 = ($68 + $sa_ntext$3127) | 0; HEAP32[$out >> 2] = $245; $246 = ($sa_ctext$3 - $sa_ntext$3127) | 0; HEAP32[$outleft >> 2] = $246; $247 = ($eci$1128 | 0) < 0; if (!$247) { $346 = ($eci_cd$1134 | 0) == (-1 | 0); if ($346) { $eci$1$lcssa = $eci$1128; $eci_cd$1$lcssa = -1; $err$1$lcssa = 1; $sa_ntext$3$lcssa = $sa_ntext$3127; break L71; } $347 = _iconv($eci_cd$1134, $in, $inleft, $out, $outleft) | 0; $348 = ($347 | 0) == -1; $349 = $348 & 1; if ($348) { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $349; $sa_ntext$6 = $sa_ntext$3127; break L75; } $350 = HEAP32[$out >> 2] | 0; $351 = $350; $352 = ($351 - $82) | 0; $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $349; $sa_ntext$6 = $352; break L75; } L104: do { if ($81) { $259 = $244 >>> 0 > 2; do { if ($259) { $260 = HEAP8[$242 >> 0] | 0; $261 = ($260 << 24) >> 24 == -17; if (!$261) { break; } $262 = ($242 + 1) | 0; $263 = HEAP8[$262 >> 0] | 0; $264 = ($263 << 24) >> 24 == -69; if (!$264) { break; } $265 = ($242 + 2) | 0; $266 = HEAP8[$265 >> 0] | 0; $267 = ($266 << 24) >> 24 == -65; if (!$267) { break; } $268 = ($242 + 3) | 0; HEAP32[$in >> 2] = $268; $269 = ($244 + -3) | 0; HEAP32[$inleft >> 2] = $269; do { if ($13) { $481 = 1; } else { $270 = _iconv($6, $in, $inleft, $out, $outleft) | 0; $271 = ($270 | 0) == -1; $272 = $271 & 1; if ($271) { $481 = $272; break; } $273 = HEAP32[$out >> 2] | 0; $274 = $273; $275 = ($274 - $82) | 0; $i$03$i24 = 0; while (1) { $278 = ($enc_list + ($i$03$i24 << 2)) | 0; $279 = HEAP32[$278 >> 2] | 0; $280 = ($279 | 0) == ($6 | 0); $276 = ($i$03$i24 + 1) | 0; if ($280) { break; } $277 = ($276 | 0) < 3; if ($277) { $i$03$i24 = $276; } else { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $272; $sa_ntext$6 = $275; break L75; } } $281 = ($i$03$i24 | 0) > 0; if ($281) { $$in$i26 = $i$03$i24; while (1) { $282 = ($$in$i26 + -1) | 0; $283 = ($enc_list + ($282 << 2)) | 0; $284 = HEAP32[$283 >> 2] | 0; $285 = ($enc_list + ($$in$i26 << 2)) | 0; HEAP32[$285 >> 2] = $284; $286 = ($282 | 0) > 0; if ($286) { $$in$i26 = $282; } else { break; } } } HEAP32[$enc_list >> 2] = $6; $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $272; $sa_ntext$6 = $275; break L75; } } while (0); $287 = HEAP32[$241 >> 2] | 0; HEAP32[$in >> 2] = $287; $288 = HEAP32[$243 >> 2] | 0; HEAP32[$inleft >> 2] = $288; HEAP32[$out >> 2] = $245; HEAP32[$outleft >> 2] = $246; $311 = $288; $316 = $287; $ei$0114 = 0; $err$3113 = $481; break L104; } } while (0); $289 = ($244 | 0) > 0; if ($289) { $i$01$i = 0; while (1) { $292 = ($242 + $i$01$i) | 0; $293 = HEAP8[$292 >> 0] | 0; $294 = ($293 << 24) >> 24 < 0; $290 = ($i$01$i + 1) | 0; if ($294) { $311 = $244; $316 = $242; $ei$0114 = 0; $err$3113 = 0; break L104; } $291 = ($290 | 0) < ($244 | 0); if ($291) { $i$01$i = $290; } else { $i$03$i39 = 0; break; } } } else { $i$03$i39 = 0; } while (1) { $297 = ($enc_list + ($i$03$i39 << 2)) | 0; $298 = HEAP32[$297 >> 2] | 0; $299 = ($298 | 0) == ($6 | 0); $295 = ($i$03$i39 + 1) | 0; if ($299) { break; } $296 = ($295 | 0) < 3; if ($296) { $i$03$i39 = $295; } else { $311 = $244; $316 = $242; $ei$0114 = 0; $err$3113 = 0; break L104; } } $300 = ($i$03$i39 | 0) > 0; if ($300) { $$in$i41 = $i$03$i39; while (1) { $301 = ($$in$i41 + -1) | 0; $302 = ($enc_list + ($301 << 2)) | 0; $303 = HEAP32[$302 >> 2] | 0; $304 = ($enc_list + ($$in$i41 << 2)) | 0; HEAP32[$304 >> 2] = $303; $305 = ($301 | 0) > 0; if ($305) { $$in$i41 = $301; } else { break; } } } HEAP32[$enc_list >> 2] = $6; $311 = $244; $316 = $242; $ei$0114 = 0; $err$3113 = 0; } else { $i$03$i = 0; while (1) { $250 = ($enc_list + ($i$03$i << 2)) | 0; $251 = HEAP32[$250 >> 2] | 0; $252 = ($251 | 0) == ($5 | 0); $248 = ($i$03$i + 1) | 0; if ($252) { break; } $249 = ($248 | 0) < 3; if ($249) { $i$03$i = $248; } else { $311 = $244; $316 = $242; $ei$0114 = 0; $err$3113 = 0; break L104; } } $253 = ($i$03$i | 0) > 0; if ($253) { $$in$i = $i$03$i; while (1) { $254 = ($$in$i + -1) | 0; $255 = ($enc_list + ($254 << 2)) | 0; $256 = HEAP32[$255 >> 2] | 0; $257 = ($enc_list + ($$in$i << 2)) | 0; HEAP32[$257 >> 2] = $256; $258 = ($254 | 0) > 0; if ($258) { $$in$i = $254; } else { break; } } } HEAP32[$enc_list >> 2] = $5; $311 = $244; $316 = $242; $ei$0114 = 0; $err$3113 = 0; } } while (0); while (1) { $306 = ($enc_list + ($ei$0114 << 2)) | 0; $307 = HEAP32[$306 >> 2] | 0; $308 = ($307 | 0) == (-1 | 0); if ($308) { $482 = $311; $483 = $316; $err$4 = $err$3113; } else { $309 = ($ei$0114 | 0) < 2; $310 = ($307 | 0) == ($4 | 0); $or$cond10 = $309 & $310; L148: do { if ($or$cond10) { $312 = ($311 | 0) > 0; if ($312) { $i$01$i49 = 0; } else { $324 = $4; break; } while (1) { $315 = ($316 + $i$01$i49) | 0; $317 = HEAP8[$315 >> 0] | 0; $318 = ($317 << 24) >> 24 < 0; $319 = ($317 & 255) < 160; $or$cond$i = $318 & $319; $313 = ($i$01$i49 + 1) | 0; if ($or$cond$i) { break; } $314 = ($313 | 0) < ($311 | 0); if ($314) { $i$01$i49 = $313; } else { $324 = $4; break L148; } } $ej$0106 = ($ei$0114 + 1) | 0; $320 = ($ej$0106 | 0) < 3; if ($320) { $ej$0$in107 = $ei$0114; $ej$0108 = $ej$0106; while (1) { $321 = ($enc_list + ($ej$0108 << 2)) | 0; $322 = HEAP32[$321 >> 2] | 0; $323 = ($enc_list + ($ej$0$in107 << 2)) | 0; HEAP32[$323 >> 2] = $322; $ej$0 = ($ej$0108 + 1) | 0; $exitcond203 = ($ej$0 | 0) == 3; if ($exitcond203) { break; } else { $ej$0$in107$phi = $ej$0108; $ej$0108 = $ej$0; $ej$0$in107 = $ej$0$in107$phi; } } } HEAP32[$9 >> 2] = $4; $$pre226 = HEAP32[$306 >> 2] | 0; $324 = $$pre226; } else { $324 = $307; } } while (0); $325 = _iconv($324, $in, $inleft, $out, $outleft) | 0; $326 = ($325 | 0) == -1; $327 = $326 & 1; if (!$326) { break; } $342 = HEAP32[$241 >> 2] | 0; HEAP32[$in >> 2] = $342; $343 = HEAP32[$243 >> 2] | 0; HEAP32[$inleft >> 2] = $343; HEAP32[$out >> 2] = $245; HEAP32[$outleft >> 2] = $246; $482 = $343; $483 = $342; $err$4 = $327; } $344 = ($ei$0114 + 1) | 0; $345 = ($344 | 0) < 3; if ($345) { $311 = $482; $316 = $483; $ei$0114 = $344; $err$3113 = $err$4; } else { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $err$4; $sa_ntext$6 = $sa_ntext$3127; break L75; } } $328 = HEAP32[$out >> 2] | 0; $329 = $328; $330 = ($329 - $82) | 0; $i$03$i52 = 0; while (1) { $333 = ($enc_list + ($i$03$i52 << 2)) | 0; $334 = HEAP32[$333 >> 2] | 0; $335 = ($334 | 0) == ($324 | 0); $331 = ($i$03$i52 + 1) | 0; if ($335) { break; } $332 = ($331 | 0) < 3; if ($332) { $i$03$i52 = $331; } else { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $327; $sa_ntext$6 = $330; break L75; } } $336 = ($i$03$i52 | 0) > 0; if ($336) { $$in$i54 = $i$03$i52; while (1) { $337 = ($$in$i54 + -1) | 0; $338 = ($enc_list + ($337 << 2)) | 0; $339 = HEAP32[$338 >> 2] | 0; $340 = ($enc_list + ($$in$i54 << 2)) | 0; HEAP32[$340 >> 2] = $339; $341 = ($337 | 0) > 0; if ($341) { $$in$i54 = $337; } else { break; } } } HEAP32[$enc_list >> 2] = $324; $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = $327; $sa_ntext$6 = $330; break; } default: { $eci$2 = $eci$1128; $eci_cd$2 = $eci_cd$1134; $err$5 = 0; $sa_ntext$6 = $sa_ntext$3127; } } } while (0); $361 = ($k$1132 + 1) | 0; $362 = HEAP32[$192 >> 2] | 0; $363 = ($361 | 0) < ($362 | 0); $364 = ($err$5 | 0) == 0; $or$cond9 = $363 & $364; if ($or$cond9) { $eci$1128 = $eci$2; $eci_cd$1134 = $eci_cd$2; $k$1132 = $361; $sa_ntext$3127 = $sa_ntext$6; } else { $eci$1$lcssa = $eci$2; $eci_cd$1$lcssa = $eci_cd$2; $err$1$lcssa = $err$5; $sa_ntext$3$lcssa = $sa_ntext$6; break L71; } } } else { $eci$1$lcssa = $eci$0151; $eci_cd$1$lcssa = $eci_cd$0155; $err$1$lcssa = 0; $sa_ntext$3$lcssa = $sa_ntext$2; } } while (0); $365 = ($eci$1$lcssa | 0) < 2; if ($365) { $366 = ($eci_cd$1$lcssa | 0) == (-1 | 0); if ($366) { $eci$3 = -1; } else { $eci$3 = -1; } } else { $eci$3 = $eci$1$lcssa; } $367 = ($j$5 + 1) | 0; $368 = ($367 | 0) < ($sa_size$0242 | 0); $369 = ($err$1$lcssa | 0) == 0; $or$cond8 = $368 & $369; if (!$or$cond8) { $480 = $369; $eci_cd$0146 = $eci_cd$1$lcssa; $sa_ntext$1144 = $sa_ntext$3$lcssa; break; } $370 = HEAP32[$sym$1 >> 2] | 0; $371 = ($370 + 44) | 0; $eci$0151 = $eci$3; $eci_cd$0155 = $eci_cd$1$lcssa; $j$3153 = $367; $sa_ntext$1150 = $sa_ntext$3$lcssa; $sym$0154 = $371; } $372 = ($eci_cd$0146 | 0) == (-1 | 0); if ($372) { if ($480) { $375 = $68; $376 = $67; $fnc1$0$lcssa248251264270 = $fnc1$0$lcssa248254; $sa_ntext$1144266268 = $sa_ntext$1144; $sa_size$0244265269 = $sa_size$0242; break; } } else { if ($480) { $375 = $68; $376 = $67; $fnc1$0$lcssa248251264270 = $fnc1$0$lcssa248254; $sa_ntext$1144266268 = $sa_ntext$1144; $sa_size$0244265269 = $sa_size$0242; break; } } $473 = HEAP32[$syms >> 2] | 0; __zbar_image_scanner_recycle_syms($iscn, $473); _free($68); break L5; } } while (0); $373 = ($sa_ntext$1144266268 + 1) | 0; $374 = ($375 + $sa_ntext$1144266268) | 0; HEAP8[$374 >> 0] = 0; $377 = $376 >>> 0 > $373 >>> 0; if ($377) { $378 = _realloc($375, $373) | 0; $sa_text$0 = $378; } else { $sa_text$0 = $375; } $379 = ($sa_size$0244265269 | 0) == 1; if ($379) { $380 = HEAP32[$syms >> 2] | 0; $sa_sym$0 = $380; } else { $381 = HEAP32[$10 >> 2] | 0; $382 = HEAP32[$11 >> 2] | 0; $383 = __zbar_image_scanner_alloc_sym($iscn, 64, 0) | 0; $384 = __zbar_symbol_set_create() | 0; $385 = ($383 + 48) | 0; HEAP32[$385 >> 2] = $384; $386 = HEAP32[$syms >> 2] | 0; $387 = ($384 + 8) | 0; HEAP32[$387 >> 2] = $386; $388 = ($386 | 0) == (0 | 0); if ($388) { $sa_sym$0 = $383; } else { $390 = $386; $xmax$0183 = -2; $xmin$0182 = $381; $ymax$0185 = -2; $ymin$0184 = $382; while (1) { $389 = ($390 + 40) | 0; $391 = HEAP32[$389 >> 2] | 0; $392 = ($391 + 1) | 0; HEAP32[$389 >> 2] = $392; $393 = ($391 | 0) > -2; if (!$393) { label = 133; break L3; } $394 = HEAP32[$390 >> 2] | 0; $395 = ($394 | 0) == 1; if ($395) { HEAP32[$383 >> 2] = 1; $xmax$3 = $xmax$0183; $xmin$3 = $xmin$0182; $ymax$3 = $ymax$0185; $ymin$3 = $ymin$0184; } else { $396 = ($390 + 28) | 0; $397 = HEAP32[$396 >> 2] | 0; $398 = ($397 | 0) == 0; if ($398) { $xmax$3 = $xmax$0183; $xmin$3 = $xmin$0182; $ymax$3 = $ymax$0185; $ymin$3 = $ymin$0184; } else { $$phi$trans$insert = ($390 + 32) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $j$6164 = 0; $xmax$1166 = $xmax$0183; $xmin$1165 = $xmin$0182; $ymax$1168 = $ymax$0185; $ymin$1167 = $ymin$0184; while (1) { $399 = ($$pre + ($j$6164 << 3)) | 0; $400 = HEAP32[$399 >> 2] | 0; $401 = ($xmin$1165 | 0) < ($400 | 0); $402 = ($400 + -1) | 0; $xmin$1$ = $401 ? $xmin$1165 : $402; $403 = ($xmax$1166 | 0) > ($400 | 0); $404 = ($400 + 1) | 0; $xmax$2 = $403 ? $xmax$1166 : $404; $405 = ((($$pre + ($j$6164 << 3)) | 0) + 4) | 0; $406 = HEAP32[$405 >> 2] | 0; $407 = ($ymin$1167 | 0) < ($406 | 0); $408 = ($406 + -1) | 0; $ymin$1$ = $407 ? $ymin$1167 : $408; $409 = ($ymax$1168 | 0) > ($406 | 0); $410 = ($406 + 1) | 0; $ymax$2 = $409 ? $ymax$1168 : $410; $411 = ($j$6164 + 1) | 0; $412 = $411 >>> 0 < $397 >>> 0; if ($412) { $j$6164 = $411; $xmax$1166 = $xmax$2; $xmin$1165 = $xmin$1$; $ymax$1168 = $ymax$2; $ymin$1167 = $ymin$1$; } else { $xmax$3 = $xmax$2; $xmin$3 = $xmin$1$; $ymax$3 = $ymax$2; $ymin$3 = $ymin$1$; break; } } } } $413 = ($390 + 16) | 0; $414 = HEAP32[$413 >> 2] | 0; $415 = ($sa_text$0 + $414) | 0; $416 = ($390 + 20) | 0; HEAP32[$416 >> 2] = $415; $417 = HEAP32[$syms >> 2] | 0; $418 = ($417 + 44) | 0; $419 = HEAP32[$418 >> 2] | 0; $420 = ($419 | 0) == (0 | 0); if ($420) { $425 = $373; } else { $421 = ($419 + 16) | 0; $422 = HEAP32[$421 >> 2] | 0; $425 = $422; } $423 = ($417 + 16) | 0; $424 = HEAP32[$423 >> 2] | 0; $426 = $425 >>> 0 > $424 >>> 0; if (!$426) { label = 142; break L3; } $427 = ($425 + -1) | 0; $428 = ($427 - $424) | 0; HEAP32[$423 >> 2] = $428; HEAP32[$syms >> 2] = $419; if ($420) { break; } else { $390 = $419; $xmax$0183 = $xmax$3; $xmin$0182 = $xmin$3; $ymax$0185 = $ymax$3; $ymin$0184 = $ymin$3; } } $429 = ($xmax$3 | 0) > -2; if ($429) { $430 = ($383 + 28) | 0; $431 = HEAP32[$430 >> 2] | 0; $432 = ($431 + 1) | 0; HEAP32[$430 >> 2] = $432; $433 = ($383 + 24) | 0; $434 = HEAP32[$433 >> 2] | 0; $435 = $432 >>> 0 < $434 >>> 0; $$phi$trans$insert$i45 = ($383 + 32) | 0; $$pre$i46 = HEAP32[$$phi$trans$insert$i45 >> 2] | 0; if ($435) { $$pre$i36 = $$pre$i46; } else { $436 = ($434 + 1) | 0; HEAP32[$433 >> 2] = $436; $437 = $436 << 3; $438 = _realloc($$pre$i46, $437) | 0; HEAP32[$$phi$trans$insert$i45 >> 2] = $438; $$pre$i36 = $438; } $439 = ($$pre$i36 + ($431 << 3)) | 0; HEAP32[$439 >> 2] = $xmin$3; $440 = ((($$pre$i36 + ($431 << 3)) | 0) + 4) | 0; HEAP32[$440 >> 2] = $ymin$3; $441 = HEAP32[$430 >> 2] | 0; $442 = ($441 + 1) | 0; HEAP32[$430 >> 2] = $442; $443 = HEAP32[$433 >> 2] | 0; $444 = $442 >>> 0 < $443 >>> 0; if ($444) { $$pre$i31 = $$pre$i36; } else { $445 = ($443 + 1) | 0; HEAP32[$433 >> 2] = $445; $446 = $445 << 3; $447 = _realloc($$pre$i36, $446) | 0; HEAP32[$$phi$trans$insert$i45 >> 2] = $447; $$pre$i31 = $447; } $448 = ($$pre$i31 + ($441 << 3)) | 0; HEAP32[$448 >> 2] = $xmin$3; $449 = ((($$pre$i31 + ($441 << 3)) | 0) + 4) | 0; HEAP32[$449 >> 2] = $ymax$3; $450 = HEAP32[$430 >> 2] | 0; $451 = ($450 + 1) | 0; HEAP32[$430 >> 2] = $451; $452 = HEAP32[$433 >> 2] | 0; $453 = $451 >>> 0 < $452 >>> 0; if ($453) { $$pre$i21 = $$pre$i31; } else { $454 = ($452 + 1) | 0; HEAP32[$433 >> 2] = $454; $455 = $454 << 3; $456 = _realloc($$pre$i31, $455) | 0; HEAP32[$$phi$trans$insert$i45 >> 2] = $456; $$pre$i21 = $456; } $457 = ($$pre$i21 + ($450 << 3)) | 0; HEAP32[$457 >> 2] = $xmax$3; $458 = ((($$pre$i21 + ($450 << 3)) | 0) + 4) | 0; HEAP32[$458 >> 2] = $ymax$3; $459 = HEAP32[$430 >> 2] | 0; $460 = ($459 + 1) | 0; HEAP32[$430 >> 2] = $460; $461 = HEAP32[$433 >> 2] | 0; $462 = $460 >>> 0 < $461 >>> 0; if ($462) { $467 = $$pre$i21; } else { $463 = ($461 + 1) | 0; HEAP32[$433 >> 2] = $463; $464 = $463 << 3; $465 = _realloc($$pre$i21, $464) | 0; HEAP32[$$phi$trans$insert$i45 >> 2] = $465; $467 = $465; } $466 = ($467 + ($459 << 3)) | 0; HEAP32[$466 >> 2] = $xmax$3; $468 = ((($467 + ($459 << 3)) | 0) + 4) | 0; HEAP32[$468 >> 2] = $ymin$3; $sa_sym$0 = $383; } else { $sa_sym$0 = $383; } } } $469 = ($sa_sym$0 + 20) | 0; HEAP32[$469 >> 2] = $sa_text$0; $470 = ($sa_sym$0 + 12) | 0; HEAP32[$470 >> 2] = $373; $471 = ($sa_sym$0 + 16) | 0; HEAP32[$471 >> 2] = $sa_ntext$1144266268; $472 = ($sa_sym$0 + 8) | 0; HEAP32[$472 >> 2] = $fnc1$0$lcssa248251264270; __zbar_image_scanner_add_sym($iscn, $sa_sym$0); } } while (0); $474 = ($i$0193 + 1) | 0; $475 = ($474 | 0) < ($2 | 0); if ($475) { $i$0193 = $474; } else { break L1; } } if ((label | 0) == 133) { ___assert_fail(8024 | 0, 8032 | 0, 87, 8048 | 0); // unreachable; } else if ((label | 0) == 142) { ___assert_fail(7944 | 0, 7968 | 0, 516, 7992 | 0); // unreachable; } } } while (0); $476 = ($6 | 0) == (-1 | 0); if (!$476) { } $477 = ($5 | 0) == (-1 | 0); if (!$477) { } $478 = ($4 | 0) == (-1 | 0); if ($478) { _free($3); STACKTOP = sp; return 0; } _free($3); STACKTOP = sp; return 0; } function _rs_gf256_init($_gf, $_ppoly) { $_gf = $_gf | 0; $_ppoly = $_ppoly | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $exitcond4 = 0, $i$03 = 0; var $i$11 = 0, $p$02 = 0, label = 0, sp = 0; sp = STACKTOP; $i$03 = 0; $p$02 = 1; while (1) { $0 = $p$02 & 255; $1 = ($i$03 + 255) | 0; $2 = ((($_gf + $1) | 0) + 256) | 0; HEAP8[$2 >> 0] = $0; $3 = ((($_gf + $i$03) | 0) + 256) | 0; HEAP8[$3 >> 0] = $0; $4 = $p$02 << 1; $5 = $p$02 >>> 7; $6 = (0 - $5) | 0; $7 = $6 & $_ppoly; $8 = $7 ^ $4; $9 = $8 & 255; $10 = ($i$03 + 1) | 0; $exitcond4 = ($10 | 0) == 256; if ($exitcond4) { $i$11 = 0; break; } else { $i$03 = $10; $p$02 = $9; } } while (1) { $11 = $i$11 & 255; $12 = ((($_gf + $i$11) | 0) + 256) | 0; $13 = HEAP8[$12 >> 0] | 0; $14 = $13 & 255; $15 = ($_gf + $14) | 0; HEAP8[$15 >> 0] = $11; $16 = ($i$11 + 1) | 0; $exitcond = ($16 | 0) == 255; if ($exitcond) { break; } else { $i$11 = $16; } } HEAP8[$_gf >> 0] = 0; STACKTOP = sp; return; } function _rs_correct($_gf, $_m0, $_data, $_ndata, $_npar, $_erasures, $_nerasures) { $_gf = $_gf | 0; $_m0 = $_m0 | 0; $_data = $_data | 0; $_ndata = $_ndata | 0; $_npar = $_npar | 0; $_erasures = $_erasures | 0; $_nerasures = $_nerasures | 0; var $$0 = 0, $$0$i = 0, $$_fp1$i$i = 0, $$phi$trans$insert$i = 0, $$phi$trans$insert40$i = 0, $$pre$i = 0, $$pre41$i = 0, $$pre42$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0; var $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0; var $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0; var $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0; var $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0; var $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0; var $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0; var $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0; var $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0; var $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0; var $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0; var $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0; var $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $_npar$op$i$i = 0, $a$010 = 0, $alpha$010$i = 0, $alphai$04$i = 0, $alphanj$011 = 0, $alphanj$114 = 0, $b$0$lcssa = 0, $b$013 = 0, $d$09$i = 0, $epos = 0, $exitcond = 0; var $exitcond$i = 0, $exitcond$i$i = 0, $exitcond$i2 = 0, $exitcond$i4$i = 0, $exitcond$i5 = 0, $exitcond13$i = 0, $exitcond14$i = 0, $exitcond15$i = 0, $exitcond33$i = 0, $exitcond37 = 0, $exitcond38$i = 0, $exitcond7$i = 0, $exitcond7$i$i = 0, $i$01$us$i = 0, $i$010$i = 0, $i$02$i = 0, $i$02$i$i = 0, $i$02$i1$i = 0, $i$033 = 0, $i$114$i = 0; var $i$119 = 0, $i$13$i = 0, $i$211$i = 0, $indvars$iv$i$i = 0, $indvars$iv$next$i$i = 0, $j$01$i$i = 0, $j$01$i2$i = 0, $j$03$us$i = 0, $j$09 = 0, $j$112 = 0, $k$0$ph28$i = 0, $l$0$ph26$i = 0, $l$0$ph29$i = 0, $lambda = 0, $n$01931$in$i = 0, $n$021$i = 0, $n$021$in$i = 0, $nroots$01$i = 0, $nroots$1$i = 0, $nroots$211$i = 0; var $nroots$211$us$i = 0, $nroots$3$i = 0, $omega = 0, $or$cond$i$i = 0, $phitmp$i = 0, $phitmp$i3 = 0, $s = 0, $sj$02$us$i = 0, $smax$i$i = 0, $smax6$i$i = 0, $sum$05$i = 0, $tt$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 1280) | 0; $tt$i = (sp + 1024) | 0; $lambda = (sp + 768) | 0; $omega = (sp + 512) | 0; $epos = (sp + 256) | 0; $s = sp; $0 = ($_nerasures | 0) > ($_npar | 0); if ($0) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $1 = ($_npar | 0) > 0; if (!$1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $2 = ($_ndata | 0) > 0; if ($2) { $j$03$us$i = 0; while (1) { $20 = ($j$03$us$i + $_m0) | 0; $21 = ((($_gf + $20) | 0) + 256) | 0; $22 = HEAP8[$21 >> 0] | 0; $23 = $22 & 255; $24 = ($_gf + $23) | 0; $25 = HEAP8[$24 >> 0] | 0; $14 = $25 & 255; $i$01$us$i = 0; $sj$02$us$i = 0; while (1) { $6 = ($_data + $i$01$us$i) | 0; $7 = HEAP8[$6 >> 0] | 0; $8 = $7 & 255; $9 = ($sj$02$us$i | 0) == 0; if ($9) { $18 = 0; } else { $10 = ($_gf + $sj$02$us$i) | 0; $11 = HEAP8[$10 >> 0] | 0; $12 = $11 & 255; $13 = ($12 + $14) | 0; $15 = ((($_gf + $13) | 0) + 256) | 0; $16 = HEAP8[$15 >> 0] | 0; $17 = $16 & 255; $18 = $17; } $3 = $18 ^ $8; $19 = ($i$01$us$i + 1) | 0; $exitcond$i = ($19 | 0) == ($_ndata | 0); if ($exitcond$i) { break; } else { $i$01$us$i = $19; $sj$02$us$i = $3; } } $phitmp$i = $3 & 255; $4 = ($s + $j$03$us$i) | 0; HEAP8[$4 >> 0] = $phitmp$i; $5 = ($j$03$us$i + 1) | 0; $exitcond7$i = ($5 | 0) == ($_npar | 0); if ($exitcond7$i) { break; } else { $j$03$us$i = $5; } } if ($1) { $i$033 = 0; } else { $$0 = 0; STACKTOP = sp; return $$0 | 0; } } else { _memset($s | 0, 0, $_npar | 0) | 0; $i$033 = 0; } while (1) { $28 = ($s + $i$033) | 0; $29 = HEAP8[$28 >> 0] | 0; $30 = ($29 << 24) >> 24 == 0; $26 = ($i$033 + 1) | 0; if (!$30) { break; } $27 = ($26 | 0) < ($_npar | 0); if ($27) { $i$033 = $26; } else { $$0 = 0; label = 86; break; } } if ((label | 0) == 86) { STACKTOP = sp; return $$0 | 0; } $31 = ($_npar | 0) < 4; $_npar$op$i$i = ($_npar + 1) | 0; $32 = $31 ? 5 : $_npar$op$i$i; _memset($lambda | 0, 0, $32 | 0) | 0; HEAP8[$lambda >> 0] = 1; $33 = ($_nerasures | 0) > 0; if ($33) { $34 = ($_ndata + -1) | 0; $i$02$i$i = 0; while (1) { $35 = ($i$02$i$i + 1) | 0; $36 = ($_erasures + $i$02$i$i) | 0; $j$01$i$i = $35; while (1) { $37 = ($j$01$i$i + -1) | 0; $38 = ($lambda + $37) | 0; $39 = HEAP8[$38 >> 0] | 0; $40 = ($39 << 24) >> 24 == 0; if ($40) { $56 = 0; } else { $41 = HEAP8[$36 >> 0] | 0; $42 = $41 & 255; $43 = $39 & 255; $44 = ($34 - $42) | 0; $45 = ($_gf + $43) | 0; $46 = HEAP8[$45 >> 0] | 0; $47 = $46 & 255; $48 = ($44 + $47) | 0; $49 = ((($_gf + $48) | 0) + 256) | 0; $50 = HEAP8[$49 >> 0] | 0; $51 = $50 & 255; $56 = $51; } $52 = ($lambda + $j$01$i$i) | 0; $53 = HEAP8[$52 >> 0] | 0; $54 = $53 & 255; $55 = $54 ^ $56; $57 = $55 & 255; HEAP8[$52 >> 0] = $57; $58 = ($37 | 0) > 0; if ($58) { $j$01$i$i = $37; } else { break; } } $exitcond$i$i = ($35 | 0) == ($_nerasures | 0); if ($exitcond$i$i) { break; } else { $i$02$i$i = $35; } } } _memcpy($tt$i | 0, $lambda | 0, $_npar$op$i$i | 0) | 0; $59 = ($_nerasures | 0) < ($_npar | 0); L36: do { if ($59) { $60 = ($tt$i + 1) | 0; $k$0$ph28$i = 0; $l$0$ph29$i = $_nerasures; $n$01931$in$i = $_nerasures; while (1) { $61 = ($l$0$ph29$i | 0) < 0; $62 = ($l$0$ph29$i + 1) | 0; $n$021$in$i = $n$01931$in$i; L40: while (1) { $n$021$i = ($n$021$in$i + 1) | 0; $63 = ($n$021$i - $k$0$ph28$i) | 0; _memmove($60 | 0, $tt$i | 0, $63 | 0) | 0; HEAP8[$tt$i >> 0] = 0; L42: do { if (!$61) { $d$09$i = 0; $i$010$i = 0; while (1) { $64 = ($lambda + $i$010$i) | 0; $65 = HEAP8[$64 >> 0] | 0; $66 = ($n$021$in$i - $i$010$i) | 0; $67 = ($s + $66) | 0; $68 = HEAP8[$67 >> 0] | 0; $69 = ($65 << 24) >> 24 == 0; $70 = ($68 << 24) >> 24 == 0; $or$cond$i$i = $69 | $70; if ($or$cond$i$i) { $84 = 0; } else { $71 = $68 & 255; $72 = $65 & 255; $73 = ($_gf + $72) | 0; $74 = HEAP8[$73 >> 0] | 0; $75 = $74 & 255; $76 = ($_gf + $71) | 0; $77 = HEAP8[$76 >> 0] | 0; $78 = $77 & 255; $79 = ($78 + $75) | 0; $80 = ((($_gf + $79) | 0) + 256) | 0; $81 = HEAP8[$80 >> 0] | 0; $82 = $81 & 255; $84 = $82; } $83 = $84 ^ $d$09$i; $85 = ($i$010$i + 1) | 0; $exitcond$i5 = ($85 | 0) == ($62 | 0); if ($exitcond$i5) { break; } else { $d$09$i = $83; $i$010$i = $85; } } $86 = ($84 | 0) == ($d$09$i | 0); if (!$86) { $88 = ($_gf + $83) | 0; $89 = HEAP8[$88 >> 0] | 0; $90 = $89 & 255; $91 = ($l$0$ph29$i | 0) < ($63 | 0); if ($91) { break L40; } else { $124 = 0; $i$211$i = 0; } while (1) { $121 = ($lambda + $i$211$i) | 0; $122 = HEAP8[$121 >> 0] | 0; $123 = $122 & 255; $125 = ($124 << 24) >> 24 == 0; if ($125) { $135 = 0; } else { $126 = $124 & 255; $127 = ($_gf + $126) | 0; $128 = HEAP8[$127 >> 0] | 0; $129 = $128 & 255; $130 = ($129 + $90) | 0; $131 = ((($_gf + $130) | 0) + 256) | 0; $132 = HEAP8[$131 >> 0] | 0; $133 = $132 & 255; $135 = $133; } $134 = $135 ^ $123; $136 = $134 & 255; HEAP8[$121 >> 0] = $136; $137 = ($i$211$i + 1) | 0; $exitcond33$i = ($137 | 0) == ($62 | 0); if ($exitcond33$i) { break L42; } $$phi$trans$insert$i = ($tt$i + $137) | 0; $$pre$i = HEAP8[$$phi$trans$insert$i >> 0] | 0; $124 = $$pre$i; $i$211$i = $137; } } } } while (0); $87 = ($n$021$i | 0) < ($_npar | 0); if ($87) { $n$021$in$i = $n$021$i; } else { $l$0$ph26$i = $l$0$ph29$i; break L36; } } $92 = ($63 | 0) < 0; L58: do { if (!$92) { $93 = $90 ^ 255; $96 = 0; $i$114$i = 0; while (1) { $94 = ($tt$i + $i$114$i) | 0; $95 = $96 & 255; $97 = ($lambda + $i$114$i) | 0; $98 = HEAP8[$97 >> 0] | 0; $99 = ($98 << 24) >> 24 == 0; $$pre42$i = $98 & 255; if ($99) { $106 = 0; } else { $100 = ($_gf + $$pre42$i) | 0; $101 = HEAP8[$100 >> 0] | 0; $102 = $101 & 255; $103 = ($102 + $93) | 0; $104 = ((($_gf + $103) | 0) + 256) | 0; $105 = HEAP8[$104 >> 0] | 0; $106 = $105; } HEAP8[$94 >> 0] = $106; $107 = ($96 << 24) >> 24 == 0; if ($107) { $116 = 0; } else { $108 = ($_gf + $95) | 0; $109 = HEAP8[$108 >> 0] | 0; $110 = $109 & 255; $111 = ($110 + $90) | 0; $112 = ((($_gf + $111) | 0) + 256) | 0; $113 = HEAP8[$112 >> 0] | 0; $114 = $113 & 255; $116 = $114; } $115 = $116 ^ $$pre42$i; $117 = $115 & 255; HEAP8[$97 >> 0] = $117; $118 = ($i$114$i + 1) | 0; $exitcond38$i = ($i$114$i | 0) == ($63 | 0); if ($exitcond38$i) { break L58; } $$phi$trans$insert40$i = ($tt$i + $118) | 0; $$pre41$i = HEAP8[$$phi$trans$insert40$i >> 0] | 0; $96 = $$pre41$i; $i$114$i = $118; } } } while (0); $119 = ($n$021$i - $l$0$ph29$i) | 0; $120 = ($n$021$i | 0) < ($_npar | 0); if ($120) { $k$0$ph28$i = $119; $l$0$ph29$i = $63; $n$01931$in$i = $n$021$i; } else { $l$0$ph26$i = $63; break; } } } else { $l$0$ph26$i = $_nerasures; } } while (0); $138 = ($l$0$ph26$i + 1) | 0; _memset($omega | 0, 0, $_npar | 0) | 0; $139 = ($138 | 0) < ($_npar | 0); $140 = $139 ? $138 : $_npar; $141 = ($140 | 0) > 0; L71: do { if ($141) { $142 = $_npar ^ -1; $143 = (-2 - $l$0$ph26$i) | 0; $144 = ($143 | 0) > ($142 | 0); $smax6$i$i = $144 ? $143 : $142; $145 = $smax6$i$i ^ -1; $i$02$i1$i = 0; $indvars$iv$i$i = $142; while (1) { $146 = ($indvars$iv$i$i | 0) > ($142 | 0); $smax$i$i = $146 ? $indvars$iv$i$i : $142; $147 = $smax$i$i ^ -1; $148 = ($lambda + $i$02$i1$i) | 0; $149 = HEAP8[$148 >> 0] | 0; $150 = ($149 << 24) >> 24 == 0; if (!$150) { $151 = ($_npar - $i$02$i1$i) | 0; $152 = ($151 | 0) < ($_npar | 0); $$_fp1$i$i = $152 ? $151 : $_npar; $153 = $149 & 255; $154 = ($_gf + $153) | 0; $155 = HEAP8[$154 >> 0] | 0; $156 = $155 & 255; $157 = ($$_fp1$i$i | 0) > 0; if ($157) { $j$01$i2$i = 0; while (1) { $158 = ($s + $j$01$i2$i) | 0; $159 = HEAP8[$158 >> 0] | 0; $160 = ($159 << 24) >> 24 == 0; if ($160) { $174 = 0; } else { $161 = $159 & 255; $162 = ($_gf + $161) | 0; $163 = HEAP8[$162 >> 0] | 0; $164 = $163 & 255; $165 = ($164 + $156) | 0; $166 = ((($_gf + $165) | 0) + 256) | 0; $167 = HEAP8[$166 >> 0] | 0; $168 = $167 & 255; $174 = $168; } $169 = ($j$01$i2$i + $i$02$i1$i) | 0; $170 = ($omega + $169) | 0; $171 = HEAP8[$170 >> 0] | 0; $172 = $171 & 255; $173 = $172 ^ $174; $175 = $173 & 255; HEAP8[$170 >> 0] = $175; $176 = ($j$01$i2$i + 1) | 0; $exitcond$i4$i = ($176 | 0) == ($147 | 0); if ($exitcond$i4$i) { break; } else { $j$01$i2$i = $176; } } } } $177 = ($i$02$i1$i + 1) | 0; $exitcond7$i$i = ($177 | 0) == ($145 | 0); if ($exitcond7$i$i) { break L71; } $indvars$iv$next$i$i = ($indvars$iv$i$i + 1) | 0; $i$02$i1$i = $177; $indvars$iv$i$i = $indvars$iv$next$i$i; } } } while (0); $178 = ($l$0$ph26$i | 0) < 1; if ($178) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $179 = ($l$0$ph26$i - $_nerasures) | 0; $180 = ($_npar - $_nerasures) | 0; $181 = $180 >> 1; $182 = ($179 | 0) > ($181 | 0); if ($182) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $183 = ($l$0$ph26$i | 0) < 5; L91: do { if ($183) { $189 = ($lambda + 1) | 0; $190 = HEAP8[$189 >> 0] | 0; $191 = $190 & 255; $192 = ($lambda + 2) | 0; $193 = HEAP8[$192 >> 0] | 0; $194 = $193 & 255; $195 = ($lambda + 3) | 0; $196 = HEAP8[$195 >> 0] | 0; $197 = $196 & 255; $198 = ($lambda + 4) | 0; $199 = HEAP8[$198 >> 0] | 0; $200 = $199 & 255; $201 = _rs_quartic_solve($_gf, $191, $194, $197, $200, $epos) | 0; $202 = ($201 | 0) > 0; if ($202) { $i$02$i = 0; $nroots$01$i = 0; while (1) { $203 = ($epos + $i$02$i) | 0; $204 = HEAP8[$203 >> 0] | 0; $205 = ($204 << 24) >> 24 == 0; if ($205) { $nroots$1$i = $nroots$01$i; } else { $206 = $204 & 255; $207 = ($_gf + $206) | 0; $208 = HEAP8[$207 >> 0] | 0; $209 = $208 & 255; $210 = ($209 | 0) < ($_ndata | 0); if ($210) { $211 = ($nroots$01$i + 1) | 0; $212 = ($epos + $nroots$01$i) | 0; HEAP8[$212 >> 0] = $208; $nroots$1$i = $211; } else { $nroots$1$i = $nroots$01$i; } } $213 = ($i$02$i + 1) | 0; $exitcond$i2 = ($213 | 0) == ($201 | 0); if ($exitcond$i2) { $$0$i = $nroots$1$i; break; } else { $i$02$i = $213; $nroots$01$i = $nroots$1$i; } } } else { $$0$i = 0; } } else { $184 = ($_ndata | 0) > 0; if ($184) { $185 = ($l$0$ph26$i | 0) < 0; if ($185) { $nroots$211$us$i = 0; while (1) { $186 = $nroots$211$us$i & 255; $187 = ($nroots$211$us$i + 1) | 0; $188 = ($epos + $nroots$211$us$i) | 0; HEAP8[$188 >> 0] = $186; $exitcond15$i = ($187 | 0) == ($_ndata | 0); if ($exitcond15$i) { $$0$i = $_ndata; break L91; } else { $nroots$211$us$i = $187; } } } else { $alpha$010$i = 0; $nroots$211$i = 0; } while (1) { $alphai$04$i = 0; $i$13$i = 0; $sum$05$i = 0; while (1) { $214 = ($l$0$ph26$i - $i$13$i) | 0; $215 = ($lambda + $214) | 0; $216 = HEAP8[$215 >> 0] | 0; $217 = ($216 << 24) >> 24 == 0; if ($217) { $227 = 0; } else { $218 = $216 & 255; $219 = ($_gf + $218) | 0; $220 = HEAP8[$219 >> 0] | 0; $221 = $220 & 255; $222 = ($221 + $alphai$04$i) | 0; $223 = ((($_gf + $222) | 0) + 256) | 0; $224 = HEAP8[$223 >> 0] | 0; $225 = $224 & 255; $227 = $225; } $226 = $227 ^ $sum$05$i; $228 = ($alphai$04$i + $alpha$010$i) | 0; $229 = ((($_gf + $228) | 0) + 256) | 0; $230 = HEAP8[$229 >> 0] | 0; $231 = $230 & 255; $232 = ($_gf + $231) | 0; $233 = HEAP8[$232 >> 0] | 0; $234 = $233 & 255; $235 = ($i$13$i + 1) | 0; $exitcond13$i = ($i$13$i | 0) == ($l$0$ph26$i | 0); if ($exitcond13$i) { break; } else { $alphai$04$i = $234; $i$13$i = $235; $sum$05$i = $226; } } $phitmp$i3 = ($227 | 0) == ($sum$05$i | 0); if ($phitmp$i3) { $236 = $alpha$010$i & 255; $237 = ($nroots$211$i + 1) | 0; $238 = ($epos + $nroots$211$i) | 0; HEAP8[$238 >> 0] = $236; $nroots$3$i = $237; } else { $nroots$3$i = $nroots$211$i; } $239 = ($alpha$010$i + 1) | 0; $exitcond14$i = ($239 | 0) == ($_ndata | 0); if ($exitcond14$i) { $$0$i = $nroots$3$i; break; } else { $alpha$010$i = $239; $nroots$211$i = $nroots$3$i; } } } else { $$0$i = 0; } } } while (0); $240 = ($$0$i | 0) < ($l$0$ph26$i | 0); if ($240) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $241 = ($l$0$ph26$i | 0) > 0; if (!$241) { $$0 = $l$0$ph26$i; STACKTOP = sp; return $$0 | 0; } $242 = ($_npar | 0) < 1; $243 = ($_ndata + -1) | 0; $i$119 = 0; while (1) { $244 = ($epos + $i$119) | 0; $245 = HEAP8[$244 >> 0] | 0; $246 = $245 & 255; $247 = $246 ^ 255; $a$010 = 0; $alphanj$011 = 0; $j$09 = 0; while (1) { $248 = ($omega + $j$09) | 0; $249 = HEAP8[$248 >> 0] | 0; $250 = ($249 << 24) >> 24 == 0; if ($250) { $260 = 0; } else { $251 = $249 & 255; $252 = ($_gf + $251) | 0; $253 = HEAP8[$252 >> 0] | 0; $254 = $253 & 255; $255 = ($254 + $alphanj$011) | 0; $256 = ((($_gf + $255) | 0) + 256) | 0; $257 = HEAP8[$256 >> 0] | 0; $258 = $257 & 255; $260 = $258; } $259 = $260 ^ $a$010; $261 = ($alphanj$011 + $247) | 0; $262 = ((($_gf + $261) | 0) + 256) | 0; $263 = HEAP8[$262 >> 0] | 0; $264 = $263 & 255; $265 = ($_gf + $264) | 0; $266 = HEAP8[$265 >> 0] | 0; $267 = $266 & 255; $268 = ($j$09 + 1) | 0; $exitcond = ($268 | 0) == ($_npar | 0); if ($exitcond) { break; } else { $a$010 = $259; $alphanj$011 = $267; $j$09 = $268; } } $269 = $247 << 1; $270 = ((($_gf + $269) | 0) + 256) | 0; $271 = HEAP8[$270 >> 0] | 0; $272 = $271 & 255; $273 = ($_gf + $272) | 0; $274 = HEAP8[$273 >> 0] | 0; $275 = $274 & 255; L130: do { if ($242) { $b$0$lcssa = 0; } else { $276 = Math_imul($246, $_m0) | 0; $277 = ($276 >>> 0) % 255 & -1; $278 = ($277 + $247) | 0; $alphanj$114 = $278; $b$013 = 0; $j$112 = 1; while (1) { $279 = ($lambda + $j$112) | 0; $280 = HEAP8[$279 >> 0] | 0; $281 = ($280 << 24) >> 24 == 0; if ($281) { $291 = 0; } else { $282 = $280 & 255; $283 = ($_gf + $282) | 0; $284 = HEAP8[$283 >> 0] | 0; $285 = $284 & 255; $286 = ($285 + $alphanj$114) | 0; $287 = ((($_gf + $286) | 0) + 256) | 0; $288 = HEAP8[$287 >> 0] | 0; $289 = $288 & 255; $291 = $289; } $290 = $291 ^ $b$013; $292 = ($j$112 + 2) | 0; $293 = ($292 | 0) > ($_npar | 0); if ($293) { $b$0$lcssa = $290; break L130; } $294 = ($alphanj$114 + $275) | 0; $295 = ((($_gf + $294) | 0) + 256) | 0; $296 = HEAP8[$295 >> 0] | 0; $297 = $296 & 255; $298 = ($_gf + $297) | 0; $299 = HEAP8[$298 >> 0] | 0; $300 = $299 & 255; $alphanj$114 = $300; $b$013 = $290; $j$112 = $292; } } } while (0); $301 = ($260 | 0) == ($a$010 | 0); if ($301) { $318 = 0; } else { $302 = ($_gf + $259) | 0; $303 = HEAP8[$302 >> 0] | 0; $304 = $303 & 255; $305 = ($304 + 255) | 0; $306 = ($_gf + $b$0$lcssa) | 0; $307 = HEAP8[$306 >> 0] | 0; $308 = $307 & 255; $309 = ($305 - $308) | 0; $310 = ((($_gf + $309) | 0) + 256) | 0; $311 = HEAP8[$310 >> 0] | 0; $312 = $311 & 255; $318 = $312; } $313 = ($243 - $246) | 0; $314 = ($_data + $313) | 0; $315 = HEAP8[$314 >> 0] | 0; $316 = $315 & 255; $317 = $316 ^ $318; $319 = $317 & 255; HEAP8[$314 >> 0] = $319; $320 = ($i$119 + 1) | 0; $exitcond37 = ($320 | 0) == ($l$0$ph26$i | 0); if ($exitcond37) { $$0 = $l$0$ph26$i; break; } else { $i$119 = $320; } } STACKTOP = sp; return $$0 | 0; } function _rs_quartic_solve($_gf, $_a, $_b, $_c, $_d, $_x) { $_gf = $_gf | 0; $_a = $_a | 0; $_b = $_b | 0; $_c = $_c | 0; $_d = $_d | 0; $_x = $_x | 0; var $$0 = 0, $$0$i1113 = 0, $$0$i7 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; var $99 = 0, $exitcond = 0, $i$015 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_d | 0) == 0; if ($0) { $1 = _rs_cubic_solve($_gf, $_a, $_b, $_c, $_x) | 0; $2 = ($_c | 0) == 0; if ($2) { $$0 = $1; STACKTOP = sp; return $$0 | 0; } $3 = ($1 + 1) | 0; $4 = ($_x + $1) | 0; HEAP8[$4 >> 0] = 0; $$0 = $3; STACKTOP = sp; return $$0 | 0; } $5 = ($_a | 0) == 0; if ($5) { $106 = ($_c | 0) == 0; if ($106) { $107 = ($_b | 0) == 0; if ($107) { $$0$i7 = 0; } else { $108 = ($_gf + $_b) | 0; $109 = HEAP8[$108 >> 0] | 0; $110 = $109 & 255; $111 = $110 & 1; $112 = (0 - $111) | 0; $113 = $112 & 255; $114 = ($113 + $110) | 0; $115 = $114 >>> 1; $116 = ((($_gf + $115) | 0) + 256) | 0; $117 = HEAP8[$116 >> 0] | 0; $118 = $117 & 255; $$0$i7 = $118; } $119 = ($_gf + $_d) | 0; $120 = HEAP8[$119 >> 0] | 0; $121 = $120 & 255; $122 = $121 & 1; $123 = (0 - $122) | 0; $124 = $123 & 255; $125 = ($124 + $121) | 0; $126 = $125 >>> 1; $127 = ((($_gf + $126) | 0) + 256) | 0; $128 = HEAP8[$127 >> 0] | 0; $129 = $128 & 255; $130 = _rs_quadratic_solve($_gf, $$0$i7, $129, $_x) | 0; $$0 = $130; STACKTOP = sp; return $$0 | 0; } $131 = _rs_cubic_solve($_gf, 0, $_b, $_c, $_x) | 0; $132 = ($131 | 0) < 1; if ($132) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $133 = HEAP8[$_x >> 0] | 0; $134 = $133 & 255; $135 = ($_gf + $_c) | 0; $136 = HEAP8[$135 >> 0] | 0; $137 = $136 & 255; $138 = ($137 + 255) | 0; $139 = ($_gf + $134) | 0; $140 = HEAP8[$139 >> 0] | 0; $141 = $140 & 255; $142 = ($138 - $141) | 0; $143 = ((($_gf + $142) | 0) + 256) | 0; $144 = HEAP8[$143 >> 0] | 0; $145 = $144 & 255; $146 = _rs_quadratic_solve($_gf, $145, $_d, $_x) | 0; $147 = ($146 | 0) < 2; if ($147) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $148 = HEAP8[$_x >> 0] | 0; $149 = $148 & 255; $150 = ($_x + 1) | 0; $151 = HEAP8[$150 >> 0] | 0; $152 = $151 & 255; $153 = _rs_quadratic_solve($_gf, $134, $149, $_x) | 0; $154 = ($_x + $153) | 0; $155 = _rs_quadratic_solve($_gf, $134, $152, $154) | 0; $156 = ($155 + $153) | 0; $$0 = $156; STACKTOP = sp; return $$0 | 0; } $6 = ($_gf + $_a) | 0; $7 = HEAP8[$6 >> 0] | 0; $8 = $7 & 255; $9 = ($_c | 0) == 0; if ($9) { $$0$i1113 = 0; $43 = $_d; $45 = 0; $93 = 0; } else { $10 = $8 ^ 255; $11 = ($_gf + $_c) | 0; $12 = HEAP8[$11 >> 0] | 0; $13 = $12 & 255; $14 = ($13 + $10) | 0; $15 = ((($_gf + $14) | 0) + 256) | 0; $16 = HEAP8[$15 >> 0] | 0; $17 = $16 & 255; $18 = ($16 << 24) >> 24 == 0; if ($18) { $$0$i1113 = 0; $43 = $_d; $45 = 0; $93 = 0; } else { $19 = ($_gf + $17) | 0; $20 = HEAP8[$19 >> 0] | 0; $21 = $20 & 255; $22 = $21 & 1; $23 = (0 - $22) | 0; $24 = $23 & 255; $25 = ($24 + $21) | 0; $26 = $25 >>> 1; $27 = ((($_gf + $26) | 0) + 256) | 0; $28 = HEAP8[$27 >> 0] | 0; $29 = $28 & 255; $30 = ($_b | 0) == 0; if ($30) { $157 = $_d; } else { $31 = ($_gf + $_b) | 0; $32 = HEAP8[$31 >> 0] | 0; $33 = $32 & 255; $34 = ($21 + $33) | 0; $35 = ((($_gf + $34) | 0) + 256) | 0; $36 = HEAP8[$35 >> 0] | 0; $37 = $36 & 255; $38 = $37 ^ $_d; $157 = $38; } $39 = $21 << 1; $40 = ((($_gf + $39) | 0) + 256) | 0; $41 = HEAP8[$40 >> 0] | 0; $42 = $41 & 255; $$0$i1113 = $29; $43 = $157; $45 = $42; $93 = $17; } } $44 = ($43 | 0) == ($45 | 0); if ($44) { $92 = $93 ^ $_b; $94 = _rs_quadratic_solve($_gf, $_a, $92, $_x) | 0; $95 = ($94 | 0) == 2; if ($95) { $96 = HEAP8[$_x >> 0] | 0; $97 = $96 & 255; $98 = ($97 | 0) == ($$0$i1113 | 0); if ($98) { $$0 = 2; STACKTOP = sp; return $$0 | 0; } $99 = ($_x + 1) | 0; $100 = HEAP8[$99 >> 0] | 0; $101 = $100 & 255; $102 = ($101 | 0) == ($$0$i1113 | 0); if ($102) { $$0 = 2; STACKTOP = sp; return $$0 | 0; } } $103 = $$0$i1113 & 255; $104 = ($94 + 1) | 0; $105 = ($_x + $94) | 0; HEAP8[$105 >> 0] = $103; $$0 = $104; STACKTOP = sp; return $$0 | 0; } $46 = $45 ^ $43; $47 = ($_gf + $46) | 0; $48 = HEAP8[$47 >> 0] | 0; $49 = $48 & 255; $50 = $49 ^ 255; $51 = ($$0$i1113 | 0) == 0; if ($51) { $59 = 0; } else { $52 = ($_gf + $$0$i1113) | 0; $53 = HEAP8[$52 >> 0] | 0; $54 = $53 & 255; $55 = ($54 + $8) | 0; $56 = ((($_gf + $55) | 0) + 256) | 0; $57 = HEAP8[$56 >> 0] | 0; $58 = $57 & 255; $59 = $58; } $60 = ($59 | 0) == ($_b | 0); if ($60) { $76 = 0; } else { $61 = $59 ^ $_b; $62 = ($_gf + $61) | 0; $63 = HEAP8[$62 >> 0] | 0; $64 = $63 & 255; $65 = ($64 + $50) | 0; $66 = ((($_gf + $65) | 0) + 256) | 0; $67 = HEAP8[$66 >> 0] | 0; $68 = $67 & 255; $76 = $68; } $69 = ($50 + $8) | 0; $70 = ((($_gf + $69) | 0) + 256) | 0; $71 = HEAP8[$70 >> 0] | 0; $72 = $71 & 255; $73 = ((($_gf + $50) | 0) + 256) | 0; $74 = HEAP8[$73 >> 0] | 0; $75 = $74 & 255; $77 = _rs_quartic_solve($_gf, 0, $76, $72, $75, $_x) | 0; $78 = ($77 | 0) > 0; if ($78) { $i$015 = 0; } else { $$0 = $77; STACKTOP = sp; return $$0 | 0; } while (1) { $79 = ($_x + $i$015) | 0; $80 = HEAP8[$79 >> 0] | 0; $81 = $80 & 255; $82 = ($_gf + $81) | 0; $83 = HEAP8[$82 >> 0] | 0; $84 = $83 & 255; $85 = $84 ^ 255; $86 = ((($_gf + $85) | 0) + 256) | 0; $87 = HEAP8[$86 >> 0] | 0; $88 = $87 & 255; $89 = $88 ^ $$0$i1113; $90 = $89 & 255; HEAP8[$79 >> 0] = $90; $91 = ($i$015 + 1) | 0; $exitcond = ($91 | 0) == ($77 | 0); if ($exitcond) { $$0 = $77; break; } else { $i$015 = $91; } } STACKTOP = sp; return $$0 | 0; } function _rs_cubic_solve($_gf, $_a, $_b, $_c, $_x) { $_gf = $_gf | 0; $_a = $_a | 0; $_b = $_b | 0; $_c = $_c | 0; $_x = $_x | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; var $97 = 0, $98 = 0, $99 = 0, $div = 0, $div1 = 0, $or$cond$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_c | 0) == 0; if ($0) { $1 = _rs_quadratic_solve($_gf, $_a, $_b, $_x) | 0; $2 = ($_b | 0) == 0; if ($2) { $$0 = $1; STACKTOP = sp; return $$0 | 0; } $3 = ($1 + 1) | 0; $4 = ($_x + $1) | 0; HEAP8[$4 >> 0] = 0; $$0 = $3; STACKTOP = sp; return $$0 | 0; } $5 = ($_a | 0) == 0; $6 = ($_b | 0) == 0; $or$cond$i = $5 | $6; if ($or$cond$i) { $18 = 0; } else { $7 = ($_gf + $_a) | 0; $8 = HEAP8[$7 >> 0] | 0; $9 = $8 & 255; $10 = ($_gf + $_b) | 0; $11 = HEAP8[$10 >> 0] | 0; $12 = $11 & 255; $13 = ($12 + $9) | 0; $14 = ((($_gf + $13) | 0) + 256) | 0; $15 = HEAP8[$14 >> 0] | 0; $16 = $15 & 255; $18 = $16; } $17 = $18 ^ $_c; if ($5) { $26 = 0; } else { $19 = ($_gf + $_a) | 0; $20 = HEAP8[$19 >> 0] | 0; $21 = $20 & 255; $22 = $21 << 1; $23 = ((($_gf + $22) | 0) + 256) | 0; $24 = HEAP8[$23 >> 0] | 0; $25 = $24 & 255; $26 = $25; } $27 = ($26 | 0) == ($_b | 0); if ($27) { $28 = ($18 | 0) == ($_c | 0); if ($28) { $29 = $_a & 255; HEAP8[$_x >> 0] = $29; $$0 = 1; STACKTOP = sp; return $$0 | 0; } $30 = ($_gf + $17) | 0; $31 = HEAP8[$30 >> 0] | 0; $32 = ($31 & 255) % 3 & -1; $33 = ($32 << 24) >> 24 == 0; if (!$33) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $div = (($31 & 255) / 3) & -1; $34 = $div & 255; $35 = ((($_gf + $34) | 0) + 256) | 0; $36 = HEAP8[$35 >> 0] | 0; $37 = $36 & 255; $38 = $37 ^ $_a; $39 = $38 & 255; HEAP8[$_x >> 0] = $39; $40 = ($34 + 85) | 0; $41 = ((($_gf + $40) | 0) + 256) | 0; $42 = HEAP8[$41 >> 0] | 0; $43 = $42 & 255; $44 = $43 ^ $_a; $45 = $44 & 255; $46 = ($_x + 1) | 0; HEAP8[$46 >> 0] = $45; $47 = $39 ^ $42; $48 = ($_x + 2) | 0; HEAP8[$48 >> 0] = $47; $$0 = 3; STACKTOP = sp; return $$0 | 0; } $49 = $26 ^ $_b; $50 = ($_gf + $49) | 0; $51 = HEAP8[$50 >> 0] | 0; $52 = $51 & 255; $53 = $52 & 1; $54 = (0 - $53) | 0; $55 = $54 & 255; $56 = ($55 + $52) | 0; $57 = $56 >>> 1; $58 = ($18 | 0) == ($_c | 0); if ($58) { $74 = 0; } else { $59 = ($57 + $52) | 0; $60 = ((($_gf + $59) | 0) + 256) | 0; $61 = HEAP8[$60 >> 0] | 0; $62 = $61 & 255; $63 = ($_gf + $17) | 0; $64 = HEAP8[$63 >> 0] | 0; $65 = $64 & 255; $66 = ($65 + 255) | 0; $67 = ($_gf + $62) | 0; $68 = HEAP8[$67 >> 0] | 0; $69 = $68 & 255; $70 = ($66 - $69) | 0; $71 = ((($_gf + $70) | 0) + 256) | 0; $72 = HEAP8[$71 >> 0] | 0; $73 = $72 & 255; $74 = $73; } $75 = _rs_quadratic_solve($_gf, $74, 1, $_x) | 0; $76 = ($75 | 0) < 1; if ($76) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $77 = HEAP8[$_x >> 0] | 0; $78 = $77 & 255; $79 = ($_gf + $78) | 0; $80 = HEAP8[$79 >> 0] | 0; $81 = ($80 << 24) >> 24 == 0; if ($81) { $121 = $_a & 255; HEAP8[$_x >> 0] = $121; $$0 = 1; STACKTOP = sp; return $$0 | 0; } $82 = ($80 & 255) % 3 & -1; $83 = ($82 << 24) >> 24 == 0; if (!$83) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $div1 = (($80 & 255) / 3) & -1; $84 = $div1 & 255; $85 = ((($_gf + $84) | 0) + 256) | 0; $86 = HEAP8[$85 >> 0] | 0; $87 = $84 ^ 255; $88 = ((($_gf + $87) | 0) + 256) | 0; $89 = HEAP8[$88 >> 0] | 0; $90 = $89 ^ $86; $91 = $90 & 255; $92 = ($_gf + $91) | 0; $93 = HEAP8[$92 >> 0] | 0; $94 = $93 & 255; $95 = ($94 + $57) | 0; $96 = ((($_gf + $95) | 0) + 256) | 0; $97 = HEAP8[$96 >> 0] | 0; $98 = $97 & 255; $99 = $98 ^ $_a; $100 = $99 & 255; HEAP8[$_x >> 0] = $100; $101 = ($84 + 85) | 0; $102 = ((($_gf + $101) | 0) + 256) | 0; $103 = HEAP8[$102 >> 0] | 0; $104 = (170 - $84) | 0; $105 = ((($_gf + $104) | 0) + 256) | 0; $106 = HEAP8[$105 >> 0] | 0; $107 = $106 ^ $103; $108 = $107 & 255; $109 = ($_gf + $108) | 0; $110 = HEAP8[$109 >> 0] | 0; $111 = $110 & 255; $112 = ($111 + $57) | 0; $113 = ((($_gf + $112) | 0) + 256) | 0; $114 = HEAP8[$113 >> 0] | 0; $115 = $114 & 255; $116 = $115 ^ $_a; $117 = $116 & 255; $118 = ($_x + 1) | 0; HEAP8[$118 >> 0] = $117; $119 = $100 ^ $114; $120 = ($_x + 2) | 0; HEAP8[$120 >> 0] = $119; $$0 = 3; STACKTOP = sp; return $$0 | 0; } function _rs_quadratic_solve($_gf, $_b, $_c, $_x) { $_gf = $_gf | 0; $_b = $_b | 0; $_c = $_c | 0; $_x = $_x | 0; var $$0 = 0, $$0$i = 0, $$01 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0; var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0; var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $b$0 = 0, $logb$0 = 0, $logc$0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_b | 0) == 0; $1 = ($_c | 0) == 0; if ($0) { if ($1) { $$0$i = 0; } else { $2 = ($_gf + $_c) | 0; $3 = HEAP8[$2 >> 0] | 0; $4 = $3 & 255; $5 = $4 & 1; $6 = (0 - $5) | 0; $7 = $6 & 255; $8 = ($7 + $4) | 0; $9 = $8 >>> 1; $10 = ((($_gf + $9) | 0) + 256) | 0; $11 = HEAP8[$10 >> 0] | 0; $$0$i = $11; } HEAP8[$_x >> 0] = $$0$i; $$0 = 1; STACKTOP = sp; return $$0 | 0; } if ($1) { HEAP8[$_x >> 0] = 0; $12 = $_b & 255; $13 = ($_x + 1) | 0; HEAP8[$13 >> 0] = $12; $$0 = 2; STACKTOP = sp; return $$0 | 0; } $14 = ($_gf + $_b) | 0; $15 = HEAP8[$14 >> 0] | 0; $16 = $15 & 255; $17 = ($_gf + $_c) | 0; $18 = HEAP8[$17 >> 0] | 0; $19 = $18 & 255; $20 = ($15 & 255) % 17 & -1; $21 = ($20 << 24) >> 24 == 0; $22 = $21 & 1; if ($21) { $23 = ($16 + 254) | 0; $24 = ((($_gf + $23) | 0) + 256) | 0; $25 = HEAP8[$24 >> 0] | 0; $26 = $25 & 255; $27 = ($_gf + $26) | 0; $28 = HEAP8[$27 >> 0] | 0; $29 = $28 & 255; $30 = ($19 + 253) | 0; $31 = ((($_gf + $30) | 0) + 256) | 0; $32 = HEAP8[$31 >> 0] | 0; $33 = $32 & 255; $34 = ($_gf + $33) | 0; $35 = HEAP8[$34 >> 0] | 0; $36 = $35 & 255; $$01 = $33; $b$0 = $26; $logb$0 = $29; $logc$0 = $36; } else { $$01 = $_c; $b$0 = $_b; $logb$0 = $16; $logc$0 = $19; } $37 = $logb$0 << 1; $38 = ((($_gf + $37) | 0) + 256) | 0; $39 = HEAP8[$38 >> 0] | 0; $40 = $39 & 255; $41 = ($_gf + $40) | 0; $42 = HEAP8[$41 >> 0] | 0; $43 = $42 & 255; $44 = $43 << 1; $45 = ((($_gf + $44) | 0) + 256) | 0; $46 = HEAP8[$45 >> 0] | 0; $47 = $46 & 255; $48 = ($_gf + $47) | 0; $49 = HEAP8[$48 >> 0] | 0; $50 = $49 & 255; $51 = $50 << 1; $52 = ((($_gf + $51) | 0) + 256) | 0; $53 = HEAP8[$52 >> 0] | 0; $54 = $53 & 255; $55 = ($_gf + $54) | 0; $56 = HEAP8[$55 >> 0] | 0; $57 = $56 & 255; $58 = ($57 + $50) | 0; $59 = ((($_gf + $58) | 0) + 256) | 0; $60 = HEAP8[$59 >> 0] | 0; $61 = $60 & 255; $62 = ($_gf + $61) | 0; $63 = HEAP8[$62 >> 0] | 0; $64 = $63 & 255; $65 = ($64 + $43) | 0; $66 = ((($_gf + $65) | 0) + 256) | 0; $67 = HEAP8[$66 >> 0] | 0; $68 = $67 & 255; $69 = ($_gf + $68) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = $70 & 255; $72 = $logc$0 << 1; $73 = ((($_gf + $72) | 0) + 256) | 0; $74 = HEAP8[$73 >> 0] | 0; $75 = $74 & 255; $76 = ($_gf + $75) | 0; $77 = HEAP8[$76 >> 0] | 0; $78 = $77 & 255; $79 = $78 << 1; $80 = ((($_gf + $79) | 0) + 256) | 0; $81 = HEAP8[$80 >> 0] | 0; $82 = $81 & 255; $83 = ($_gf + $82) | 0; $84 = HEAP8[$83 >> 0] | 0; $85 = $84 & 255; $86 = $85 << 1; $87 = ((($_gf + $86) | 0) + 256) | 0; $88 = HEAP8[$87 >> 0] | 0; $89 = ($71 + $logc$0) | 0; $90 = ((($_gf + $89) | 0) + 256) | 0; $91 = HEAP8[$90 >> 0] | 0; $92 = ($78 + $64) | 0; $93 = ((($_gf + $92) | 0) + 256) | 0; $94 = HEAP8[$93 >> 0] | 0; $95 = $94 ^ $91; $96 = ($85 + $57) | 0; $97 = ((($_gf + $96) | 0) + 256) | 0; $98 = HEAP8[$97 >> 0] | 0; $99 = $95 ^ $98; $100 = ($99 << 24) >> 24 == ($88 << 24) >> 24; if ($100) { $111 = 0; } else { $101 = $99 ^ $88; $102 = $101 & 255; $103 = ($_gf + $102) | 0; $104 = HEAP8[$103 >> 0] | 0; $105 = $104 & 255; $106 = ($105 + $logb$0) | 0; $107 = ((($_gf + $106) | 0) + 256) | 0; $108 = HEAP8[$107 >> 0] | 0; $109 = $108 & 255; $111 = $109; } $110 = ($_gf + $111) | 0; $112 = HEAP8[$110 >> 0] | 0; $113 = ($112 & 255) % 17 & -1; $114 = ($113 << 24) >> 24 == 0; if (!$114) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $115 = ($111 | 0) == 0; if ($115) { $143 = 0; $144 = 0; $254 = 0; } else { $116 = $57 << 1; $117 = ((($_gf + $116) | 0) + 256) | 0; $118 = HEAP8[$117 >> 0] | 0; $119 = $118 & 255; $120 = $119 ^ $b$0; $121 = $112 & 255; $122 = ($121 + 255) | 0; $123 = ($_gf + $120) | 0; $124 = HEAP8[$123 >> 0] | 0; $125 = $124 & 255; $126 = ($122 - $125) | 0; $127 = ((($_gf + $126) | 0) + 256) | 0; $128 = HEAP8[$127 >> 0] | 0; $129 = $128 & 255; $130 = ($128 << 24) >> 24 == 0; if ($130) { $143 = 0; $144 = 0; $254 = 0; } else { $131 = ($_gf + $129) | 0; $132 = HEAP8[$131 >> 0] | 0; $133 = $132 & 255; $134 = $133 << 1; $135 = ((($_gf + $134) | 0) + 256) | 0; $136 = HEAP8[$135 >> 0] | 0; $137 = $136 & 255; $138 = ($133 + $logb$0) | 0; $139 = ((($_gf + $138) | 0) + 256) | 0; $140 = HEAP8[$139 >> 0] | 0; $141 = $140 & 255; $143 = $137; $144 = $141; $254 = $129; } } $142 = $144 ^ $143; $145 = ($142 | 0) == ($$01 | 0); if ($145) { $214 = 0; $215 = 0; $217 = 0; $235 = 0; $266 = 1; } else { $146 = $142 ^ $$01; $147 = $43 ^ 255; $148 = ($_gf + $146) | 0; $149 = HEAP8[$148 >> 0] | 0; $150 = $149 & 255; $151 = ($150 + $147) | 0; $152 = ((($_gf + $151) | 0) + 256) | 0; $153 = HEAP8[$152 >> 0] | 0; $154 = ($153 << 24) >> 24 == 0; if ($154) { $214 = 0; $215 = 0; $217 = 0; $235 = 0; $266 = 1; } else { $155 = $153 & 255; $156 = ($_gf + $155) | 0; $157 = HEAP8[$156 >> 0] | 0; $158 = $157 & 255; $159 = ($158 + 221) | 0; $160 = ((($_gf + $159) | 0) + 256) | 0; $161 = HEAP8[$160 >> 0] | 0; $162 = $161 & 255; $163 = ($161 << 24) >> 24 == 0; if ($163) { $214 = 0; $215 = 0; $217 = 0; $235 = 0; $266 = 1; } else { $164 = ($_gf + $162) | 0; $165 = HEAP8[$164 >> 0] | 0; $166 = $165 & 255; $167 = ($166 + 221) | 0; $168 = ((($_gf + $167) | 0) + 256) | 0; $169 = HEAP8[$168 >> 0] | 0; $170 = $166 << 1; $171 = ((($_gf + $170) | 0) + 256) | 0; $172 = HEAP8[$171 >> 0] | 0; $173 = ($169 << 24) >> 24 == ($172 << 24) >> 24; if ($173) { $214 = 0; $215 = 0; $217 = $162; $235 = 0; $266 = 1; } else { $174 = $172 ^ $169; $175 = $174 & 255; $176 = ($_gf + $175) | 0; $177 = HEAP8[$176 >> 0] | 0; $178 = $177 & 255; $179 = ($178 + 238) | 0; $180 = ((($_gf + $179) | 0) + 256) | 0; $181 = HEAP8[$180 >> 0] | 0; $182 = ($181 << 24) >> 24 == 0; if ($182) { $214 = 0; $215 = 0; $217 = $162; $235 = 0; $266 = 1; } else { $183 = $181 & 255; $184 = ($_gf + 494) | 0; $185 = ($_gf + 443) | 0; $186 = HEAP8[$184 >> 0] | 0; $187 = HEAP8[$185 >> 0] | 0; $188 = $187 ^ $186; $189 = $188 & 255; $190 = ($_gf + $183) | 0; $191 = HEAP8[$190 >> 0] | 0; $192 = $191 & 255; $193 = ($192 + 255) | 0; $194 = ($_gf + $189) | 0; $195 = HEAP8[$194 >> 0] | 0; $196 = $195 & 255; $197 = ($193 - $196) | 0; $198 = ((($_gf + $197) | 0) + 256) | 0; $199 = HEAP8[$198 >> 0] | 0; $200 = $199 & 255; $201 = ($199 << 24) >> 24 == 0; if ($201) { $214 = 0; $215 = 0; $217 = $162; $235 = 0; $266 = 1; } else { $202 = ($_gf + $200) | 0; $203 = HEAP8[$202 >> 0] | 0; $204 = $203 & 255; $205 = $204 << 1; $206 = ((($_gf + $205) | 0) + 256) | 0; $207 = HEAP8[$206 >> 0] | 0; $208 = $207 & 255; $209 = ($204 + 238) | 0; $210 = ((($_gf + $209) | 0) + 256) | 0; $211 = HEAP8[$210 >> 0] | 0; $212 = $211 & 255; $214 = $208; $215 = $212; $217 = $162; $235 = $200; $266 = 0; } } } } } } $213 = $215 ^ $214; $216 = ($213 | 0) == ($217 | 0); if ($216) { $242 = 0; } else { $218 = $213 ^ $217; $219 = ($_gf + $218) | 0; $220 = HEAP8[$219 >> 0] | 0; $221 = $220 & 255; $222 = ($221 + 34) | 0; $223 = ((($_gf + $222) | 0) + 256) | 0; $224 = HEAP8[$223 >> 0] | 0; $225 = ($224 << 24) >> 24 == 0; if ($225) { $242 = 0; } else { $226 = $224 & 255; $227 = ($_gf + $226) | 0; $228 = HEAP8[$227 >> 0] | 0; $229 = $228 & 255; $230 = ($229 + 85) | 0; $231 = ((($_gf + $230) | 0) + 256) | 0; $232 = HEAP8[$231 >> 0] | 0; $233 = $232 & 255; $242 = $233; } } if ($266) { $244 = 0; } else { $234 = ($_gf + $235) | 0; $236 = HEAP8[$234 >> 0] | 0; $237 = $236 & 255; $238 = ($237 + 17) | 0; $239 = ((($_gf + $238) | 0) + 256) | 0; $240 = HEAP8[$239 >> 0] | 0; $241 = $240 & 255; $244 = $241; } $243 = ($242 | 0) == ($244 | 0); if ($243) { $255 = 0; } else { $245 = $244 ^ $242; $246 = ($_gf + $245) | 0; $247 = HEAP8[$246 >> 0] | 0; $248 = $247 & 255; $249 = ($248 + $logb$0) | 0; $250 = ((($_gf + $249) | 0) + 256) | 0; $251 = HEAP8[$250 >> 0] | 0; $252 = $251 & 255; $255 = $252; } $253 = $255 ^ $254; $256 = ($_gf + $253) | 0; $257 = HEAP8[$256 >> 0] | 0; $258 = $257 & 255; $259 = ($258 + $22) | 0; $260 = ((($_gf + $259) | 0) + 256) | 0; $261 = HEAP8[$260 >> 0] | 0; HEAP8[$_x >> 0] = $261; $262 = $261 & 255; $263 = $262 ^ $_b; $264 = $263 & 255; $265 = ($_x + 1) | 0; HEAP8[$265 >> 0] = $264; $$0 = 2; STACKTOP = sp; return $$0 | 0; } function _qr_isqrt($_val) { $_val = $_val | 0; var $$03 = 0, $$1 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b$02 = 0, $g$01 = 0, $g$1 = 0, label = 0, sp = 0; sp = STACKTOP; $$03 = $_val; $3 = 15; $b$02 = 32768; $g$01 = 0; while (1) { $0 = $g$01 << 1; $1 = ($0 + $b$02) | 0; $2 = $1 << $3; $4 = $2 >>> 0 > $$03 >>> 0; if ($4) { $$1 = $$03; $g$1 = $g$01; } else { $5 = ($b$02 + $g$01) | 0; $6 = ($$03 - $2) | 0; $$1 = $6; $g$1 = $5; } $7 = $b$02 >>> 1; $8 = ($3 + -1) | 0; $9 = ($3 | 0) > 0; if ($9) { $$03 = $$1; $3 = $8; $b$02 = $7; $g$01 = $g$1; } else { break; } } STACKTOP = sp; return $g$1 | 0; } function _qr_ihypot($_x, $_y) { $_x = $_x | 0; $_y = $_y | 0; var $$09 = 0, $$lobit$i = 0, $$neg5 = 0, $$neg6 = 0, $$not = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $9 = 0, $exitcond = 0, $i$08 = 0, $ispos = 0, $ispos1 = 0, $neg = 0, $neg2 = 0, $x$07 = 0, label = 0, sp = 0; sp = STACKTOP; $ispos = ($_x | 0) > -1; $neg = (0 - $_x) | 0; $0 = $ispos ? $_x : $neg; $ispos1 = ($_y | 0) > -1; $neg2 = (0 - $_y) | 0; $1 = $ispos1 ? $_y : $neg2; $2 = $0 >>> 0 > $1 >>> 0; $3 = $1 ^ $0; $4 = $2 ? $3 : 0; $5 = $4 ^ $0; $6 = $4 ^ $1; $7 = $6 >>> 0 > 65535; $8 = $7 & 1; $9 = $8 << 4; $10 = $6 >>> $9; $11 = $10 & 65280; $12 = ($11 | 0) != 0; $13 = $12 & 1; $14 = $13 << 3; $15 = $10 >>> $14; $16 = $14 | $9; $17 = $15 & 240; $18 = ($17 | 0) != 0; $19 = $18 & 1; $20 = $19 << 2; $21 = $15 >>> $20; $22 = $16 | $20; $23 = $21 & 12; $24 = ($23 | 0) != 0; $25 = $24 & 1; $26 = $25 << 1; $27 = $21 >>> $26; $28 = $22 | $26; $29 = $27 >>> 1; $$lobit$i = $29 & 1; $30 = $28 | $$lobit$i; $31 = ($27 | 0) != 0; $$neg5 = ($31 << 31) >> 31; $$neg6 = ($$neg5 + 31) | 0; $32 = ($$neg6 - $30) | 0; $33 = $32 >> 31; $$not = $33 ^ -1; $34 = $32 & $$not; $35 = $5 << $34; ___muldi3($35 | 0, 0, -1686835798, 0) | 0; $36 = tempRet0; $37 = $6 << $34; $38 = ($37 | 0) < 0; $39 = ($38 << 31) >> 31; $40 = ___muldi3($37 | 0, $39 | 0, -1686835799, 0) | 0; $41 = tempRet0; $42 = _bitshift64Lshr($40 | 0, $41 | 0, 63) | 0; $43 = tempRet0; $44 = (0 - $42) | 0; $45 = ($41 - $42) | 0; $46 = $45 ^ $44; $47 = ($46 + $36) | 0; $48 = ($36 - $42) | 0; $49 = $48 ^ $44; $50 = ($41 - $49) | 0; $51 = ($47 + 1) | 0; $52 = $51 >>> 1; $53 = ($50 + 1) | 0; $54 = $53 >> 1; $55 = $50 >> 31; $56 = ($54 + $55) | 0; $57 = $56 ^ $55; $58 = ($57 + $47) | 0; $59 = ($52 + $55) | 0; $60 = $59 ^ $55; $61 = ($50 - $60) | 0; $$09 = $61; $i$08 = 1; $x$07 = $58; while (1) { $62 = ($x$07 + 1) | 0; $63 = $62 >>> 2; $64 = $i$08 << 1; $65 = 1 << $64; $66 = $65 >> 1; $67 = ($66 + $$09) | 0; $68 = $67 >> $64; $69 = $$09 >> 31; $70 = ($68 + $69) | 0; $71 = $70 ^ $69; $72 = ($71 + $x$07) | 0; $73 = ($69 + $63) | 0; $74 = $73 ^ $69; $75 = ($$09 - $74) | 0; $76 = $75 << 1; $77 = ($i$08 + 1) | 0; $exitcond = ($77 | 0) == 16; if ($exitcond) { break; } else { $$09 = $76; $i$08 = $77; $x$07 = $72; } } $78 = 1 << $34; $79 = $78 >>> 1; $80 = ($72 + $79) | 0; $81 = $80 >>> $34; STACKTOP = sp; return $81 | 0; } function _qr_ilog($_v) { $_v = $_v | 0; var $$lobit = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $_v >>> 0 > 65535; $1 = $0 & 1; $2 = $1 << 4; $3 = $_v >>> $2; $4 = $3 & 65280; $5 = ($4 | 0) != 0; $6 = $5 & 1; $7 = $6 << 3; $8 = $3 >>> $7; $9 = $7 | $2; $10 = $8 & 240; $11 = ($10 | 0) != 0; $12 = $11 & 1; $13 = $12 << 2; $14 = $8 >>> $13; $15 = $9 | $13; $16 = $14 & 12; $17 = ($16 | 0) != 0; $18 = $17 & 1; $19 = $18 << 1; $20 = $14 >>> $19; $21 = $15 | $19; $22 = $20 >>> 1; $$lobit = $22 & 1; $23 = $21 | $$lobit; $24 = ($20 | 0) != 0; $25 = $24 & 1; $26 = ($23 + $25) | 0; STACKTOP = sp; return $26 | 0; } function _zbar_decoder_create() { var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; $0 = _calloc(1, 136) | 0; $1 = ($0 + 88) | 0; HEAP32[$1 >> 2] = 32; $2 = _malloc(32) | 0; $3 = ($0 + 96) | 0; HEAP32[$3 >> 2] = $2; $4 = ($0 + 132) | 0; HEAP32[$4 >> 2] = 1; dest = ($0 + 0) | 0; stop = (dest + 88) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $5 = ($0 + 108) | 0; HEAP32[$5 >> 2] = 0; STACKTOP = sp; return $0 | 0; } function _zbar_decoder_reset($dcode) { $dcode = $dcode | 0; var $0 = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; dest = ($dcode + 0) | 0; stop = (dest + 88) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $0 = ($dcode + 108) | 0; HEAP32[$0 >> 2] = 0; STACKTOP = sp; return; } function _zbar_decoder_destroy($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 96) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); if (!$2) { _free($1); } _free($dcode); STACKTOP = sp; return; } function _zbar_decoder_new_scan($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; $0 = ($dcode + 4) | 0; dest = ($0 + 0) | 0; stop = (dest + 64) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $1 = ($dcode + 72) | 0; HEAP32[$1 >> 2] = 0; HEAP8[$dcode >> 0] = 0; $2 = ($dcode + 84) | 0; HEAP32[$2 >> 2] = 0; $3 = ($dcode + 108) | 0; HEAP32[$3 >> 2] = 0; STACKTOP = sp; return; } function _zbar_decoder_get_data($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 96) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_get_data_length($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 92) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_get_direction($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 80) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_set_handler($dcode, $handler) { $dcode = $dcode | 0; $handler = $handler | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 104) | 0; $1 = HEAP32[$0 >> 2] | 0; HEAP32[$0 >> 2] = $handler; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_set_userdata($dcode, $userdata) { $dcode = $dcode | 0; $userdata = $userdata | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 100) | 0; HEAP32[$0 >> 2] = $userdata; STACKTOP = sp; return; } function _zbar_decoder_get_userdata($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 100) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_get_type($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 68) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decoder_get_modifiers($dcode) { $dcode = $dcode | 0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($dcode + 76) | 0; $1 = HEAP32[$0 >> 2] | 0; STACKTOP = sp; return $1 | 0; } function _zbar_decode_width($dcode, $w) { $dcode = $dcode | 0; $w = $w | 0; var $$ = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sym$02 = 0; var $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, $vararg_ptr5 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $vararg_buffer = sp; $0 = HEAP8[$dcode >> 0] | 0; $1 = $0 & 255; $2 = $1 & 15; $3 = ((($dcode + ($2 << 2)) | 0) + 4) | 0; HEAP32[$3 >> 2] = $w; $4 = HEAP8[$dcode >> 0] | 0; $5 = $4 & 255; $6 = ($5 + 9) | 0; $7 = $6 & 15; $8 = ((($dcode + ($7 << 2)) | 0) + 4) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = ($dcode + 84) | 0; $11 = HEAP32[$10 >> 2] | 0; $12 = ($11 - $9) | 0; HEAP32[$10 >> 2] = $12; $13 = ($5 + 15) | 0; $14 = $13 & 15; $15 = ((($dcode + ($14 << 2)) | 0) + 4) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 + $12) | 0; HEAP32[$10 >> 2] = $17; $18 = ($dcode + 132) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = $19 & 1; $21 = ($20 | 0) == 0; if ($21) { $22 = (($4 + 1) << 24) >> 24; HEAP8[$dcode >> 0] = $22; $23 = ($dcode + 68) | 0; HEAP32[$23 >> 2] = 0; $sym$02 = 0; STACKTOP = sp; return $sym$02 | 0; } $24 = __zbar_find_qr($dcode) | 0; $25 = $24 >>> 0 > 1; $$ = $25 ? $24 : 0; $26 = HEAP8[$dcode >> 0] | 0; $27 = (($26 + 1) << 24) >> 24; HEAP8[$dcode >> 0] = $27; $28 = ($dcode + 68) | 0; HEAP32[$28 >> 2] = $$; $29 = ($$ | 0) == 0; if ($29) { $sym$02 = 0; STACKTOP = sp; return $sym$02 | 0; } $30 = ($dcode + 72) | 0; $31 = HEAP32[$30 >> 2] | 0; $32 = ($31 | 0) == 0; do { if (!$32) { if (!((($$ | 0) == 1) | (($$ | 0) == 64))) { $33 = ($31 | 0) == ($$ | 0); if ($33) { HEAP32[$30 >> 2] = 0; break; } else { $34 = HEAP32[_stderr >> 2] | 0; HEAP32[$vararg_buffer >> 2] = 8128; $vararg_ptr1 = ($vararg_buffer + 4) | 0; HEAP32[$vararg_ptr1 >> 2] = 263; $vararg_ptr2 = ($vararg_buffer + 8) | 0; HEAP32[$vararg_ptr2 >> 2] = 8152; $vararg_ptr3 = ($vararg_buffer + 12) | 0; HEAP32[$vararg_ptr3 >> 2] = 8168; $vararg_ptr4 = ($vararg_buffer + 16) | 0; HEAP32[$vararg_ptr4 >> 2] = $31; $vararg_ptr5 = ($vararg_buffer + 20) | 0; HEAP32[$vararg_ptr5 >> 2] = $$; _fprintf($34 | 0, 8064 | 0, $vararg_buffer | 0) | 0; break; } } } } while (0); $35 = ($dcode + 104) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) == (0 | 0); if ($37) { $sym$02 = $$; STACKTOP = sp; return $sym$02 | 0; } FUNCTION_TABLE_vi[$36 & 7]($dcode); $sym$02 = $$; STACKTOP = sp; return $sym$02 | 0; } function _zbar_decoder_get_configs($dcode, $sym) { $dcode = $dcode | 0; $sym = $sym | 0; var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $cond$i = 0, $config$0$i = 0, label = 0, sp = 0; sp = STACKTOP; $cond$i = ($sym | 0) == 64; $0 = ($dcode + 132) | 0; $config$0$i = $cond$i ? $0 : 0; $1 = ($config$0$i | 0) == (0 | 0); if ($1) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $2 = HEAP32[$config$0$i >> 2] | 0; $$0 = $2; STACKTOP = sp; return $$0 | 0; } function _bch15_5_correct($_y) { $_y = $_y | 0; var $$0 = 0, $$lobit$i = 0, $$lobit16$i = 0, $$lobit17$i = 0, $$lobit18$i = 0, $$lobit19$i = 0, $$lobit20$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0; var $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0; var $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0; var $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0; var $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0; var $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0; var $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0; var $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $26 = 0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $d$0$i$i = 0, $epos = 0; var $exitcond = 0, $exitcond$i = 0, $exitcond$i1 = 0, $exitcond11$i = 0, $exitcond11$i$us = 0, $exitcond12$i = 0, $i$011$i = 0, $i$03$i = 0, $i$03$us$i = 0, $i$03$us$i$us = 0, $i$03$us4$i = 0, $i$06 = 0, $nerrors$0$lcssa$i = 0, $nerrors$02$i = 0, $nerrors$02$us$i = 0, $nerrors$02$us$i$us = 0, $nerrors$02$us5$i = 0, $nerrors$1$i = 0, $nerrors$1$us$i = 0, $nerrors$1$us$i$us = 0; var $nerrors$1$us8$i = 0, $nerrors$2$i3$ph14 = 0, $nerrors$2$i3$ph15 = 0, $o$i = 0, $or$cond = 0, $or$cond$i$i = 0, $p$010$i = 0, $p$4$1$$i = 0, $p$4$1$2$$i = 0, $p$4$1$2$i = 0, $p$4$114$$i = 0, $p$4$114$i = 0, $p$4$2$1$$i = 0, $p$4$2$1$i = 0, $p$4$3$$i = 0, $p$4$3$2$$i = 0, $p$4$3$2$i = 0, $p$4$3$i = 0, $p$4$4$1$$i = 0, $p$4$4$1$i = 0; var $p$7$$i = 0, $p$7$1$1$$i = 0, $p$7$1$1$i = 0, $p$7$1$3$$i = 0, $p$7$1$3$i = 0, $p$7$2$$i = 0, $p$7$2$2$$i = 0, $p$7$2$2$i = 0, $p$7$2$4$i = 0, $p$7$2$i = 0, $p$7$213$$i = 0, $p$7$213$i = 0, $p$7$4$$i = 0, $p$7$4$i = 0, $y$0$lcssa = 0, $y$05 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $o$i = (sp + 12) | 0; $epos = sp; $0 = HEAP32[$_y >> 2] | 0; $i$011$i = 0; $p$010$i = 0; while (1) { $1 = 1 << $i$011$i; $2 = $1 & $0; $3 = ($2 | 0) == 0; if ($3) { $61 = $p$010$i; } else { $4 = (8208 + $i$011$i) | 0; $5 = HEAP8[$4 >> 0] | 0; $6 = $5 & 255; $7 = $6 ^ $p$010$i; $61 = $7; } $8 = ($i$011$i + 1) | 0; $exitcond$i = ($8 | 0) == 15; if ($exitcond$i) { break; } else { $i$011$i = $8; $p$010$i = $61; } } $9 = $0 & 1; $10 = $0 & 2; $11 = ($10 | 0) == 0; $12 = $10 << 2; $13 = $12 | $9; $14 = $0 & 4; $15 = ($14 | 0) == 0; $16 = $13 ^ 12; $p$4$1$$i = $15 ? $13 : $16; $17 = $0 & 8; $18 = ($17 | 0) == 0; $19 = $p$4$1$$i ^ 10; $p$4$3$i = $18 ? $p$4$1$$i : $19; $20 = $0 & 16; $21 = ($20 | 0) == 0; $22 = $p$4$3$i ^ 15; $p$4$3$$i = $21 ? $p$4$3$i : $22; $23 = $0 & 32; $24 = ($23 | 0) == 0; $$lobit$i = $23 >>> 5; $p$4$114$i = $p$4$3$$i ^ $$lobit$i; $25 = $0 & 64; $26 = ($25 | 0) == 0; $27 = $p$4$114$i ^ 8; $p$4$114$$i = $26 ? $p$4$114$i : $27; $28 = $0 & 128; $29 = ($28 | 0) == 0; $30 = $p$4$114$$i ^ 12; $p$4$2$1$i = $29 ? $p$4$114$$i : $30; $31 = $0 & 256; $32 = ($31 | 0) == 0; $33 = $p$4$2$1$i ^ 10; $p$4$2$1$$i = $32 ? $p$4$2$1$i : $33; $34 = $0 & 512; $35 = ($34 | 0) == 0; $36 = $p$4$2$1$$i ^ 15; $p$4$4$1$i = $35 ? $p$4$2$1$$i : $36; $37 = $0 & 1024; $38 = ($37 | 0) == 0; $$lobit16$i = $37 >>> 10; $p$4$4$1$$i = $p$4$4$1$i ^ $$lobit16$i; $39 = $0 & 2048; $40 = ($39 | 0) == 0; $41 = $p$4$4$1$$i ^ 8; $p$4$1$2$i = $40 ? $p$4$4$1$$i : $41; $42 = $0 & 4096; $43 = ($42 | 0) == 0; $44 = $p$4$1$2$i ^ 12; $p$4$1$2$$i = $43 ? $p$4$1$2$i : $44; $45 = $0 & 8192; $46 = ($45 | 0) == 0; $47 = $p$4$1$2$$i ^ 10; $p$4$3$2$i = $46 ? $p$4$1$2$$i : $47; $48 = $0 & 16384; $49 = ($48 | 0) == 0; $50 = $p$4$3$2$i ^ 15; $p$4$3$2$$i = $49 ? $p$4$3$2$i : $50; $51 = $9 | 6; $p$7$$i = $11 ? $9 : $51; $52 = $p$7$$i ^ 7; $p$7$2$i = $15 ? $p$7$$i : $52; $$lobit17$i = $17 >>> 3; $p$7$2$$i = $p$7$2$i ^ $$lobit17$i; $53 = $p$7$2$$i ^ 6; $p$7$1$1$i = $21 ? $p$7$2$$i : $53; $54 = $p$7$1$1$i ^ 7; $p$7$1$1$$i = $24 ? $p$7$1$1$i : $54; $$lobit18$i = $25 >>> 6; $p$7$213$i = $p$7$1$1$$i ^ $$lobit18$i; $55 = $p$7$213$i ^ 6; $p$7$213$$i = $29 ? $p$7$213$i : $55; $56 = $p$7$213$$i ^ 7; $p$7$2$2$i = $32 ? $p$7$213$$i : $56; $$lobit19$i = $34 >>> 9; $p$7$2$2$$i = $p$7$2$2$i ^ $$lobit19$i; $57 = $p$7$2$2$$i ^ 6; $p$7$1$3$i = $38 ? $p$7$2$2$$i : $57; $58 = $p$7$1$3$i ^ 7; $p$7$1$3$$i = $40 ? $p$7$1$3$i : $58; $$lobit20$i = $42 >>> 12; $p$7$4$i = $p$7$1$3$$i ^ $$lobit20$i; $59 = $p$7$4$i ^ 6; $p$7$4$$i = $46 ? $p$7$4$i : $59; $60 = $p$7$4$$i ^ 7; $p$7$2$4$i = $49 ? $p$7$4$$i : $60; $62 = ($61 | 0) == 0; do { if ($62) { $63 = $p$4$3$2$$i | $p$7$2$4$i; $64 = ($63 | 0) == 0; if ($64) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { HEAP32[$o$i >> 2] = $61; $100 = $p$4$3$2$$i; $193 = $epos; $250 = $o$i; $88 = $p$4$3$2$$i; $90 = 0; $92 = 0; break; } } else { HEAP32[$o$i >> 2] = $61; $65 = (8192 + $61) | 0; $66 = HEAP8[$65 >> 0] | 0; $67 = ($66 << 24) >> 24; $68 = $67 << 1; $69 = (8208 + $68) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = $70 & 255; $72 = (8192 + $71) | 0; $73 = HEAP8[$72 >> 0] | 0; $74 = ($73 << 24) >> 24; $75 = ($74 + $67) | 0; $76 = (8208 + $75) | 0; $77 = HEAP8[$76 >> 0] | 0; $78 = $77 & 255; $79 = $78 ^ $p$4$3$2$$i; $80 = ($p$4$3$2$$i | 0) == 0; if ($80) { $100 = $79; $193 = $epos; $250 = $o$i; $88 = 0; $90 = $78; $92 = 0; } else { $81 = (8192 + $p$4$3$2$$i) | 0; $82 = HEAP8[$81 >> 0] | 0; $83 = ($82 << 24) >> 24; $84 = ($83 + $74) | 0; $85 = (8208 + $84) | 0; $86 = HEAP8[$85 >> 0] | 0; $87 = $86 & 255; $100 = $79; $193 = $epos; $250 = $o$i; $88 = $p$4$3$2$$i; $90 = $78; $92 = $87; } } } while (0); $89 = ($88 | 0) == ($90 | 0); $91 = ($p$7$2$4$i | 0) == ($92 | 0); $or$cond$i$i = $89 | $91; if ($or$cond$i$i) { $93 = ($o$i + 4) | 0; HEAP32[$93 >> 2] = 0; $119 = 0; $127 = 0; } else { $94 = $92 ^ $p$7$2$4$i; $95 = (8192 + $94) | 0; $96 = HEAP8[$95 >> 0] | 0; $97 = ($96 << 24) >> 24; $98 = ($97 + 15) | 0; $99 = (8192 + $100) | 0; $101 = HEAP8[$99 >> 0] | 0; $102 = ($101 << 24) >> 24; $103 = ($98 - $102) | 0; $104 = (8208 + $103) | 0; $105 = HEAP8[$104 >> 0] | 0; $106 = $105 & 255; $107 = ($o$i + 4) | 0; HEAP32[$107 >> 2] = $106; if ($62) { $119 = 0; $127 = $106; } else { $108 = (8192 + $61) | 0; $109 = HEAP8[$108 >> 0] | 0; $110 = ($109 << 24) >> 24; $111 = (8192 + $106) | 0; $112 = HEAP8[$111 >> 0] | 0; $113 = ($112 << 24) >> 24; $114 = ($113 + $110) | 0; $115 = (8208 + $114) | 0; $116 = HEAP8[$115 >> 0] | 0; $117 = $116 & 255; $119 = $117; $127 = $106; } } $118 = $119 ^ $100; $120 = ($o$i + 8) | 0; HEAP32[$120 >> 2] = $118; $d$0$i$i = 3; while (1) { $121 = ($d$0$i$i | 0) > 0; if (!$121) { $$0 = -1; label = 41; break; } $122 = ($d$0$i$i + -1) | 0; $123 = ($o$i + ($122 << 2)) | 0; $124 = HEAP32[$123 >> 2] | 0; $125 = ($124 | 0) == 0; if ($125) { $d$0$i$i = $122; } else { break; } } if ((label | 0) == 41) { STACKTOP = sp; return $$0 | 0; } $126 = ($d$0$i$i | 0) == 1; do { if ($126) { $190 = (8192 + $61) | 0; $191 = HEAP8[$190 >> 0] | 0; $192 = ($191 << 24) >> 24; HEAP32[$193 >> 2] = $192; $nerrors$2$i3$ph15 = 1; label = 37; } else { $128 = ($127 | 0) == 0; $129 = (8192 + $127) | 0; L28: do { if ($62) { if ($128) { $i$03$us$i$us = 0; $nerrors$02$us$i$us = 0; while (1) { $130 = $i$03$us$i$us << 1; $131 = (8208 + $130) | 0; $132 = HEAP8[$131 >> 0] | 0; $133 = $132 & 255; $134 = (8192 + $133) | 0; $135 = HEAP8[$134 >> 0] | 0; $136 = ($135 << 24) >> 24; $137 = ($136 + $i$03$us$i$us) | 0; $138 = (8208 + $137) | 0; $139 = HEAP8[$138 >> 0] | 0; $140 = $139 & 255; $141 = ($140 | 0) == ($118 | 0); if ($141) { $142 = ($nerrors$02$us$i$us + 1) | 0; $143 = ($epos + ($nerrors$02$us$i$us << 2)) | 0; HEAP32[$143 >> 2] = $i$03$us$i$us; $nerrors$1$us$i$us = $142; } else { $nerrors$1$us$i$us = $nerrors$02$us$i$us; } $144 = ($i$03$us$i$us + 1) | 0; $exitcond11$i$us = ($144 | 0) == 15; if ($exitcond11$i$us) { $nerrors$0$lcssa$i = $nerrors$1$us$i$us; break; } else { $i$03$us$i$us = $144; $nerrors$02$us$i$us = $nerrors$1$us$i$us; } } } else { $i$03$us$i = 0; $nerrors$02$us$i = 0; while (1) { $150 = $i$03$us$i << 1; $151 = (8208 + $150) | 0; $152 = HEAP8[$151 >> 0] | 0; $153 = $152 & 255; $154 = (8192 + $153) | 0; $155 = HEAP8[$154 >> 0] | 0; $156 = ($155 << 24) >> 24; $157 = ($156 + $i$03$us$i) | 0; $158 = (8208 + $157) | 0; $159 = HEAP8[$158 >> 0] | 0; $160 = HEAP8[$129 >> 0] | 0; $161 = ($160 << 24) >> 24; $162 = ($161 + $i$03$us$i) | 0; $163 = (8208 + $162) | 0; $164 = HEAP8[$163 >> 0] | 0; $165 = $164 ^ $159; $166 = $165 & 255; $167 = ($166 | 0) == ($118 | 0); if ($167) { $168 = ($nerrors$02$us$i + 1) | 0; $169 = ($epos + ($nerrors$02$us$i << 2)) | 0; HEAP32[$169 >> 2] = $i$03$us$i; $nerrors$1$us$i = $168; } else { $nerrors$1$us$i = $nerrors$02$us$i; } $170 = ($i$03$us$i + 1) | 0; $exitcond11$i = ($170 | 0) == 15; if ($exitcond11$i) { $nerrors$0$lcssa$i = $nerrors$1$us$i; break; } else { $i$03$us$i = $170; $nerrors$02$us$i = $nerrors$1$us$i; } } } } else { $145 = (8192 + $61) | 0; $146 = HEAP8[$145 >> 0] | 0; $147 = ($146 << 24) >> 24; if ($128) { $i$03$us4$i = 0; $nerrors$02$us5$i = 0; while (1) { $171 = $i$03$us4$i << 1; $172 = (8208 + $171) | 0; $173 = HEAP8[$172 >> 0] | 0; $174 = $173 & 255; $175 = (8192 + $174) | 0; $176 = HEAP8[$175 >> 0] | 0; $177 = ($176 << 24) >> 24; $178 = ($177 + $i$03$us4$i) | 0; $179 = (8208 + $178) | 0; $180 = HEAP8[$179 >> 0] | 0; $181 = ($147 + $177) | 0; $182 = (8208 + $181) | 0; $183 = HEAP8[$182 >> 0] | 0; $184 = $183 ^ $180; $185 = $184 & 255; $186 = ($185 | 0) == ($118 | 0); if ($186) { $187 = ($nerrors$02$us5$i + 1) | 0; $188 = ($epos + ($nerrors$02$us5$i << 2)) | 0; HEAP32[$188 >> 2] = $i$03$us4$i; $nerrors$1$us8$i = $187; } else { $nerrors$1$us8$i = $nerrors$02$us5$i; } $189 = ($i$03$us4$i + 1) | 0; $exitcond12$i = ($189 | 0) == 15; if ($exitcond12$i) { $nerrors$0$lcssa$i = $nerrors$1$us8$i; break L28; } else { $i$03$us4$i = $189; $nerrors$02$us5$i = $nerrors$1$us8$i; } } } $148 = HEAP8[$129 >> 0] | 0; $149 = ($148 << 24) >> 24; $i$03$i = 0; $nerrors$02$i = 0; while (1) { $194 = $i$03$i << 1; $195 = (8208 + $194) | 0; $196 = HEAP8[$195 >> 0] | 0; $197 = $196 & 255; $198 = (8192 + $197) | 0; $199 = HEAP8[$198 >> 0] | 0; $200 = ($199 << 24) >> 24; $201 = ($200 + $i$03$i) | 0; $202 = (8208 + $201) | 0; $203 = HEAP8[$202 >> 0] | 0; $204 = ($147 + $200) | 0; $205 = (8208 + $204) | 0; $206 = HEAP8[$205 >> 0] | 0; $207 = $206 ^ $203; $208 = ($149 + $i$03$i) | 0; $209 = (8208 + $208) | 0; $210 = HEAP8[$209 >> 0] | 0; $211 = $207 ^ $210; $212 = $211 & 255; $213 = ($212 | 0) == ($118 | 0); if ($213) { $214 = ($nerrors$02$i + 1) | 0; $215 = ($epos + ($nerrors$02$i << 2)) | 0; HEAP32[$215 >> 2] = $i$03$i; $nerrors$1$i = $214; } else { $nerrors$1$i = $nerrors$02$i; } $216 = ($i$03$i + 1) | 0; $exitcond$i1 = ($216 | 0) == 15; if ($exitcond$i1) { $nerrors$0$lcssa$i = $nerrors$1$i; break; } else { $i$03$i = $216; $nerrors$02$i = $nerrors$1$i; } } } } while (0); $217 = ($nerrors$0$lcssa$i | 0) >= ($d$0$i$i | 0); $218 = ($nerrors$0$lcssa$i | 0) > 0; $or$cond = $217 & $218; if ($or$cond) { $219 = ($nerrors$0$lcssa$i | 0) > 0; if ($219) { $nerrors$2$i3$ph15 = $nerrors$0$lcssa$i; label = 37; break; } else { $nerrors$2$i3$ph14 = $nerrors$0$lcssa$i; $y$0$lcssa = $0; break; } } else { $$0 = -1; STACKTOP = sp; return $$0 | 0; } } } while (0); if ((label | 0) == 37) { $i$06 = 0; $y$05 = $0; while (1) { $220 = ($epos + ($i$06 << 2)) | 0; $221 = HEAP32[$220 >> 2] | 0; $222 = 1 << $221; $223 = $222 ^ $y$05; $224 = ($i$06 + 1) | 0; $exitcond = ($224 | 0) == ($nerrors$2$i3$ph15 | 0); if ($exitcond) { $nerrors$2$i3$ph14 = $nerrors$2$i3$ph15; $y$0$lcssa = $223; break; } else { $i$06 = $224; $y$05 = $223; } } } $225 = $y$0$lcssa >>> 10; $226 = $225 & 1; $227 = (0 - $226) | 0; $228 = $227 & 1335; $229 = $y$0$lcssa >>> 11; $230 = $229 & 1; $231 = (0 - $230) | 0; $232 = $231 & 2670; $233 = $232 ^ $228; $234 = $y$0$lcssa >>> 12; $235 = $234 & 1; $236 = (0 - $235) | 0; $237 = $236 & 4587; $238 = $233 ^ $237; $239 = $y$0$lcssa >>> 13; $240 = $239 & 1; $241 = (0 - $240) | 0; $242 = $241 & 9174; $243 = $238 ^ $242; $244 = $y$0$lcssa >>> 14; $245 = $244 & 1; $246 = (0 - $245) | 0; $247 = $246 & 17051; $248 = $243 ^ $247; $249 = ($248 | 0) == ($y$0$lcssa | 0); if (!$249) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } HEAP32[$_y >> 2] = $y$0$lcssa; $$0 = $nerrors$2$i3$ph14; STACKTOP = sp; return $$0 | 0; } function _qr_binarize($_img, $_width, $_height) { $_img = $_img | 0; $_width = $_width | 0; $_height = $_height | 0; var $$phi$trans$insert = 0, $$phi$trans$insert36 = 0, $$pre = 0, $$pre37 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; var $167 = 0, $168 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0; var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0; var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0; var $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0; var $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond32 = 0, $logwindh$0$lcssa = 0, $logwindh$025 = 0, $logwindw$0$lcssa = 0, $logwindw$026 = 0, $m$03$us = 0; var $m$1$ph = 0, $m$1$ph$us = 0, $mask$0 = 0, $or$cond = 0, $x$022 = 0, $x$112$us = 0, $x$22$us = 0, $x$3 = 0, $x$3$ph = 0, $x$3$ph$us = 0, $x$3$us = 0, $x$48 = 0, $x$48$us = 0, $y$018$us = 0, $y$110 = 0, $y$110$us = 0, label = 0, sp = 0; sp = STACKTOP; $0 = (($_width | 0) / 4) & -1; $1 = (($_height | 0) / 4) & -1; $2 = ($_width | 0) > 0; $3 = ($_height | 0) > 0; $or$cond = $2 & $3; if (!$or$cond) { $mask$0 = 0; STACKTOP = sp; return $mask$0 | 0; } $4 = Math_imul($_height, $_width) | 0; $5 = _malloc($4) | 0; $6 = ($_width + 7) | 0; $7 = $6 >> 3; $logwindw$026 = 4; while (1) { $10 = 1 << $logwindw$026; $11 = ($10 | 0) < ($7 | 0); $8 = ($logwindw$026 + 1) | 0; if (!$11) { $logwindw$0$lcssa = $logwindw$026; break; } $9 = ($8 | 0) < 8; if ($9) { $logwindw$026 = $8; } else { $logwindw$0$lcssa = $8; break; } } $12 = ($_height + 7) | 0; $13 = $12 >> 3; $logwindh$025 = 4; while (1) { $16 = 1 << $logwindh$025; $17 = ($16 | 0) < ($13 | 0); $14 = ($logwindh$025 + 1) | 0; if (!$17) { $logwindh$0$lcssa = $logwindh$025; break; } $15 = ($14 | 0) < 8; if ($15) { $logwindh$025 = $14; } else { $logwindh$0$lcssa = $14; break; } } $18 = 1 << $logwindw$0$lcssa; $19 = 1 << $logwindh$0$lcssa; $20 = $_width << 2; $21 = _malloc($20) | 0; $22 = $0 << 2; $23 = ($_width | 0) > 3; if ($23) { $24 = ($logwindh$0$lcssa + -1) | 0; $x$022 = 0; while (1) { $41 = ($_img + $x$022) | 0; $42 = HEAP8[$41 >> 0] | 0; $43 = $42 & 255; $44 = $43 << $24; $45 = ($44 + $43) | 0; $46 = ($21 + ($x$022 << 2)) | 0; HEAP32[$46 >> 2] = $45; $47 = ($x$022 + 1) | 0; $48 = ($47 | 0) < ($22 | 0); if ($48) { $x$022 = $47; } else { break; } } } $25 = $19 >> 1; $26 = ($25 | 0) > 1; if ($26) { $27 = ($_height + -1) | 0; if ($23) { $y$018$us = 1; while (1) { $39 = ($y$018$us | 0) >= ($_height | 0); $40 = $39 ? $27 : $y$018$us; $30 = Math_imul($40, $_width) | 0; $x$112$us = 0; while (1) { $29 = ($x$112$us + $30) | 0; $31 = ($_img + $29) | 0; $32 = HEAP8[$31 >> 0] | 0; $33 = $32 & 255; $34 = ($21 + ($x$112$us << 2)) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($35 + $33) | 0; HEAP32[$34 >> 2] = $36; $37 = ($x$112$us + 1) | 0; $38 = ($37 | 0) < ($22 | 0); if ($38) { $x$112$us = $37; } else { break; } } $28 = ($y$018$us + 1) | 0; $exitcond32 = ($28 | 0) == ($25 | 0); if ($exitcond32) { break; } else { $y$018$us = $28; } } } } $49 = $1 << 2; $50 = ($_height | 0) > 3; L25: do { if ($50) { $51 = ($logwindw$0$lcssa + -1) | 0; $52 = $18 >> 1; $53 = ($52 | 0) > 1; $54 = ($logwindh$0$lcssa + $logwindw$0$lcssa) | 0; $55 = ($_width + -1) | 0; $56 = ($_height + -1) | 0; if ($53) { $y$110$us = 0; } else { $y$110 = 0; while (1) { $116 = HEAP32[$21 >> 2] | 0; $117 = $116 << $51; $118 = ($117 + $116) | 0; $119 = Math_imul($y$110, $_width) | 0; $m$1$ph = $118; $x$3$ph = 0; L30: while (1) { $x$3 = $x$3$ph; while (1) { $120 = ($x$3 | 0) < ($22 | 0); if (!$120) { break L30; } $121 = ($x$3 + $119) | 0; $122 = ($_img + $121) | 0; $123 = HEAP8[$122 >> 0] | 0; $124 = $123 & 255; $125 = ($124 + 3) | 0; $126 = $125 << $54; $127 = $126 >>> 0 < $m$1$ph >>> 0; $128 = ($127 << 31) >> 31; $129 = ($5 + $121) | 0; HEAP8[$129 >> 0] = $128; $130 = ($x$3 + 1) | 0; $131 = ($130 | 0) < ($_width | 0); if ($131) { break; } else { $x$3 = $130; } } $132 = ($x$3 - $52) | 0; $133 = ($132 | 0) > 0; $134 = $133 ? $132 : 0; $135 = ($x$3 + $52) | 0; $136 = ($135 | 0) >= ($_width | 0); $137 = $136 ? $55 : $135; $138 = ($21 + ($137 << 2)) | 0; $139 = HEAP32[$138 >> 2] | 0; $140 = ($21 + ($134 << 2)) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($139 + $m$1$ph) | 0; $143 = ($142 - $141) | 0; $m$1$ph = $143; $x$3$ph = $130; } $144 = ($y$110 + 1) | 0; $145 = ($144 | 0) < ($_height | 0); L37: do { if ($145) { $147 = ($y$110 - $25) | 0; $148 = ($147 | 0) > 0; $149 = $148 ? $147 : 0; $150 = Math_imul($149, $_width) | 0; $151 = ($y$110 + $25) | 0; $152 = ($151 | 0) >= ($_height | 0); $153 = $152 ? $56 : $151; $154 = Math_imul($153, $_width) | 0; if ($23) { $161 = $116; $x$48 = 0; while (1) { $155 = ($x$48 + $150) | 0; $156 = ($_img + $155) | 0; $157 = HEAP8[$156 >> 0] | 0; $158 = $157 & 255; $159 = ($21 + ($x$48 << 2)) | 0; $160 = ($161 - $158) | 0; $162 = ($x$48 + $154) | 0; $163 = ($_img + $162) | 0; $164 = HEAP8[$163 >> 0] | 0; $165 = $164 & 255; $166 = ($165 + $160) | 0; HEAP32[$159 >> 2] = $166; $167 = ($x$48 + 1) | 0; $168 = ($167 | 0) < ($22 | 0); if (!$168) { break L37; } $$phi$trans$insert36 = ($21 + ($167 << 2)) | 0; $$pre37 = HEAP32[$$phi$trans$insert36 >> 2] | 0; $161 = $$pre37; $x$48 = $167; } } } } while (0); $146 = ($144 | 0) < ($49 | 0); if ($146) { $y$110 = $144; } else { break L25; } } } while (1) { $112 = HEAP32[$21 >> 2] | 0; $113 = $112 << $51; $114 = ($113 + $112) | 0; $m$03$us = $114; $x$22$us = 1; while (1) { $106 = ($x$22$us | 0) >= ($_width | 0); $107 = $106 ? $55 : $x$22$us; $108 = ($21 + ($107 << 2)) | 0; $109 = HEAP32[$108 >> 2] | 0; $110 = ($109 + $m$03$us) | 0; $111 = ($x$22$us + 1) | 0; $exitcond = ($111 | 0) == ($52 | 0); if ($exitcond) { break; } else { $m$03$us = $110; $x$22$us = $111; } } $83 = Math_imul($y$110$us, $_width) | 0; $m$1$ph$us = $110; $x$3$ph$us = 0; L48: while (1) { $x$3$us = $x$3$ph$us; while (1) { $57 = ($x$3$us | 0) < ($22 | 0); if (!$57) { break L48; } $82 = ($x$3$us + $83) | 0; $84 = ($_img + $82) | 0; $85 = HEAP8[$84 >> 0] | 0; $86 = $85 & 255; $87 = ($86 + 3) | 0; $88 = $87 << $54; $89 = $88 >>> 0 < $m$1$ph$us >>> 0; $90 = ($89 << 31) >> 31; $91 = ($5 + $82) | 0; HEAP8[$91 >> 0] = $90; $92 = ($x$3$us + 1) | 0; $93 = ($92 | 0) < ($_width | 0); if ($93) { break; } else { $x$3$us = $92; } } $94 = ($x$3$us - $52) | 0; $95 = ($94 | 0) > 0; $96 = $95 ? $94 : 0; $97 = ($x$3$us + $52) | 0; $98 = ($97 | 0) >= ($_width | 0); $99 = $98 ? $55 : $97; $100 = ($21 + ($99 << 2)) | 0; $101 = HEAP32[$100 >> 2] | 0; $102 = ($21 + ($96 << 2)) | 0; $103 = HEAP32[$102 >> 2] | 0; $104 = ($101 + $m$1$ph$us) | 0; $105 = ($104 - $103) | 0; $m$1$ph$us = $105; $x$3$ph$us = $92; } $58 = ($y$110$us + 1) | 0; $59 = ($58 | 0) < ($_height | 0); L55: do { if ($59) { $60 = ($y$110$us - $25) | 0; $61 = ($60 | 0) > 0; $62 = $61 ? $60 : 0; $63 = Math_imul($62, $_width) | 0; $64 = ($y$110$us + $25) | 0; $65 = ($64 | 0) >= ($_height | 0); $66 = $65 ? $56 : $64; $67 = Math_imul($66, $_width) | 0; if ($23) { $74 = $112; $x$48$us = 0; while (1) { $68 = ($x$48$us + $63) | 0; $69 = ($_img + $68) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = $70 & 255; $72 = ($21 + ($x$48$us << 2)) | 0; $73 = ($74 - $71) | 0; $75 = ($x$48$us + $67) | 0; $76 = ($_img + $75) | 0; $77 = HEAP8[$76 >> 0] | 0; $78 = $77 & 255; $79 = ($78 + $73) | 0; HEAP32[$72 >> 2] = $79; $80 = ($x$48$us + 1) | 0; $81 = ($80 | 0) < ($22 | 0); if (!$81) { break L55; } $$phi$trans$insert = ($21 + ($80 << 2)) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $74 = $$pre; $x$48$us = $80; } } } } while (0); $115 = ($58 | 0) < ($49 | 0); if ($115) { $y$110$us = $58; } else { break; } } } } while (0); _free($21); $mask$0 = $5; STACKTOP = sp; return $mask$0 | 0; } function _isaac_init($_ctx, $_seed, $_nseed) { $_ctx = $_ctx | 0; $_seed = $_seed | 0; $_nseed = $_nseed | 0; var $$_nseed = 0, $$phi$trans$insert = 0, $$phi$trans$insert23 = 0, $$pre = 0, $$pre24 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0; var $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0; var $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0; var $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0; var $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0; var $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0; var $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0; var $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0; var $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond19 = 0, $i$01$i = 0, $i$01$i1 = 0; var $i$01$i3 = 0, $i$018 = 0, $i$1$lcssa = 0, $i$113 = 0, $i$2 = 0, $i$311 = 0, $i$47 = 0, $j$012 = 0, $x = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $x = sp; $0 = ($_ctx + 2060) | 0; HEAP32[$0 >> 2] = 0; $1 = ($_ctx + 2056) | 0; HEAP32[$1 >> 2] = 0; $2 = ($_ctx + 2052) | 0; HEAP32[$2 >> 2] = 0; $3 = ($x + 28) | 0; HEAP32[$3 >> 2] = -1640531527; $4 = ($x + 24) | 0; HEAP32[$4 >> 2] = -1640531527; $5 = ($x + 20) | 0; HEAP32[$5 >> 2] = -1640531527; $6 = ($x + 16) | 0; HEAP32[$6 >> 2] = -1640531527; $7 = ($x + 12) | 0; HEAP32[$7 >> 2] = -1640531527; $8 = ($x + 8) | 0; HEAP32[$8 >> 2] = -1640531527; $9 = ($x + 4) | 0; HEAP32[$9 >> 2] = -1640531527; HEAP32[$x >> 2] = -1640531527; $i$018 = 0; while (1) { $i$01$i = 0; while (1) { $10 = $i$01$i | 1; $11 = ($x + ($10 << 2)) | 0; $12 = HEAP32[$11 >> 2] | 0; $13 = (8240 + $i$01$i) | 0; $14 = HEAP8[$13 >> 0] | 0; $15 = $14 & 255; $16 = $12 << $15; $17 = ($x + ($i$01$i << 2)) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = $16 ^ $18; HEAP32[$17 >> 2] = $19; $20 = ($i$01$i + 3) | 0; $21 = $20 & 7; $22 = ($x + ($21 << 2)) | 0; $23 = HEAP32[$22 >> 2] | 0; $24 = ($19 + $23) | 0; HEAP32[$22 >> 2] = $24; $25 = ($i$01$i + 2) | 0; $26 = $25 & 6; $27 = ($x + ($26 << 2)) | 0; $28 = HEAP32[$27 >> 2] | 0; $29 = HEAP32[$11 >> 2] | 0; $30 = ($29 + $28) | 0; HEAP32[$11 >> 2] = $30; $31 = HEAP32[$27 >> 2] | 0; $32 = (8240 + $10) | 0; $33 = HEAP8[$32 >> 0] | 0; $34 = $33 & 255; $35 = $31 >>> $34; $36 = $35 ^ $30; HEAP32[$11 >> 2] = $36; $37 = ($i$01$i + 4) | 0; $38 = $37 & 6; $39 = ($x + ($38 << 2)) | 0; $40 = HEAP32[$39 >> 2] | 0; $41 = ($36 + $40) | 0; HEAP32[$39 >> 2] = $41; $42 = HEAP32[$22 >> 2] | 0; $43 = HEAP32[$27 >> 2] | 0; $44 = ($43 + $42) | 0; HEAP32[$27 >> 2] = $44; $45 = ($25 | 0) < 8; if ($45) { $i$01$i = $25; } else { break; } } $46 = ($i$018 + 1) | 0; $exitcond19 = ($46 | 0) == 4; if ($exitcond19) { break; } else { $i$018 = $46; } } $47 = ($_nseed | 0) > 1024; $$_nseed = $47 ? 1024 : $_nseed; $48 = $$_nseed >> 2; $49 = ($48 | 0) > 0; if ($49) { $i$113 = 0; while (1) { $50 = $i$113 << 2; $51 = $50 | 3; $52 = ($_seed + $51) | 0; $53 = HEAP8[$52 >> 0] | 0; $54 = $53 & 255; $55 = $54 << 24; $56 = $50 | 2; $57 = ($_seed + $56) | 0; $58 = HEAP8[$57 >> 0] | 0; $59 = $58 & 255; $60 = $59 << 16; $61 = $60 | $55; $62 = $50 | 1; $63 = ($_seed + $62) | 0; $64 = HEAP8[$63 >> 0] | 0; $65 = $64 & 255; $66 = $65 << 8; $67 = $61 | $66; $68 = ($_seed + $50) | 0; $69 = HEAP8[$68 >> 0] | 0; $70 = $69 & 255; $71 = $67 | $70; $72 = ((($_ctx + ($i$113 << 2)) | 0) + 4) | 0; HEAP32[$72 >> 2] = $71; $73 = ($i$113 + 1) | 0; $exitcond = ($73 | 0) == ($48 | 0); if ($exitcond) { $i$1$lcssa = $48; break; } else { $i$113 = $73; } } } else { $i$1$lcssa = 0; } $74 = $$_nseed & 3; $75 = ($74 | 0) == 0; if ($75) { $i$2 = $i$1$lcssa; } else { $76 = $i$1$lcssa << 2; $77 = ($_seed + $76) | 0; $78 = HEAP8[$77 >> 0] | 0; $79 = $78 & 255; $80 = ((($_ctx + ($i$1$lcssa << 2)) | 0) + 4) | 0; HEAP32[$80 >> 2] = $79; $81 = $74 >>> 0 > 1; if ($81) { $89 = $79; $j$012 = 1; while (1) { $82 = $j$012 | $76; $83 = ($_seed + $82) | 0; $84 = HEAP8[$83 >> 0] | 0; $85 = $84 & 255; $86 = $j$012 << 3; $87 = $85 << $86; $88 = ($87 + $89) | 0; HEAP32[$80 >> 2] = $88; $90 = ($j$012 + 1) | 0; $91 = ($90 | 0) < ($74 | 0); if ($91) { $89 = $88; $j$012 = $90; } else { break; } } } $92 = ($i$1$lcssa + 1) | 0; $i$2 = $92; } $93 = ((($_ctx + ($i$2 << 2)) | 0) + 4) | 0; $94 = (256 - $i$2) | 0; $95 = $94 << 2; _memset($93 | 0, 0, $95 | 0) | 0; $i$311 = 0; while (1) { $96 = ((($_ctx + ($i$311 << 2)) | 0) + 4) | 0; $97 = HEAP32[$96 >> 2] | 0; $98 = HEAP32[$x >> 2] | 0; $99 = ($98 + $97) | 0; HEAP32[$x >> 2] = $99; $100 = $i$311 | 1; $101 = ((($_ctx + ($100 << 2)) | 0) + 4) | 0; $102 = HEAP32[$101 >> 2] | 0; $103 = HEAP32[$9 >> 2] | 0; $104 = ($103 + $102) | 0; HEAP32[$9 >> 2] = $104; $105 = $i$311 | 2; $106 = ((($_ctx + ($105 << 2)) | 0) + 4) | 0; $107 = HEAP32[$106 >> 2] | 0; $108 = HEAP32[$8 >> 2] | 0; $109 = ($108 + $107) | 0; HEAP32[$8 >> 2] = $109; $110 = $i$311 | 3; $111 = ((($_ctx + ($110 << 2)) | 0) + 4) | 0; $112 = HEAP32[$111 >> 2] | 0; $113 = HEAP32[$7 >> 2] | 0; $114 = ($113 + $112) | 0; HEAP32[$7 >> 2] = $114; $115 = $i$311 | 4; $116 = ((($_ctx + ($115 << 2)) | 0) + 4) | 0; $117 = HEAP32[$116 >> 2] | 0; $118 = HEAP32[$6 >> 2] | 0; $119 = ($118 + $117) | 0; HEAP32[$6 >> 2] = $119; $120 = $i$311 | 5; $121 = ((($_ctx + ($120 << 2)) | 0) + 4) | 0; $122 = HEAP32[$121 >> 2] | 0; $123 = HEAP32[$5 >> 2] | 0; $124 = ($123 + $122) | 0; HEAP32[$5 >> 2] = $124; $125 = $i$311 | 6; $126 = ((($_ctx + ($125 << 2)) | 0) + 4) | 0; $127 = HEAP32[$126 >> 2] | 0; $128 = HEAP32[$4 >> 2] | 0; $129 = ($128 + $127) | 0; HEAP32[$4 >> 2] = $129; $130 = $i$311 | 7; $131 = ((($_ctx + ($130 << 2)) | 0) + 4) | 0; $132 = HEAP32[$131 >> 2] | 0; $133 = HEAP32[$3 >> 2] | 0; $134 = ($133 + $132) | 0; HEAP32[$3 >> 2] = $134; $144 = $99; $i$01$i1 = 0; while (1) { $135 = $i$01$i1 | 1; $136 = ($x + ($135 << 2)) | 0; $137 = HEAP32[$136 >> 2] | 0; $138 = (8240 + $i$01$i1) | 0; $139 = HEAP8[$138 >> 0] | 0; $140 = $139 & 255; $141 = $137 << $140; $142 = ($x + ($i$01$i1 << 2)) | 0; $143 = $141 ^ $144; HEAP32[$142 >> 2] = $143; $145 = ($i$01$i1 + 3) | 0; $146 = $145 & 7; $147 = ($x + ($146 << 2)) | 0; $148 = HEAP32[$147 >> 2] | 0; $149 = ($143 + $148) | 0; HEAP32[$147 >> 2] = $149; $150 = ($i$01$i1 + 2) | 0; $151 = $150 & 6; $152 = ($x + ($151 << 2)) | 0; $153 = HEAP32[$152 >> 2] | 0; $154 = HEAP32[$136 >> 2] | 0; $155 = ($154 + $153) | 0; HEAP32[$136 >> 2] = $155; $156 = HEAP32[$152 >> 2] | 0; $157 = (8240 + $135) | 0; $158 = HEAP8[$157 >> 0] | 0; $159 = $158 & 255; $160 = $156 >>> $159; $161 = $160 ^ $155; HEAP32[$136 >> 2] = $161; $162 = ($i$01$i1 + 4) | 0; $163 = $162 & 6; $164 = ($x + ($163 << 2)) | 0; $165 = HEAP32[$164 >> 2] | 0; $166 = ($161 + $165) | 0; HEAP32[$164 >> 2] = $166; $167 = HEAP32[$147 >> 2] | 0; $168 = HEAP32[$152 >> 2] | 0; $169 = ($168 + $167) | 0; HEAP32[$152 >> 2] = $169; $170 = ($150 | 0) < 8; if (!$170) { break; } $$phi$trans$insert = ($x + ($150 << 2)) | 0; $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; $144 = $$pre; $i$01$i1 = $150; } $171 = ((($_ctx + ($i$311 << 2)) | 0) + 1028) | 0; HEAP32[($171 + 0) >> 2] = HEAP32[($x + 0) >> 2] | 0; HEAP32[($171 + 4) >> 2] = HEAP32[($x + 4) >> 2] | 0; HEAP32[($171 + 8) >> 2] = HEAP32[($x + 8) >> 2] | 0; HEAP32[($171 + 12) >> 2] = HEAP32[($x + 12) >> 2] | 0; HEAP32[($171 + 16) >> 2] = HEAP32[($x + 16) >> 2] | 0; HEAP32[($171 + 20) >> 2] = HEAP32[($x + 20) >> 2] | 0; HEAP32[($171 + 24) >> 2] = HEAP32[($x + 24) >> 2] | 0; HEAP32[($171 + 28) >> 2] = HEAP32[($x + 28) >> 2] | 0; $172 = ($i$311 + 8) | 0; $173 = ($172 | 0) < 256; if ($173) { $i$311 = $172; } else { $i$47 = 0; break; } } while (1) { $174 = ((($_ctx + ($i$47 << 2)) | 0) + 1028) | 0; $175 = HEAP32[$174 >> 2] | 0; $176 = HEAP32[$x >> 2] | 0; $177 = ($176 + $175) | 0; HEAP32[$x >> 2] = $177; $178 = $i$47 | 1; $179 = ((($_ctx + ($178 << 2)) | 0) + 1028) | 0; $180 = HEAP32[$179 >> 2] | 0; $181 = HEAP32[$9 >> 2] | 0; $182 = ($181 + $180) | 0; HEAP32[$9 >> 2] = $182; $183 = $i$47 | 2; $184 = ((($_ctx + ($183 << 2)) | 0) + 1028) | 0; $185 = HEAP32[$184 >> 2] | 0; $186 = HEAP32[$8 >> 2] | 0; $187 = ($186 + $185) | 0; HEAP32[$8 >> 2] = $187; $188 = $i$47 | 3; $189 = ((($_ctx + ($188 << 2)) | 0) + 1028) | 0; $190 = HEAP32[$189 >> 2] | 0; $191 = HEAP32[$7 >> 2] | 0; $192 = ($191 + $190) | 0; HEAP32[$7 >> 2] = $192; $193 = $i$47 | 4; $194 = ((($_ctx + ($193 << 2)) | 0) + 1028) | 0; $195 = HEAP32[$194 >> 2] | 0; $196 = HEAP32[$6 >> 2] | 0; $197 = ($196 + $195) | 0; HEAP32[$6 >> 2] = $197; $198 = $i$47 | 5; $199 = ((($_ctx + ($198 << 2)) | 0) + 1028) | 0; $200 = HEAP32[$199 >> 2] | 0; $201 = HEAP32[$5 >> 2] | 0; $202 = ($201 + $200) | 0; HEAP32[$5 >> 2] = $202; $203 = $i$47 | 6; $204 = ((($_ctx + ($203 << 2)) | 0) + 1028) | 0; $205 = HEAP32[$204 >> 2] | 0; $206 = HEAP32[$4 >> 2] | 0; $207 = ($206 + $205) | 0; HEAP32[$4 >> 2] = $207; $208 = $i$47 | 7; $209 = ((($_ctx + ($208 << 2)) | 0) + 1028) | 0; $210 = HEAP32[$209 >> 2] | 0; $211 = HEAP32[$3 >> 2] | 0; $212 = ($211 + $210) | 0; HEAP32[$3 >> 2] = $212; $222 = $177; $i$01$i3 = 0; while (1) { $213 = $i$01$i3 | 1; $214 = ($x + ($213 << 2)) | 0; $215 = HEAP32[$214 >> 2] | 0; $216 = (8240 + $i$01$i3) | 0; $217 = HEAP8[$216 >> 0] | 0; $218 = $217 & 255; $219 = $215 << $218; $220 = ($x + ($i$01$i3 << 2)) | 0; $221 = $219 ^ $222; HEAP32[$220 >> 2] = $221; $223 = ($i$01$i3 + 3) | 0; $224 = $223 & 7; $225 = ($x + ($224 << 2)) | 0; $226 = HEAP32[$225 >> 2] | 0; $227 = ($221 + $226) | 0; HEAP32[$225 >> 2] = $227; $228 = ($i$01$i3 + 2) | 0; $229 = $228 & 6; $230 = ($x + ($229 << 2)) | 0; $231 = HEAP32[$230 >> 2] | 0; $232 = HEAP32[$214 >> 2] | 0; $233 = ($232 + $231) | 0; HEAP32[$214 >> 2] = $233; $234 = HEAP32[$230 >> 2] | 0; $235 = (8240 + $213) | 0; $236 = HEAP8[$235 >> 0] | 0; $237 = $236 & 255; $238 = $234 >>> $237; $239 = $238 ^ $233; HEAP32[$214 >> 2] = $239; $240 = ($i$01$i3 + 4) | 0; $241 = $240 & 6; $242 = ($x + ($241 << 2)) | 0; $243 = HEAP32[$242 >> 2] | 0; $244 = ($239 + $243) | 0; HEAP32[$242 >> 2] = $244; $245 = HEAP32[$225 >> 2] | 0; $246 = HEAP32[$230 >> 2] | 0; $247 = ($246 + $245) | 0; HEAP32[$230 >> 2] = $247; $248 = ($228 | 0) < 8; if (!$248) { break; } $$phi$trans$insert23 = ($x + ($228 << 2)) | 0; $$pre24 = HEAP32[$$phi$trans$insert23 >> 2] | 0; $222 = $$pre24; $i$01$i3 = $228; } HEAP32[($174 + 0) >> 2] = HEAP32[($x + 0) >> 2] | 0; HEAP32[($174 + 4) >> 2] = HEAP32[($x + 4) >> 2] | 0; HEAP32[($174 + 8) >> 2] = HEAP32[($x + 8) >> 2] | 0; HEAP32[($174 + 12) >> 2] = HEAP32[($x + 12) >> 2] | 0; HEAP32[($174 + 16) >> 2] = HEAP32[($x + 16) >> 2] | 0; HEAP32[($174 + 20) >> 2] = HEAP32[($x + 20) >> 2] | 0; HEAP32[($174 + 24) >> 2] = HEAP32[($x + 24) >> 2] | 0; HEAP32[($174 + 28) >> 2] = HEAP32[($x + 28) >> 2] | 0; $249 = ($i$47 + 8) | 0; $250 = ($249 | 0) < 256; if ($250) { $i$47 = $249; } else { break; } } _isaac_update($_ctx); STACKTOP = sp; return; } function _isaac_update($_ctx) { $_ctx = $_ctx | 0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $a$04 = 0, $a$11 = 0; var $b$05 = 0, $b$12 = 0, $i$06 = 0, $i$13 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_ctx + 2052) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($_ctx + 2056) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($_ctx + 2060) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = ($5 + 1) | 0; HEAP32[$4 >> 2] = $6; $7 = ($6 + $3) | 0; $a$04 = $1; $b$05 = $7; $i$06 = 0; while (1) { $8 = ((($_ctx + ($i$06 << 2)) | 0) + 1028) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = $a$04 << 13; $11 = $10 ^ $a$04; $12 = ($i$06 + 128) | 0; $13 = ((($_ctx + ($12 << 2)) | 0) + 1028) | 0; $14 = HEAP32[$13 >> 2] | 0; $15 = ($14 + $11) | 0; $16 = $9 >>> 2; $17 = $16 & 255; $18 = ((($_ctx + ($17 << 2)) | 0) + 1028) | 0; $19 = HEAP32[$18 >> 2] | 0; $20 = ($15 + $b$05) | 0; $21 = ($20 + $19) | 0; HEAP32[$8 >> 2] = $21; $22 = $21 >>> 10; $23 = $22 & 255; $24 = ((($_ctx + ($23 << 2)) | 0) + 1028) | 0; $25 = HEAP32[$24 >> 2] | 0; $26 = ($25 + $9) | 0; $27 = ((($_ctx + ($i$06 << 2)) | 0) + 4) | 0; HEAP32[$27 >> 2] = $26; $28 = $i$06 | 1; $29 = ((($_ctx + ($28 << 2)) | 0) + 1028) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = $15 >>> 6; $32 = $31 ^ $15; $33 = ($i$06 + 129) | 0; $34 = ((($_ctx + ($33 << 2)) | 0) + 1028) | 0; $35 = HEAP32[$34 >> 2] | 0; $36 = ($35 + $32) | 0; $37 = $30 >>> 2; $38 = $37 & 255; $39 = ((($_ctx + ($38 << 2)) | 0) + 1028) | 0; $40 = HEAP32[$39 >> 2] | 0; $41 = ($36 + $26) | 0; $42 = ($41 + $40) | 0; HEAP32[$29 >> 2] = $42; $43 = $42 >>> 10; $44 = $43 & 255; $45 = ((($_ctx + ($44 << 2)) | 0) + 1028) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = ($46 + $30) | 0; $48 = ((($_ctx + ($28 << 2)) | 0) + 4) | 0; HEAP32[$48 >> 2] = $47; $49 = $i$06 | 2; $50 = ((($_ctx + ($49 << 2)) | 0) + 1028) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = $36 << 2; $53 = $52 ^ $36; $54 = ($i$06 + 130) | 0; $55 = ((($_ctx + ($54 << 2)) | 0) + 1028) | 0; $56 = HEAP32[$55 >> 2] | 0; $57 = ($56 + $53) | 0; $58 = $51 >>> 2; $59 = $58 & 255; $60 = ((($_ctx + ($59 << 2)) | 0) + 1028) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = ($57 + $47) | 0; $63 = ($62 + $61) | 0; HEAP32[$50 >> 2] = $63; $64 = $63 >>> 10; $65 = $64 & 255; $66 = ((($_ctx + ($65 << 2)) | 0) + 1028) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = ($67 + $51) | 0; $69 = ((($_ctx + ($49 << 2)) | 0) + 4) | 0; HEAP32[$69 >> 2] = $68; $70 = $i$06 | 3; $71 = ((($_ctx + ($70 << 2)) | 0) + 1028) | 0; $72 = HEAP32[$71 >> 2] | 0; $73 = $57 >>> 16; $74 = $73 ^ $57; $75 = ($i$06 + 131) | 0; $76 = ((($_ctx + ($75 << 2)) | 0) + 1028) | 0; $77 = HEAP32[$76 >> 2] | 0; $78 = ($77 + $74) | 0; $79 = $72 >>> 2; $80 = $79 & 255; $81 = ((($_ctx + ($80 << 2)) | 0) + 1028) | 0; $82 = HEAP32[$81 >> 2] | 0; $83 = ($78 + $68) | 0; $84 = ($83 + $82) | 0; HEAP32[$71 >> 2] = $84; $85 = $84 >>> 10; $86 = $85 & 255; $87 = ((($_ctx + ($86 << 2)) | 0) + 1028) | 0; $88 = HEAP32[$87 >> 2] | 0; $89 = ($88 + $72) | 0; $90 = ((($_ctx + ($70 << 2)) | 0) + 4) | 0; HEAP32[$90 >> 2] = $89; $91 = ($i$06 + 4) | 0; $92 = ($91 | 0) < 128; if ($92) { $a$04 = $78; $b$05 = $89; $i$06 = $91; } else { $a$11 = $78; $b$12 = $89; $i$13 = 128; break; } } while (1) { $93 = ((($_ctx + ($i$13 << 2)) | 0) + 1028) | 0; $94 = HEAP32[$93 >> 2] | 0; $95 = $a$11 << 13; $96 = $95 ^ $a$11; $97 = ($i$13 + -128) | 0; $98 = ((($_ctx + ($97 << 2)) | 0) + 1028) | 0; $99 = HEAP32[$98 >> 2] | 0; $100 = ($99 + $96) | 0; $101 = $94 >>> 2; $102 = $101 & 255; $103 = ((($_ctx + ($102 << 2)) | 0) + 1028) | 0; $104 = HEAP32[$103 >> 2] | 0; $105 = ($100 + $b$12) | 0; $106 = ($105 + $104) | 0; HEAP32[$93 >> 2] = $106; $107 = $106 >>> 10; $108 = $107 & 255; $109 = ((($_ctx + ($108 << 2)) | 0) + 1028) | 0; $110 = HEAP32[$109 >> 2] | 0; $111 = ($110 + $94) | 0; $112 = ((($_ctx + ($i$13 << 2)) | 0) + 4) | 0; HEAP32[$112 >> 2] = $111; $113 = $i$13 | 1; $114 = ((($_ctx + ($113 << 2)) | 0) + 1028) | 0; $115 = HEAP32[$114 >> 2] | 0; $116 = $100 >>> 6; $117 = $116 ^ $100; $118 = ($i$13 + -127) | 0; $119 = ((($_ctx + ($118 << 2)) | 0) + 1028) | 0; $120 = HEAP32[$119 >> 2] | 0; $121 = ($120 + $117) | 0; $122 = $115 >>> 2; $123 = $122 & 255; $124 = ((($_ctx + ($123 << 2)) | 0) + 1028) | 0; $125 = HEAP32[$124 >> 2] | 0; $126 = ($121 + $111) | 0; $127 = ($126 + $125) | 0; HEAP32[$114 >> 2] = $127; $128 = $127 >>> 10; $129 = $128 & 255; $130 = ((($_ctx + ($129 << 2)) | 0) + 1028) | 0; $131 = HEAP32[$130 >> 2] | 0; $132 = ($131 + $115) | 0; $133 = ((($_ctx + ($113 << 2)) | 0) + 4) | 0; HEAP32[$133 >> 2] = $132; $134 = $i$13 | 2; $135 = ((($_ctx + ($134 << 2)) | 0) + 1028) | 0; $136 = HEAP32[$135 >> 2] | 0; $137 = $121 << 2; $138 = $137 ^ $121; $139 = ($i$13 + -126) | 0; $140 = ((($_ctx + ($139 << 2)) | 0) + 1028) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($141 + $138) | 0; $143 = $136 >>> 2; $144 = $143 & 255; $145 = ((($_ctx + ($144 << 2)) | 0) + 1028) | 0; $146 = HEAP32[$145 >> 2] | 0; $147 = ($142 + $132) | 0; $148 = ($147 + $146) | 0; HEAP32[$135 >> 2] = $148; $149 = $148 >>> 10; $150 = $149 & 255; $151 = ((($_ctx + ($150 << 2)) | 0) + 1028) | 0; $152 = HEAP32[$151 >> 2] | 0; $153 = ($152 + $136) | 0; $154 = ((($_ctx + ($134 << 2)) | 0) + 4) | 0; HEAP32[$154 >> 2] = $153; $155 = $i$13 | 3; $156 = ((($_ctx + ($155 << 2)) | 0) + 1028) | 0; $157 = HEAP32[$156 >> 2] | 0; $158 = $142 >>> 16; $159 = $158 ^ $142; $160 = ($i$13 + -125) | 0; $161 = ((($_ctx + ($160 << 2)) | 0) + 1028) | 0; $162 = HEAP32[$161 >> 2] | 0; $163 = ($162 + $159) | 0; $164 = $157 >>> 2; $165 = $164 & 255; $166 = ((($_ctx + ($165 << 2)) | 0) + 1028) | 0; $167 = HEAP32[$166 >> 2] | 0; $168 = ($163 + $153) | 0; $169 = ($168 + $167) | 0; HEAP32[$156 >> 2] = $169; $170 = $169 >>> 10; $171 = $170 & 255; $172 = ((($_ctx + ($171 << 2)) | 0) + 1028) | 0; $173 = HEAP32[$172 >> 2] | 0; $174 = ($173 + $157) | 0; $175 = ((($_ctx + ($155 << 2)) | 0) + 4) | 0; HEAP32[$175 >> 2] = $174; $176 = ($i$13 + 4) | 0; $177 = ($176 | 0) < 256; if ($177) { $a$11 = $163; $b$12 = $174; $i$13 = $176; } else { break; } } HEAP32[$2 >> 2] = $174; HEAP32[$0 >> 2] = $163; HEAP32[$_ctx >> 2] = 256; STACKTOP = sp; return; } function _isaac_next_uint($_ctx, $_n) { $_ctx = $_ctx | 0; $_n = $_n | 0; var $$pre = 0, $$pre$i = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($_n + -1) | 0; $$pre = HEAP32[$_ctx >> 2] | 0; $1 = $$pre; while (1) { $2 = ($1 | 0) == 0; if ($2) { _isaac_update($_ctx); $$pre$i = HEAP32[$_ctx >> 2] | 0; $4 = $$pre$i; } else { $4 = $1; } $3 = ($4 + -1) | 0; HEAP32[$_ctx >> 2] = $3; $5 = ((($_ctx + ($3 << 2)) | 0) + 4) | 0; $6 = HEAP32[$5 >> 2] | 0; $7 = ($6 >>> 0) % ($_n >>> 0) & -1; $8 = ($6 - $7) | 0; $9 = ($0 + $8) | 0; $10 = $9 >>> 0 < $8 >>> 0; if ($10) { $1 = $3; } else { break; } } STACKTOP = sp; return $7 | 0; } function _iconv_open($to, $from) { $to = $to | 0; $from = $from | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _find_charmap($to) | 0; $1 = ($0 | 0) == -1; if (!$1) { $2 = _find_charmap($from) | 0; $3 = ($2 | 0) == -1; if (!$3) { $4 = (8248 + $0) | 0; $5 = HEAP8[$4 >> 0] | 0; $6 = ($5 & 255) > 207; if (!$6) { $8 = $2 << 16; $9 = $8 | $0; $10 = $9; $$0 = $10; STACKTOP = sp; return $$0 | 0; } } } $7 = ___errno_location() | 0; HEAP32[$7 >> 2] = 22; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _find_charmap($name) { $name = $name | 0; var $$0 = 0, $$0$lcssa$i$ph = 0, $$010$i = 0, $$019$i = 0, $$1$lcssa$i = 0, $$16$i = 0, $$ph4 = 0, $$pre = 0, $$sum = 0, $$sum$us = 0, $$sum1 = 0, $$sum1$us = 0, $$sum2 = 0, $$sum2$us = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0; var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, $or$cond$i = 0, $phitmp = 0, $s$0$be = 0, $s$0$be$us = 0, $s$06 = 0, $s$06$us = 0, $s$1$lcssa = 0, $s$13 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = HEAP8[$name >> 0] | 0; $1 = ($0 << 24) >> 24 == 0; L1: do { if ($1) { $s$06$us = 8248; while (1) { $2 = HEAP8[$s$06$us >> 0] | 0; $3 = ($2 << 24) >> 24 == 0; if ($3) { $s$1$lcssa = $s$06$us; break L1; } $4 = _strlen($s$06$us | 0) | 0; $5 = ($4 + 1) | 0; $6 = ($s$06$us + $5) | 0; $7 = HEAP8[$6 >> 0] | 0; $8 = ($7 << 24) >> 24 == 0; do { if ($8) { $$sum$us = ($4 + 2) | 0; $9 = ($s$06$us + $$sum$us) | 0; $10 = HEAP8[$9 >> 0] | 0; $11 = ($10 & 255) > 128; if ($11) { $$sum2$us = ($4 + 3) | 0; $18 = ($s$06$us + $$sum2$us) | 0; $s$0$be$us = $18; break; } else { $12 = $10 & 255; $13 = (128 - $12) | 0; $14 = $13 >>> 2; $15 = ($14 * 5) | 0; $16 = ($4 + 3) | 0; $$sum1$us = ($16 + $15) | 0; $17 = ($s$06$us + $$sum1$us) | 0; $s$0$be$us = $17; break; } } else { $s$0$be$us = $6; } } while (0); $19 = HEAP8[$s$0$be$us >> 0] | 0; $20 = ($19 << 24) >> 24 == 0; if ($20) { $$0 = -1; break; } else { $s$06$us = $s$0$be$us; } } STACKTOP = sp; return $$0 | 0; } else { $s$06 = 8248; while (1) { $$010$i = $s$06; $$019$i = $name; $23 = $0; while (1) { $21 = HEAP8[$$010$i >> 0] | 0; $22 = ($21 << 24) >> 24 == 0; if ($22) { $$0$lcssa$i$ph = $$010$i; $$ph4 = $23; label = 16; break; } $24 = ($23 << 24) >> 24 == 0; L17: do { if ($24) { $$1$lcssa$i = $$019$i; $37 = 0; } else { $25 = $23 & 255; $$16$i = $$019$i; $31 = $25; $72 = $23; while (1) { $30 = $31 | 32; $32 = ($30 + -97) | 0; $33 = $32 >>> 0 > 26; $34 = ($31 + -48) | 0; $35 = $34 >>> 0 > 10; $or$cond$i = $33 & $35; $27 = ($$16$i + 1) | 0; if (!$or$cond$i) { $$1$lcssa$i = $$16$i; $37 = $72; break L17; } $26 = HEAP8[$27 >> 0] | 0; $28 = $26 & 255; $29 = ($26 << 24) >> 24 == 0; if ($29) { $$1$lcssa$i = $27; $37 = 0; break; } else { $$16$i = $27; $31 = $28; $72 = $26; } } } } while (0); $36 = $37 & 255; $38 = $36 | 32; $39 = $21 & 255; $40 = ($38 | 0) == ($39 | 0); if (!$40) { break; } $41 = ($$1$lcssa$i + 1) | 0; $42 = ($$010$i + 1) | 0; $43 = HEAP8[$41 >> 0] | 0; $44 = ($43 << 24) >> 24 == 0; if ($44) { $$0$lcssa$i$ph = $42; $$ph4 = 0; label = 16; break; } else { $$010$i = $42; $$019$i = $41; $23 = $43; } } if ((label | 0) == 16) { label = 0; $45 = HEAP8[$$0$lcssa$i$ph >> 0] | 0; $46 = ($$ph4 << 24) >> 24 == ($45 << 24) >> 24; if ($46) { break; } } $55 = _strlen($s$06 | 0) | 0; $56 = ($55 + 1) | 0; $57 = ($s$06 + $56) | 0; $58 = HEAP8[$57 >> 0] | 0; $59 = ($58 << 24) >> 24 == 0; do { if ($59) { $$sum = ($55 + 2) | 0; $60 = ($s$06 + $$sum) | 0; $61 = HEAP8[$60 >> 0] | 0; $62 = ($61 & 255) > 128; if ($62) { $$sum2 = ($55 + 3) | 0; $63 = ($s$06 + $$sum2) | 0; $s$0$be = $63; break; } else { $66 = $61 & 255; $67 = (128 - $66) | 0; $68 = $67 >>> 2; $69 = ($68 * 5) | 0; $70 = ($55 + 3) | 0; $$sum1 = ($70 + $69) | 0; $71 = ($s$06 + $$sum1) | 0; $s$0$be = $71; break; } } else { $s$0$be = $57; } } while (0); $64 = HEAP8[$s$0$be >> 0] | 0; $65 = ($64 << 24) >> 24 == 0; if ($65) { $$0 = -1; label = 25; break; } else { $s$06 = $s$0$be; } } if ((label | 0) == 25) { STACKTOP = sp; return $$0 | 0; } $$pre = HEAP8[$s$06 >> 0] | 0; $phitmp = ($$pre << 24) >> 24 == 0; if ($phitmp) { $s$1$lcssa = $s$06; } else { $s$13 = $s$06; while (1) { $47 = _strlen($s$13 | 0) | 0; $48 = ($47 + 1) | 0; $49 = ($s$13 + $48) | 0; $50 = HEAP8[$49 >> 0] | 0; $51 = ($50 << 24) >> 24 == 0; if ($51) { $s$1$lcssa = $49; break; } else { $s$13 = $49; } } } } } while (0); $52 = ($s$1$lcssa + 1) | 0; $53 = $52; $54 = ($53 - 8248) | 0; $$0 = $54; STACKTOP = sp; return $$0 | 0; } function _iconv_close($cd) { $cd = $cd | 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = sp; return 0; } function _iconv($cd0, $in, $inb, $out, $outb) { $cd0 = $cd0 | 0; $in = $in | 0; $inb = $inb | 0; $out = $out | 0; $outb = $outb | 0; var $$ = 0, $$0 = 0, $$13 = 0, $$14 = 0, $$18 = 0, $$21 = 0, $$c$8 = 0, $$lobit = 0, $$mask = 0, $$pn = 0, $$sum = 0, $$sum10 = 0, $$sum11 = 0, $$sum12 = 0, $$sum2425 = 0, $$sum2627 = 0, $$sum2930 = 0, $$sum3132 = 0, $$sum6 = 0, $$sum9 = 0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0; var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0; var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0; var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0; var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0; var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 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; var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $brmerge = 0, $brmerge73 = 0, $c$0 = 0, $c$1 = 0, $c$10 = 0, $c$1152 = 0, $c$2 = 0, $c$347 = 0, $c$4 = 0; var $c$5 = 0, $c$638 = 0, $c$8 = 0, $c$9 = 0, $d$1 = 0, $d$248 = 0, $d$5 = 0, $d$639 = 0, $err$0 = 0, $err$0$ph = 0, $exitcond = 0, $exitcond61 = 0, $exitcond62 = 0, $exitcond63 = 0, $i$045 = 0, $i1$037 = 0, $j$042 = 0, $j2$034 = 0, $k$044 = 0, $k$1$ = 0; var $k$141 = 0, $k$3 = 0, $k$436 = 0, $k$5$ = 0, $k$533 = 0, $k$7 = 0, $l$0 = 0, $l$2 = 0, $l$3 = 0, $not$ = 0, $not$28 = 0, $or$cond = 0, $or$cond15 = 0, $or$cond16 = 0, $or$cond17 = 0, $or$cond20 = 0, $or$cond22 = 0, $or$cond23 = 0, $or$cond3 = 0, $st = 0; var $tmp = 0, $wc = 0, $x$058 = 0, $x$1 = 0, $x$2 = 0, $x$3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 32) | 0; $st = sp; $wc = (sp + 16) | 0; $0 = (sp + 12) | 0; $1 = (sp + 8) | 0; $tmp = (sp + 20) | 0; $2 = $cd0; $3 = $2 & 65535; $4 = $2 >>> 16; $$sum = ($4 + 1) | 0; $$sum6 = ($3 + 1) | 0; $5 = $st; $6 = $5; HEAP32[$6 >> 2] = 0; $7 = ($5 + 4) | 0; $8 = $7; HEAP32[$8 >> 2] = 0; $9 = (8248 + $4) | 0; $10 = HEAP8[$9 >> 0] | 0; $11 = (8248 + $3) | 0; $12 = HEAP8[$11 >> 0] | 0; $13 = ($in | 0) == (0 | 0); if ($13) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $14 = HEAP32[$in >> 2] | 0; $15 = ($14 | 0) == (0 | 0); if ($15) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $16 = HEAP32[$inb >> 2] | 0; $17 = ($16 | 0) == 0; if ($17) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $18 = $10 & 255; $19 = ($18 + 128) | 0; $20 = ($4 + 2) | 0; $21 = $18 & 3; $22 = $21 ^ 1; $23 = $21 ^ 2; $24 = $21 ^ 3; $25 = $18 & 1; $26 = $25 ^ 1; $27 = ($18 + -196) | 0; $28 = $27 >>> 0 < 2; $$sum2930 = $25 | 2; $$sum3132 = $26 | 2; $29 = ($10 << 24) >> 24 == -38; $30 = ($10 << 24) >> 24 == -40; $31 = $12 & 255; $32 = ($31 + -192) | 0; $33 = $32 >>> 0 > 8; $34 = $3; $35 = (86296 + $32) | 0; $36 = ($31 + 128) | 0; $37 = (128 - $31) | 0; $38 = ($12 << 24) >> 24 == -128; $39 = ($3 + 2) | 0; $40 = $31 & 1; $41 = $40 ^ 1; $$sum2425 = $40 | 2; $$sum2627 = $41 | 2; $42 = $31 & 3; $43 = $42 ^ 1; $44 = $42 ^ 2; $45 = $42 ^ 3; $46 = ($18 + -192) | 0; $47 = $46 >>> 0 < 7; $49 = $14; $52 = $16; $x$058 = 0; L10: while (1) { $48 = HEAP8[$49 >> 0] | 0; $50 = $48 & 255; $51 = ($48 << 24) >> 24 < 0; $brmerge = $51 | $47; L12: do { if ($brmerge) { do { switch ($18 | 0) { case 209: { $106 = ($50 + -161) | 0; $107 = $106 >>> 0 < 63; if ($107) { $108 = ($50 + 65216) | 0; $c$8 = $108; $l$2 = 1; label = 90; break L12; } $109 = $52 >>> 0 < 2; if ($109) { $err$0 = 22; break L10; } $110 = ($49 + 1) | 0; $111 = HEAP8[$110 >> 0] | 0; $112 = $111 & 255; $113 = ($50 + -129) | 0; $114 = $113 >>> 0 < 31; if ($114) { $c$1 = $113; } else { $115 = ($50 + -224) | 0; $116 = $115 >>> 0 < 16; if (!$116) { $err$0$ph = 84; label = 115; break L10; } $117 = ($50 + -193) | 0; $c$1 = $117; } $118 = $c$1 << 1; $119 = ($112 + -64) | 0; $120 = $119 >>> 0 < 95; if ($120) { $121 = ($111 << 24) >> 24 == 127; if ($121) { $err$0$ph = 84; label = 115; break L10; } $$lobit = (($111 << 24) >> 24) >> 7; $122 = ($$lobit << 24) >> 24; $123 = ($119 + $122) | 0; $c$2 = $118; $d$1 = $123; } else { $124 = ($112 + -159) | 0; $125 = $124 >>> 0 < 94; $126 = $125 & 1; $$13 = $118 | $126; $$14 = $125 ? $124 : $112; $c$2 = $$13; $d$1 = $$14; } $127 = (((12280 + (($c$2 * 188) | 0)) | 0) + ($d$1 << 1)) | 0; $128 = HEAP16[$127 >> 1] | 0; $129 = $128 & 65535; $130 = ($128 << 16) >> 16 == 0; if ($130) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $129; $l$2 = 2; label = 90; break L12; } break; } case 195: case 192: { $57 = $52 >>> 0 < 4; if ($57) { $err$0 = 22; break L10; } $58 = ($49 + $21) | 0; $59 = HEAP8[$58 >> 0] | 0; $60 = $59 & 255; $61 = $60 << 24; $62 = ($49 + $22) | 0; $63 = HEAP8[$62 >> 0] | 0; $64 = $63 & 255; $65 = $64 << 16; $66 = $65 | $61; $67 = ($49 + $23) | 0; $68 = HEAP8[$67 >> 0] | 0; $69 = $68 & 255; $70 = $69 << 8; $71 = $66 | $70; $72 = ($49 + $24) | 0; $73 = HEAP8[$72 >> 0] | 0; $74 = $73 & 255; $75 = $71 | $74; $c$0 = $75; label = 14; break; } case 224: { $194 = $52 >>> 0 < 2; if ($194) { $err$0 = 22; break L10; } $195 = ($49 + 1) | 0; $196 = HEAP8[$195 >> 0] | 0; $197 = $196 & 255; $198 = ($197 + -64) | 0; $199 = $198 >>> 0 > 190; $200 = ($197 + -127) | 0; $201 = $200 >>> 0 < 34; $or$cond20 = $199 | $201; if ($or$cond20) { $err$0$ph = 84; label = 115; break L10; } $202 = $198 >>> 0 > 62; $203 = ($197 + -98) | 0; $$21 = $202 ? $203 : $198; $204 = ($50 + -161) | 0; $205 = $204 >>> 0 > 88; if (!$205) { $235 = (((86336 + (($204 * 314) | 0)) | 0) + ($$21 << 1)) | 0; $236 = HEAP16[$235 >> 1] | 0; $237 = $236 & 65535; $238 = ($204 | 0) == 39; if ($238) { if ((($$21 | 0) == 66) | (($$21 | 0) == 58) | (($$21 | 0) == 60)) { $240 = 131072; } else { $240 = 0; } } else { $240 = 0; } $239 = $240 | $237; $241 = ($239 | 0) == 0; if ($241) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $239; $l$2 = 2; label = 90; break L12; } } $206 = ($50 + -135) | 0; $207 = $206 >>> 0 > 119; if ($207) { $err$0$ph = 84; label = 115; break L10; } $208 = ($48 & 255) < 161; $209 = ($50 + -224) | 0; $c$4 = $208 ? $206 : $209; $210 = ($c$4 * 157) | 0; $211 = ($$21 + $210) | 0; $212 = $211 >>> 4; $213 = ($212 + 4867) | 0; $214 = (75952 + ($213 << 1)) | 0; $215 = HEAP16[$214 >> 1] | 0; $216 = $215 & 65535; $217 = $211 & 15; $218 = $216 >>> $217; $219 = ($218 | 0) % 2 & -1; $220 = $219 << 17; $221 = (75952 + ($211 << 1)) | 0; $222 = HEAP16[$221 >> 1] | 0; $223 = $222 & 65535; $224 = $223 | $220; $$mask = $224 & -65792; $225 = ($$mask | 0) == 56320; if (!$225) { $234 = ($224 | 0) == 0; if ($234) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $224; $l$2 = 2; label = 90; break L12; } } if ($33) { $k$3 = 2; } else { $226 = HEAP8[$35 >> 0] | 0; $227 = ($226 << 24) >> 24; $k$3 = $227; } $228 = HEAP32[$outb >> 2] | 0; $229 = $k$3 >>> 0 > $228 >>> 0; if ($229) { $err$0$ph = 7; label = 115; break L10; } $230 = $223 & 255; $231 = (86312 + $230) | 0; HEAP32[$0 >> 2] = $231; HEAP32[$1 >> 2] = 4; $232 = _iconv($34, $0, $1, $out, $outb) | 0; $233 = ($232 + $x$058) | 0; $l$3 = 2; $x$3 = $233; break L12; break; } case 193: case 194: case 197: case 196: { $79 = $52 >>> 0 < 2; if ($79) { $err$0 = 22; break L10; } $80 = ($49 + $25) | 0; $81 = HEAP8[$80 >> 0] | 0; $82 = $81 & 255; $83 = $82 << 8; $84 = ($49 + $26) | 0; $85 = HEAP8[$84 >> 0] | 0; $86 = $85 & 255; $87 = $83 | $86; $88 = ($87 + -56320) | 0; $89 = $88 >>> 0 < 1024; if ($89) { $err$0$ph = 84; label = 115; break L10; } $90 = ($87 + -55296) | 0; $91 = $90 >>> 0 < 1024; if (!$91) { $c$8 = $87; $l$2 = 2; label = 90; break L12; } if ($28) { $err$0$ph = 84; label = 115; break L10; } $92 = $52 >>> 0 < 4; if ($92) { $err$0 = 22; break L10; } $93 = ($49 + $$sum2930) | 0; $94 = HEAP8[$93 >> 0] | 0; $95 = $94 & 255; $96 = $95 << 8; $97 = ($49 + $$sum3132) | 0; $98 = HEAP8[$97 >> 0] | 0; $99 = $98 & 255; $100 = $96 | $99; $101 = ($100 + -56320) | 0; $102 = $101 >>> 0 > 1023; if ($102) { $err$0$ph = 84; label = 115; break L10; } $103 = $87 << 10; $104 = ($103 + -56557568) | 0; $105 = ($104 + $101) | 0; $c$8 = $105; $l$2 = 4; label = 90; break L12; break; } case 216: case 217: { break; } case 208: { $131 = $52 >>> 0 < 2; if ($131) { $err$0 = 22; break L10; } $132 = ($49 + 1) | 0; $133 = HEAP8[$132 >> 0] | 0; $134 = $133 & 255; $135 = ($48 << 24) >> 24 == -114; if ($135) { $136 = ($134 + -161) | 0; $137 = $136 >>> 0 > 62; if ($137) { $err$0$ph = 84; label = 115; break L10; } $138 = ($134 + 65216) | 0; $c$8 = $138; $l$2 = 2; label = 90; break L12; } else { $139 = ($50 + -161) | 0; $140 = ($134 + -161) | 0; $141 = $139 >>> 0 > 83; $142 = $140 >>> 0 > 93; $or$cond15 = $141 | $142; if ($or$cond15) { $err$0$ph = 84; label = 115; break L10; } $143 = (((12280 + (($139 * 188) | 0)) | 0) + ($140 << 1)) | 0; $144 = HEAP16[$143 >> 1] | 0; $145 = $144 & 65535; $146 = ($144 << 16) >> 16 == 0; if ($146) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $145; $l$2 = 2; label = 90; break L12; } } break; } case 198: { $55 = $52 >>> 0 < 4; if ($55) { $err$0 = 22; break L10; } $56 = HEAP32[$49 >> 2] | 0; $c$0 = $56; label = 14; break; } case 232: { $242 = $52 >>> 0 < 2; if ($242) { $err$0 = 22; break L10; } $243 = ($49 + 1) | 0; $244 = HEAP8[$243 >> 0] | 0; $245 = $244 & 255; $246 = ($50 + -161) | 0; $247 = ($245 + -161) | 0; $248 = $246 >>> 0 > 92; $249 = $247 >>> 0 > 93; $or$cond22 = $248 | $249; if (!$or$cond22) { $279 = (((114288 + (($246 * 188) | 0)) | 0) + ($247 << 1)) | 0; $280 = HEAP16[$279 >> 1] | 0; $281 = $280 & 65535; $282 = ($280 << 16) >> 16 == 0; if ($282) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $281; $l$2 = 2; label = 90; break L12; } } $250 = ($50 + -129) | 0; $251 = $250 >>> 0 > 92; if ($251) { $err$0$ph = 84; label = 115; break L10; } $252 = $250 >>> 0 > 68; $253 = ($244 & 255) > 82; $or$cond23 = $252 & $253; if ($or$cond23) { $err$0$ph = 84; label = 115; break L10; } $254 = ($245 + -65) | 0; $255 = $254 >>> 0 < 26; do { if ($255) { $d$5 = $254; } else { $256 = ($245 + -97) | 0; $257 = $256 >>> 0 < 26; if ($257) { $258 = ($245 + -71) | 0; $d$5 = $258; break; } $259 = ($245 + -129) | 0; $260 = $259 >>> 0 < 126; if (!$260) { $err$0$ph = 84; label = 115; break L10; } $261 = ($245 + -77) | 0; $d$5 = $261; } } while (0); $262 = $250 >>> 0 < 32; if ($262) { $263 = ($250 * 178) | 0; $$pn = $263; } else { $264 = ($246 * 84) | 0; $265 = ($264 + 5696) | 0; $$pn = $265; } $c$5 = ($d$5 + 44032) | 0; $266 = ($c$5 + $$pn) | 0; $267 = $266 >>> 0 < 44032; if ($267) { $c$8 = $266; $l$2 = 2; label = 90; break L12; } else { $c$638 = $266; $d$639 = 44032; } while (1) { $268 = ($c$638 - $d$639) | 0; $i1$037 = 0; $k$436 = 0; while (1) { $j2$034 = 0; $k$533 = $k$436; while (1) { $269 = (((114288 + (($i1$037 * 188) | 0)) | 0) + ($j2$034 << 1)) | 0; $270 = HEAP16[$269 >> 1] | 0; $271 = $270 & 65535; $272 = ($271 - $d$639) | 0; $not$ = $272 >>> 0 <= $268 >>> 0; $273 = $not$ & 1; $k$5$ = ($273 + $k$533) | 0; $274 = ($j2$034 + 1) | 0; $exitcond = ($274 | 0) == 94; if ($exitcond) { break; } else { $j2$034 = $274; $k$533 = $k$5$; } } $275 = ($i1$037 + 1) | 0; $exitcond61 = ($275 | 0) == 93; if ($exitcond61) { break; } else { $i1$037 = $275; $k$436 = $k$5$; } } $276 = ($c$638 + 1) | 0; $277 = ($k$5$ + $c$638) | 0; $278 = $276 >>> 0 > $277 >>> 0; if ($278) { $c$8 = $277; $l$2 = 2; label = 90; break L12; } else { $c$638 = $277; $d$639 = $276; } } break; } case 218: { $147 = ($48 & 255) < 161; if ($147) { $err$0$ph = 84; label = 115; break L10; } break; } case 199: { $err$0$ph = 84; label = 115; break L10; break; } case 200: { $53 = _mbrtowc($wc, $49, $52, $st) | 0; if (($53 | 0) == 0) { $l$0 = 1; } else if (($53 | 0) == -1) { $err$0$ph = 84; label = 115; break L10; } else if (($53 | 0) == -2) { $err$0 = 22; break L10; } else { $l$0 = $53; } $54 = HEAP32[$wc >> 2] | 0; $c$8 = $54; $l$2 = $l$0; label = 90; break L12; break; } default: { $283 = $50 >>> 0 < $19 >>> 0; if ($283) { $c$8 = $50; $l$2 = 1; label = 90; break L12; } $284 = ($50 - $19) | 0; $285 = ($284 * 5) | 0; $286 = $285 >>> 2; $$sum11 = ($286 + $$sum) | 0; $287 = (8248 + $$sum11) | 0; $288 = HEAP8[$287 >> 0] | 0; $289 = $288 & 255; $290 = $284 << 1; $291 = $290 & 6; $292 = $289 >>> $291; $$sum12 = ($20 + $286) | 0; $293 = (8248 + $$sum12) | 0; $294 = HEAP8[$293 >> 0] | 0; $295 = $294 & 255; $296 = (8 - $291) | 0; $297 = $295 << $296; $298 = $297 & 1023; $299 = $298 | $292; $300 = (131776 + ($299 << 1)) | 0; $301 = HEAP16[$300 >> 1] | 0; $302 = $301 & 65535; $303 = ($299 | 0) == 0; $$ = $303 ? $50 : $302; $304 = ($$ | 0) == 1; if ($304) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $$; $l$2 = 1; label = 90; break L12; } } } } while (0); if ((label | 0) == 14) { label = 0; $76 = ($c$0 + -55296) | 0; $77 = $76 >>> 0 < 2048; $78 = $c$0 >>> 0 > 1114111; $or$cond = $77 | $78; if ($or$cond) { $err$0$ph = 84; label = 115; break L10; } else { $c$8 = $c$0; $l$2 = 4; label = 90; break; } } $148 = ($50 + -129) | 0; $149 = $148 >>> 0 > 125; if ($149) { $err$0$ph = 84; label = 115; break L10; } $150 = $52 >>> 0 < 2; if ($150) { $err$0 = 22; break L10; } $151 = ($49 + 1) | 0; $152 = HEAP8[$151 >> 0] | 0; $153 = $152 & 255; $154 = ($152 & 255) < 161; $or$cond16 = $154 & $29; if ($or$cond16) { $err$0$ph = 84; label = 115; break L10; } $155 = ($153 + -64) | 0; $156 = $155 >>> 0 > 190; $157 = ($152 << 24) >> 24 == 127; $or$cond3 = $156 | $157; if (!$or$cond3) { $189 = $155 >>> 0 > 63; $190 = ($153 + -65) | 0; $$18 = $189 ? $190 : $155; $191 = (((28072 + (($148 * 380) | 0)) | 0) + ($$18 << 1)) | 0; $192 = HEAP16[$191 >> 1] | 0; $193 = $192 & 65535; $c$8 = $193; $l$2 = 2; label = 90; break; } $158 = ($153 + -48) | 0; $159 = $158 >>> 0 < 10; $or$cond17 = $159 & $30; if (!$or$cond17) { $err$0$ph = 84; label = 115; break L10; } $160 = $52 >>> 0 < 4; if ($160) { $err$0 = 22; break L10; } $161 = ($49 + 2) | 0; $162 = HEAP8[$161 >> 0] | 0; $163 = $162 & 255; $164 = ($163 + -129) | 0; $165 = $164 >>> 0 > 126; if ($165) { $err$0$ph = 84; label = 115; break L10; } $166 = ($49 + 3) | 0; $167 = HEAP8[$166 >> 0] | 0; $168 = $167 & 255; $169 = ($168 + -48) | 0; $170 = $169 >>> 0 > 9; if ($170) { $err$0$ph = 84; label = 115; break L10; } $171 = ($148 * 10) | 0; $172 = ($153 + $171) | 0; $173 = ($172 * 1260) | 0; $174 = ($164 * 10) | 0; $175 = ($173 + -60352) | 0; $176 = ($175 + $174) | 0; $177 = ($176 + $169) | 0; $c$347 = $177; $d$248 = 0; while (1) { $178 = ($c$347 - $d$248) | 0; $i$045 = 0; $k$044 = 0; while (1) { $j$042 = 0; $k$141 = $k$044; while (1) { $179 = (((28072 + (($i$045 * 380) | 0)) | 0) + ($j$042 << 1)) | 0; $180 = HEAP16[$179 >> 1] | 0; $181 = $180 & 65535; $182 = ($181 - $d$248) | 0; $not$28 = $182 >>> 0 <= $178 >>> 0; $183 = $not$28 & 1; $k$1$ = ($183 + $k$141) | 0; $184 = ($j$042 + 1) | 0; $exitcond62 = ($184 | 0) == 190; if ($exitcond62) { break; } else { $j$042 = $184; $k$141 = $k$1$; } } $185 = ($i$045 + 1) | 0; $exitcond63 = ($185 | 0) == 126; if ($exitcond63) { break; } else { $i$045 = $185; $k$044 = $k$1$; } } $186 = ($c$347 + 1) | 0; $187 = ($k$1$ + $c$347) | 0; $188 = $186 >>> 0 > $187 >>> 0; if ($188) { $c$8 = $187; $l$2 = 4; label = 90; break; } else { $c$347 = $187; $d$248 = $186; } } } else { $c$8 = $50; $l$2 = 1; label = 90; } } while (0); L119: do { if ((label | 0) == 90) { label = 0; switch ($31 | 0) { case 193: case 194: case 197: case 196: { $355 = $c$8 >>> 0 < 65536; $brmerge73 = $355 | $28; if ($brmerge73) { $356 = $c$8 >>> 0 > 65535; $$c$8 = $356 ? 65533 : $c$8; $357 = HEAP32[$outb >> 2] | 0; $358 = $357 >>> 0 < 2; if ($358) { $err$0$ph = 7; label = 115; break L10; } $359 = HEAP32[$out >> 2] | 0; $360 = $$c$8 >>> 8; $361 = $360 & 255; $362 = ($359 + $40) | 0; HEAP8[$362 >> 0] = $361; $363 = $$c$8 & 255; $364 = ($359 + $41) | 0; HEAP8[$364 >> 0] = $363; $365 = ($359 + 2) | 0; HEAP32[$out >> 2] = $365; $366 = HEAP32[$outb >> 2] | 0; $367 = ($366 + -2) | 0; HEAP32[$outb >> 2] = $367; $l$3 = $l$2; $x$3 = $x$058; break L119; } else { $368 = HEAP32[$outb >> 2] | 0; $369 = $368 >>> 0 < 4; if ($369) { $err$0$ph = 7; label = 115; break L10; } $370 = ($c$8 + -65536) | 0; $371 = HEAP32[$out >> 2] | 0; $372 = $370 >>> 10; $373 = $370 >>> 18; $374 = $373 | 216; $375 = $374 & 255; $376 = ($371 + $40) | 0; HEAP8[$376 >> 0] = $375; $377 = $372 & 255; $378 = ($371 + $41) | 0; HEAP8[$378 >> 0] = $377; $379 = $370 >>> 8; $380 = $379 & 3; $381 = $380 | 220; $382 = $381 & 255; $383 = ($371 + $$sum2425) | 0; HEAP8[$383 >> 0] = $382; $384 = $370 & 255; $385 = ($371 + $$sum2627) | 0; HEAP8[$385 >> 0] = $384; $386 = ($371 + 4) | 0; HEAP32[$out >> 2] = $386; $387 = HEAP32[$outb >> 2] | 0; $388 = ($387 + -4) | 0; HEAP32[$outb >> 2] = $388; $l$3 = $l$2; $x$3 = $x$058; break L119; } break; } case 195: case 192: { $389 = HEAP32[$outb >> 2] | 0; $390 = $389 >>> 0 < 4; if ($390) { $err$0$ph = 7; label = 115; break L10; } $391 = HEAP32[$out >> 2] | 0; $392 = $c$8 >>> 24; $393 = $392 & 255; $394 = ($391 + $42) | 0; HEAP8[$394 >> 0] = $393; $395 = $c$8 >>> 16; $396 = $395 & 255; $397 = ($391 + $43) | 0; HEAP8[$397 >> 0] = $396; $398 = $c$8 >>> 8; $399 = $398 & 255; $400 = ($391 + $44) | 0; HEAP8[$400 >> 0] = $399; $401 = $c$8 & 255; $402 = ($391 + $45) | 0; HEAP8[$402 >> 0] = $401; $403 = ($391 + 4) | 0; HEAP32[$out >> 2] = $403; $404 = HEAP32[$outb >> 2] | 0; $405 = ($404 + -4) | 0; HEAP32[$outb >> 2] = $405; $l$3 = $l$2; $x$3 = $x$058; break L119; break; } case 198: { $305 = HEAP32[$outb >> 2] | 0; $306 = $305 >>> 0 < 4; if ($306) { $err$0$ph = 7; label = 115; break L10; } $307 = HEAP32[$out >> 2] | 0; HEAP32[$307 >> 2] = $c$8; $308 = ($307 + 4) | 0; HEAP32[$out >> 2] = $308; $309 = HEAP32[$outb >> 2] | 0; $310 = ($309 + -4) | 0; HEAP32[$outb >> 2] = $310; $l$3 = $l$2; $x$3 = $x$058; break L119; break; } case 200: { $311 = HEAP32[$outb >> 2] | 0; $312 = $311 >>> 0 < 4; if ($312) { $313 = _wctomb($tmp, $c$8) | 0; $314 = HEAP32[$outb >> 2] | 0; $315 = $314 >>> 0 < $313 >>> 0; if ($315) { $err$0$ph = 7; label = 115; break L10; } $316 = HEAP32[$out >> 2] | 0; _memcpy($316 | 0, $tmp | 0, $313 | 0) | 0; $320 = $316; $k$7 = $313; } else { $317 = HEAP32[$out >> 2] | 0; $318 = _wctomb($317, $c$8) | 0; $320 = $317; $k$7 = $318; } $319 = ($320 + $k$7) | 0; HEAP32[$out >> 2] = $319; $321 = HEAP32[$outb >> 2] | 0; $322 = ($321 - $k$7) | 0; HEAP32[$outb >> 2] = $322; $l$3 = $l$2; $x$3 = $x$058; break L119; break; } case 199: { $323 = $c$8 >>> 0 > 127; if ($323) { $x$1 = $x$058; label = 99; } else { $c$9 = $c$8; $x$2 = $x$058; } break; } default: { $c$9 = $c$8; $x$2 = $x$058; } } L139: while (1) { if ((label | 0) == 99) { label = 0; $324 = ($x$1 + 1) | 0; $c$9 = 42; $x$2 = $324; } $325 = HEAP32[$outb >> 2] | 0; $326 = ($325 | 0) == 0; if ($326) { $err$0$ph = 7; label = 115; break L10; } $327 = $c$9 >>> 0 < $36 >>> 0; if ($327) { $c$10 = $c$9; break; } if ($38) { $x$1 = $x$2; label = 99; continue; } else { $c$1152 = 0; } while (1) { $335 = ($c$1152 * 5) | 0; $336 = $335 >>> 2; $$sum9 = ($336 + $$sum6) | 0; $337 = (8248 + $$sum9) | 0; $338 = HEAP8[$337 >> 0] | 0; $339 = $338 & 255; $340 = $c$1152 << 1; $341 = $340 & 6; $342 = $339 >>> $341; $$sum10 = ($39 + $336) | 0; $343 = (8248 + $$sum10) | 0; $344 = HEAP8[$343 >> 0] | 0; $345 = $344 & 255; $346 = (8 - $341) | 0; $347 = $345 << $346; $348 = $347 & 1023; $349 = $348 | $342; $350 = (131776 + ($349 << 1)) | 0; $351 = HEAP16[$350 >> 1] | 0; $352 = $351 & 65535; $353 = ($c$9 | 0) == ($352 | 0); $333 = ($c$1152 + 1) | 0; if ($353) { label = 106; break L139; } $334 = $333 >>> 0 < $37 >>> 0; if ($334) { $c$1152 = $333; } else { $x$1 = $x$2; label = 99; continue L139; } } } if ((label | 0) == 106) { label = 0; $354 = ($c$1152 + 128) | 0; $c$10 = $354; } $328 = $c$10 & 255; $329 = HEAP32[$out >> 2] | 0; $330 = ($329 + 1) | 0; HEAP32[$out >> 2] = $330; HEAP8[$329 >> 0] = $328; $331 = HEAP32[$outb >> 2] | 0; $332 = ($331 + -1) | 0; HEAP32[$outb >> 2] = $332; $l$3 = $l$2; $x$3 = $x$2; } } while (0); $406 = HEAP32[$in >> 2] | 0; $407 = ($406 + $l$3) | 0; HEAP32[$in >> 2] = $407; $408 = ($52 - $l$3) | 0; HEAP32[$inb >> 2] = $408; $409 = ($52 | 0) == ($l$3 | 0); if ($409) { $$0 = $x$3; label = 117; break; } else { $49 = $407; $52 = $408; $x$058 = $x$3; } } if ((label | 0) == 115) { $err$0 = $err$0$ph; } else if ((label | 0) == 117) { STACKTOP = sp; return $$0 | 0; } $410 = ___errno_location() | 0; HEAP32[$410 >> 2] = $err$0; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _mbrtowc($wc, $src, $n, $st) { $wc = $wc | 0; $src = $src | 0; $n = $n | 0; $st = $st | 0; var $$0 = 0, $$01 = 0, $$02 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $c$0 = 0, $c$1 = 0, $c$2 = 0, $s$0 = 0, $s$1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $0 = sp; HEAP32[$0 >> 2] = $wc; $1 = ($st | 0) == (0 | 0); $$01 = $1 ? 133232 : $st; $2 = HEAP32[$$01 >> 2] | 0; $3 = ($src | 0) == (0 | 0); L1: do { if ($3) { $4 = ($2 | 0) == 0; if ($4) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } } else { $5 = ($wc | 0) == (0 | 0); if ($5) { HEAP32[$0 >> 2] = $0; $11 = $0; } else { $11 = $wc; } $6 = ($n | 0) == 0; if ($6) { $$0 = -2; STACKTOP = sp; return $$0 | 0; } $7 = ($2 | 0) == 0; do { if ($7) { $8 = HEAP8[$src >> 0] | 0; $9 = $8 & 255; $10 = ($8 << 24) >> 24 > -1; if ($10) { HEAP32[$11 >> 2] = $9; $12 = ($8 << 24) >> 24 != 0; $13 = $12 & 1; $$0 = $13; STACKTOP = sp; return $$0 | 0; } else { $14 = ($9 + -194) | 0; $15 = $14 >>> 0 > 50; if ($15) { break L1; } $16 = ($src + 1) | 0; $17 = (133024 + ($14 << 2)) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($n + -1) | 0; $$02 = $19; $c$0 = $18; $s$0 = $16; break; } } else { $$02 = $n; $c$0 = $2; $s$0 = $src; } } while (0); $20 = ($$02 | 0) == 0; L17: do { if ($20) { $c$2 = $c$0; } else { $21 = HEAP8[$s$0 >> 0] | 0; $22 = $21 & 255; $23 = $22 >>> 3; $24 = ($23 + -16) | 0; $25 = $c$0 >> 26; $26 = ($23 + $25) | 0; $27 = $24 | $26; $28 = $27 >>> 0 > 7; if ($28) { break L1; } else { $$1 = $$02; $32 = $21; $c$1 = $c$0; $s$1 = $s$0; } while (1) { $29 = $c$1 << 6; $30 = ($s$1 + 1) | 0; $31 = $32 & 255; $33 = ($31 + -128) | 0; $34 = $33 | $29; $35 = ($$1 + -1) | 0; $36 = ($34 | 0) < 0; if (!$36) { break; } $38 = ($35 | 0) == 0; if ($38) { $c$2 = $34; break L17; } $39 = HEAP8[$30 >> 0] | 0; $40 = $39 & 255; $41 = ($40 + -128) | 0; $42 = $41 >>> 0 > 63; if ($42) { break L1; } else { $$1 = $35; $32 = $39; $c$1 = $34; $s$1 = $30; } } HEAP32[$$01 >> 2] = 0; HEAP32[$11 >> 2] = $34; $37 = ($n - $35) | 0; $$0 = $37; STACKTOP = sp; return $$0 | 0; } } while (0); HEAP32[$$01 >> 2] = $c$2; $$0 = -2; STACKTOP = sp; return $$0 | 0; } } while (0); HEAP32[$$01 >> 2] = 0; $43 = ___errno_location() | 0; HEAP32[$43 >> 2] = 84; $$0 = -1; STACKTOP = sp; return $$0 | 0; } function _qsort($base, $nel, $width, $cmp) { $base = $base | 0; $nel = $nel | 0; $width = $width | 0; $cmp = $cmp | 0; var $$ = 0, $$$i = 0, $$0$be$i = 0, $$0$be$i20 = 0, $$0$i50 = 0, $$01$be$i = 0, $$01$be$i19 = 0, $$01$i5$i = 0, $$012$i = 0, $$012$i16 = 0, $$02$i$i = 0, $$02$i3$i = 0, $$02$i3469 = 0, $$02$i72 = 0, $$02$us$i = 0, $$02$us$i32 = 0, $$03$i = 0, $$03$i15 = 0, $$66 = 0, $$67 = 0; var $$lcssa75 = 0, $$lcssa76 = 0, $$pre = 0, $$pre$i = 0, $$pre$i22 = 0, $$pre$i28 = 0, $$pre$i9 = 0, $$sum = 0, $$sum$i = 0, $$sum$i18 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $4$phi = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ar$i = 0, $exitcond$i = 0, $exitcond$i31 = 0, $head$0$lcssa = 0, $head$077 = 0; var $head$1 = 0, $i$0 = 0, $i$0$lcssa$i = 0, $i$0$lcssa$i24 = 0, $i$01$us$i = 0, $i$01$us$i30 = 0, $i$04$i = 0, $i$04$i14 = 0, $lp = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $pshift$0$lcssa = 0, $pshift$078 = 0, $pshift$1 = 0, $pshift$2 = 0, $sum = 0, $sum$i = 0, $sum$i17 = 0, $tmp$i = 0, $tmp$i26 = 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 944) | 0; $tmp$i26 = (sp + 680) | 0; $tmp$i = (sp + 424) | 0; $ar$i = (sp + 192) | 0; $lp = sp; $0 = Math_imul($width, $nel) | 0; $1 = ($0 | 0) == 0; if ($1) { STACKTOP = sp; return; } $$sum = ($0 - $width) | 0; $2 = ($lp + 4) | 0; HEAP32[$2 >> 2] = $width; HEAP32[$lp >> 2] = $width; $4 = $width; $6 = $width; $i$0 = 2; while (1) { $3 = ($4 + $width) | 0; $5 = ($3 + $6) | 0; $7 = ($lp + ($i$0 << 2)) | 0; HEAP32[$7 >> 2] = $5; $8 = $5 >>> 0 < $0 >>> 0; $9 = ($i$0 + 1) | 0; if ($8) { $4$phi = $6; $6 = $5; $i$0 = $9; $4 = $4$phi; } else { break; } } $10 = (0 - $width) | 0; $11 = ($base + $$sum) | 0; $12 = ($$sum | 0) > 0; if ($12) { $13 = ($width | 0) == 0; $14 = $width >>> 0 > 256; $15 = $14 ? 256 : $width; $16 = ($15 | 0) == ($width | 0); $17 = $11; $19 = 1; $61 = 0; $head$077 = $base; $pshift$078 = 1; while (1) { $18 = $19 & 3; $20 = ($18 | 0) == 3; do { if ($20) { HEAP32[$ar$i >> 2] = $head$077; $21 = ($pshift$078 | 0) > 1; L44: do { if ($21) { $$012$i = $pshift$078; $$03$i = $head$077; $27 = $head$077; $i$04$i = 1; while (1) { $22 = ($$03$i + $10) | 0; $23 = ($$012$i + -2) | 0; $24 = ($lp + ($23 << 2)) | 0; $25 = HEAP32[$24 >> 2] | 0; $sum$i = ($25 + $width) | 0; $$sum$i = (0 - $sum$i) | 0; $26 = ($$03$i + $$sum$i) | 0; $28 = FUNCTION_TABLE_iii[$cmp & 7]($27, $26) | 0; $29 = ($28 | 0) > -1; if ($29) { $30 = FUNCTION_TABLE_iii[$cmp & 7]($27, $22) | 0; $31 = ($30 | 0) > -1; if ($31) { $i$0$lcssa$i = $i$04$i; break; } } $32 = FUNCTION_TABLE_iii[$cmp & 7]($26, $22) | 0; $33 = ($32 | 0) > -1; $34 = ($i$04$i + 1) | 0; $35 = ($ar$i + ($i$04$i << 2)) | 0; if ($33) { HEAP32[$35 >> 2] = $26; $36 = ($$012$i + -1) | 0; $$0$be$i = $26; $$01$be$i = $36; } else { HEAP32[$35 >> 2] = $22; $$0$be$i = $22; $$01$be$i = $23; } $37 = ($$01$be$i | 0) > 1; if (!$37) { $i$0$lcssa$i = $34; break; } $$pre$i = HEAP32[$ar$i >> 2] | 0; $$012$i = $$01$be$i; $$03$i = $$0$be$i; $27 = $$pre$i; $i$04$i = $34; } $38 = ($i$0$lcssa$i | 0) < 2; if (!$38) { $39 = ($ar$i + ($i$0$lcssa$i << 2)) | 0; HEAP32[$39 >> 2] = $tmp$i; if (!$13) { $40 = ($i$0$lcssa$i | 0) > 0; if ($40) { $$02$us$i = $width; $53 = $tmp$i; } else { $41 = HEAP32[$ar$i >> 2] | 0; _memcpy($tmp$i | 0, $41 | 0, $15 | 0) | 0; if ($16) { break; } else { $$02$i72 = $width; $55 = $15; } while (1) { $54 = ($$02$i72 - $55) | 0; $56 = $54 >>> 0 > 256; $57 = $56 ? 256 : $54; _memcpy($tmp$i | 0, $41 | 0, $57 | 0) | 0; $58 = ($54 | 0) == ($57 | 0); if ($58) { break L44; } else { $$02$i72 = $54; $55 = $57; } } } while (1) { $51 = $$02$us$i >>> 0 > 256; $43 = $51 ? 256 : $$02$us$i; $52 = HEAP32[$ar$i >> 2] | 0; _memcpy($53 | 0, $52 | 0, $43 | 0) | 0; $49 = $52; $i$01$us$i = 0; while (1) { $45 = ($ar$i + ($i$01$us$i << 2)) | 0; $46 = ($i$01$us$i + 1) | 0; $47 = ($ar$i + ($46 << 2)) | 0; $48 = HEAP32[$47 >> 2] | 0; _memcpy($49 | 0, $48 | 0, $43 | 0) | 0; $50 = ($49 + $43) | 0; HEAP32[$45 >> 2] = $50; $exitcond$i = ($46 | 0) == ($i$0$lcssa$i | 0); if ($exitcond$i) { break; } else { $49 = $48; $i$01$us$i = $46; } } $42 = ($$02$us$i | 0) == ($43 | 0); if ($42) { break L44; } $44 = ($$02$us$i - $43) | 0; $$pre$i9 = HEAP32[$39 >> 2] | 0; $$02$us$i = $44; $53 = $$pre$i9; } } } } } while (0); $59 = $19 >>> 2; $60 = $61 << 30; $62 = $59 | $60; $63 = $61 >>> 2; $64 = ($pshift$078 + 2) | 0; $122 = $62; $182 = $63; $pshift$1 = $64; } else { $65 = ($pshift$078 + -1) | 0; $66 = ($lp + ($65 << 2)) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = $head$077; $69 = ($17 - $68) | 0; $70 = $67 >>> 0 < $69 >>> 0; L13: do { if ($70) { HEAP32[$ar$i >> 2] = $head$077; $71 = ($pshift$078 | 0) > 1; if ($71) { $$012$i16 = $pshift$078; $$03$i15 = $head$077; $77 = $head$077; $i$04$i14 = 1; while (1) { $72 = ($$03$i15 + $10) | 0; $73 = ($$012$i16 + -2) | 0; $74 = ($lp + ($73 << 2)) | 0; $75 = HEAP32[$74 >> 2] | 0; $sum$i17 = ($75 + $width) | 0; $$sum$i18 = (0 - $sum$i17) | 0; $76 = ($$03$i15 + $$sum$i18) | 0; $78 = FUNCTION_TABLE_iii[$cmp & 7]($77, $76) | 0; $79 = ($78 | 0) > -1; if ($79) { $80 = FUNCTION_TABLE_iii[$cmp & 7]($77, $72) | 0; $81 = ($80 | 0) > -1; if ($81) { $i$0$lcssa$i24 = $i$04$i14; break; } } $82 = FUNCTION_TABLE_iii[$cmp & 7]($76, $72) | 0; $83 = ($82 | 0) > -1; $84 = ($i$04$i14 + 1) | 0; $85 = ($ar$i + ($i$04$i14 << 2)) | 0; if ($83) { HEAP32[$85 >> 2] = $76; $86 = ($$012$i16 + -1) | 0; $$0$be$i20 = $76; $$01$be$i19 = $86; } else { HEAP32[$85 >> 2] = $72; $$0$be$i20 = $72; $$01$be$i19 = $73; } $87 = ($$01$be$i19 | 0) > 1; if (!$87) { $i$0$lcssa$i24 = $84; break; } $$pre$i22 = HEAP32[$ar$i >> 2] | 0; $$012$i16 = $$01$be$i19; $$03$i15 = $$0$be$i20; $77 = $$pre$i22; $i$04$i14 = $84; } $88 = ($i$0$lcssa$i24 | 0) < 2; if (!$88) { $89 = ($ar$i + ($i$0$lcssa$i24 << 2)) | 0; HEAP32[$89 >> 2] = $tmp$i26; if (!$13) { $90 = ($i$0$lcssa$i24 | 0) > 0; if ($90) { $$02$us$i32 = $width; $103 = $tmp$i26; } else { $91 = HEAP32[$ar$i >> 2] | 0; _memcpy($tmp$i26 | 0, $91 | 0, $15 | 0) | 0; if ($16) { break; } else { $$02$i3469 = $width; $105 = $15; } while (1) { $104 = ($$02$i3469 - $105) | 0; $106 = $104 >>> 0 > 256; $107 = $106 ? 256 : $104; _memcpy($tmp$i26 | 0, $91 | 0, $107 | 0) | 0; $108 = ($104 | 0) == ($107 | 0); if ($108) { break L13; } else { $$02$i3469 = $104; $105 = $107; } } } while (1) { $101 = $$02$us$i32 >>> 0 > 256; $93 = $101 ? 256 : $$02$us$i32; $102 = HEAP32[$ar$i >> 2] | 0; _memcpy($103 | 0, $102 | 0, $93 | 0) | 0; $99 = $102; $i$01$us$i30 = 0; while (1) { $95 = ($ar$i + ($i$01$us$i30 << 2)) | 0; $96 = ($i$01$us$i30 + 1) | 0; $97 = ($ar$i + ($96 << 2)) | 0; $98 = HEAP32[$97 >> 2] | 0; _memcpy($99 | 0, $98 | 0, $93 | 0) | 0; $100 = ($99 + $93) | 0; HEAP32[$95 >> 2] = $100; $exitcond$i31 = ($96 | 0) == ($i$0$lcssa$i24 | 0); if ($exitcond$i31) { break; } else { $99 = $98; $i$01$us$i30 = $96; } } $92 = ($$02$us$i32 | 0) == ($93 | 0); if ($92) { break L13; } $94 = ($$02$us$i32 - $93) | 0; $$pre$i28 = HEAP32[$89 >> 2] | 0; $$02$us$i32 = $94; $103 = $$pre$i28; } } } } } else { _trinkle($head$077, $width, $cmp, $19, $61, $pshift$078, 0, $lp); } } while (0); $109 = ($pshift$078 | 0) == 1; if ($109) { $110 = $61 << 1; $111 = $19 >>> 31; $112 = $111 | $110; $113 = $19 << 1; $122 = $113; $182 = $112; $pshift$1 = 0; break; } else { $114 = $65 >>> 0 > 31; $115 = ($pshift$078 + -33) | 0; $$ = $114 ? 0 : $19; $$66 = $114 ? $19 : $61; $$67 = $114 ? $115 : $65; $116 = $$66 << $$67; $117 = (32 - $$67) | 0; $118 = $$ >>> $117; $119 = $118 | $116; $120 = $$ << $$67; $122 = $120; $182 = $119; $pshift$1 = 1; break; } } } while (0); $121 = $122 | 1; $123 = ($head$077 + $width) | 0; $124 = $123 >>> 0 < $11 >>> 0; if ($124) { $19 = $121; $61 = $182; $head$077 = $123; $pshift$078 = $pshift$1; } else { $$lcssa75 = $182; $$lcssa76 = $121; $head$0$lcssa = $123; $pshift$0$lcssa = $pshift$1; break; } } } else { $$lcssa75 = 0; $$lcssa76 = 1; $head$0$lcssa = $base; $pshift$0$lcssa = 1; } _trinkle($head$0$lcssa, $width, $cmp, $$lcssa76, $$lcssa75, $pshift$0$lcssa, 0, $lp); $126 = $$lcssa76; $128 = $$lcssa75; $head$1 = $head$0$lcssa; $pshift$2 = $pshift$0$lcssa; while (1) { $125 = ($pshift$2 | 0) == 1; if ($125) { $127 = ($126 | 0) == 1; if ($127) { $129 = ($128 | 0) == 0; if ($129) { break; } else { label = 52; } } } else { label = 52; } if ((label | 0) == 52) { label = 0; $130 = ($pshift$2 | 0) < 2; if (!$130) { $162 = $128 << 2; $163 = $126 >>> 30; $164 = $163 | $162; $165 = ($pshift$2 + -2) | 0; $166 = $126 << 1; $167 = $166 & 2147483646; $168 = $163 << 31; $169 = $167 | $168; $170 = $169 ^ 3; $171 = $164 >>> 1; $172 = ($lp + ($165 << 2)) | 0; $173 = HEAP32[$172 >> 2] | 0; $sum = ($173 + $width) | 0; $$sum2 = (0 - $sum) | 0; $174 = ($head$1 + $$sum2) | 0; $175 = ($pshift$2 + -1) | 0; _trinkle($174, $width, $cmp, $170, $171, $175, 1, $lp); $176 = $171 << 1; $177 = $163 & 1; $178 = $176 | $177; $179 = $170 << 1; $180 = $179 | 1; $181 = ($head$1 + $10) | 0; _trinkle($181, $width, $cmp, $180, $178, $165, 1, $lp); $126 = $180; $128 = $178; $head$1 = $181; $pshift$2 = $165; continue; } } $131 = ($126 + -1) | 0; $132 = ($131 | 0) == 0; if ($132) { $152 = 32; label = 62; } else { $133 = $131 & 1; $134 = ($133 | 0) == 0; if ($134) { $$02$i$i = $131; $nTrailingZeros$03$i$i = 0; while (1) { $135 = ($nTrailingZeros$03$i$i + 1) | 0; $136 = $$02$i$i >>> 1; $137 = $136 & 1; $138 = ($137 | 0) == 0; if ($138) { $$02$i$i = $136; $nTrailingZeros$03$i$i = $135; } else { break; } } $139 = ($135 | 0) == 0; if ($139) { label = 57; } else { $149 = $135; } } else { label = 57; } if ((label | 0) == 57) { label = 0; $140 = ($128 | 0) == 0; if ($140) { $$01$i5$i = 32; } else { $141 = $128 & 1; $142 = ($141 | 0) == 0; if ($142) { $$02$i3$i = $128; $nTrailingZeros$03$i2$i = 0; while (1) { $143 = ($nTrailingZeros$03$i2$i + 1) | 0; $144 = $$02$i3$i >>> 1; $145 = $144 & 1; $146 = ($145 | 0) == 0; if ($146) { $$02$i3$i = $144; $nTrailingZeros$03$i2$i = $143; } else { $$01$i5$i = $143; break; } } } else { $$01$i5$i = 0; } } $147 = ($$01$i5$i + 32) | 0; $148 = ($$01$i5$i | 0) == 0; $$$i = $148 ? 0 : $147; $149 = $$$i; } $150 = $149 >>> 0 > 31; if ($150) { $152 = $149; label = 62; } else { $$0$i50 = $149; $154 = $126; $157 = $128; $161 = $149; } } if ((label | 0) == 62) { label = 0; $151 = ($152 + -32) | 0; $$0$i50 = $151; $154 = $128; $157 = 0; $161 = $152; } $153 = $154 >>> $$0$i50; $155 = (32 - $$0$i50) | 0; $156 = $157 << $155; $158 = $156 | $153; $159 = $157 >>> $$0$i50; $160 = ($161 + $pshift$2) | 0; $$pre = ($head$1 + $10) | 0; $126 = $158; $128 = $159; $head$1 = $$pre; $pshift$2 = $160; } STACKTOP = sp; return; } function _trinkle($head, $width, $cmp, $pp$val, $pp$1$val, $pshift, $trusty, $lp) { $head = $head | 0; $width = $width | 0; $cmp = $cmp | 0; $pp$val = $pp$val | 0; $pp$1$val = $pp$1$val | 0; $pshift = $pshift | 0; $trusty = $trusty | 0; $lp = $lp | 0; var $$$i = 0, $$0$be$i = 0, $$0$i = 0, $$0$lcssa = 0, $$0$lcssa26 = 0, $$01$be$i = 0, $$01$i5$i = 0, $$01$lcssa = 0, $$01$lcssa28 = 0, $$0110 = 0, $$012 = 0, $$012$i = 0, $$02$i$i = 0, $$02$i146 = 0, $$02$i3 = 0, $$02$i3$i = 0, $$02$lcssa = 0, $$02$us$i = 0, $$02$us$i12 = 0, $$029 = 0; var $$03$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i3 = 0, $$pre$i8 = 0, $$sum = 0, $$sum$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0; var $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $13 = 0; var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $ar = 0, $ar$i = 0, $exitcond$i = 0, $exitcond$i11 = 0, $i$0$lcssa = 0, $i$0$lcssa$i = 0; var $i$0$lcssa27 = 0, $i$01$us$i = 0, $i$01$us$i10 = 0, $i$011 = 0, $i$04$i = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $or$cond = 0, $or$cond1 = 0, $or$cond18 = 0, $sum = 0, $sum$i = 0, $tmp$i6 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 720) | 0; $tmp$i6 = (sp + 456) | 0; $ar$i = (sp + 228) | 0; $ar = sp; HEAP32[$ar >> 2] = $head; $0 = (0 - $width) | 0; $1 = ($pp$val | 0) == 1; $2 = ($pp$1$val | 0) == 0; $or$cond18 = $1 & $2; L1: do { if ($or$cond18) { $$0$lcssa = $head; $$01$lcssa = $pshift; $$02$lcssa = $trusty; $i$0$lcssa = 1; label = 18; } else { $$0110 = $pshift; $$012 = $head; $$029 = $trusty; $24 = $pp$val; $33 = $pp$1$val; $7 = $head; $i$011 = 1; while (1) { $3 = ($lp + ($$0110 << 2)) | 0; $4 = HEAP32[$3 >> 2] | 0; $5 = (0 - $4) | 0; $6 = ($$012 + $5) | 0; $8 = FUNCTION_TABLE_iii[$cmp & 7]($6, $7) | 0; $9 = ($8 | 0) < 1; if ($9) { $$0$lcssa = $$012; $$01$lcssa = $$0110; $$02$lcssa = $$029; $i$0$lcssa = $i$011; label = 18; break L1; } $10 = ($$029 | 0) == 0; $11 = ($$0110 | 0) > 1; $or$cond = $10 & $11; if ($or$cond) { $12 = ($$012 + $0) | 0; $13 = ($$0110 + -2) | 0; $14 = ($lp + ($13 << 2)) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = FUNCTION_TABLE_iii[$cmp & 7]($12, $6) | 0; $17 = ($16 | 0) > -1; if ($17) { $$0$lcssa26 = $$012; $$01$lcssa28 = $$0110; $i$0$lcssa27 = $i$011; break L1; } $sum = ($15 + $width) | 0; $$sum = (0 - $sum) | 0; $18 = ($$012 + $$sum) | 0; $19 = FUNCTION_TABLE_iii[$cmp & 7]($18, $6) | 0; $20 = ($19 | 0) > -1; if ($20) { $$0$lcssa26 = $$012; $$01$lcssa28 = $$0110; $i$0$lcssa27 = $i$011; break L1; } } $21 = ($i$011 + 1) | 0; $22 = ($ar + ($i$011 << 2)) | 0; HEAP32[$22 >> 2] = $6; $23 = ($24 + -1) | 0; $25 = ($23 | 0) == 0; if ($25) { $46 = 32; label = 15; } else { $26 = $23 & 1; $27 = ($26 | 0) == 0; if ($27) { $$02$i$i = $23; $nTrailingZeros$03$i$i = 0; while (1) { $28 = ($nTrailingZeros$03$i$i + 1) | 0; $29 = $$02$i$i >>> 1; $30 = $29 & 1; $31 = ($30 | 0) == 0; if ($31) { $$02$i$i = $29; $nTrailingZeros$03$i$i = $28; } else { break; } } $32 = ($28 | 0) == 0; if ($32) { label = 10; } else { $43 = $28; } } else { label = 10; } if ((label | 0) == 10) { label = 0; $34 = ($33 | 0) == 0; if ($34) { $$01$i5$i = 32; } else { $35 = $33 & 1; $36 = ($35 | 0) == 0; if ($36) { $$02$i3$i = $33; $nTrailingZeros$03$i2$i = 0; while (1) { $37 = ($nTrailingZeros$03$i2$i + 1) | 0; $38 = $$02$i3$i >>> 1; $39 = $38 & 1; $40 = ($39 | 0) == 0; if ($40) { $$02$i3$i = $38; $nTrailingZeros$03$i2$i = $37; } else { $$01$i5$i = $37; break; } } } else { $$01$i5$i = 0; } } $41 = ($$01$i5$i + 32) | 0; $42 = ($$01$i5$i | 0) == 0; $$$i = $42 ? 0 : $41; $43 = $$$i; } $44 = $43 >>> 0 > 31; if ($44) { $46 = $43; label = 15; } else { $$0$i = $43; $48 = $24; $51 = $33; $55 = $43; } } if ((label | 0) == 15) { label = 0; $45 = ($46 + -32) | 0; $$0$i = $45; $48 = $33; $51 = 0; $55 = $46; } $47 = $48 >>> $$0$i; $49 = (32 - $$0$i) | 0; $50 = $51 << $49; $52 = $50 | $47; $53 = $51 >>> $$0$i; $54 = ($55 + $$0110) | 0; $56 = ($52 | 0) == 1; $57 = ($53 | 0) == 0; $or$cond1 = $56 & $57; if ($or$cond1) { $$0$lcssa26 = $6; $$01$lcssa28 = $54; $i$0$lcssa27 = $21; break L1; } $$pre = HEAP32[$ar >> 2] | 0; $$0110 = $54; $$012 = $6; $$029 = 0; $24 = $52; $33 = $53; $7 = $$pre; $i$011 = $21; } } } while (0); if ((label | 0) == 18) { $58 = ($$02$lcssa | 0) == 0; if ($58) { $$0$lcssa26 = $$0$lcssa; $$01$lcssa28 = $$01$lcssa; $i$0$lcssa27 = $i$0$lcssa; } else { STACKTOP = sp; return; } } $59 = ($i$0$lcssa27 | 0) < 2; L31: do { if (!$59) { $60 = ($ar + ($i$0$lcssa27 << 2)) | 0; HEAP32[$60 >> 2] = $tmp$i6; $61 = ($width | 0) == 0; if (!$61) { $62 = ($i$0$lcssa27 | 0) > 0; if ($62) { $$02$us$i12 = $width; $78 = $tmp$i6; } else { $63 = $width >>> 0 > 256; $64 = $63 ? 256 : $width; $65 = HEAP32[$ar >> 2] | 0; _memcpy($tmp$i6 | 0, $65 | 0, $64 | 0) | 0; $66 = ($64 | 0) == ($width | 0); if ($66) { break; } else { $$02$i146 = $width; $80 = $64; } while (1) { $79 = ($$02$i146 - $80) | 0; $81 = $79 >>> 0 > 256; $82 = $81 ? 256 : $79; _memcpy($tmp$i6 | 0, $65 | 0, $82 | 0) | 0; $83 = ($79 | 0) == ($82 | 0); if ($83) { break L31; } else { $$02$i146 = $79; $80 = $82; } } } while (1) { $76 = $$02$us$i12 >>> 0 > 256; $68 = $76 ? 256 : $$02$us$i12; $77 = HEAP32[$ar >> 2] | 0; _memcpy($78 | 0, $77 | 0, $68 | 0) | 0; $74 = $77; $i$01$us$i10 = 0; while (1) { $70 = ($ar + ($i$01$us$i10 << 2)) | 0; $71 = ($i$01$us$i10 + 1) | 0; $72 = ($ar + ($71 << 2)) | 0; $73 = HEAP32[$72 >> 2] | 0; _memcpy($74 | 0, $73 | 0, $68 | 0) | 0; $75 = ($74 + $68) | 0; HEAP32[$70 >> 2] = $75; $exitcond$i11 = ($71 | 0) == ($i$0$lcssa27 | 0); if ($exitcond$i11) { break; } else { $74 = $73; $i$01$us$i10 = $71; } } $67 = ($$02$us$i12 | 0) == ($68 | 0); if ($67) { break L31; } $69 = ($$02$us$i12 - $68) | 0; $$pre$i8 = HEAP32[$60 >> 2] | 0; $$02$us$i12 = $69; $78 = $$pre$i8; } } } } while (0); HEAP32[$ar$i >> 2] = $$0$lcssa26; $84 = ($$01$lcssa28 | 0) > 1; L45: do { if ($84) { $$012$i = $$01$lcssa28; $$03$i = $$0$lcssa26; $90 = $$0$lcssa26; $i$04$i = 1; while (1) { $85 = ($$03$i + $0) | 0; $86 = ($$012$i + -2) | 0; $87 = ($lp + ($86 << 2)) | 0; $88 = HEAP32[$87 >> 2] | 0; $sum$i = ($88 + $width) | 0; $$sum$i = (0 - $sum$i) | 0; $89 = ($$03$i + $$sum$i) | 0; $91 = FUNCTION_TABLE_iii[$cmp & 7]($90, $89) | 0; $92 = ($91 | 0) > -1; if ($92) { $93 = FUNCTION_TABLE_iii[$cmp & 7]($90, $85) | 0; $94 = ($93 | 0) > -1; if ($94) { $i$0$lcssa$i = $i$04$i; break; } } $95 = FUNCTION_TABLE_iii[$cmp & 7]($89, $85) | 0; $96 = ($95 | 0) > -1; $97 = ($i$04$i + 1) | 0; $98 = ($ar$i + ($i$04$i << 2)) | 0; if ($96) { HEAP32[$98 >> 2] = $89; $99 = ($$012$i + -1) | 0; $$0$be$i = $89; $$01$be$i = $99; } else { HEAP32[$98 >> 2] = $85; $$0$be$i = $85; $$01$be$i = $86; } $100 = ($$01$be$i | 0) > 1; if (!$100) { $i$0$lcssa$i = $97; break; } $$pre$i = HEAP32[$ar$i >> 2] | 0; $$012$i = $$01$be$i; $$03$i = $$0$be$i; $90 = $$pre$i; $i$04$i = $97; } $101 = ($i$0$lcssa$i | 0) < 2; if ($101) { $126 = $tmp$i6; } else { $102 = ($ar$i + ($i$0$lcssa$i << 2)) | 0; HEAP32[$102 >> 2] = $tmp$i6; $103 = ($width | 0) == 0; if ($103) { $126 = $tmp$i6; } else { $104 = ($i$0$lcssa$i | 0) > 0; if ($104) { $$02$us$i = $width; $120 = $tmp$i6; } else { $105 = $width >>> 0 > 256; $106 = $105 ? 256 : $width; $107 = HEAP32[$ar$i >> 2] | 0; _memcpy($tmp$i6 | 0, $107 | 0, $106 | 0) | 0; $108 = ($106 | 0) == ($width | 0); if ($108) { $126 = $tmp$i6; break; } else { $$02$i3 = $width; $122 = $106; } while (1) { $121 = ($$02$i3 - $122) | 0; $123 = $121 >>> 0 > 256; $124 = $123 ? 256 : $121; _memcpy($tmp$i6 | 0, $107 | 0, $124 | 0) | 0; $125 = ($121 | 0) == ($124 | 0); if ($125) { $126 = $tmp$i6; break L45; } else { $$02$i3 = $121; $122 = $124; } } } while (1) { $118 = $$02$us$i >>> 0 > 256; $110 = $118 ? 256 : $$02$us$i; $119 = HEAP32[$ar$i >> 2] | 0; _memcpy($120 | 0, $119 | 0, $110 | 0) | 0; $116 = $119; $i$01$us$i = 0; while (1) { $112 = ($ar$i + ($i$01$us$i << 2)) | 0; $113 = ($i$01$us$i + 1) | 0; $114 = ($ar$i + ($113 << 2)) | 0; $115 = HEAP32[$114 >> 2] | 0; _memcpy($116 | 0, $115 | 0, $110 | 0) | 0; $117 = ($116 + $110) | 0; HEAP32[$112 >> 2] = $117; $exitcond$i = ($113 | 0) == ($i$0$lcssa$i | 0); if ($exitcond$i) { break; } else { $116 = $115; $i$01$us$i = $113; } } $109 = ($$02$us$i | 0) == ($110 | 0); if ($109) { $126 = $tmp$i6; break L45; } $111 = ($$02$us$i - $110) | 0; $$pre$i3 = HEAP32[$102 >> 2] | 0; $$02$us$i = $111; $120 = $$pre$i3; } } } } else { $126 = $tmp$i6; } } while (0); STACKTOP = sp; return; } function _strchr($s, $c) { $s = $s | 0; $c = $c | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ___strchrnul($s, $c) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = $c & 255; $3 = ($1 << 24) >> 24 == ($2 << 24) >> 24; $4 = $3 ? $0 : 0; STACKTOP = sp; return $4 | 0; } function ___strchrnul($s, $c) { $s = $s | 0; $c = $c | 0; var $$0 = 0, $$02$lcssa = 0, $$026 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $w$0$lcssa = 0, $w$03 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $c & 255; $1 = ($0 | 0) == 0; if ($1) { $6 = _strlen($s | 0) | 0; $7 = ($s + $6) | 0; $$0 = $7; STACKTOP = sp; return $$0 | 0; } $2 = $s; $3 = $2 & 3; $4 = ($3 | 0) == 0; L5: do { if ($4) { $$02$lcssa = $s; } else { $5 = $c & 255; $$026 = $s; while (1) { $12 = HEAP8[$$026 >> 0] | 0; $13 = ($12 << 24) >> 24 == 0; if ($13) { $$0 = $$026; label = 13; break; } $14 = ($12 << 24) >> 24 == ($5 << 24) >> 24; $8 = ($$026 + 1) | 0; if ($14) { $$0 = $$026; label = 13; break; } $9 = $8; $10 = $9 & 3; $11 = ($10 | 0) == 0; if ($11) { $$02$lcssa = $8; break L5; } else { $$026 = $8; } } if ((label | 0) == 13) { STACKTOP = sp; return $$0 | 0; } } } while (0); $15 = Math_imul($0, 16843009) | 0; $16 = HEAP32[$$02$lcssa >> 2] | 0; $17 = ($16 + -16843009) | 0; $18 = $16 & -2139062144; $19 = $18 ^ -2139062144; $20 = $19 & $17; $21 = ($20 | 0) == 0; L15: do { if ($21) { $30 = $16; $w$03 = $$02$lcssa; while (1) { $29 = $30 ^ $15; $31 = ($29 + -16843009) | 0; $32 = $29 & -2139062144; $33 = $32 ^ -2139062144; $34 = $33 & $31; $35 = ($34 | 0) == 0; $23 = ($w$03 + 4) | 0; if (!$35) { $w$0$lcssa = $w$03; break L15; } $22 = HEAP32[$23 >> 2] | 0; $24 = ($22 + -16843009) | 0; $25 = $22 & -2139062144; $26 = $25 ^ -2139062144; $27 = $26 & $24; $28 = ($27 | 0) == 0; if ($28) { $30 = $22; $w$03 = $23; } else { $w$0$lcssa = $23; break; } } } else { $w$0$lcssa = $$02$lcssa; } } while (0); $36 = $c & 255; $$1 = $w$0$lcssa; while (1) { $37 = HEAP8[$$1 >> 0] | 0; $38 = ($37 << 24) >> 24 == 0; $39 = ($37 << 24) >> 24 == ($36 << 24) >> 24; $or$cond = $38 | $39; $40 = ($$1 + 1) | 0; if ($or$cond) { $$0 = $$1; break; } else { $$1 = $40; } } STACKTOP = sp; return $$0 | 0; } function ___strdup($s) { $s = $s | 0; var $$0 = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _strlen($s | 0) | 0; $1 = ($0 + 1) | 0; $2 = _malloc($1) | 0; $3 = ($2 | 0) == (0 | 0); if ($3) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } _memcpy($2 | 0, $s | 0, $1 | 0) | 0; $$0 = $2; STACKTOP = sp; return $$0 | 0; } function _strstr($h, $n) { $h = $h | 0; $n = $n | 0; var $$$i = 0, $$$i16 = 0, $$$i8 = 0, $$0 = 0, $$0$lcssa$i = 0, $$0$lcssa$i15 = 0, $$0$lcssa$i7 = 0, $$01$i = 0, $$02$i = 0, $$02$i11 = 0, $$02$i5 = 0, $$02$us$i = 0, $$lcssa$i = 0, $$lcssa$i14 = 0, $$mem$0$us$i = 0, $$pr$i = 0, $$pr$us$i = 0, $0 = 0, $1 = 0, $10 = 0; var $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0; var $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0; var $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0; var $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0; var $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0; var $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $byteset$i = 0, $hw$0$in2$i = 0, $hw$03$i = 0, $hw$03$i10 = 0, $ip$0$ph78$i = 0, $ip$0$ph78146$i = 0; var $ip$0$ph81$i = 0, $ip$1$ip$0$$i = 0, $ip$1$ip$0$i = 0, $ip$1$ph58$i = 0, $ip$1$ph61$i = 0, $jp$0$ph22$ph72$i = 0, $jp$0$ph2266$i = 0, $jp$0$ph82$i = 0, $jp$1$ph11$ph52$i = 0, $jp$1$ph1146$i = 0, $jp$1$ph62$i = 0, $k$030$i = 0, $k$117$i = 0, $k$2$us$i = 0, $k$37$i = 0, $k$37$us$i = 0, $k$4$i = 0, $k$4$us$i = 0, $l$039$i = 0, $mem$0$us$i = 0; var $notlhs$i = 0, $notrhs$us$i = 0, $or$cond$i = 0, $or$cond$i12 = 0, $or$cond3$us$i = 0, $p$0$ph$ph70$i = 0, $p$0$ph$ph70150$i = 0, $p$0$ph$ph73$i = 0, $p$1$p$0$i = 0, $p$1$ph$ph50$i = 0, $p$1$ph$ph53$i = 0, $p$3155$i = 0, $shift$i = 0, $z$0$i = 0, $z$0$us$i = 0, $z$1$i = 0, $z$1$us$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 1056) | 0; $byteset$i = (sp + 1024) | 0; $shift$i = sp; $0 = HEAP8[$n >> 0] | 0; $1 = ($0 << 24) >> 24 == 0; if ($1) { $$0 = $h; STACKTOP = sp; return $$0 | 0; } $2 = ($0 << 24) >> 24; $3 = _strchr($h, $2) | 0; $4 = ($3 | 0) == (0 | 0); if ($4) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $5 = ($n + 1) | 0; $6 = HEAP8[$5 >> 0] | 0; $7 = ($6 << 24) >> 24 == 0; if ($7) { $$0 = $3; STACKTOP = sp; return $$0 | 0; } $8 = ($3 + 1) | 0; $9 = HEAP8[$8 >> 0] | 0; $10 = ($9 << 24) >> 24 == 0; if ($10) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $11 = ($n + 2) | 0; $12 = HEAP8[$11 >> 0] | 0; $13 = ($12 << 24) >> 24 == 0; if ($13) { $14 = $0 & 255; $15 = $14 << 8; $16 = $6 & 255; $17 = $16 | $15; $18 = HEAP8[$3 >> 0] | 0; $19 = $18 & 255; $20 = $9 & 255; $21 = $19 << 8; $22 = $21 | $20; $$01$i = $8; $270 = $9; $hw$0$in2$i = $22; while (1) { $23 = $hw$0$in2$i & 65535; $24 = ($23 | 0) == ($17 | 0); if ($24) { $$0$lcssa$i = $$01$i; $31 = $270; break; } $25 = $23 << 8; $26 = ($$01$i + 1) | 0; $27 = HEAP8[$26 >> 0] | 0; $28 = $27 & 255; $29 = $28 | $25; $30 = ($27 << 24) >> 24 == 0; if ($30) { $$0$lcssa$i = $26; $31 = 0; break; } else { $$01$i = $26; $270 = $27; $hw$0$in2$i = $29; } } $32 = ($31 << 24) >> 24 == 0; $33 = ($$0$lcssa$i + -1) | 0; $$$i = $32 ? 0 : $33; $$0 = $$$i; STACKTOP = sp; return $$0 | 0; } $34 = ($3 + 2) | 0; $35 = HEAP8[$34 >> 0] | 0; $36 = ($35 << 24) >> 24 == 0; if ($36) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $37 = ($n + 3) | 0; $38 = HEAP8[$37 >> 0] | 0; $39 = ($38 << 24) >> 24 == 0; if ($39) { $40 = $0 & 255; $41 = $40 << 24; $42 = $6 & 255; $43 = $42 << 16; $44 = $43 | $41; $45 = $12 & 255; $46 = $45 << 8; $47 = $44 | $46; $48 = HEAP8[$3 >> 0] | 0; $49 = $48 & 255; $50 = $49 << 24; $51 = $9 & 255; $52 = $51 << 16; $53 = $35 & 255; $54 = $53 << 8; $55 = $54 | $52; $56 = $55 | $50; $57 = ($56 | 0) == ($47 | 0); if ($57) { $$0$lcssa$i7 = $34; $$lcssa$i = 0; } else { $$02$i5 = $34; $hw$03$i = $56; while (1) { $58 = ($$02$i5 + 1) | 0; $59 = HEAP8[$58 >> 0] | 0; $60 = $59 & 255; $61 = $60 | $hw$03$i; $62 = $61 << 8; $63 = ($59 << 24) >> 24 == 0; $64 = ($62 | 0) == ($47 | 0); $or$cond$i = $63 | $64; if ($or$cond$i) { $$0$lcssa$i7 = $58; $$lcssa$i = $63; break; } else { $$02$i5 = $58; $hw$03$i = $62; } } } $65 = ($$0$lcssa$i7 + -2) | 0; $$$i8 = $$lcssa$i ? 0 : $65; $$0 = $$$i8; STACKTOP = sp; return $$0 | 0; } $66 = ($3 + 3) | 0; $67 = HEAP8[$66 >> 0] | 0; $68 = ($67 << 24) >> 24 == 0; if ($68) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } $69 = ($n + 4) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = ($70 << 24) >> 24 == 0; if ($71) { $72 = $0 & 255; $73 = $72 << 24; $74 = $6 & 255; $75 = $74 << 16; $76 = $75 | $73; $77 = $12 & 255; $78 = $77 << 8; $79 = $76 | $78; $80 = $38 & 255; $81 = $79 | $80; $82 = HEAP8[$3 >> 0] | 0; $83 = $82 & 255; $84 = $83 << 24; $85 = $9 & 255; $86 = $85 << 16; $87 = $35 & 255; $88 = $87 << 8; $89 = $67 & 255; $90 = $88 | $86; $91 = $90 | $89; $92 = $91 | $84; $93 = ($92 | 0) == ($81 | 0); if ($93) { $$0$lcssa$i15 = $66; $$lcssa$i14 = 0; } else { $$02$i11 = $66; $hw$03$i10 = $92; while (1) { $94 = $hw$03$i10 << 8; $95 = ($$02$i11 + 1) | 0; $96 = HEAP8[$95 >> 0] | 0; $97 = $96 & 255; $98 = $97 | $94; $99 = ($96 << 24) >> 24 == 0; $100 = ($98 | 0) == ($81 | 0); $or$cond$i12 = $99 | $100; if ($or$cond$i12) { $$0$lcssa$i15 = $95; $$lcssa$i14 = $99; break; } else { $$02$i11 = $95; $hw$03$i10 = $98; } } } $101 = ($$0$lcssa$i15 + -3) | 0; $$$i16 = $$lcssa$i14 ? 0 : $101; $$0 = $$$i16; STACKTOP = sp; return $$0 | 0; } HEAP32[($byteset$i + 0) >> 2] = 0 | 0; HEAP32[($byteset$i + 4) >> 2] = 0 | 0; HEAP32[($byteset$i + 8) >> 2] = 0 | 0; HEAP32[($byteset$i + 12) >> 2] = 0 | 0; HEAP32[($byteset$i + 16) >> 2] = 0 | 0; HEAP32[($byteset$i + 20) >> 2] = 0 | 0; HEAP32[($byteset$i + 24) >> 2] = 0 | 0; HEAP32[($byteset$i + 28) >> 2] = 0 | 0; $106 = $0; $l$039$i = 0; while (1) { $102 = ($3 + $l$039$i) | 0; $103 = HEAP8[$102 >> 0] | 0; $104 = ($103 << 24) >> 24 == 0; if ($104) { $$0 = 0; label = 79; break; } $105 = $106 & 255; $107 = $105 & 31; $108 = 1 << $107; $109 = $105 >>> 5; $110 = ($byteset$i + ($109 << 2)) | 0; $111 = HEAP32[$110 >> 2] | 0; $112 = $111 | $108; HEAP32[$110 >> 2] = $112; $113 = ($l$039$i + 1) | 0; $114 = ($shift$i + ($105 << 2)) | 0; HEAP32[$114 >> 2] = $113; $115 = ($n + $113) | 0; $116 = HEAP8[$115 >> 0] | 0; $117 = ($116 << 24) >> 24 == 0; if ($117) { break; } else { $106 = $116; $l$039$i = $113; } } if ((label | 0) == 79) { STACKTOP = sp; return $$0 | 0; } $118 = $113 >>> 0 > 1; L49: do { if ($118) { $271 = 1; $ip$0$ph81$i = -1; $jp$0$ph82$i = 0; L50: while (1) { $272 = $271; $jp$0$ph22$ph72$i = $jp$0$ph82$i; $p$0$ph$ph73$i = 1; while (1) { $273 = $272; $jp$0$ph2266$i = $jp$0$ph22$ph72$i; L54: while (1) { $120 = $273; $k$030$i = 1; while (1) { $125 = ($k$030$i + $ip$0$ph81$i) | 0; $126 = ($n + $125) | 0; $127 = HEAP8[$126 >> 0] | 0; $128 = ($n + $120) | 0; $129 = HEAP8[$128 >> 0] | 0; $130 = ($127 << 24) >> 24 == ($129 << 24) >> 24; if (!$130) { break L54; } $131 = ($k$030$i | 0) == ($p$0$ph$ph73$i | 0); $123 = ($k$030$i + 1) | 0; if ($131) { break; } $122 = ($123 + $jp$0$ph2266$i) | 0; $124 = $122 >>> 0 < $113 >>> 0; if ($124) { $120 = $122; $k$030$i = $123; } else { $ip$0$ph78$i = $ip$0$ph81$i; $p$0$ph$ph70$i = $p$0$ph$ph73$i; break L50; } } $132 = ($jp$0$ph2266$i + $p$0$ph$ph73$i) | 0; $133 = ($132 + 1) | 0; $134 = $133 >>> 0 < $113 >>> 0; if ($134) { $273 = $133; $jp$0$ph2266$i = $132; } else { $ip$0$ph78$i = $ip$0$ph81$i; $p$0$ph$ph70$i = $p$0$ph$ph73$i; break L50; } } $135 = ($127 & 255) > ($129 & 255); $136 = ($120 - $ip$0$ph81$i) | 0; if (!$135) { break; } $119 = ($120 + 1) | 0; $121 = $119 >>> 0 < $113 >>> 0; if ($121) { $272 = $119; $jp$0$ph22$ph72$i = $120; $p$0$ph$ph73$i = $136; } else { $ip$0$ph78$i = $ip$0$ph81$i; $p$0$ph$ph70$i = $136; break L50; } } $137 = ($jp$0$ph2266$i + 1) | 0; $138 = ($jp$0$ph2266$i + 2) | 0; $139 = $138 >>> 0 < $113 >>> 0; if ($139) { $271 = $138; $ip$0$ph81$i = $jp$0$ph2266$i; $jp$0$ph82$i = $137; } else { $ip$0$ph78$i = $jp$0$ph2266$i; $p$0$ph$ph70$i = 1; break; } } $274 = 1; $ip$1$ph61$i = -1; $jp$1$ph62$i = 0; while (1) { $276 = $274; $jp$1$ph11$ph52$i = $jp$1$ph62$i; $p$1$ph$ph53$i = 1; while (1) { $275 = $276; $jp$1$ph1146$i = $jp$1$ph11$ph52$i; L69: while (1) { $147 = $275; $k$117$i = 1; while (1) { $143 = ($k$117$i + $ip$1$ph61$i) | 0; $144 = ($n + $143) | 0; $145 = HEAP8[$144 >> 0] | 0; $146 = ($n + $147) | 0; $148 = HEAP8[$146 >> 0] | 0; $149 = ($145 << 24) >> 24 == ($148 << 24) >> 24; if (!$149) { break L69; } $150 = ($k$117$i | 0) == ($p$1$ph$ph53$i | 0); $141 = ($k$117$i + 1) | 0; if ($150) { break; } $140 = ($141 + $jp$1$ph1146$i) | 0; $142 = $140 >>> 0 < $113 >>> 0; if ($142) { $147 = $140; $k$117$i = $141; } else { $ip$0$ph78146$i = $ip$0$ph78$i; $ip$1$ph58$i = $ip$1$ph61$i; $p$0$ph$ph70150$i = $p$0$ph$ph70$i; $p$1$ph$ph50$i = $p$1$ph$ph53$i; break L49; } } $151 = ($jp$1$ph1146$i + $p$1$ph$ph53$i) | 0; $152 = ($151 + 1) | 0; $153 = $152 >>> 0 < $113 >>> 0; if ($153) { $275 = $152; $jp$1$ph1146$i = $151; } else { $ip$0$ph78146$i = $ip$0$ph78$i; $ip$1$ph58$i = $ip$1$ph61$i; $p$0$ph$ph70150$i = $p$0$ph$ph70$i; $p$1$ph$ph50$i = $p$1$ph$ph53$i; break L49; } } $154 = ($145 & 255) < ($148 & 255); $155 = ($147 - $ip$1$ph61$i) | 0; if (!$154) { break; } $156 = ($147 + 1) | 0; $157 = $156 >>> 0 < $113 >>> 0; if ($157) { $276 = $156; $jp$1$ph11$ph52$i = $147; $p$1$ph$ph53$i = $155; } else { $ip$0$ph78146$i = $ip$0$ph78$i; $ip$1$ph58$i = $ip$1$ph61$i; $p$0$ph$ph70150$i = $p$0$ph$ph70$i; $p$1$ph$ph50$i = $155; break L49; } } $158 = ($jp$1$ph1146$i + 1) | 0; $159 = ($jp$1$ph1146$i + 2) | 0; $160 = $159 >>> 0 < $113 >>> 0; if ($160) { $274 = $159; $ip$1$ph61$i = $jp$1$ph1146$i; $jp$1$ph62$i = $158; } else { $ip$0$ph78146$i = $ip$0$ph78$i; $ip$1$ph58$i = $jp$1$ph1146$i; $p$0$ph$ph70150$i = $p$0$ph$ph70$i; $p$1$ph$ph50$i = 1; break; } } } else { $ip$0$ph78146$i = -1; $ip$1$ph58$i = -1; $p$0$ph$ph70150$i = 1; $p$1$ph$ph50$i = 1; } } while (0); $161 = ($ip$1$ph58$i + 1) | 0; $162 = ($ip$0$ph78146$i + 1) | 0; $163 = $161 >>> 0 > $162 >>> 0; $p$1$p$0$i = $163 ? $p$1$ph$ph50$i : $p$0$ph$ph70150$i; $ip$1$ip$0$i = $163 ? $ip$1$ph58$i : $ip$0$ph78146$i; $164 = ($n + $p$1$p$0$i) | 0; $165 = ($ip$1$ip$0$i + 1) | 0; $166 = _memcmp($n, $164, $165) | 0; $167 = ($166 | 0) == 0; if ($167) { $173 = ($113 - $p$1$p$0$i) | 0; $174 = $113 | 63; $notlhs$i = ($113 | 0) == ($p$1$p$0$i | 0); if ($notlhs$i) { $228 = $174; $p$3155$i = $113; } else { $$02$us$i = $3; $mem$0$us$i = 0; $z$0$us$i = $3; L83: while (1) { $176 = $z$0$us$i; $177 = $$02$us$i; $178 = ($176 - $177) | 0; $179 = $178 >>> 0 < $113 >>> 0; do { if ($179) { $180 = _memchr($z$0$us$i, 0, $174) | 0; $181 = ($180 | 0) == (0 | 0); if ($181) { $185 = ($z$0$us$i + $174) | 0; $z$1$us$i = $185; break; } else { $182 = $180; $183 = ($182 - $177) | 0; $184 = $183 >>> 0 < $113 >>> 0; if ($184) { $$0 = 0; label = 79; break L83; } else { $z$1$us$i = $180; break; } } } else { $z$1$us$i = $z$0$us$i; } } while (0); $186 = ($$02$us$i + $l$039$i) | 0; $187 = HEAP8[$186 >> 0] | 0; $188 = $187 & 255; $189 = $188 >>> 5; $190 = ($byteset$i + ($189 << 2)) | 0; $191 = HEAP32[$190 >> 2] | 0; $192 = $188 & 31; $193 = 1 << $192; $194 = $193 & $191; $195 = ($194 | 0) == 0; if ($195) { $223 = ($$02$us$i + $113) | 0; $$02$us$i = $223; $mem$0$us$i = 0; $z$0$us$i = $z$1$us$i; continue; } $196 = ($shift$i + ($188 << 2)) | 0; $197 = HEAP32[$196 >> 2] | 0; $198 = ($113 - $197) | 0; $199 = ($113 | 0) == ($197 | 0); if (!$199) { $notrhs$us$i = ($mem$0$us$i | 0) != 0; $200 = $198 >>> 0 < $p$1$p$0$i >>> 0; $or$cond3$us$i = $notrhs$us$i & $200; $k$2$us$i = $or$cond3$us$i ? $173 : $198; $201 = ($$02$us$i + $k$2$us$i) | 0; $$02$us$i = $201; $mem$0$us$i = 0; $z$0$us$i = $z$1$us$i; continue; } $202 = $165 >>> 0 > $mem$0$us$i >>> 0; $$mem$0$us$i = $202 ? $165 : $mem$0$us$i; $203 = ($n + $$mem$0$us$i) | 0; $204 = HEAP8[$203 >> 0] | 0; $205 = ($204 << 24) >> 24 == 0; L97: do { if ($205) { $k$4$us$i = $165; } else { $$pr$us$i = $204; $k$37$us$i = $$mem$0$us$i; while (1) { $210 = ($$02$us$i + $k$37$us$i) | 0; $211 = HEAP8[$210 >> 0] | 0; $212 = ($$pr$us$i << 24) >> 24 == ($211 << 24) >> 24; $207 = ($k$37$us$i + 1) | 0; if (!$212) { break; } $206 = ($n + $207) | 0; $208 = HEAP8[$206 >> 0] | 0; $209 = ($208 << 24) >> 24 == 0; if ($209) { $k$4$us$i = $165; break L97; } else { $$pr$us$i = $208; $k$37$us$i = $207; } } $213 = ($k$37$us$i - $ip$1$ip$0$i) | 0; $214 = ($$02$us$i + $213) | 0; $$02$us$i = $214; $mem$0$us$i = 0; $z$0$us$i = $z$1$us$i; continue L83; } } while (0); while (1) { $215 = $k$4$us$i >>> 0 > $mem$0$us$i >>> 0; if (!$215) { $$0 = $$02$us$i; label = 79; break L83; } $216 = ($k$4$us$i + -1) | 0; $217 = ($n + $216) | 0; $218 = HEAP8[$217 >> 0] | 0; $219 = ($$02$us$i + $216) | 0; $220 = HEAP8[$219 >> 0] | 0; $221 = ($218 << 24) >> 24 == ($220 << 24) >> 24; if ($221) { $k$4$us$i = $216; } else { break; } } $222 = ($$02$us$i + $p$1$p$0$i) | 0; $$02$us$i = $222; $mem$0$us$i = $173; $z$0$us$i = $z$1$us$i; } if ((label | 0) == 79) { STACKTOP = sp; return $$0 | 0; } } } else { $168 = ($113 - $ip$1$ip$0$i) | 0; $169 = ($168 + -1) | 0; $170 = $ip$1$ip$0$i >>> 0 > $169 >>> 0; $ip$1$ip$0$$i = $170 ? $ip$1$ip$0$i : $169; $171 = ($ip$1$ip$0$$i + 1) | 0; $172 = $113 | 63; $228 = $172; $p$3155$i = $171; } $175 = ($n + $165) | 0; $$02$i = $3; $z$0$i = $3; L110: while (1) { $224 = $z$0$i; $225 = $$02$i; $226 = ($224 - $225) | 0; $227 = $226 >>> 0 < $113 >>> 0; do { if ($227) { $229 = _memchr($z$0$i, 0, $228) | 0; $230 = ($229 | 0) == (0 | 0); if ($230) { $234 = ($z$0$i + $228) | 0; $z$1$i = $234; break; } else { $231 = $229; $232 = ($231 - $225) | 0; $233 = $232 >>> 0 < $113 >>> 0; if ($233) { $$0 = 0; label = 79; break L110; } else { $z$1$i = $229; break; } } } else { $z$1$i = $z$0$i; } } while (0); $235 = ($$02$i + $l$039$i) | 0; $236 = HEAP8[$235 >> 0] | 0; $237 = $236 & 255; $238 = $237 >>> 5; $239 = ($byteset$i + ($238 << 2)) | 0; $240 = HEAP32[$239 >> 2] | 0; $241 = $237 & 31; $242 = 1 << $241; $243 = $242 & $240; $244 = ($243 | 0) == 0; if ($244) { $250 = ($$02$i + $113) | 0; $$02$i = $250; $z$0$i = $z$1$i; continue; } $245 = ($shift$i + ($237 << 2)) | 0; $246 = HEAP32[$245 >> 2] | 0; $247 = ($113 | 0) == ($246 | 0); if (!$247) { $248 = ($113 - $246) | 0; $249 = ($$02$i + $248) | 0; $$02$i = $249; $z$0$i = $z$1$i; continue; } $251 = HEAP8[$175 >> 0] | 0; $252 = ($251 << 24) >> 24 == 0; L124: do { if ($252) { $k$4$i = $165; } else { $$pr$i = $251; $k$37$i = $165; while (1) { $257 = ($$02$i + $k$37$i) | 0; $258 = HEAP8[$257 >> 0] | 0; $259 = ($$pr$i << 24) >> 24 == ($258 << 24) >> 24; $254 = ($k$37$i + 1) | 0; if (!$259) { break; } $253 = ($n + $254) | 0; $255 = HEAP8[$253 >> 0] | 0; $256 = ($255 << 24) >> 24 == 0; if ($256) { $k$4$i = $165; break L124; } else { $$pr$i = $255; $k$37$i = $254; } } $260 = ($k$37$i - $ip$1$ip$0$i) | 0; $261 = ($$02$i + $260) | 0; $$02$i = $261; $z$0$i = $z$1$i; continue L110; } } while (0); while (1) { $262 = ($k$4$i | 0) == 0; if ($262) { $$0 = $$02$i; label = 79; break L110; } $263 = ($k$4$i + -1) | 0; $264 = ($n + $263) | 0; $265 = HEAP8[$264 >> 0] | 0; $266 = ($$02$i + $263) | 0; $267 = HEAP8[$266 >> 0] | 0; $268 = ($265 << 24) >> 24 == ($267 << 24) >> 24; if ($268) { $k$4$i = $263; } else { break; } } $269 = ($$02$i + $p$3155$i) | 0; $$02$i = $269; $z$0$i = $z$1$i; } if ((label | 0) == 79) { STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _malloc($bytes) { $bytes = $bytes | 0; var $$$i = 0, $$3$i = 0, $$4$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i25 = 0, $$pre$i25$i = 0, $$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, $$pre57$i$i = 0, $$rsize$0$i = 0, $$rsize$3$i = 0, $$sum = 0, $$sum$i$i = 0, $$sum$i$i$i = 0; var $$sum$i14$i = 0, $$sum$i15$i = 0, $$sum$i18$i = 0, $$sum$i21$i = 0, $$sum$i2334 = 0, $$sum$i32 = 0, $$sum$i35 = 0, $$sum1 = 0, $$sum1$i = 0, $$sum1$i$i = 0, $$sum1$i16$i = 0, $$sum1$i22$i = 0, $$sum1$i24 = 0, $$sum10 = 0, $$sum10$i = 0, $$sum10$i$i = 0, $$sum10$pre$i$i = 0, $$sum107$i = 0, $$sum108$i = 0, $$sum109$i = 0; var $$sum11$i = 0, $$sum11$i$i = 0, $$sum11$i24$i = 0, $$sum110$i = 0, $$sum111$i = 0, $$sum1112 = 0, $$sum112$i = 0, $$sum113$i = 0, $$sum114$i = 0, $$sum115$i = 0, $$sum116$i = 0, $$sum117$i = 0, $$sum118$i = 0, $$sum119$i = 0, $$sum12$i = 0, $$sum12$i$i = 0, $$sum120$i = 0, $$sum13$i = 0, $$sum13$i$i = 0, $$sum14$i$i = 0; var $$sum14$pre$i = 0, $$sum15$i = 0, $$sum15$i$i = 0, $$sum16$i = 0, $$sum16$i$i = 0, $$sum17$i = 0, $$sum17$i$i = 0, $$sum18$i = 0, $$sum1819$i$i = 0, $$sum2 = 0, $$sum2$i = 0, $$sum2$i$i = 0, $$sum2$i$i$i = 0, $$sum2$i17$i = 0, $$sum2$i19$i = 0, $$sum2$i23$i = 0, $$sum2$pre$i = 0, $$sum20$i$i = 0, $$sum21$i$i = 0, $$sum22$i$i = 0; var $$sum23$i$i = 0, $$sum24$i$i = 0, $$sum25$i$i = 0, $$sum26$pre$i$i = 0, $$sum27$i$i = 0, $$sum28$i$i = 0, $$sum29$i$i = 0, $$sum3$i = 0, $$sum3$i$i = 0, $$sum3$i27 = 0, $$sum30$i$i = 0, $$sum3132$i$i = 0, $$sum34$i$i = 0, $$sum3536$i$i = 0, $$sum3738$i$i = 0, $$sum39$i$i = 0, $$sum4 = 0, $$sum4$i = 0, $$sum4$i28 = 0, $$sum40$i$i = 0; var $$sum41$i$i = 0, $$sum42$i$i = 0, $$sum5$i = 0, $$sum5$i$i = 0, $$sum56 = 0, $$sum6$i = 0, $$sum67$i$i = 0, $$sum7$i = 0, $$sum8$i = 0, $$sum8$pre = 0, $$sum9 = 0, $$sum9$i = 0, $$sum9$i$i = 0, $$tsize$1$i = 0, $$v$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0; var $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0; var $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0; var $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0; var $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0; var $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0; var $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0; var $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0; var $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0; var $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0; var $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0; var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0; var $247 = 0, $248 = 0, $249 = 0, $25 = 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; var $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0; var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0; var $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0; var $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0; var $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0; var $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0; var $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0; var $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0; var $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0; var $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0; var $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0; var $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0; var $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0; var $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0; var $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0; var $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0; var $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0; var $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0; var $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0; var $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0; var $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0; var $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0; var $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0; var $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0; var $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0; var $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0; var $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0; var $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0; var $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0; var $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0; var $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0; var $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0; var $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0; var $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0; var $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0; var $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0; var $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0; var $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0; var $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0; var $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0; var $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0; var $I1$0$c$i$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; var $T$024$i = 0, $T$051$i$i = 0, $br$0$i = 0, $cond$i = 0, $cond$i$i = 0, $cond$i21 = 0, $exitcond$i$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0, $notlhs$i = 0, $notrhs$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0, $or$cond$i29 = 0, $or$cond1$i = 0, $or$cond10$i = 0, $or$cond19$i = 0, $or$cond2$i = 0; var $or$cond49$i = 0, $or$cond5$i = 0, $or$cond6$i = 0, $or$cond8$not$i = 0, $or$cond9$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; var $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; var $v$330$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $bytes >>> 0 < 245; do { if ($0) { $1 = $bytes >>> 0 < 11; if ($1) { $5 = 16; } else { $2 = ($bytes + 11) | 0; $3 = $2 & -8; $5 = $3; } $4 = $5 >>> 3; $6 = HEAP32[133240 >> 2] | 0; $7 = $6 >>> $4; $8 = $7 & 3; $9 = ($8 | 0) == 0; if (!$9) { $10 = $7 & 1; $11 = $10 ^ 1; $12 = ($11 + $4) | 0; $13 = $12 << 1; $14 = (((133240 + ($13 << 2)) | 0) + 40) | 0; $$sum10 = ($13 + 2) | 0; $15 = (((133240 + ($$sum10 << 2)) | 0) + 40) | 0; $16 = HEAP32[$15 >> 2] | 0; $17 = ($16 + 8) | 0; $18 = HEAP32[$17 >> 2] | 0; $19 = ($14 | 0) == ($18 | 0); do { if ($19) { $20 = 1 << $12; $21 = $20 ^ -1; $22 = $6 & $21; HEAP32[133240 >> 2] = $22; } else { $23 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $24 = $18 >>> 0 < $23 >>> 0; if ($24) { _abort(); // unreachable; } $25 = ($18 + 12) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = ($26 | 0) == ($16 | 0); if ($27) { HEAP32[$25 >> 2] = $14; HEAP32[$15 >> 2] = $18; break; } else { _abort(); // unreachable; } } } while (0); $28 = $12 << 3; $29 = $28 | 3; $30 = ($16 + 4) | 0; HEAP32[$30 >> 2] = $29; $$sum1112 = $28 | 4; $31 = ($16 + $$sum1112) | 0; $32 = HEAP32[$31 >> 2] | 0; $33 = $32 | 1; HEAP32[$31 >> 2] = $33; $mem$0 = $17; STACKTOP = sp; return $mem$0 | 0; } $34 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $35 = $5 >>> 0 > $34 >>> 0; if ($35) { $36 = ($7 | 0) == 0; if (!$36) { $37 = $7 << $4; $38 = 2 << $4; $39 = (0 - $38) | 0; $40 = $38 | $39; $41 = $37 & $40; $42 = (0 - $41) | 0; $43 = $41 & $42; $44 = ($43 + -1) | 0; $45 = $44 >>> 12; $46 = $45 & 16; $47 = $44 >>> $46; $48 = $47 >>> 5; $49 = $48 & 8; $50 = $49 | $46; $51 = $47 >>> $49; $52 = $51 >>> 2; $53 = $52 & 4; $54 = $50 | $53; $55 = $51 >>> $53; $56 = $55 >>> 1; $57 = $56 & 2; $58 = $54 | $57; $59 = $55 >>> $57; $60 = $59 >>> 1; $61 = $60 & 1; $62 = $58 | $61; $63 = $59 >>> $61; $64 = ($62 + $63) | 0; $65 = $64 << 1; $66 = (((133240 + ($65 << 2)) | 0) + 40) | 0; $$sum4 = ($65 + 2) | 0; $67 = (((133240 + ($$sum4 << 2)) | 0) + 40) | 0; $68 = HEAP32[$67 >> 2] | 0; $69 = ($68 + 8) | 0; $70 = HEAP32[$69 >> 2] | 0; $71 = ($66 | 0) == ($70 | 0); do { if ($71) { $72 = 1 << $64; $73 = $72 ^ -1; $74 = $6 & $73; HEAP32[133240 >> 2] = $74; } else { $75 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $76 = $70 >>> 0 < $75 >>> 0; if ($76) { _abort(); // unreachable; } $77 = ($70 + 12) | 0; $78 = HEAP32[$77 >> 2] | 0; $79 = ($78 | 0) == ($68 | 0); if ($79) { HEAP32[$77 >> 2] = $66; HEAP32[$67 >> 2] = $70; break; } else { _abort(); // unreachable; } } } while (0); $80 = $64 << 3; $81 = ($80 - $5) | 0; $82 = $5 | 3; $83 = ($68 + 4) | 0; HEAP32[$83 >> 2] = $82; $84 = ($68 + $5) | 0; $85 = $81 | 1; $$sum56 = $5 | 4; $86 = ($68 + $$sum56) | 0; HEAP32[$86 >> 2] = $85; $87 = ($68 + $80) | 0; HEAP32[$87 >> 2] = $81; $88 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $89 = ($88 | 0) == 0; if (!$89) { $90 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $91 = $88 >>> 3; $92 = $91 << 1; $93 = (((133240 + ($92 << 2)) | 0) + 40) | 0; $94 = HEAP32[133240 >> 2] | 0; $95 = 1 << $91; $96 = $94 & $95; $97 = ($96 | 0) == 0; if ($97) { $98 = $94 | $95; HEAP32[133240 >> 2] = $98; $$sum8$pre = ($92 + 2) | 0; $$pre = (((133240 + ($$sum8$pre << 2)) | 0) + 40) | 0; $$pre$phiZ2D = $$pre; $F4$0 = $93; } else { $$sum9 = ($92 + 2) | 0; $99 = (((133240 + ($$sum9 << 2)) | 0) + 40) | 0; $100 = HEAP32[$99 >> 2] | 0; $101 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $102 = $100 >>> 0 < $101 >>> 0; if ($102) { _abort(); // unreachable; } else { $$pre$phiZ2D = $99; $F4$0 = $100; } } HEAP32[$$pre$phiZ2D >> 2] = $90; $103 = ($F4$0 + 12) | 0; HEAP32[$103 >> 2] = $90; $104 = ($90 + 8) | 0; HEAP32[$104 >> 2] = $F4$0; $105 = ($90 + 12) | 0; HEAP32[$105 >> 2] = $93; } HEAP32[((133240 + 8) | 0) >> 2] = $81; HEAP32[((133240 + 20) | 0) >> 2] = $84; $mem$0 = $69; STACKTOP = sp; return $mem$0 | 0; } $106 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $107 = ($106 | 0) == 0; if ($107) { $nb$0 = $5; } else { $108 = (0 - $106) | 0; $109 = $106 & $108; $110 = ($109 + -1) | 0; $111 = $110 >>> 12; $112 = $111 & 16; $113 = $110 >>> $112; $114 = $113 >>> 5; $115 = $114 & 8; $116 = $115 | $112; $117 = $113 >>> $115; $118 = $117 >>> 2; $119 = $118 & 4; $120 = $116 | $119; $121 = $117 >>> $119; $122 = $121 >>> 1; $123 = $122 & 2; $124 = $120 | $123; $125 = $121 >>> $123; $126 = $125 >>> 1; $127 = $126 & 1; $128 = $124 | $127; $129 = $125 >>> $127; $130 = ($128 + $129) | 0; $131 = (((133240 + ($130 << 2)) | 0) + 304) | 0; $132 = HEAP32[$131 >> 2] | 0; $133 = ($132 + 4) | 0; $134 = HEAP32[$133 >> 2] | 0; $135 = $134 & -8; $136 = ($135 - $5) | 0; $rsize$0$i = $136; $t$0$i = $132; $v$0$i = $132; while (1) { $137 = ($t$0$i + 16) | 0; $138 = HEAP32[$137 >> 2] | 0; $139 = ($138 | 0) == (0 | 0); if ($139) { $140 = ($t$0$i + 20) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = ($141 | 0) == (0 | 0); if ($142) { break; } else { $144 = $141; } } else { $144 = $138; } $143 = ($144 + 4) | 0; $145 = HEAP32[$143 >> 2] | 0; $146 = $145 & -8; $147 = ($146 - $5) | 0; $148 = $147 >>> 0 < $rsize$0$i >>> 0; $$rsize$0$i = $148 ? $147 : $rsize$0$i; $$v$0$i = $148 ? $144 : $v$0$i; $rsize$0$i = $$rsize$0$i; $t$0$i = $144; $v$0$i = $$v$0$i; } $149 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $150 = $v$0$i >>> 0 < $149 >>> 0; if ($150) { _abort(); // unreachable; } $151 = ($v$0$i + $5) | 0; $152 = $v$0$i >>> 0 < $151 >>> 0; if (!$152) { _abort(); // unreachable; } $153 = ($v$0$i + 24) | 0; $154 = HEAP32[$153 >> 2] | 0; $155 = ($v$0$i + 12) | 0; $156 = HEAP32[$155 >> 2] | 0; $157 = ($156 | 0) == ($v$0$i | 0); do { if ($157) { $167 = ($v$0$i + 20) | 0; $168 = HEAP32[$167 >> 2] | 0; $169 = ($168 | 0) == (0 | 0); if ($169) { $170 = ($v$0$i + 16) | 0; $171 = HEAP32[$170 >> 2] | 0; $172 = ($171 | 0) == (0 | 0); if ($172) { $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; $175 = ($174 | 0) == (0 | 0); if (!$175) { $R$0$i = $174; $RP$0$i = $173; continue; } $176 = ($R$0$i + 16) | 0; $177 = HEAP32[$176 >> 2] | 0; $178 = ($177 | 0) == (0 | 0); if ($178) { break; } else { $R$0$i = $177; $RP$0$i = $176; } } $179 = $RP$0$i >>> 0 < $149 >>> 0; if ($179) { _abort(); // unreachable; } else { HEAP32[$RP$0$i >> 2] = 0; $R$1$i = $R$0$i; break; } } else { $158 = ($v$0$i + 8) | 0; $159 = HEAP32[$158 >> 2] | 0; $160 = $159 >>> 0 < $149 >>> 0; if ($160) { _abort(); // unreachable; } $161 = ($159 + 12) | 0; $162 = HEAP32[$161 >> 2] | 0; $163 = ($162 | 0) == ($v$0$i | 0); if (!$163) { _abort(); // unreachable; } $164 = ($156 + 8) | 0; $165 = HEAP32[$164 >> 2] | 0; $166 = ($165 | 0) == ($v$0$i | 0); if ($166) { HEAP32[$161 >> 2] = $156; HEAP32[$164 >> 2] = $159; $R$1$i = $156; break; } else { _abort(); // unreachable; } } } while (0); $180 = ($154 | 0) == (0 | 0); do { if (!$180) { $181 = ($v$0$i + 28) | 0; $182 = HEAP32[$181 >> 2] | 0; $183 = (((133240 + ($182 << 2)) | 0) + 304) | 0; $184 = HEAP32[$183 >> 2] | 0; $185 = ($v$0$i | 0) == ($184 | 0); if ($185) { HEAP32[$183 >> 2] = $R$1$i; $cond$i = ($R$1$i | 0) == (0 | 0); if ($cond$i) { $186 = 1 << $182; $187 = $186 ^ -1; $188 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $189 = $188 & $187; HEAP32[((133240 + 4) | 0) >> 2] = $189; break; } } else { $190 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $191 = $154 >>> 0 < $190 >>> 0; if ($191) { _abort(); // unreachable; } $192 = ($154 + 16) | 0; $193 = HEAP32[$192 >> 2] | 0; $194 = ($193 | 0) == ($v$0$i | 0); if ($194) { HEAP32[$192 >> 2] = $R$1$i; } else { $195 = ($154 + 20) | 0; HEAP32[$195 >> 2] = $R$1$i; } $196 = ($R$1$i | 0) == (0 | 0); if ($196) { break; } } $197 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $198 = $R$1$i >>> 0 < $197 >>> 0; if ($198) { _abort(); // unreachable; } $199 = ($R$1$i + 24) | 0; HEAP32[$199 >> 2] = $154; $200 = ($v$0$i + 16) | 0; $201 = HEAP32[$200 >> 2] | 0; $202 = ($201 | 0) == (0 | 0); do { if (!$202) { $203 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $204 = $201 >>> 0 < $203 >>> 0; if ($204) { _abort(); // unreachable; } else { $205 = ($R$1$i + 16) | 0; HEAP32[$205 >> 2] = $201; $206 = ($201 + 24) | 0; HEAP32[$206 >> 2] = $R$1$i; break; } } } while (0); $207 = ($v$0$i + 20) | 0; $208 = HEAP32[$207 >> 2] | 0; $209 = ($208 | 0) == (0 | 0); if (!$209) { $210 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $211 = $208 >>> 0 < $210 >>> 0; if ($211) { _abort(); // unreachable; } else { $212 = ($R$1$i + 20) | 0; HEAP32[$212 >> 2] = $208; $213 = ($208 + 24) | 0; HEAP32[$213 >> 2] = $R$1$i; break; } } } } while (0); $214 = $rsize$0$i >>> 0 < 16; if ($214) { $215 = ($rsize$0$i + $5) | 0; $216 = $215 | 3; $217 = ($v$0$i + 4) | 0; HEAP32[$217 >> 2] = $216; $$sum4$i = ($215 + 4) | 0; $218 = ($v$0$i + $$sum4$i) | 0; $219 = HEAP32[$218 >> 2] | 0; $220 = $219 | 1; HEAP32[$218 >> 2] = $220; } else { $221 = $5 | 3; $222 = ($v$0$i + 4) | 0; HEAP32[$222 >> 2] = $221; $223 = $rsize$0$i | 1; $$sum$i35 = $5 | 4; $224 = ($v$0$i + $$sum$i35) | 0; HEAP32[$224 >> 2] = $223; $$sum1$i = ($rsize$0$i + $5) | 0; $225 = ($v$0$i + $$sum1$i) | 0; HEAP32[$225 >> 2] = $rsize$0$i; $226 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $227 = ($226 | 0) == 0; if (!$227) { $228 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $229 = $226 >>> 3; $230 = $229 << 1; $231 = (((133240 + ($230 << 2)) | 0) + 40) | 0; $232 = HEAP32[133240 >> 2] | 0; $233 = 1 << $229; $234 = $232 & $233; $235 = ($234 | 0) == 0; if ($235) { $236 = $232 | $233; HEAP32[133240 >> 2] = $236; $$sum2$pre$i = ($230 + 2) | 0; $$pre$i = (((133240 + ($$sum2$pre$i << 2)) | 0) + 40) | 0; $$pre$phi$iZ2D = $$pre$i; $F1$0$i = $231; } else { $$sum3$i = ($230 + 2) | 0; $237 = (((133240 + ($$sum3$i << 2)) | 0) + 40) | 0; $238 = HEAP32[$237 >> 2] | 0; $239 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $240 = $238 >>> 0 < $239 >>> 0; if ($240) { _abort(); // unreachable; } else { $$pre$phi$iZ2D = $237; $F1$0$i = $238; } } HEAP32[$$pre$phi$iZ2D >> 2] = $228; $241 = ($F1$0$i + 12) | 0; HEAP32[$241 >> 2] = $228; $242 = ($228 + 8) | 0; HEAP32[$242 >> 2] = $F1$0$i; $243 = ($228 + 12) | 0; HEAP32[$243 >> 2] = $231; } HEAP32[((133240 + 8) | 0) >> 2] = $rsize$0$i; HEAP32[((133240 + 20) | 0) >> 2] = $151; } $244 = ($v$0$i + 8) | 0; $mem$0 = $244; STACKTOP = sp; return $mem$0 | 0; } } else { $nb$0 = $5; } } else { $245 = $bytes >>> 0 > 4294967231; if ($245) { $nb$0 = -1; } else { $246 = ($bytes + 11) | 0; $247 = $246 & -8; $248 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $249 = ($248 | 0) == 0; if ($249) { $nb$0 = $247; } else { $250 = (0 - $247) | 0; $251 = $246 >>> 8; $252 = ($251 | 0) == 0; if ($252) { $idx$0$i = 0; } else { $253 = $247 >>> 0 > 16777215; if ($253) { $idx$0$i = 31; } else { $254 = ($251 + 1048320) | 0; $255 = $254 >>> 16; $256 = $255 & 8; $257 = $251 << $256; $258 = ($257 + 520192) | 0; $259 = $258 >>> 16; $260 = $259 & 4; $261 = $260 | $256; $262 = $257 << $260; $263 = ($262 + 245760) | 0; $264 = $263 >>> 16; $265 = $264 & 2; $266 = $261 | $265; $267 = (14 - $266) | 0; $268 = $262 << $265; $269 = $268 >>> 15; $270 = ($267 + $269) | 0; $271 = $270 << 1; $272 = ($270 + 7) | 0; $273 = $247 >>> $272; $274 = $273 & 1; $275 = $274 | $271; $idx$0$i = $275; } } $276 = (((133240 + ($idx$0$i << 2)) | 0) + 304) | 0; $277 = HEAP32[$276 >> 2] | 0; $278 = ($277 | 0) == (0 | 0); L126: do { if ($278) { $rsize$2$i = $250; $t$1$i = 0; $v$2$i = 0; } else { $279 = ($idx$0$i | 0) == 31; if ($279) { $283 = 0; } else { $280 = $idx$0$i >>> 1; $281 = (25 - $280) | 0; $283 = $281; } $282 = $247 << $283; $rsize$0$i15 = $250; $rst$0$i = 0; $sizebits$0$i = $282; $t$0$i14 = $277; $v$0$i16 = 0; while (1) { $284 = ($t$0$i14 + 4) | 0; $285 = HEAP32[$284 >> 2] | 0; $286 = $285 & -8; $287 = ($286 - $247) | 0; $288 = $287 >>> 0 < $rsize$0$i15 >>> 0; if ($288) { $289 = ($286 | 0) == ($247 | 0); if ($289) { $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; } $290 = ($t$0$i14 + 20) | 0; $291 = HEAP32[$290 >> 2] | 0; $292 = $sizebits$0$i >>> 31; $293 = ((($t$0$i14 + ($292 << 2)) | 0) + 16) | 0; $294 = HEAP32[$293 >> 2] | 0; $295 = ($291 | 0) == (0 | 0); $296 = ($291 | 0) == ($294 | 0); $or$cond$i = $295 | $296; $rst$1$i = $or$cond$i ? $rst$0$i : $291; $297 = ($294 | 0) == (0 | 0); $298 = $sizebits$0$i << 1; if ($297) { $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 = $298; $t$0$i14 = $294; $v$0$i16 = $v$1$i; } } } } while (0); $299 = ($t$1$i | 0) == (0 | 0); $300 = ($v$2$i | 0) == (0 | 0); $or$cond19$i = $299 & $300; if ($or$cond19$i) { $301 = 2 << $idx$0$i; $302 = (0 - $301) | 0; $303 = $301 | $302; $304 = $248 & $303; $305 = ($304 | 0) == 0; if ($305) { $nb$0 = $247; break; } $306 = (0 - $304) | 0; $307 = $304 & $306; $308 = ($307 + -1) | 0; $309 = $308 >>> 12; $310 = $309 & 16; $311 = $308 >>> $310; $312 = $311 >>> 5; $313 = $312 & 8; $314 = $313 | $310; $315 = $311 >>> $313; $316 = $315 >>> 2; $317 = $316 & 4; $318 = $314 | $317; $319 = $315 >>> $317; $320 = $319 >>> 1; $321 = $320 & 2; $322 = $318 | $321; $323 = $319 >>> $321; $324 = $323 >>> 1; $325 = $324 & 1; $326 = $322 | $325; $327 = $323 >>> $325; $328 = ($326 + $327) | 0; $329 = (((133240 + ($328 << 2)) | 0) + 304) | 0; $330 = HEAP32[$329 >> 2] | 0; $t$2$ph$i = $330; } else { $t$2$ph$i = $t$1$i; } $331 = ($t$2$ph$i | 0) == (0 | 0); if ($331) { $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) { $332 = ($t$228$i + 4) | 0; $333 = HEAP32[$332 >> 2] | 0; $334 = $333 & -8; $335 = ($334 - $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; $337 = ($t$228$i + 16) | 0; $338 = HEAP32[$337 >> 2] | 0; $339 = ($338 | 0) == (0 | 0); if (!$339) { $rsize$329$i = $$rsize$3$i; $t$228$i = $338; $v$330$i = $t$2$v$3$i; continue; } $340 = ($t$228$i + 20) | 0; $341 = HEAP32[$340 >> 2] | 0; $342 = ($341 | 0) == (0 | 0); if ($342) { $rsize$3$lcssa$i = $$rsize$3$i; $v$3$lcssa$i = $t$2$v$3$i; break; } else { $rsize$329$i = $$rsize$3$i; $t$228$i = $341; $v$330$i = $t$2$v$3$i; } } } $343 = ($v$3$lcssa$i | 0) == (0 | 0); if ($343) { $nb$0 = $247; } else { $344 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $345 = ($344 - $247) | 0; $346 = $rsize$3$lcssa$i >>> 0 < $345 >>> 0; if ($346) { $347 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $348 = $v$3$lcssa$i >>> 0 < $347 >>> 0; if ($348) { _abort(); // unreachable; } $349 = ($v$3$lcssa$i + $247) | 0; $350 = $v$3$lcssa$i >>> 0 < $349 >>> 0; if (!$350) { _abort(); // unreachable; } $351 = ($v$3$lcssa$i + 24) | 0; $352 = HEAP32[$351 >> 2] | 0; $353 = ($v$3$lcssa$i + 12) | 0; $354 = HEAP32[$353 >> 2] | 0; $355 = ($354 | 0) == ($v$3$lcssa$i | 0); do { if ($355) { $365 = ($v$3$lcssa$i + 20) | 0; $366 = HEAP32[$365 >> 2] | 0; $367 = ($366 | 0) == (0 | 0); if ($367) { $368 = ($v$3$lcssa$i + 16) | 0; $369 = HEAP32[$368 >> 2] | 0; $370 = ($369 | 0) == (0 | 0); if ($370) { $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; $373 = ($372 | 0) == (0 | 0); if (!$373) { $R$0$i18 = $372; $RP$0$i17 = $371; continue; } $374 = ($R$0$i18 + 16) | 0; $375 = HEAP32[$374 >> 2] | 0; $376 = ($375 | 0) == (0 | 0); if ($376) { break; } else { $R$0$i18 = $375; $RP$0$i17 = $374; } } $377 = $RP$0$i17 >>> 0 < $347 >>> 0; if ($377) { _abort(); // unreachable; } else { HEAP32[$RP$0$i17 >> 2] = 0; $R$1$i20 = $R$0$i18; break; } } else { $356 = ($v$3$lcssa$i + 8) | 0; $357 = HEAP32[$356 >> 2] | 0; $358 = $357 >>> 0 < $347 >>> 0; if ($358) { _abort(); // unreachable; } $359 = ($357 + 12) | 0; $360 = HEAP32[$359 >> 2] | 0; $361 = ($360 | 0) == ($v$3$lcssa$i | 0); if (!$361) { _abort(); // unreachable; } $362 = ($354 + 8) | 0; $363 = HEAP32[$362 >> 2] | 0; $364 = ($363 | 0) == ($v$3$lcssa$i | 0); if ($364) { HEAP32[$359 >> 2] = $354; HEAP32[$362 >> 2] = $357; $R$1$i20 = $354; break; } else { _abort(); // unreachable; } } } while (0); $378 = ($352 | 0) == (0 | 0); do { if (!$378) { $379 = ($v$3$lcssa$i + 28) | 0; $380 = HEAP32[$379 >> 2] | 0; $381 = (((133240 + ($380 << 2)) | 0) + 304) | 0; $382 = HEAP32[$381 >> 2] | 0; $383 = ($v$3$lcssa$i | 0) == ($382 | 0); if ($383) { HEAP32[$381 >> 2] = $R$1$i20; $cond$i21 = ($R$1$i20 | 0) == (0 | 0); if ($cond$i21) { $384 = 1 << $380; $385 = $384 ^ -1; $386 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $387 = $386 & $385; HEAP32[((133240 + 4) | 0) >> 2] = $387; break; } } else { $388 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $389 = $352 >>> 0 < $388 >>> 0; if ($389) { _abort(); // unreachable; } $390 = ($352 + 16) | 0; $391 = HEAP32[$390 >> 2] | 0; $392 = ($391 | 0) == ($v$3$lcssa$i | 0); if ($392) { HEAP32[$390 >> 2] = $R$1$i20; } else { $393 = ($352 + 20) | 0; HEAP32[$393 >> 2] = $R$1$i20; } $394 = ($R$1$i20 | 0) == (0 | 0); if ($394) { break; } } $395 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $396 = $R$1$i20 >>> 0 < $395 >>> 0; if ($396) { _abort(); // unreachable; } $397 = ($R$1$i20 + 24) | 0; HEAP32[$397 >> 2] = $352; $398 = ($v$3$lcssa$i + 16) | 0; $399 = HEAP32[$398 >> 2] | 0; $400 = ($399 | 0) == (0 | 0); do { if (!$400) { $401 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $402 = $399 >>> 0 < $401 >>> 0; if ($402) { _abort(); // unreachable; } else { $403 = ($R$1$i20 + 16) | 0; HEAP32[$403 >> 2] = $399; $404 = ($399 + 24) | 0; HEAP32[$404 >> 2] = $R$1$i20; break; } } } while (0); $405 = ($v$3$lcssa$i + 20) | 0; $406 = HEAP32[$405 >> 2] | 0; $407 = ($406 | 0) == (0 | 0); if (!$407) { $408 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $409 = $406 >>> 0 < $408 >>> 0; if ($409) { _abort(); // unreachable; } else { $410 = ($R$1$i20 + 20) | 0; HEAP32[$410 >> 2] = $406; $411 = ($406 + 24) | 0; HEAP32[$411 >> 2] = $R$1$i20; break; } } } } while (0); $412 = $rsize$3$lcssa$i >>> 0 < 16; L204: do { if ($412) { $413 = ($rsize$3$lcssa$i + $247) | 0; $414 = $413 | 3; $415 = ($v$3$lcssa$i + 4) | 0; HEAP32[$415 >> 2] = $414; $$sum18$i = ($413 + 4) | 0; $416 = ($v$3$lcssa$i + $$sum18$i) | 0; $417 = HEAP32[$416 >> 2] | 0; $418 = $417 | 1; HEAP32[$416 >> 2] = $418; } else { $419 = $247 | 3; $420 = ($v$3$lcssa$i + 4) | 0; HEAP32[$420 >> 2] = $419; $421 = $rsize$3$lcssa$i | 1; $$sum$i2334 = $247 | 4; $422 = ($v$3$lcssa$i + $$sum$i2334) | 0; HEAP32[$422 >> 2] = $421; $$sum1$i24 = ($rsize$3$lcssa$i + $247) | 0; $423 = ($v$3$lcssa$i + $$sum1$i24) | 0; HEAP32[$423 >> 2] = $rsize$3$lcssa$i; $424 = $rsize$3$lcssa$i >>> 3; $425 = $rsize$3$lcssa$i >>> 0 < 256; if ($425) { $426 = $424 << 1; $427 = (((133240 + ($426 << 2)) | 0) + 40) | 0; $428 = HEAP32[133240 >> 2] | 0; $429 = 1 << $424; $430 = $428 & $429; $431 = ($430 | 0) == 0; do { if ($431) { $432 = $428 | $429; HEAP32[133240 >> 2] = $432; $$sum14$pre$i = ($426 + 2) | 0; $$pre$i25 = (((133240 + ($$sum14$pre$i << 2)) | 0) + 40) | 0; $$pre$phi$i26Z2D = $$pre$i25; $F5$0$i = $427; } else { $$sum17$i = ($426 + 2) | 0; $433 = (((133240 + ($$sum17$i << 2)) | 0) + 40) | 0; $434 = HEAP32[$433 >> 2] | 0; $435 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $436 = $434 >>> 0 < $435 >>> 0; if (!$436) { $$pre$phi$i26Z2D = $433; $F5$0$i = $434; break; } _abort(); // unreachable; } } while (0); HEAP32[$$pre$phi$i26Z2D >> 2] = $349; $437 = ($F5$0$i + 12) | 0; HEAP32[$437 >> 2] = $349; $$sum15$i = ($247 + 8) | 0; $438 = ($v$3$lcssa$i + $$sum15$i) | 0; HEAP32[$438 >> 2] = $F5$0$i; $$sum16$i = ($247 + 12) | 0; $439 = ($v$3$lcssa$i + $$sum16$i) | 0; HEAP32[$439 >> 2] = $427; break; } $440 = $rsize$3$lcssa$i >>> 8; $441 = ($440 | 0) == 0; if ($441) { $I7$0$i = 0; } else { $442 = $rsize$3$lcssa$i >>> 0 > 16777215; if ($442) { $I7$0$i = 31; } else { $443 = ($440 + 1048320) | 0; $444 = $443 >>> 16; $445 = $444 & 8; $446 = $440 << $445; $447 = ($446 + 520192) | 0; $448 = $447 >>> 16; $449 = $448 & 4; $450 = $449 | $445; $451 = $446 << $449; $452 = ($451 + 245760) | 0; $453 = $452 >>> 16; $454 = $453 & 2; $455 = $450 | $454; $456 = (14 - $455) | 0; $457 = $451 << $454; $458 = $457 >>> 15; $459 = ($456 + $458) | 0; $460 = $459 << 1; $461 = ($459 + 7) | 0; $462 = $rsize$3$lcssa$i >>> $461; $463 = $462 & 1; $464 = $463 | $460; $I7$0$i = $464; } } $465 = (((133240 + ($I7$0$i << 2)) | 0) + 304) | 0; $$sum2$i = ($247 + 28) | 0; $466 = ($v$3$lcssa$i + $$sum2$i) | 0; HEAP32[$466 >> 2] = $I7$0$i; $$sum3$i27 = ($247 + 16) | 0; $467 = ($v$3$lcssa$i + $$sum3$i27) | 0; $$sum4$i28 = ($247 + 20) | 0; $468 = ($v$3$lcssa$i + $$sum4$i28) | 0; HEAP32[$468 >> 2] = 0; HEAP32[$467 >> 2] = 0; $469 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $470 = 1 << $I7$0$i; $471 = $469 & $470; $472 = ($471 | 0) == 0; if ($472) { $473 = $469 | $470; HEAP32[((133240 + 4) | 0) >> 2] = $473; HEAP32[$465 >> 2] = $349; $$sum5$i = ($247 + 24) | 0; $474 = ($v$3$lcssa$i + $$sum5$i) | 0; HEAP32[$474 >> 2] = $465; $$sum6$i = ($247 + 12) | 0; $475 = ($v$3$lcssa$i + $$sum6$i) | 0; HEAP32[$475 >> 2] = $349; $$sum7$i = ($247 + 8) | 0; $476 = ($v$3$lcssa$i + $$sum7$i) | 0; HEAP32[$476 >> 2] = $349; break; } $477 = HEAP32[$465 >> 2] | 0; $478 = ($I7$0$i | 0) == 31; if ($478) { $486 = 0; } else { $479 = $I7$0$i >>> 1; $480 = (25 - $479) | 0; $486 = $480; } $481 = ($477 + 4) | 0; $482 = HEAP32[$481 >> 2] | 0; $483 = $482 & -8; $484 = ($483 | 0) == ($rsize$3$lcssa$i | 0); L225: do { if ($484) { $T$0$lcssa$i = $477; } else { $485 = $rsize$3$lcssa$i << $486; $K12$025$i = $485; $T$024$i = $477; while (1) { $493 = $K12$025$i >>> 31; $494 = ((($T$024$i + ($493 << 2)) | 0) + 16) | 0; $489 = HEAP32[$494 >> 2] | 0; $495 = ($489 | 0) == (0 | 0); if ($495) { break; } $487 = $K12$025$i << 1; $488 = ($489 + 4) | 0; $490 = HEAP32[$488 >> 2] | 0; $491 = $490 & -8; $492 = ($491 | 0) == ($rsize$3$lcssa$i | 0); if ($492) { $T$0$lcssa$i = $489; break L225; } else { $K12$025$i = $487; $T$024$i = $489; } } $496 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $497 = $494 >>> 0 < $496 >>> 0; if ($497) { _abort(); // unreachable; } else { HEAP32[$494 >> 2] = $349; $$sum11$i = ($247 + 24) | 0; $498 = ($v$3$lcssa$i + $$sum11$i) | 0; HEAP32[$498 >> 2] = $T$024$i; $$sum12$i = ($247 + 12) | 0; $499 = ($v$3$lcssa$i + $$sum12$i) | 0; HEAP32[$499 >> 2] = $349; $$sum13$i = ($247 + 8) | 0; $500 = ($v$3$lcssa$i + $$sum13$i) | 0; HEAP32[$500 >> 2] = $349; break L204; } } } while (0); $501 = ($T$0$lcssa$i + 8) | 0; $502 = HEAP32[$501 >> 2] | 0; $503 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $504 = $T$0$lcssa$i >>> 0 < $503 >>> 0; if ($504) { _abort(); // unreachable; } $505 = $502 >>> 0 < $503 >>> 0; if ($505) { _abort(); // unreachable; } else { $506 = ($502 + 12) | 0; HEAP32[$506 >> 2] = $349; HEAP32[$501 >> 2] = $349; $$sum8$i = ($247 + 8) | 0; $507 = ($v$3$lcssa$i + $$sum8$i) | 0; HEAP32[$507 >> 2] = $502; $$sum9$i = ($247 + 12) | 0; $508 = ($v$3$lcssa$i + $$sum9$i) | 0; HEAP32[$508 >> 2] = $T$0$lcssa$i; $$sum10$i = ($247 + 24) | 0; $509 = ($v$3$lcssa$i + $$sum10$i) | 0; HEAP32[$509 >> 2] = 0; break; } } } while (0); $510 = ($v$3$lcssa$i + 8) | 0; $mem$0 = $510; STACKTOP = sp; return $mem$0 | 0; } else { $nb$0 = $247; } } } } } } while (0); $511 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $512 = $nb$0 >>> 0 > $511 >>> 0; if (!$512) { $513 = ($511 - $nb$0) | 0; $514 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $515 = $513 >>> 0 > 15; if ($515) { $516 = ($514 + $nb$0) | 0; HEAP32[((133240 + 20) | 0) >> 2] = $516; HEAP32[((133240 + 8) | 0) >> 2] = $513; $517 = $513 | 1; $$sum2 = ($nb$0 + 4) | 0; $518 = ($514 + $$sum2) | 0; HEAP32[$518 >> 2] = $517; $519 = ($514 + $511) | 0; HEAP32[$519 >> 2] = $513; $520 = $nb$0 | 3; $521 = ($514 + 4) | 0; HEAP32[$521 >> 2] = $520; } else { HEAP32[((133240 + 8) | 0) >> 2] = 0; HEAP32[((133240 + 20) | 0) >> 2] = 0; $522 = $511 | 3; $523 = ($514 + 4) | 0; HEAP32[$523 >> 2] = $522; $$sum1 = ($511 + 4) | 0; $524 = ($514 + $$sum1) | 0; $525 = HEAP32[$524 >> 2] | 0; $526 = $525 | 1; HEAP32[$524 >> 2] = $526; } $527 = ($514 + 8) | 0; $mem$0 = $527; STACKTOP = sp; return $mem$0 | 0; } $528 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $529 = $nb$0 >>> 0 < $528 >>> 0; if ($529) { $530 = ($528 - $nb$0) | 0; HEAP32[((133240 + 12) | 0) >> 2] = $530; $531 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $532 = ($531 + $nb$0) | 0; HEAP32[((133240 + 24) | 0) >> 2] = $532; $533 = $530 | 1; $$sum = ($nb$0 + 4) | 0; $534 = ($531 + $$sum) | 0; HEAP32[$534 >> 2] = $533; $535 = $nb$0 | 3; $536 = ($531 + 4) | 0; HEAP32[$536 >> 2] = $535; $537 = ($531 + 8) | 0; $mem$0 = $537; STACKTOP = sp; return $mem$0 | 0; } $538 = HEAP32[133712 >> 2] | 0; $539 = ($538 | 0) == 0; do { if ($539) { $540 = _sysconf(30) | 0; $541 = ($540 + -1) | 0; $542 = $541 & $540; $543 = ($542 | 0) == 0; if ($543) { HEAP32[((133712 + 8) | 0) >> 2] = $540; HEAP32[((133712 + 4) | 0) >> 2] = $540; HEAP32[((133712 + 12) | 0) >> 2] = -1; HEAP32[((133712 + 16) | 0) >> 2] = -1; HEAP32[((133712 + 20) | 0) >> 2] = 0; HEAP32[((133240 + 444) | 0) >> 2] = 0; $544 = _time(0 | 0) | 0; $545 = $544 & -16; $546 = $545 ^ 1431655768; HEAP32[133712 >> 2] = $546; break; } else { _abort(); // unreachable; } } } while (0); $547 = ($nb$0 + 48) | 0; $548 = HEAP32[((133712 + 8) | 0) >> 2] | 0; $549 = ($nb$0 + 47) | 0; $550 = ($548 + $549) | 0; $551 = (0 - $548) | 0; $552 = $550 & $551; $553 = $552 >>> 0 > $nb$0 >>> 0; if (!$553) { $mem$0 = 0; STACKTOP = sp; return $mem$0 | 0; } $554 = HEAP32[((133240 + 440) | 0) >> 2] | 0; $555 = ($554 | 0) == 0; if (!$555) { $556 = HEAP32[((133240 + 432) | 0) >> 2] | 0; $557 = ($556 + $552) | 0; $558 = $557 >>> 0 <= $556 >>> 0; $559 = $557 >>> 0 > $554 >>> 0; $or$cond1$i = $558 | $559; if ($or$cond1$i) { $mem$0 = 0; STACKTOP = sp; return $mem$0 | 0; } } $560 = HEAP32[((133240 + 444) | 0) >> 2] | 0; $561 = $560 & 4; $562 = ($561 | 0) == 0; L269: do { if ($562) { $563 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $564 = ($563 | 0) == (0 | 0); L271: do { if ($564) { label = 182; } else { $sp$0$i$i = (133240 + 448) | 0; while (1) { $565 = HEAP32[$sp$0$i$i >> 2] | 0; $566 = $565 >>> 0 > $563 >>> 0; if (!$566) { $567 = ($sp$0$i$i + 4) | 0; $568 = HEAP32[$567 >> 2] | 0; $569 = ($565 + $568) | 0; $570 = $569 >>> 0 > $563 >>> 0; if ($570) { break; } } $571 = ($sp$0$i$i + 8) | 0; $572 = HEAP32[$571 >> 2] | 0; $573 = ($572 | 0) == (0 | 0); if ($573) { label = 182; break L271; } else { $sp$0$i$i = $572; } } $574 = ($sp$0$i$i | 0) == (0 | 0); if ($574) { label = 182; } else { $597 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $598 = ($550 - $597) | 0; $599 = $598 & $551; $600 = $599 >>> 0 < 2147483647; if ($600) { $601 = _sbrk($599 | 0) | 0; $602 = HEAP32[$sp$0$i$i >> 2] | 0; $603 = HEAP32[$567 >> 2] | 0; $604 = ($602 + $603) | 0; $605 = ($601 | 0) == ($604 | 0); $$3$i = $605 ? $599 : 0; $$4$i = $605 ? $601 : -1; $br$0$i = $601; $ssize$1$i = $599; $tbase$0$i = $$4$i; $tsize$0$i = $$3$i; label = 191; } else { $tsize$0323841$i = 0; } } } } while (0); do { if ((label | 0) == 182) { $575 = _sbrk(0) | 0; $576 = ($575 | 0) == (-1 | 0); if ($576) { $tsize$0323841$i = 0; } else { $577 = $575; $578 = HEAP32[((133712 + 4) | 0) >> 2] | 0; $579 = ($578 + -1) | 0; $580 = $579 & $577; $581 = ($580 | 0) == 0; if ($581) { $ssize$0$i = $552; } else { $582 = ($579 + $577) | 0; $583 = (0 - $578) | 0; $584 = $582 & $583; $585 = ($552 - $577) | 0; $586 = ($585 + $584) | 0; $ssize$0$i = $586; } $587 = HEAP32[((133240 + 432) | 0) >> 2] | 0; $588 = ($587 + $ssize$0$i) | 0; $589 = $ssize$0$i >>> 0 > $nb$0 >>> 0; $590 = $ssize$0$i >>> 0 < 2147483647; $or$cond$i29 = $589 & $590; if ($or$cond$i29) { $591 = HEAP32[((133240 + 440) | 0) >> 2] | 0; $592 = ($591 | 0) == 0; if (!$592) { $593 = $588 >>> 0 <= $587 >>> 0; $594 = $588 >>> 0 > $591 >>> 0; $or$cond2$i = $593 | $594; if ($or$cond2$i) { $tsize$0323841$i = 0; break; } } $595 = _sbrk($ssize$0$i | 0) | 0; $596 = ($595 | 0) == ($575 | 0); $ssize$0$$i = $596 ? $ssize$0$i : 0; $$$i = $596 ? $575 : -1; $br$0$i = $595; $ssize$1$i = $ssize$0$i; $tbase$0$i = $$$i; $tsize$0$i = $ssize$0$$i; label = 191; } else { $tsize$0323841$i = 0; } } } } while (0); L291: do { if ((label | 0) == 191) { $606 = (0 - $ssize$1$i) | 0; $607 = ($tbase$0$i | 0) == (-1 | 0); if (!$607) { $tbase$247$i = $tbase$0$i; $tsize$246$i = $tsize$0$i; label = 202; break L269; } $608 = ($br$0$i | 0) != (-1 | 0); $609 = $ssize$1$i >>> 0 < 2147483647; $or$cond5$i = $608 & $609; $610 = $ssize$1$i >>> 0 < $547 >>> 0; $or$cond6$i = $or$cond5$i & $610; do { if ($or$cond6$i) { $611 = HEAP32[((133712 + 8) | 0) >> 2] | 0; $612 = ($549 - $ssize$1$i) | 0; $613 = ($612 + $611) | 0; $614 = (0 - $611) | 0; $615 = $613 & $614; $616 = $615 >>> 0 < 2147483647; if ($616) { $617 = _sbrk($615 | 0) | 0; $618 = ($617 | 0) == (-1 | 0); if ($618) { _sbrk($606 | 0) | 0; $tsize$0323841$i = $tsize$0$i; break L291; } else { $619 = ($615 + $ssize$1$i) | 0; $ssize$2$i = $619; break; } } else { $ssize$2$i = $ssize$1$i; } } else { $ssize$2$i = $ssize$1$i; } } while (0); $620 = ($br$0$i | 0) == (-1 | 0); if ($620) { $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); $621 = HEAP32[((133240 + 444) | 0) >> 2] | 0; $622 = $621 | 4; HEAP32[((133240 + 444) | 0) >> 2] = $622; $tsize$1$i = $tsize$0323841$i; label = 199; } else { $tsize$1$i = 0; label = 199; } } while (0); if ((label | 0) == 199) { $623 = $552 >>> 0 < 2147483647; if ($623) { $624 = _sbrk($552 | 0) | 0; $625 = _sbrk(0) | 0; $notlhs$i = ($624 | 0) != (-1 | 0); $notrhs$i = ($625 | 0) != (-1 | 0); $or$cond8$not$i = $notrhs$i & $notlhs$i; $626 = $624 >>> 0 < $625 >>> 0; $or$cond9$i = $or$cond8$not$i & $626; if ($or$cond9$i) { $627 = $625; $628 = $624; $629 = ($627 - $628) | 0; $630 = ($nb$0 + 40) | 0; $631 = $629 >>> 0 > $630 >>> 0; $$tsize$1$i = $631 ? $629 : $tsize$1$i; if ($631) { $tbase$247$i = $624; $tsize$246$i = $$tsize$1$i; label = 202; } } } } if ((label | 0) == 202) { $632 = HEAP32[((133240 + 432) | 0) >> 2] | 0; $633 = ($632 + $tsize$246$i) | 0; HEAP32[((133240 + 432) | 0) >> 2] = $633; $634 = HEAP32[((133240 + 436) | 0) >> 2] | 0; $635 = $633 >>> 0 > $634 >>> 0; if ($635) { HEAP32[((133240 + 436) | 0) >> 2] = $633; } $636 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $637 = ($636 | 0) == (0 | 0); L311: do { if ($637) { $638 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $639 = ($638 | 0) == (0 | 0); $640 = $tbase$247$i >>> 0 < $638 >>> 0; $or$cond10$i = $639 | $640; if ($or$cond10$i) { HEAP32[((133240 + 16) | 0) >> 2] = $tbase$247$i; } HEAP32[((133240 + 448) | 0) >> 2] = $tbase$247$i; HEAP32[((133240 + 452) | 0) >> 2] = $tsize$246$i; HEAP32[((133240 + 460) | 0) >> 2] = 0; $641 = HEAP32[133712 >> 2] | 0; HEAP32[((133240 + 36) | 0) >> 2] = $641; HEAP32[((133240 + 32) | 0) >> 2] = -1; $i$02$i$i = 0; while (1) { $642 = $i$02$i$i << 1; $643 = (((133240 + ($642 << 2)) | 0) + 40) | 0; $$sum$i$i = ($642 + 3) | 0; $644 = (((133240 + ($$sum$i$i << 2)) | 0) + 40) | 0; HEAP32[$644 >> 2] = $643; $$sum1$i$i = ($642 + 2) | 0; $645 = (((133240 + ($$sum1$i$i << 2)) | 0) + 40) | 0; HEAP32[$645 >> 2] = $643; $646 = ($i$02$i$i + 1) | 0; $exitcond$i$i = ($646 | 0) == 32; if ($exitcond$i$i) { break; } else { $i$02$i$i = $646; } } $647 = ($tsize$246$i + -40) | 0; $648 = ($tbase$247$i + 8) | 0; $649 = $648; $650 = $649 & 7; $651 = ($650 | 0) == 0; if ($651) { $655 = 0; } else { $652 = (0 - $649) | 0; $653 = $652 & 7; $655 = $653; } $654 = ($tbase$247$i + $655) | 0; $656 = ($647 - $655) | 0; HEAP32[((133240 + 24) | 0) >> 2] = $654; HEAP32[((133240 + 12) | 0) >> 2] = $656; $657 = $656 | 1; $$sum$i14$i = ($655 + 4) | 0; $658 = ($tbase$247$i + $$sum$i14$i) | 0; HEAP32[$658 >> 2] = $657; $$sum2$i$i = ($tsize$246$i + -36) | 0; $659 = ($tbase$247$i + $$sum2$i$i) | 0; HEAP32[$659 >> 2] = 40; $660 = HEAP32[((133712 + 16) | 0) >> 2] | 0; HEAP32[((133240 + 28) | 0) >> 2] = $660; } else { $sp$075$i = (133240 + 448) | 0; while (1) { $661 = HEAP32[$sp$075$i >> 2] | 0; $662 = ($sp$075$i + 4) | 0; $663 = HEAP32[$662 >> 2] | 0; $664 = ($661 + $663) | 0; $665 = ($tbase$247$i | 0) == ($664 | 0); if ($665) { label = 214; break; } $666 = ($sp$075$i + 8) | 0; $667 = HEAP32[$666 >> 2] | 0; $668 = ($667 | 0) == (0 | 0); if ($668) { break; } else { $sp$075$i = $667; } } if ((label | 0) == 214) { $669 = ($sp$075$i + 12) | 0; $670 = HEAP32[$669 >> 2] | 0; $671 = $670 & 8; $672 = ($671 | 0) == 0; if ($672) { $673 = $636 >>> 0 >= $661 >>> 0; $674 = $636 >>> 0 < $tbase$247$i >>> 0; $or$cond49$i = $673 & $674; if ($or$cond49$i) { $675 = ($663 + $tsize$246$i) | 0; HEAP32[$662 >> 2] = $675; $676 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $677 = ($676 + $tsize$246$i) | 0; $678 = ($636 + 8) | 0; $679 = $678; $680 = $679 & 7; $681 = ($680 | 0) == 0; if ($681) { $685 = 0; } else { $682 = (0 - $679) | 0; $683 = $682 & 7; $685 = $683; } $684 = ($636 + $685) | 0; $686 = ($677 - $685) | 0; HEAP32[((133240 + 24) | 0) >> 2] = $684; HEAP32[((133240 + 12) | 0) >> 2] = $686; $687 = $686 | 1; $$sum$i18$i = ($685 + 4) | 0; $688 = ($636 + $$sum$i18$i) | 0; HEAP32[$688 >> 2] = $687; $$sum2$i19$i = ($677 + 4) | 0; $689 = ($636 + $$sum2$i19$i) | 0; HEAP32[$689 >> 2] = 40; $690 = HEAP32[((133712 + 16) | 0) >> 2] | 0; HEAP32[((133240 + 28) | 0) >> 2] = $690; break; } } } $691 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $692 = $tbase$247$i >>> 0 < $691 >>> 0; if ($692) { HEAP32[((133240 + 16) | 0) >> 2] = $tbase$247$i; } $693 = ($tbase$247$i + $tsize$246$i) | 0; $sp$168$i = (133240 + 448) | 0; while (1) { $694 = HEAP32[$sp$168$i >> 2] | 0; $695 = ($694 | 0) == ($693 | 0); if ($695) { label = 224; break; } $696 = ($sp$168$i + 8) | 0; $697 = HEAP32[$696 >> 2] | 0; $698 = ($697 | 0) == (0 | 0); if ($698) { break; } else { $sp$168$i = $697; } } if ((label | 0) == 224) { $699 = ($sp$168$i + 12) | 0; $700 = HEAP32[$699 >> 2] | 0; $701 = $700 & 8; $702 = ($701 | 0) == 0; if ($702) { HEAP32[$sp$168$i >> 2] = $tbase$247$i; $703 = ($sp$168$i + 4) | 0; $704 = HEAP32[$703 >> 2] | 0; $705 = ($704 + $tsize$246$i) | 0; HEAP32[$703 >> 2] = $705; $706 = ($tbase$247$i + 8) | 0; $707 = $706; $708 = $707 & 7; $709 = ($708 | 0) == 0; if ($709) { $713 = 0; } else { $710 = (0 - $707) | 0; $711 = $710 & 7; $713 = $711; } $712 = ($tbase$247$i + $713) | 0; $$sum107$i = ($tsize$246$i + 8) | 0; $714 = ($tbase$247$i + $$sum107$i) | 0; $715 = $714; $716 = $715 & 7; $717 = ($716 | 0) == 0; if ($717) { $720 = 0; } else { $718 = (0 - $715) | 0; $719 = $718 & 7; $720 = $719; } $$sum108$i = ($720 + $tsize$246$i) | 0; $721 = ($tbase$247$i + $$sum108$i) | 0; $722 = $721; $723 = $712; $724 = ($722 - $723) | 0; $$sum$i21$i = ($713 + $nb$0) | 0; $725 = ($tbase$247$i + $$sum$i21$i) | 0; $726 = ($724 - $nb$0) | 0; $727 = $nb$0 | 3; $$sum1$i22$i = ($713 + 4) | 0; $728 = ($tbase$247$i + $$sum1$i22$i) | 0; HEAP32[$728 >> 2] = $727; $729 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $730 = ($721 | 0) == ($729 | 0); L338: do { if ($730) { $731 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $732 = ($731 + $726) | 0; HEAP32[((133240 + 12) | 0) >> 2] = $732; HEAP32[((133240 + 24) | 0) >> 2] = $725; $733 = $732 | 1; $$sum42$i$i = ($$sum$i21$i + 4) | 0; $734 = ($tbase$247$i + $$sum42$i$i) | 0; HEAP32[$734 >> 2] = $733; } else { $735 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $736 = ($721 | 0) == ($735 | 0); if ($736) { $737 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $738 = ($737 + $726) | 0; HEAP32[((133240 + 8) | 0) >> 2] = $738; HEAP32[((133240 + 20) | 0) >> 2] = $725; $739 = $738 | 1; $$sum40$i$i = ($$sum$i21$i + 4) | 0; $740 = ($tbase$247$i + $$sum40$i$i) | 0; HEAP32[$740 >> 2] = $739; $$sum41$i$i = ($738 + $$sum$i21$i) | 0; $741 = ($tbase$247$i + $$sum41$i$i) | 0; HEAP32[$741 >> 2] = $738; break; } $$sum2$i23$i = ($tsize$246$i + 4) | 0; $$sum109$i = ($$sum2$i23$i + $720) | 0; $742 = ($tbase$247$i + $$sum109$i) | 0; $743 = HEAP32[$742 >> 2] | 0; $744 = $743 & 3; $745 = ($744 | 0) == 1; if ($745) { $746 = $743 & -8; $747 = $743 >>> 3; $748 = $743 >>> 0 < 256; L346: do { if ($748) { $$sum3738$i$i = $720 | 8; $$sum119$i = ($$sum3738$i$i + $tsize$246$i) | 0; $749 = ($tbase$247$i + $$sum119$i) | 0; $750 = HEAP32[$749 >> 2] | 0; $$sum39$i$i = ($tsize$246$i + 12) | 0; $$sum120$i = ($$sum39$i$i + $720) | 0; $751 = ($tbase$247$i + $$sum120$i) | 0; $752 = HEAP32[$751 >> 2] | 0; $753 = $747 << 1; $754 = (((133240 + ($753 << 2)) | 0) + 40) | 0; $755 = ($750 | 0) == ($754 | 0); do { if (!$755) { $756 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $757 = $750 >>> 0 < $756 >>> 0; if ($757) { _abort(); // unreachable; } $758 = ($750 + 12) | 0; $759 = HEAP32[$758 >> 2] | 0; $760 = ($759 | 0) == ($721 | 0); if ($760) { break; } _abort(); // unreachable; } } while (0); $761 = ($752 | 0) == ($750 | 0); if ($761) { $762 = 1 << $747; $763 = $762 ^ -1; $764 = HEAP32[133240 >> 2] | 0; $765 = $764 & $763; HEAP32[133240 >> 2] = $765; break; } $766 = ($752 | 0) == ($754 | 0); do { if ($766) { $$pre57$i$i = ($752 + 8) | 0; $$pre$phi58$i$iZ2D = $$pre57$i$i; } else { $767 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $768 = $752 >>> 0 < $767 >>> 0; if ($768) { _abort(); // unreachable; } $769 = ($752 + 8) | 0; $770 = HEAP32[$769 >> 2] | 0; $771 = ($770 | 0) == ($721 | 0); if ($771) { $$pre$phi58$i$iZ2D = $769; break; } _abort(); // unreachable; } } while (0); $772 = ($750 + 12) | 0; HEAP32[$772 >> 2] = $752; HEAP32[$$pre$phi58$i$iZ2D >> 2] = $750; } else { $$sum34$i$i = $720 | 24; $$sum110$i = ($$sum34$i$i + $tsize$246$i) | 0; $773 = ($tbase$247$i + $$sum110$i) | 0; $774 = HEAP32[$773 >> 2] | 0; $$sum5$i$i = ($tsize$246$i + 12) | 0; $$sum111$i = ($$sum5$i$i + $720) | 0; $775 = ($tbase$247$i + $$sum111$i) | 0; $776 = HEAP32[$775 >> 2] | 0; $777 = ($776 | 0) == ($721 | 0); do { if ($777) { $$sum67$i$i = $720 | 16; $$sum117$i = ($$sum2$i23$i + $$sum67$i$i) | 0; $788 = ($tbase$247$i + $$sum117$i) | 0; $789 = HEAP32[$788 >> 2] | 0; $790 = ($789 | 0) == (0 | 0); if ($790) { $$sum118$i = ($$sum67$i$i + $tsize$246$i) | 0; $791 = ($tbase$247$i + $$sum118$i) | 0; $792 = HEAP32[$791 >> 2] | 0; $793 = ($792 | 0) == (0 | 0); if ($793) { $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; $796 = ($795 | 0) == (0 | 0); if (!$796) { $R$0$i$i = $795; $RP$0$i$i = $794; continue; } $797 = ($R$0$i$i + 16) | 0; $798 = HEAP32[$797 >> 2] | 0; $799 = ($798 | 0) == (0 | 0); if ($799) { break; } else { $R$0$i$i = $798; $RP$0$i$i = $797; } } $800 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $801 = $RP$0$i$i >>> 0 < $800 >>> 0; if ($801) { _abort(); // unreachable; } else { HEAP32[$RP$0$i$i >> 2] = 0; $R$1$i$i = $R$0$i$i; break; } } else { $$sum3536$i$i = $720 | 8; $$sum112$i = ($$sum3536$i$i + $tsize$246$i) | 0; $778 = ($tbase$247$i + $$sum112$i) | 0; $779 = HEAP32[$778 >> 2] | 0; $780 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $781 = $779 >>> 0 < $780 >>> 0; if ($781) { _abort(); // unreachable; } $782 = ($779 + 12) | 0; $783 = HEAP32[$782 >> 2] | 0; $784 = ($783 | 0) == ($721 | 0); if (!$784) { _abort(); // unreachable; } $785 = ($776 + 8) | 0; $786 = HEAP32[$785 >> 2] | 0; $787 = ($786 | 0) == ($721 | 0); if ($787) { HEAP32[$782 >> 2] = $776; HEAP32[$785 >> 2] = $779; $R$1$i$i = $776; break; } else { _abort(); // unreachable; } } } while (0); $802 = ($774 | 0) == (0 | 0); if ($802) { break; } $$sum30$i$i = ($tsize$246$i + 28) | 0; $$sum113$i = ($$sum30$i$i + $720) | 0; $803 = ($tbase$247$i + $$sum113$i) | 0; $804 = HEAP32[$803 >> 2] | 0; $805 = (((133240 + ($804 << 2)) | 0) + 304) | 0; $806 = HEAP32[$805 >> 2] | 0; $807 = ($721 | 0) == ($806 | 0); do { if ($807) { HEAP32[$805 >> 2] = $R$1$i$i; $cond$i$i = ($R$1$i$i | 0) == (0 | 0); if (!$cond$i$i) { break; } $808 = 1 << $804; $809 = $808 ^ -1; $810 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $811 = $810 & $809; HEAP32[((133240 + 4) | 0) >> 2] = $811; break L346; } else { $812 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $813 = $774 >>> 0 < $812 >>> 0; if ($813) { _abort(); // unreachable; } $814 = ($774 + 16) | 0; $815 = HEAP32[$814 >> 2] | 0; $816 = ($815 | 0) == ($721 | 0); if ($816) { HEAP32[$814 >> 2] = $R$1$i$i; } else { $817 = ($774 + 20) | 0; HEAP32[$817 >> 2] = $R$1$i$i; } $818 = ($R$1$i$i | 0) == (0 | 0); if ($818) { break L346; } } } while (0); $819 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $820 = $R$1$i$i >>> 0 < $819 >>> 0; if ($820) { _abort(); // unreachable; } $821 = ($R$1$i$i + 24) | 0; HEAP32[$821 >> 2] = $774; $$sum3132$i$i = $720 | 16; $$sum114$i = ($$sum3132$i$i + $tsize$246$i) | 0; $822 = ($tbase$247$i + $$sum114$i) | 0; $823 = HEAP32[$822 >> 2] | 0; $824 = ($823 | 0) == (0 | 0); do { if (!$824) { $825 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $826 = $823 >>> 0 < $825 >>> 0; if ($826) { _abort(); // unreachable; } else { $827 = ($R$1$i$i + 16) | 0; HEAP32[$827 >> 2] = $823; $828 = ($823 + 24) | 0; HEAP32[$828 >> 2] = $R$1$i$i; break; } } } while (0); $$sum115$i = ($$sum2$i23$i + $$sum3132$i$i) | 0; $829 = ($tbase$247$i + $$sum115$i) | 0; $830 = HEAP32[$829 >> 2] | 0; $831 = ($830 | 0) == (0 | 0); if ($831) { break; } $832 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $833 = $830 >>> 0 < $832 >>> 0; if ($833) { _abort(); // unreachable; } else { $834 = ($R$1$i$i + 20) | 0; HEAP32[$834 >> 2] = $830; $835 = ($830 + 24) | 0; HEAP32[$835 >> 2] = $R$1$i$i; break; } } } while (0); $$sum9$i$i = $746 | $720; $$sum116$i = ($$sum9$i$i + $tsize$246$i) | 0; $836 = ($tbase$247$i + $$sum116$i) | 0; $837 = ($746 + $726) | 0; $oldfirst$0$i$i = $836; $qsize$0$i$i = $837; } else { $oldfirst$0$i$i = $721; $qsize$0$i$i = $726; } $838 = ($oldfirst$0$i$i + 4) | 0; $839 = HEAP32[$838 >> 2] | 0; $840 = $839 & -2; HEAP32[$838 >> 2] = $840; $841 = $qsize$0$i$i | 1; $$sum10$i$i = ($$sum$i21$i + 4) | 0; $842 = ($tbase$247$i + $$sum10$i$i) | 0; HEAP32[$842 >> 2] = $841; $$sum11$i24$i = ($qsize$0$i$i + $$sum$i21$i) | 0; $843 = ($tbase$247$i + $$sum11$i24$i) | 0; HEAP32[$843 >> 2] = $qsize$0$i$i; $844 = $qsize$0$i$i >>> 3; $845 = $qsize$0$i$i >>> 0 < 256; if ($845) { $846 = $844 << 1; $847 = (((133240 + ($846 << 2)) | 0) + 40) | 0; $848 = HEAP32[133240 >> 2] | 0; $849 = 1 << $844; $850 = $848 & $849; $851 = ($850 | 0) == 0; do { if ($851) { $852 = $848 | $849; HEAP32[133240 >> 2] = $852; $$sum26$pre$i$i = ($846 + 2) | 0; $$pre$i25$i = (((133240 + ($$sum26$pre$i$i << 2)) | 0) + 40) | 0; $$pre$phi$i26$iZ2D = $$pre$i25$i; $F4$0$i$i = $847; } else { $$sum29$i$i = ($846 + 2) | 0; $853 = (((133240 + ($$sum29$i$i << 2)) | 0) + 40) | 0; $854 = HEAP32[$853 >> 2] | 0; $855 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $856 = $854 >>> 0 < $855 >>> 0; if (!$856) { $$pre$phi$i26$iZ2D = $853; $F4$0$i$i = $854; break; } _abort(); // unreachable; } } while (0); HEAP32[$$pre$phi$i26$iZ2D >> 2] = $725; $857 = ($F4$0$i$i + 12) | 0; HEAP32[$857 >> 2] = $725; $$sum27$i$i = ($$sum$i21$i + 8) | 0; $858 = ($tbase$247$i + $$sum27$i$i) | 0; HEAP32[$858 >> 2] = $F4$0$i$i; $$sum28$i$i = ($$sum$i21$i + 12) | 0; $859 = ($tbase$247$i + $$sum28$i$i) | 0; HEAP32[$859 >> 2] = $847; break; } $860 = $qsize$0$i$i >>> 8; $861 = ($860 | 0) == 0; do { if ($861) { $I7$0$i$i = 0; } else { $862 = $qsize$0$i$i >>> 0 > 16777215; if ($862) { $I7$0$i$i = 31; break; } $863 = ($860 + 1048320) | 0; $864 = $863 >>> 16; $865 = $864 & 8; $866 = $860 << $865; $867 = ($866 + 520192) | 0; $868 = $867 >>> 16; $869 = $868 & 4; $870 = $869 | $865; $871 = $866 << $869; $872 = ($871 + 245760) | 0; $873 = $872 >>> 16; $874 = $873 & 2; $875 = $870 | $874; $876 = (14 - $875) | 0; $877 = $871 << $874; $878 = $877 >>> 15; $879 = ($876 + $878) | 0; $880 = $879 << 1; $881 = ($879 + 7) | 0; $882 = $qsize$0$i$i >>> $881; $883 = $882 & 1; $884 = $883 | $880; $I7$0$i$i = $884; } } while (0); $885 = (((133240 + ($I7$0$i$i << 2)) | 0) + 304) | 0; $$sum12$i$i = ($$sum$i21$i + 28) | 0; $886 = ($tbase$247$i + $$sum12$i$i) | 0; HEAP32[$886 >> 2] = $I7$0$i$i; $$sum13$i$i = ($$sum$i21$i + 16) | 0; $887 = ($tbase$247$i + $$sum13$i$i) | 0; $$sum14$i$i = ($$sum$i21$i + 20) | 0; $888 = ($tbase$247$i + $$sum14$i$i) | 0; HEAP32[$888 >> 2] = 0; HEAP32[$887 >> 2] = 0; $889 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $890 = 1 << $I7$0$i$i; $891 = $889 & $890; $892 = ($891 | 0) == 0; if ($892) { $893 = $889 | $890; HEAP32[((133240 + 4) | 0) >> 2] = $893; HEAP32[$885 >> 2] = $725; $$sum15$i$i = ($$sum$i21$i + 24) | 0; $894 = ($tbase$247$i + $$sum15$i$i) | 0; HEAP32[$894 >> 2] = $885; $$sum16$i$i = ($$sum$i21$i + 12) | 0; $895 = ($tbase$247$i + $$sum16$i$i) | 0; HEAP32[$895 >> 2] = $725; $$sum17$i$i = ($$sum$i21$i + 8) | 0; $896 = ($tbase$247$i + $$sum17$i$i) | 0; HEAP32[$896 >> 2] = $725; break; } $897 = HEAP32[$885 >> 2] | 0; $898 = ($I7$0$i$i | 0) == 31; if ($898) { $906 = 0; } else { $899 = $I7$0$i$i >>> 1; $900 = (25 - $899) | 0; $906 = $900; } $901 = ($897 + 4) | 0; $902 = HEAP32[$901 >> 2] | 0; $903 = $902 & -8; $904 = ($903 | 0) == ($qsize$0$i$i | 0); L435: do { if ($904) { $T$0$lcssa$i28$i = $897; } else { $905 = $qsize$0$i$i << $906; $K8$052$i$i = $905; $T$051$i$i = $897; while (1) { $913 = $K8$052$i$i >>> 31; $914 = ((($T$051$i$i + ($913 << 2)) | 0) + 16) | 0; $909 = HEAP32[$914 >> 2] | 0; $915 = ($909 | 0) == (0 | 0); if ($915) { break; } $907 = $K8$052$i$i << 1; $908 = ($909 + 4) | 0; $910 = HEAP32[$908 >> 2] | 0; $911 = $910 & -8; $912 = ($911 | 0) == ($qsize$0$i$i | 0); if ($912) { $T$0$lcssa$i28$i = $909; break L435; } else { $K8$052$i$i = $907; $T$051$i$i = $909; } } $916 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $917 = $914 >>> 0 < $916 >>> 0; if ($917) { _abort(); // unreachable; } else { HEAP32[$914 >> 2] = $725; $$sum23$i$i = ($$sum$i21$i + 24) | 0; $918 = ($tbase$247$i + $$sum23$i$i) | 0; HEAP32[$918 >> 2] = $T$051$i$i; $$sum24$i$i = ($$sum$i21$i + 12) | 0; $919 = ($tbase$247$i + $$sum24$i$i) | 0; HEAP32[$919 >> 2] = $725; $$sum25$i$i = ($$sum$i21$i + 8) | 0; $920 = ($tbase$247$i + $$sum25$i$i) | 0; HEAP32[$920 >> 2] = $725; break L338; } } } while (0); $921 = ($T$0$lcssa$i28$i + 8) | 0; $922 = HEAP32[$921 >> 2] | 0; $923 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $924 = $T$0$lcssa$i28$i >>> 0 < $923 >>> 0; if ($924) { _abort(); // unreachable; } $925 = $922 >>> 0 < $923 >>> 0; if ($925) { _abort(); // unreachable; } else { $926 = ($922 + 12) | 0; HEAP32[$926 >> 2] = $725; HEAP32[$921 >> 2] = $725; $$sum20$i$i = ($$sum$i21$i + 8) | 0; $927 = ($tbase$247$i + $$sum20$i$i) | 0; HEAP32[$927 >> 2] = $922; $$sum21$i$i = ($$sum$i21$i + 12) | 0; $928 = ($tbase$247$i + $$sum21$i$i) | 0; HEAP32[$928 >> 2] = $T$0$lcssa$i28$i; $$sum22$i$i = ($$sum$i21$i + 24) | 0; $929 = ($tbase$247$i + $$sum22$i$i) | 0; HEAP32[$929 >> 2] = 0; break; } } } while (0); $$sum1819$i$i = $713 | 8; $930 = ($tbase$247$i + $$sum1819$i$i) | 0; $mem$0 = $930; STACKTOP = sp; return $mem$0 | 0; } } $sp$0$i$i$i = (133240 + 448) | 0; while (1) { $931 = HEAP32[$sp$0$i$i$i >> 2] | 0; $932 = $931 >>> 0 > $636 >>> 0; if (!$932) { $933 = ($sp$0$i$i$i + 4) | 0; $934 = HEAP32[$933 >> 2] | 0; $935 = ($931 + $934) | 0; $936 = $935 >>> 0 > $636 >>> 0; if ($936) { break; } } $937 = ($sp$0$i$i$i + 8) | 0; $938 = HEAP32[$937 >> 2] | 0; $sp$0$i$i$i = $938; } $$sum$i15$i = ($934 + -47) | 0; $$sum1$i16$i = ($934 + -39) | 0; $939 = ($931 + $$sum1$i16$i) | 0; $940 = $939; $941 = $940 & 7; $942 = ($941 | 0) == 0; if ($942) { $945 = 0; } else { $943 = (0 - $940) | 0; $944 = $943 & 7; $945 = $944; } $$sum2$i17$i = ($$sum$i15$i + $945) | 0; $946 = ($931 + $$sum2$i17$i) | 0; $947 = ($636 + 16) | 0; $948 = $946 >>> 0 < $947 >>> 0; $949 = $948 ? $636 : $946; $950 = ($949 + 8) | 0; $951 = ($tsize$246$i + -40) | 0; $952 = ($tbase$247$i + 8) | 0; $953 = $952; $954 = $953 & 7; $955 = ($954 | 0) == 0; if ($955) { $959 = 0; } else { $956 = (0 - $953) | 0; $957 = $956 & 7; $959 = $957; } $958 = ($tbase$247$i + $959) | 0; $960 = ($951 - $959) | 0; HEAP32[((133240 + 24) | 0) >> 2] = $958; HEAP32[((133240 + 12) | 0) >> 2] = $960; $961 = $960 | 1; $$sum$i$i$i = ($959 + 4) | 0; $962 = ($tbase$247$i + $$sum$i$i$i) | 0; HEAP32[$962 >> 2] = $961; $$sum2$i$i$i = ($tsize$246$i + -36) | 0; $963 = ($tbase$247$i + $$sum2$i$i$i) | 0; HEAP32[$963 >> 2] = 40; $964 = HEAP32[((133712 + 16) | 0) >> 2] | 0; HEAP32[((133240 + 28) | 0) >> 2] = $964; $965 = ($949 + 4) | 0; HEAP32[$965 >> 2] = 27; HEAP32[($950 + 0) >> 2] = HEAP32[(((133240 + 448) | 0) + 0) >> 2] | 0; HEAP32[($950 + 4) >> 2] = HEAP32[(((133240 + 448) | 0) + 4) >> 2] | 0; HEAP32[($950 + 8) >> 2] = HEAP32[(((133240 + 448) | 0) + 8) >> 2] | 0; HEAP32[($950 + 12) >> 2] = HEAP32[(((133240 + 448) | 0) + 12) >> 2] | 0; HEAP32[((133240 + 448) | 0) >> 2] = $tbase$247$i; HEAP32[((133240 + 452) | 0) >> 2] = $tsize$246$i; HEAP32[((133240 + 460) | 0) >> 2] = 0; HEAP32[((133240 + 456) | 0) >> 2] = $950; $966 = ($949 + 28) | 0; HEAP32[$966 >> 2] = 7; $967 = ($949 + 32) | 0; $968 = $967 >>> 0 < $935 >>> 0; if ($968) { $970 = $966; while (1) { $969 = ($970 + 4) | 0; HEAP32[$969 >> 2] = 7; $971 = ($970 + 8) | 0; $972 = $971 >>> 0 < $935 >>> 0; if ($972) { $970 = $969; } else { break; } } } $973 = ($949 | 0) == ($636 | 0); if (!$973) { $974 = $949; $975 = $636; $976 = ($974 - $975) | 0; $977 = ($636 + $976) | 0; $$sum3$i$i = ($976 + 4) | 0; $978 = ($636 + $$sum3$i$i) | 0; $979 = HEAP32[$978 >> 2] | 0; $980 = $979 & -2; HEAP32[$978 >> 2] = $980; $981 = $976 | 1; $982 = ($636 + 4) | 0; HEAP32[$982 >> 2] = $981; HEAP32[$977 >> 2] = $976; $983 = $976 >>> 3; $984 = $976 >>> 0 < 256; if ($984) { $985 = $983 << 1; $986 = (((133240 + ($985 << 2)) | 0) + 40) | 0; $987 = HEAP32[133240 >> 2] | 0; $988 = 1 << $983; $989 = $987 & $988; $990 = ($989 | 0) == 0; do { if ($990) { $991 = $987 | $988; HEAP32[133240 >> 2] = $991; $$sum10$pre$i$i = ($985 + 2) | 0; $$pre$i$i = (((133240 + ($$sum10$pre$i$i << 2)) | 0) + 40) | 0; $$pre$phi$i$iZ2D = $$pre$i$i; $F$0$i$i = $986; } else { $$sum11$i$i = ($985 + 2) | 0; $992 = (((133240 + ($$sum11$i$i << 2)) | 0) + 40) | 0; $993 = HEAP32[$992 >> 2] | 0; $994 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $995 = $993 >>> 0 < $994 >>> 0; if (!$995) { $$pre$phi$i$iZ2D = $992; $F$0$i$i = $993; break; } _abort(); // unreachable; } } while (0); HEAP32[$$pre$phi$i$iZ2D >> 2] = $636; $996 = ($F$0$i$i + 12) | 0; HEAP32[$996 >> 2] = $636; $997 = ($636 + 8) | 0; HEAP32[$997 >> 2] = $F$0$i$i; $998 = ($636 + 12) | 0; HEAP32[$998 >> 2] = $986; break; } $999 = $976 >>> 8; $1000 = ($999 | 0) == 0; if ($1000) { $I1$0$i$i = 0; } else { $1001 = $976 >>> 0 > 16777215; if ($1001) { $I1$0$i$i = 31; } else { $1002 = ($999 + 1048320) | 0; $1003 = $1002 >>> 16; $1004 = $1003 & 8; $1005 = $999 << $1004; $1006 = ($1005 + 520192) | 0; $1007 = $1006 >>> 16; $1008 = $1007 & 4; $1009 = $1008 | $1004; $1010 = $1005 << $1008; $1011 = ($1010 + 245760) | 0; $1012 = $1011 >>> 16; $1013 = $1012 & 2; $1014 = $1009 | $1013; $1015 = (14 - $1014) | 0; $1016 = $1010 << $1013; $1017 = $1016 >>> 15; $1018 = ($1015 + $1017) | 0; $1019 = $1018 << 1; $1020 = ($1018 + 7) | 0; $1021 = $976 >>> $1020; $1022 = $1021 & 1; $1023 = $1022 | $1019; $I1$0$i$i = $1023; } } $1024 = (((133240 + ($I1$0$i$i << 2)) | 0) + 304) | 0; $1025 = ($636 + 28) | 0; $I1$0$c$i$i = $I1$0$i$i; HEAP32[$1025 >> 2] = $I1$0$c$i$i; $1026 = ($636 + 20) | 0; HEAP32[$1026 >> 2] = 0; $1027 = ($636 + 16) | 0; HEAP32[$1027 >> 2] = 0; $1028 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $1029 = 1 << $I1$0$i$i; $1030 = $1028 & $1029; $1031 = ($1030 | 0) == 0; if ($1031) { $1032 = $1028 | $1029; HEAP32[((133240 + 4) | 0) >> 2] = $1032; HEAP32[$1024 >> 2] = $636; $1033 = ($636 + 24) | 0; HEAP32[$1033 >> 2] = $1024; $1034 = ($636 + 12) | 0; HEAP32[$1034 >> 2] = $636; $1035 = ($636 + 8) | 0; HEAP32[$1035 >> 2] = $636; break; } $1036 = HEAP32[$1024 >> 2] | 0; $1037 = ($I1$0$i$i | 0) == 31; if ($1037) { $1045 = 0; } else { $1038 = $I1$0$i$i >>> 1; $1039 = (25 - $1038) | 0; $1045 = $1039; } $1040 = ($1036 + 4) | 0; $1041 = HEAP32[$1040 >> 2] | 0; $1042 = $1041 & -8; $1043 = ($1042 | 0) == ($976 | 0); L489: do { if ($1043) { $T$0$lcssa$i$i = $1036; } else { $1044 = $976 << $1045; $K2$014$i$i = $1044; $T$013$i$i = $1036; while (1) { $1052 = $K2$014$i$i >>> 31; $1053 = ((($T$013$i$i + ($1052 << 2)) | 0) + 16) | 0; $1048 = HEAP32[$1053 >> 2] | 0; $1054 = ($1048 | 0) == (0 | 0); if ($1054) { break; } $1046 = $K2$014$i$i << 1; $1047 = ($1048 + 4) | 0; $1049 = HEAP32[$1047 >> 2] | 0; $1050 = $1049 & -8; $1051 = ($1050 | 0) == ($976 | 0); if ($1051) { $T$0$lcssa$i$i = $1048; break L489; } else { $K2$014$i$i = $1046; $T$013$i$i = $1048; } } $1055 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $1056 = $1053 >>> 0 < $1055 >>> 0; if ($1056) { _abort(); // unreachable; } else { HEAP32[$1053 >> 2] = $636; $1057 = ($636 + 24) | 0; HEAP32[$1057 >> 2] = $T$013$i$i; $1058 = ($636 + 12) | 0; HEAP32[$1058 >> 2] = $636; $1059 = ($636 + 8) | 0; HEAP32[$1059 >> 2] = $636; break L311; } } } while (0); $1060 = ($T$0$lcssa$i$i + 8) | 0; $1061 = HEAP32[$1060 >> 2] | 0; $1062 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $1063 = $T$0$lcssa$i$i >>> 0 < $1062 >>> 0; if ($1063) { _abort(); // unreachable; } $1064 = $1061 >>> 0 < $1062 >>> 0; if ($1064) { _abort(); // unreachable; } else { $1065 = ($1061 + 12) | 0; HEAP32[$1065 >> 2] = $636; HEAP32[$1060 >> 2] = $636; $1066 = ($636 + 8) | 0; HEAP32[$1066 >> 2] = $1061; $1067 = ($636 + 12) | 0; HEAP32[$1067 >> 2] = $T$0$lcssa$i$i; $1068 = ($636 + 24) | 0; HEAP32[$1068 >> 2] = 0; break; } } } } while (0); $1069 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $1070 = $1069 >>> 0 > $nb$0 >>> 0; if ($1070) { $1071 = ($1069 - $nb$0) | 0; HEAP32[((133240 + 12) | 0) >> 2] = $1071; $1072 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $1073 = ($1072 + $nb$0) | 0; HEAP32[((133240 + 24) | 0) >> 2] = $1073; $1074 = $1071 | 1; $$sum$i32 = ($nb$0 + 4) | 0; $1075 = ($1072 + $$sum$i32) | 0; HEAP32[$1075 >> 2] = $1074; $1076 = $nb$0 | 3; $1077 = ($1072 + 4) | 0; HEAP32[$1077 >> 2] = $1076; $1078 = ($1072 + 8) | 0; $mem$0 = $1078; STACKTOP = sp; return $mem$0 | 0; } } $1079 = ___errno_location() | 0; HEAP32[$1079 >> 2] = 12; $mem$0 = 0; STACKTOP = sp; return $mem$0 | 0; } function _free($mem) { $mem = $mem | 0; var $$pre = 0, $$pre$phi68Z2D = 0, $$pre$phi70Z2D = 0, $$pre$phiZ2D = 0, $$pre67 = 0, $$pre69 = 0, $$sum = 0, $$sum16$pre = 0, $$sum17 = 0, $$sum18 = 0, $$sum19 = 0, $$sum2 = 0, $$sum20 = 0, $$sum2324 = 0, $$sum25 = 0, $$sum26 = 0, $$sum28 = 0, $$sum29 = 0, $$sum3 = 0, $$sum30 = 0; var $$sum31 = 0, $$sum32 = 0, $$sum33 = 0, $$sum34 = 0, $$sum35 = 0, $$sum36 = 0, $$sum37 = 0, $$sum5 = 0, $$sum67 = 0, $$sum8 = 0, $$sum9 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; var $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0; var $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0; var $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0; var $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, $266 = 0, $267 = 0, $268 = 0; var $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0; var $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0; var $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0; var $322 = 0, $323 = 0, $324 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F16$0 = 0, $I18$0 = 0, $I18$0$c = 0, $K19$057 = 0; var $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, $cond = 0, $cond54 = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($mem | 0) == (0 | 0); if ($0) { STACKTOP = sp; return; } $1 = ($mem + -8) | 0; $2 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $3 = $1 >>> 0 < $2 >>> 0; if ($3) { _abort(); // unreachable; } $4 = ($mem + -4) | 0; $5 = HEAP32[$4 >> 2] | 0; $6 = $5 & 3; $7 = ($6 | 0) == 1; if ($7) { _abort(); // unreachable; } $8 = $5 & -8; $$sum = ($8 + -8) | 0; $9 = ($mem + $$sum) | 0; $10 = $5 & 1; $11 = ($10 | 0) == 0; do { if ($11) { $12 = HEAP32[$1 >> 2] | 0; $13 = ($6 | 0) == 0; if ($13) { STACKTOP = sp; return; } $$sum2 = (-8 - $12) | 0; $14 = ($mem + $$sum2) | 0; $15 = ($12 + $8) | 0; $16 = $14 >>> 0 < $2 >>> 0; if ($16) { _abort(); // unreachable; } $17 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $18 = ($14 | 0) == ($17 | 0); if ($18) { $$sum3 = ($8 + -4) | 0; $104 = ($mem + $$sum3) | 0; $105 = HEAP32[$104 >> 2] | 0; $106 = $105 & 3; $107 = ($106 | 0) == 3; if (!$107) { $p$0 = $14; $psize$0 = $15; break; } HEAP32[((133240 + 8) | 0) >> 2] = $15; $108 = HEAP32[$104 >> 2] | 0; $109 = $108 & -2; HEAP32[$104 >> 2] = $109; $110 = $15 | 1; $$sum26 = ($$sum2 + 4) | 0; $111 = ($mem + $$sum26) | 0; HEAP32[$111 >> 2] = $110; HEAP32[$9 >> 2] = $15; STACKTOP = sp; return; } $19 = $12 >>> 3; $20 = $12 >>> 0 < 256; if ($20) { $$sum36 = ($$sum2 + 8) | 0; $21 = ($mem + $$sum36) | 0; $22 = HEAP32[$21 >> 2] | 0; $$sum37 = ($$sum2 + 12) | 0; $23 = ($mem + $$sum37) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = $19 << 1; $26 = (((133240 + ($25 << 2)) | 0) + 40) | 0; $27 = ($22 | 0) == ($26 | 0); if (!$27) { $28 = $22 >>> 0 < $2 >>> 0; if ($28) { _abort(); // unreachable; } $29 = ($22 + 12) | 0; $30 = HEAP32[$29 >> 2] | 0; $31 = ($30 | 0) == ($14 | 0); if (!$31) { _abort(); // unreachable; } } $32 = ($24 | 0) == ($22 | 0); if ($32) { $33 = 1 << $19; $34 = $33 ^ -1; $35 = HEAP32[133240 >> 2] | 0; $36 = $35 & $34; HEAP32[133240 >> 2] = $36; $p$0 = $14; $psize$0 = $15; break; } $37 = ($24 | 0) == ($26 | 0); if ($37) { $$pre69 = ($24 + 8) | 0; $$pre$phi70Z2D = $$pre69; } else { $38 = $24 >>> 0 < $2 >>> 0; if ($38) { _abort(); // unreachable; } $39 = ($24 + 8) | 0; $40 = HEAP32[$39 >> 2] | 0; $41 = ($40 | 0) == ($14 | 0); if ($41) { $$pre$phi70Z2D = $39; } else { _abort(); // unreachable; } } $42 = ($22 + 12) | 0; HEAP32[$42 >> 2] = $24; HEAP32[$$pre$phi70Z2D >> 2] = $22; $p$0 = $14; $psize$0 = $15; break; } $$sum28 = ($$sum2 + 24) | 0; $43 = ($mem + $$sum28) | 0; $44 = HEAP32[$43 >> 2] | 0; $$sum29 = ($$sum2 + 12) | 0; $45 = ($mem + $$sum29) | 0; $46 = HEAP32[$45 >> 2] | 0; $47 = ($46 | 0) == ($14 | 0); do { if ($47) { $$sum31 = ($$sum2 + 20) | 0; $57 = ($mem + $$sum31) | 0; $58 = HEAP32[$57 >> 2] | 0; $59 = ($58 | 0) == (0 | 0); if ($59) { $$sum30 = ($$sum2 + 16) | 0; $60 = ($mem + $$sum30) | 0; $61 = HEAP32[$60 >> 2] | 0; $62 = ($61 | 0) == (0 | 0); if ($62) { $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; $65 = ($64 | 0) == (0 | 0); if (!$65) { $R$0 = $64; $RP$0 = $63; continue; } $66 = ($R$0 + 16) | 0; $67 = HEAP32[$66 >> 2] | 0; $68 = ($67 | 0) == (0 | 0); if ($68) { break; } else { $R$0 = $67; $RP$0 = $66; } } $69 = $RP$0 >>> 0 < $2 >>> 0; if ($69) { _abort(); // unreachable; } else { HEAP32[$RP$0 >> 2] = 0; $R$1 = $R$0; break; } } else { $$sum35 = ($$sum2 + 8) | 0; $48 = ($mem + $$sum35) | 0; $49 = HEAP32[$48 >> 2] | 0; $50 = $49 >>> 0 < $2 >>> 0; if ($50) { _abort(); // unreachable; } $51 = ($49 + 12) | 0; $52 = HEAP32[$51 >> 2] | 0; $53 = ($52 | 0) == ($14 | 0); if (!$53) { _abort(); // unreachable; } $54 = ($46 + 8) | 0; $55 = HEAP32[$54 >> 2] | 0; $56 = ($55 | 0) == ($14 | 0); if ($56) { HEAP32[$51 >> 2] = $46; HEAP32[$54 >> 2] = $49; $R$1 = $46; break; } else { _abort(); // unreachable; } } } while (0); $70 = ($44 | 0) == (0 | 0); if ($70) { $p$0 = $14; $psize$0 = $15; } else { $$sum32 = ($$sum2 + 28) | 0; $71 = ($mem + $$sum32) | 0; $72 = HEAP32[$71 >> 2] | 0; $73 = (((133240 + ($72 << 2)) | 0) + 304) | 0; $74 = HEAP32[$73 >> 2] | 0; $75 = ($14 | 0) == ($74 | 0); if ($75) { HEAP32[$73 >> 2] = $R$1; $cond = ($R$1 | 0) == (0 | 0); if ($cond) { $76 = 1 << $72; $77 = $76 ^ -1; $78 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $79 = $78 & $77; HEAP32[((133240 + 4) | 0) >> 2] = $79; $p$0 = $14; $psize$0 = $15; break; } } else { $80 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $81 = $44 >>> 0 < $80 >>> 0; if ($81) { _abort(); // unreachable; } $82 = ($44 + 16) | 0; $83 = HEAP32[$82 >> 2] | 0; $84 = ($83 | 0) == ($14 | 0); if ($84) { HEAP32[$82 >> 2] = $R$1; } else { $85 = ($44 + 20) | 0; HEAP32[$85 >> 2] = $R$1; } $86 = ($R$1 | 0) == (0 | 0); if ($86) { $p$0 = $14; $psize$0 = $15; break; } } $87 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $88 = $R$1 >>> 0 < $87 >>> 0; if ($88) { _abort(); // unreachable; } $89 = ($R$1 + 24) | 0; HEAP32[$89 >> 2] = $44; $$sum33 = ($$sum2 + 16) | 0; $90 = ($mem + $$sum33) | 0; $91 = HEAP32[$90 >> 2] | 0; $92 = ($91 | 0) == (0 | 0); do { if (!$92) { $93 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $94 = $91 >>> 0 < $93 >>> 0; if ($94) { _abort(); // unreachable; } else { $95 = ($R$1 + 16) | 0; HEAP32[$95 >> 2] = $91; $96 = ($91 + 24) | 0; HEAP32[$96 >> 2] = $R$1; break; } } } while (0); $$sum34 = ($$sum2 + 20) | 0; $97 = ($mem + $$sum34) | 0; $98 = HEAP32[$97 >> 2] | 0; $99 = ($98 | 0) == (0 | 0); if ($99) { $p$0 = $14; $psize$0 = $15; } else { $100 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $101 = $98 >>> 0 < $100 >>> 0; if ($101) { _abort(); // unreachable; } else { $102 = ($R$1 + 20) | 0; HEAP32[$102 >> 2] = $98; $103 = ($98 + 24) | 0; HEAP32[$103 >> 2] = $R$1; $p$0 = $14; $psize$0 = $15; break; } } } } else { $p$0 = $1; $psize$0 = $8; } } while (0); $112 = $p$0 >>> 0 < $9 >>> 0; if (!$112) { _abort(); // unreachable; } $$sum25 = ($8 + -4) | 0; $113 = ($mem + $$sum25) | 0; $114 = HEAP32[$113 >> 2] | 0; $115 = $114 & 1; $116 = ($115 | 0) == 0; if ($116) { _abort(); // unreachable; } $117 = $114 & 2; $118 = ($117 | 0) == 0; if ($118) { $119 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $120 = ($9 | 0) == ($119 | 0); if ($120) { $121 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $122 = ($121 + $psize$0) | 0; HEAP32[((133240 + 12) | 0) >> 2] = $122; HEAP32[((133240 + 24) | 0) >> 2] = $p$0; $123 = $122 | 1; $124 = ($p$0 + 4) | 0; HEAP32[$124 >> 2] = $123; $125 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $126 = ($p$0 | 0) == ($125 | 0); if (!$126) { STACKTOP = sp; return; } HEAP32[((133240 + 20) | 0) >> 2] = 0; HEAP32[((133240 + 8) | 0) >> 2] = 0; STACKTOP = sp; return; } $127 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $128 = ($9 | 0) == ($127 | 0); if ($128) { $129 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $130 = ($129 + $psize$0) | 0; HEAP32[((133240 + 8) | 0) >> 2] = $130; HEAP32[((133240 + 20) | 0) >> 2] = $p$0; $131 = $130 | 1; $132 = ($p$0 + 4) | 0; HEAP32[$132 >> 2] = $131; $133 = ($p$0 + $130) | 0; HEAP32[$133 >> 2] = $130; STACKTOP = sp; return; } $134 = $114 & -8; $135 = ($134 + $psize$0) | 0; $136 = $114 >>> 3; $137 = $114 >>> 0 < 256; do { if ($137) { $138 = ($mem + $8) | 0; $139 = HEAP32[$138 >> 2] | 0; $$sum2324 = $8 | 4; $140 = ($mem + $$sum2324) | 0; $141 = HEAP32[$140 >> 2] | 0; $142 = $136 << 1; $143 = (((133240 + ($142 << 2)) | 0) + 40) | 0; $144 = ($139 | 0) == ($143 | 0); if (!$144) { $145 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $146 = $139 >>> 0 < $145 >>> 0; if ($146) { _abort(); // unreachable; } $147 = ($139 + 12) | 0; $148 = HEAP32[$147 >> 2] | 0; $149 = ($148 | 0) == ($9 | 0); if (!$149) { _abort(); // unreachable; } } $150 = ($141 | 0) == ($139 | 0); if ($150) { $151 = 1 << $136; $152 = $151 ^ -1; $153 = HEAP32[133240 >> 2] | 0; $154 = $153 & $152; HEAP32[133240 >> 2] = $154; break; } $155 = ($141 | 0) == ($143 | 0); if ($155) { $$pre67 = ($141 + 8) | 0; $$pre$phi68Z2D = $$pre67; } else { $156 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $157 = $141 >>> 0 < $156 >>> 0; if ($157) { _abort(); // unreachable; } $158 = ($141 + 8) | 0; $159 = HEAP32[$158 >> 2] | 0; $160 = ($159 | 0) == ($9 | 0); if ($160) { $$pre$phi68Z2D = $158; } else { _abort(); // unreachable; } } $161 = ($139 + 12) | 0; HEAP32[$161 >> 2] = $141; HEAP32[$$pre$phi68Z2D >> 2] = $139; } else { $$sum5 = ($8 + 16) | 0; $162 = ($mem + $$sum5) | 0; $163 = HEAP32[$162 >> 2] | 0; $$sum67 = $8 | 4; $164 = ($mem + $$sum67) | 0; $165 = HEAP32[$164 >> 2] | 0; $166 = ($165 | 0) == ($9 | 0); do { if ($166) { $$sum9 = ($8 + 12) | 0; $177 = ($mem + $$sum9) | 0; $178 = HEAP32[$177 >> 2] | 0; $179 = ($178 | 0) == (0 | 0); if ($179) { $$sum8 = ($8 + 8) | 0; $180 = ($mem + $$sum8) | 0; $181 = HEAP32[$180 >> 2] | 0; $182 = ($181 | 0) == (0 | 0); if ($182) { $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; $185 = ($184 | 0) == (0 | 0); if (!$185) { $R7$0 = $184; $RP9$0 = $183; continue; } $186 = ($R7$0 + 16) | 0; $187 = HEAP32[$186 >> 2] | 0; $188 = ($187 | 0) == (0 | 0); if ($188) { break; } else { $R7$0 = $187; $RP9$0 = $186; } } $189 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $190 = $RP9$0 >>> 0 < $189 >>> 0; if ($190) { _abort(); // unreachable; } else { HEAP32[$RP9$0 >> 2] = 0; $R7$1 = $R7$0; break; } } else { $167 = ($mem + $8) | 0; $168 = HEAP32[$167 >> 2] | 0; $169 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $170 = $168 >>> 0 < $169 >>> 0; if ($170) { _abort(); // unreachable; } $171 = ($168 + 12) | 0; $172 = HEAP32[$171 >> 2] | 0; $173 = ($172 | 0) == ($9 | 0); if (!$173) { _abort(); // unreachable; } $174 = ($165 + 8) | 0; $175 = HEAP32[$174 >> 2] | 0; $176 = ($175 | 0) == ($9 | 0); if ($176) { HEAP32[$171 >> 2] = $165; HEAP32[$174 >> 2] = $168; $R7$1 = $165; break; } else { _abort(); // unreachable; } } } while (0); $191 = ($163 | 0) == (0 | 0); if (!$191) { $$sum18 = ($8 + 20) | 0; $192 = ($mem + $$sum18) | 0; $193 = HEAP32[$192 >> 2] | 0; $194 = (((133240 + ($193 << 2)) | 0) + 304) | 0; $195 = HEAP32[$194 >> 2] | 0; $196 = ($9 | 0) == ($195 | 0); if ($196) { HEAP32[$194 >> 2] = $R7$1; $cond54 = ($R7$1 | 0) == (0 | 0); if ($cond54) { $197 = 1 << $193; $198 = $197 ^ -1; $199 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $200 = $199 & $198; HEAP32[((133240 + 4) | 0) >> 2] = $200; break; } } else { $201 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $202 = $163 >>> 0 < $201 >>> 0; if ($202) { _abort(); // unreachable; } $203 = ($163 + 16) | 0; $204 = HEAP32[$203 >> 2] | 0; $205 = ($204 | 0) == ($9 | 0); if ($205) { HEAP32[$203 >> 2] = $R7$1; } else { $206 = ($163 + 20) | 0; HEAP32[$206 >> 2] = $R7$1; } $207 = ($R7$1 | 0) == (0 | 0); if ($207) { break; } } $208 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $209 = $R7$1 >>> 0 < $208 >>> 0; if ($209) { _abort(); // unreachable; } $210 = ($R7$1 + 24) | 0; HEAP32[$210 >> 2] = $163; $$sum19 = ($8 + 8) | 0; $211 = ($mem + $$sum19) | 0; $212 = HEAP32[$211 >> 2] | 0; $213 = ($212 | 0) == (0 | 0); do { if (!$213) { $214 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $215 = $212 >>> 0 < $214 >>> 0; if ($215) { _abort(); // unreachable; } else { $216 = ($R7$1 + 16) | 0; HEAP32[$216 >> 2] = $212; $217 = ($212 + 24) | 0; HEAP32[$217 >> 2] = $R7$1; break; } } } while (0); $$sum20 = ($8 + 12) | 0; $218 = ($mem + $$sum20) | 0; $219 = HEAP32[$218 >> 2] | 0; $220 = ($219 | 0) == (0 | 0); if (!$220) { $221 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $222 = $219 >>> 0 < $221 >>> 0; if ($222) { _abort(); // unreachable; } else { $223 = ($R7$1 + 20) | 0; HEAP32[$223 >> 2] = $219; $224 = ($219 + 24) | 0; HEAP32[$224 >> 2] = $R7$1; break; } } } } } while (0); $225 = $135 | 1; $226 = ($p$0 + 4) | 0; HEAP32[$226 >> 2] = $225; $227 = ($p$0 + $135) | 0; HEAP32[$227 >> 2] = $135; $228 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $229 = ($p$0 | 0) == ($228 | 0); if ($229) { HEAP32[((133240 + 8) | 0) >> 2] = $135; STACKTOP = sp; return; } else { $psize$1 = $135; } } else { $230 = $114 & -2; HEAP32[$113 >> 2] = $230; $231 = $psize$0 | 1; $232 = ($p$0 + 4) | 0; HEAP32[$232 >> 2] = $231; $233 = ($p$0 + $psize$0) | 0; HEAP32[$233 >> 2] = $psize$0; $psize$1 = $psize$0; } $234 = $psize$1 >>> 3; $235 = $psize$1 >>> 0 < 256; if ($235) { $236 = $234 << 1; $237 = (((133240 + ($236 << 2)) | 0) + 40) | 0; $238 = HEAP32[133240 >> 2] | 0; $239 = 1 << $234; $240 = $238 & $239; $241 = ($240 | 0) == 0; if ($241) { $242 = $238 | $239; HEAP32[133240 >> 2] = $242; $$sum16$pre = ($236 + 2) | 0; $$pre = (((133240 + ($$sum16$pre << 2)) | 0) + 40) | 0; $$pre$phiZ2D = $$pre; $F16$0 = $237; } else { $$sum17 = ($236 + 2) | 0; $243 = (((133240 + ($$sum17 << 2)) | 0) + 40) | 0; $244 = HEAP32[$243 >> 2] | 0; $245 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $246 = $244 >>> 0 < $245 >>> 0; if ($246) { _abort(); // unreachable; } else { $$pre$phiZ2D = $243; $F16$0 = $244; } } HEAP32[$$pre$phiZ2D >> 2] = $p$0; $247 = ($F16$0 + 12) | 0; HEAP32[$247 >> 2] = $p$0; $248 = ($p$0 + 8) | 0; HEAP32[$248 >> 2] = $F16$0; $249 = ($p$0 + 12) | 0; HEAP32[$249 >> 2] = $237; STACKTOP = sp; return; } $250 = $psize$1 >>> 8; $251 = ($250 | 0) == 0; if ($251) { $I18$0 = 0; } else { $252 = $psize$1 >>> 0 > 16777215; if ($252) { $I18$0 = 31; } else { $253 = ($250 + 1048320) | 0; $254 = $253 >>> 16; $255 = $254 & 8; $256 = $250 << $255; $257 = ($256 + 520192) | 0; $258 = $257 >>> 16; $259 = $258 & 4; $260 = $259 | $255; $261 = $256 << $259; $262 = ($261 + 245760) | 0; $263 = $262 >>> 16; $264 = $263 & 2; $265 = $260 | $264; $266 = (14 - $265) | 0; $267 = $261 << $264; $268 = $267 >>> 15; $269 = ($266 + $268) | 0; $270 = $269 << 1; $271 = ($269 + 7) | 0; $272 = $psize$1 >>> $271; $273 = $272 & 1; $274 = $273 | $270; $I18$0 = $274; } } $275 = (((133240 + ($I18$0 << 2)) | 0) + 304) | 0; $276 = ($p$0 + 28) | 0; $I18$0$c = $I18$0; HEAP32[$276 >> 2] = $I18$0$c; $277 = ($p$0 + 20) | 0; HEAP32[$277 >> 2] = 0; $278 = ($p$0 + 16) | 0; HEAP32[$278 >> 2] = 0; $279 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $280 = 1 << $I18$0; $281 = $279 & $280; $282 = ($281 | 0) == 0; L199: do { if ($282) { $283 = $279 | $280; HEAP32[((133240 + 4) | 0) >> 2] = $283; HEAP32[$275 >> 2] = $p$0; $284 = ($p$0 + 24) | 0; HEAP32[$284 >> 2] = $275; $285 = ($p$0 + 12) | 0; HEAP32[$285 >> 2] = $p$0; $286 = ($p$0 + 8) | 0; HEAP32[$286 >> 2] = $p$0; } else { $287 = HEAP32[$275 >> 2] | 0; $288 = ($I18$0 | 0) == 31; if ($288) { $296 = 0; } else { $289 = $I18$0 >>> 1; $290 = (25 - $289) | 0; $296 = $290; } $291 = ($287 + 4) | 0; $292 = HEAP32[$291 >> 2] | 0; $293 = $292 & -8; $294 = ($293 | 0) == ($psize$1 | 0); L205: do { if ($294) { $T$0$lcssa = $287; } else { $295 = $psize$1 << $296; $K19$057 = $295; $T$056 = $287; while (1) { $303 = $K19$057 >>> 31; $304 = ((($T$056 + ($303 << 2)) | 0) + 16) | 0; $299 = HEAP32[$304 >> 2] | 0; $305 = ($299 | 0) == (0 | 0); if ($305) { break; } $297 = $K19$057 << 1; $298 = ($299 + 4) | 0; $300 = HEAP32[$298 >> 2] | 0; $301 = $300 & -8; $302 = ($301 | 0) == ($psize$1 | 0); if ($302) { $T$0$lcssa = $299; break L205; } else { $K19$057 = $297; $T$056 = $299; } } $306 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $307 = $304 >>> 0 < $306 >>> 0; if ($307) { _abort(); // unreachable; } else { HEAP32[$304 >> 2] = $p$0; $308 = ($p$0 + 24) | 0; HEAP32[$308 >> 2] = $T$056; $309 = ($p$0 + 12) | 0; HEAP32[$309 >> 2] = $p$0; $310 = ($p$0 + 8) | 0; HEAP32[$310 >> 2] = $p$0; break L199; } } } while (0); $311 = ($T$0$lcssa + 8) | 0; $312 = HEAP32[$311 >> 2] | 0; $313 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $314 = $T$0$lcssa >>> 0 < $313 >>> 0; if ($314) { _abort(); // unreachable; } $315 = $312 >>> 0 < $313 >>> 0; if ($315) { _abort(); // unreachable; } else { $316 = ($312 + 12) | 0; HEAP32[$316 >> 2] = $p$0; HEAP32[$311 >> 2] = $p$0; $317 = ($p$0 + 8) | 0; HEAP32[$317 >> 2] = $312; $318 = ($p$0 + 12) | 0; HEAP32[$318 >> 2] = $T$0$lcssa; $319 = ($p$0 + 24) | 0; HEAP32[$319 >> 2] = 0; break; } } } while (0); $320 = HEAP32[((133240 + 32) | 0) >> 2] | 0; $321 = ($320 + -1) | 0; HEAP32[((133240 + 32) | 0) >> 2] = $321; $322 = ($321 | 0) == 0; if ($322) { $sp$0$in$i = (133240 + 456) | 0; } else { STACKTOP = sp; return; } while (1) { $sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0; $323 = ($sp$0$i | 0) == (0 | 0); $324 = ($sp$0$i + 8) | 0; if ($323) { break; } else { $sp$0$in$i = $324; } } HEAP32[((133240 + 32) | 0) >> 2] = -1; STACKTOP = sp; return; } function _calloc($n_elements, $elem_size) { $n_elements = $n_elements | 0; $elem_size = $elem_size | 0; var $$ = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $req$0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($n_elements | 0) == 0; if ($0) { $req$0 = 0; } else { $1 = Math_imul($elem_size, $n_elements) | 0; $2 = $elem_size | $n_elements; $3 = $2 >>> 0 > 65535; if ($3) { $4 = (($1 >>> 0) / ($n_elements >>> 0)) & -1; $5 = ($4 | 0) == ($elem_size | 0); $$ = $5 ? $1 : -1; $req$0 = $$; } else { $req$0 = $1; } } $6 = _malloc($req$0) | 0; $7 = ($6 | 0) == (0 | 0); if ($7) { STACKTOP = sp; return $6 | 0; } $8 = ($6 + -4) | 0; $9 = HEAP32[$8 >> 2] | 0; $10 = $9 & 3; $11 = ($10 | 0) == 0; if ($11) { STACKTOP = sp; return $6 | 0; } _memset($6 | 0, 0, $req$0 | 0) | 0; STACKTOP = sp; return $6 | 0; } function _realloc($oldmem, $bytes) { $oldmem = $oldmem | 0; $bytes = $bytes | 0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; var $7 = 0, $8 = 0, $9 = 0, $mem$0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($oldmem | 0) == (0 | 0); do { if ($0) { $1 = _malloc($bytes) | 0; $mem$0 = $1; } else { $2 = $bytes >>> 0 > 4294967231; if ($2) { $3 = ___errno_location() | 0; HEAP32[$3 >> 2] = 12; $mem$0 = 0; break; } $4 = $bytes >>> 0 < 11; if ($4) { $8 = 16; } else { $5 = ($bytes + 11) | 0; $6 = $5 & -8; $8 = $6; } $7 = ($oldmem + -8) | 0; $9 = _try_realloc_chunk($7, $8) | 0; $10 = ($9 | 0) == (0 | 0); if (!$10) { $11 = ($9 + 8) | 0; $mem$0 = $11; break; } $12 = _malloc($bytes) | 0; $13 = ($12 | 0) == (0 | 0); if ($13) { $mem$0 = 0; } else { $14 = ($oldmem + -4) | 0; $15 = HEAP32[$14 >> 2] | 0; $16 = $15 & -8; $17 = $15 & 3; $18 = ($17 | 0) == 0; $19 = $18 ? 8 : 4; $20 = ($16 - $19) | 0; $21 = $20 >>> 0 < $bytes >>> 0; $22 = $21 ? $20 : $bytes; _memcpy($12 | 0, $oldmem | 0, $22 | 0) | 0; _free($oldmem); $mem$0 = $12; } } } while (0); STACKTOP = sp; return $mem$0 | 0; } function _try_realloc_chunk($p, $nb) { $p = $p | 0; $nb = $nb | 0; var $$pre = 0, $$pre$phiZ2D = 0, $$sum = 0, $$sum11 = 0, $$sum12 = 0, $$sum13 = 0, $$sum14 = 0, $$sum15 = 0, $$sum16 = 0, $$sum17 = 0, $$sum19 = 0, $$sum2 = 0, $$sum20 = 0, $$sum22 = 0, $$sum23 = 0, $$sum2728 = 0, $$sum3 = 0, $$sum4 = 0, $$sum5 = 0, $$sum78 = 0; var $$sum910 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $R$0 = 0, $R$1 = 0, $RP$0 = 0; var $cond = 0, $newp$0 = 0, $or$cond = 0, $storemerge = 0, $storemerge21 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($p + 4) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = $1 & -8; $3 = ($p + $2) | 0; $4 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $5 = $p >>> 0 < $4 >>> 0; if ($5) { _abort(); // unreachable; } $6 = $1 & 3; $7 = ($6 | 0) != 1; $8 = $p >>> 0 < $3 >>> 0; $or$cond = $7 & $8; if (!$or$cond) { _abort(); // unreachable; } $$sum2728 = $2 | 4; $9 = ($p + $$sum2728) | 0; $10 = HEAP32[$9 >> 2] | 0; $11 = $10 & 1; $12 = ($11 | 0) == 0; if ($12) { _abort(); // unreachable; } $13 = ($6 | 0) == 0; if ($13) { $14 = $nb >>> 0 < 256; if ($14) { $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $15 = ($nb + 4) | 0; $16 = $2 >>> 0 < $15 >>> 0; if (!$16) { $17 = ($2 - $nb) | 0; $18 = HEAP32[((133712 + 8) | 0) >> 2] | 0; $19 = $18 << 1; $20 = $17 >>> 0 > $19 >>> 0; if (!$20) { $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } } $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $21 = $2 >>> 0 < $nb >>> 0; if (!$21) { $22 = ($2 - $nb) | 0; $23 = $22 >>> 0 > 15; if (!$23) { $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } $24 = ($p + $nb) | 0; $25 = $1 & 1; $26 = $25 | $nb; $27 = $26 | 2; HEAP32[$0 >> 2] = $27; $$sum23 = ($nb + 4) | 0; $28 = ($p + $$sum23) | 0; $29 = $22 | 3; HEAP32[$28 >> 2] = $29; $30 = HEAP32[$9 >> 2] | 0; $31 = $30 | 1; HEAP32[$9 >> 2] = $31; _dispose_chunk($24, $22); $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } $32 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $33 = ($3 | 0) == ($32 | 0); if ($33) { $34 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $35 = ($34 + $2) | 0; $36 = $35 >>> 0 > $nb >>> 0; if (!$36) { $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $37 = ($35 - $nb) | 0; $38 = ($p + $nb) | 0; $39 = $1 & 1; $40 = $39 | $nb; $41 = $40 | 2; HEAP32[$0 >> 2] = $41; $$sum22 = ($nb + 4) | 0; $42 = ($p + $$sum22) | 0; $43 = $37 | 1; HEAP32[$42 >> 2] = $43; HEAP32[((133240 + 24) | 0) >> 2] = $38; HEAP32[((133240 + 12) | 0) >> 2] = $37; $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } $44 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $45 = ($3 | 0) == ($44 | 0); if ($45) { $46 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $47 = ($46 + $2) | 0; $48 = $47 >>> 0 < $nb >>> 0; if ($48) { $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $49 = ($47 - $nb) | 0; $50 = $49 >>> 0 > 15; if ($50) { $51 = ($p + $nb) | 0; $52 = ($p + $47) | 0; $53 = $1 & 1; $54 = $53 | $nb; $55 = $54 | 2; HEAP32[$0 >> 2] = $55; $$sum19 = ($nb + 4) | 0; $56 = ($p + $$sum19) | 0; $57 = $49 | 1; HEAP32[$56 >> 2] = $57; HEAP32[$52 >> 2] = $49; $$sum20 = ($47 + 4) | 0; $58 = ($p + $$sum20) | 0; $59 = HEAP32[$58 >> 2] | 0; $60 = $59 & -2; HEAP32[$58 >> 2] = $60; $storemerge = $51; $storemerge21 = $49; } else { $61 = $1 & 1; $62 = $61 | $47; $63 = $62 | 2; HEAP32[$0 >> 2] = $63; $$sum17 = ($47 + 4) | 0; $64 = ($p + $$sum17) | 0; $65 = HEAP32[$64 >> 2] | 0; $66 = $65 | 1; HEAP32[$64 >> 2] = $66; $storemerge = 0; $storemerge21 = 0; } HEAP32[((133240 + 8) | 0) >> 2] = $storemerge21; HEAP32[((133240 + 20) | 0) >> 2] = $storemerge; $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } $67 = $10 & 2; $68 = ($67 | 0) == 0; if (!$68) { $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $69 = $10 & -8; $70 = ($69 + $2) | 0; $71 = $70 >>> 0 < $nb >>> 0; if ($71) { $newp$0 = 0; STACKTOP = sp; return $newp$0 | 0; } $72 = ($70 - $nb) | 0; $73 = $10 >>> 3; $74 = $10 >>> 0 < 256; do { if ($74) { $$sum15 = ($2 + 8) | 0; $75 = ($p + $$sum15) | 0; $76 = HEAP32[$75 >> 2] | 0; $$sum16 = ($2 + 12) | 0; $77 = ($p + $$sum16) | 0; $78 = HEAP32[$77 >> 2] | 0; $79 = $73 << 1; $80 = (((133240 + ($79 << 2)) | 0) + 40) | 0; $81 = ($76 | 0) == ($80 | 0); if (!$81) { $82 = $76 >>> 0 < $4 >>> 0; if ($82) { _abort(); // unreachable; } $83 = ($76 + 12) | 0; $84 = HEAP32[$83 >> 2] | 0; $85 = ($84 | 0) == ($3 | 0); if (!$85) { _abort(); // unreachable; } } $86 = ($78 | 0) == ($76 | 0); if ($86) { $87 = 1 << $73; $88 = $87 ^ -1; $89 = HEAP32[133240 >> 2] | 0; $90 = $89 & $88; HEAP32[133240 >> 2] = $90; break; } $91 = ($78 | 0) == ($80 | 0); if ($91) { $$pre = ($78 + 8) | 0; $$pre$phiZ2D = $$pre; } else { $92 = $78 >>> 0 < $4 >>> 0; if ($92) { _abort(); // unreachable; } $93 = ($78 + 8) | 0; $94 = HEAP32[$93 >> 2] | 0; $95 = ($94 | 0) == ($3 | 0); if ($95) { $$pre$phiZ2D = $93; } else { _abort(); // unreachable; } } $96 = ($76 + 12) | 0; HEAP32[$96 >> 2] = $78; HEAP32[$$pre$phiZ2D >> 2] = $76; } else { $$sum = ($2 + 24) | 0; $97 = ($p + $$sum) | 0; $98 = HEAP32[$97 >> 2] | 0; $$sum2 = ($2 + 12) | 0; $99 = ($p + $$sum2) | 0; $100 = HEAP32[$99 >> 2] | 0; $101 = ($100 | 0) == ($3 | 0); do { if ($101) { $$sum4 = ($2 + 20) | 0; $111 = ($p + $$sum4) | 0; $112 = HEAP32[$111 >> 2] | 0; $113 = ($112 | 0) == (0 | 0); if ($113) { $$sum3 = ($2 + 16) | 0; $114 = ($p + $$sum3) | 0; $115 = HEAP32[$114 >> 2] | 0; $116 = ($115 | 0) == (0 | 0); if ($116) { $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; $119 = ($118 | 0) == (0 | 0); if (!$119) { $R$0 = $118; $RP$0 = $117; continue; } $120 = ($R$0 + 16) | 0; $121 = HEAP32[$120 >> 2] | 0; $122 = ($121 | 0) == (0 | 0); if ($122) { break; } else { $R$0 = $121; $RP$0 = $120; } } $123 = $RP$0 >>> 0 < $4 >>> 0; if ($123) { _abort(); // unreachable; } else { HEAP32[$RP$0 >> 2] = 0; $R$1 = $R$0; break; } } else { $$sum14 = ($2 + 8) | 0; $102 = ($p + $$sum14) | 0; $103 = HEAP32[$102 >> 2] | 0; $104 = $103 >>> 0 < $4 >>> 0; if ($104) { _abort(); // unreachable; } $105 = ($103 + 12) | 0; $106 = HEAP32[$105 >> 2] | 0; $107 = ($106 | 0) == ($3 | 0); if (!$107) { _abort(); // unreachable; } $108 = ($100 + 8) | 0; $109 = HEAP32[$108 >> 2] | 0; $110 = ($109 | 0) == ($3 | 0); if ($110) { HEAP32[$105 >> 2] = $100; HEAP32[$108 >> 2] = $103; $R$1 = $100; break; } else { _abort(); // unreachable; } } } while (0); $124 = ($98 | 0) == (0 | 0); if (!$124) { $$sum11 = ($2 + 28) | 0; $125 = ($p + $$sum11) | 0; $126 = HEAP32[$125 >> 2] | 0; $127 = (((133240 + ($126 << 2)) | 0) + 304) | 0; $128 = HEAP32[$127 >> 2] | 0; $129 = ($3 | 0) == ($128 | 0); if ($129) { HEAP32[$127 >> 2] = $R$1; $cond = ($R$1 | 0) == (0 | 0); if ($cond) { $130 = 1 << $126; $131 = $130 ^ -1; $132 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $133 = $132 & $131; HEAP32[((133240 + 4) | 0) >> 2] = $133; break; } } else { $134 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $135 = $98 >>> 0 < $134 >>> 0; if ($135) { _abort(); // unreachable; } $136 = ($98 + 16) | 0; $137 = HEAP32[$136 >> 2] | 0; $138 = ($137 | 0) == ($3 | 0); if ($138) { HEAP32[$136 >> 2] = $R$1; } else { $139 = ($98 + 20) | 0; HEAP32[$139 >> 2] = $R$1; } $140 = ($R$1 | 0) == (0 | 0); if ($140) { break; } } $141 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $142 = $R$1 >>> 0 < $141 >>> 0; if ($142) { _abort(); // unreachable; } $143 = ($R$1 + 24) | 0; HEAP32[$143 >> 2] = $98; $$sum12 = ($2 + 16) | 0; $144 = ($p + $$sum12) | 0; $145 = HEAP32[$144 >> 2] | 0; $146 = ($145 | 0) == (0 | 0); do { if (!$146) { $147 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $148 = $145 >>> 0 < $147 >>> 0; if ($148) { _abort(); // unreachable; } else { $149 = ($R$1 + 16) | 0; HEAP32[$149 >> 2] = $145; $150 = ($145 + 24) | 0; HEAP32[$150 >> 2] = $R$1; break; } } } while (0); $$sum13 = ($2 + 20) | 0; $151 = ($p + $$sum13) | 0; $152 = HEAP32[$151 >> 2] | 0; $153 = ($152 | 0) == (0 | 0); if (!$153) { $154 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $155 = $152 >>> 0 < $154 >>> 0; if ($155) { _abort(); // unreachable; } else { $156 = ($R$1 + 20) | 0; HEAP32[$156 >> 2] = $152; $157 = ($152 + 24) | 0; HEAP32[$157 >> 2] = $R$1; break; } } } } } while (0); $158 = $72 >>> 0 < 16; if ($158) { $159 = HEAP32[$0 >> 2] | 0; $160 = $159 & 1; $161 = $70 | $160; $162 = $161 | 2; HEAP32[$0 >> 2] = $162; $$sum910 = $70 | 4; $163 = ($p + $$sum910) | 0; $164 = HEAP32[$163 >> 2] | 0; $165 = $164 | 1; HEAP32[$163 >> 2] = $165; $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } else { $166 = ($p + $nb) | 0; $167 = HEAP32[$0 >> 2] | 0; $168 = $167 & 1; $169 = $168 | $nb; $170 = $169 | 2; HEAP32[$0 >> 2] = $170; $$sum5 = ($nb + 4) | 0; $171 = ($p + $$sum5) | 0; $172 = $72 | 3; HEAP32[$171 >> 2] = $172; $$sum78 = $70 | 4; $173 = ($p + $$sum78) | 0; $174 = HEAP32[$173 >> 2] | 0; $175 = $174 | 1; HEAP32[$173 >> 2] = $175; _dispose_chunk($166, $72); $newp$0 = $p; STACKTOP = sp; return $newp$0 | 0; } return 0 | 0; } function _dispose_chunk($p, $psize) { $p = $p | 0; $psize = $psize | 0; var $$0 = 0, $$02 = 0, $$1 = 0, $$pre = 0, $$pre$phi63Z2D = 0, $$pre$phi65Z2D = 0, $$pre$phiZ2D = 0, $$pre62 = 0, $$pre64 = 0, $$sum = 0, $$sum1 = 0, $$sum12$pre = 0, $$sum13 = 0, $$sum14 = 0, $$sum15 = 0, $$sum16 = 0, $$sum17 = 0, $$sum18 = 0, $$sum19 = 0, $$sum2 = 0; var $$sum20 = 0, $$sum22 = 0, $$sum23 = 0, $$sum24 = 0, $$sum25 = 0, $$sum26 = 0, $$sum27 = 0, $$sum28 = 0, $$sum29 = 0, $$sum3 = 0, $$sum30 = 0, $$sum31 = 0, $$sum4 = 0, $$sum5 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0; var $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0; var $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0; var $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0; var $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0; var $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0; var $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0; var $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0; var $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0; var $248 = 0, $249 = 0, $25 = 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; var $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0; var $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0; var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F16$0 = 0, $I19$0 = 0, $I19$0$c = 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, $cond = 0, $cond46 = 0, label = 0; var sp = 0; sp = STACKTOP; $0 = ($p + $psize) | 0; $1 = ($p + 4) | 0; $2 = HEAP32[$1 >> 2] | 0; $3 = $2 & 1; $4 = ($3 | 0) == 0; do { if ($4) { $5 = HEAP32[$p >> 2] | 0; $6 = $2 & 3; $7 = ($6 | 0) == 0; if ($7) { STACKTOP = sp; return; } $8 = (0 - $5) | 0; $9 = ($p + $8) | 0; $10 = ($5 + $psize) | 0; $11 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $12 = $9 >>> 0 < $11 >>> 0; if ($12) { _abort(); // unreachable; } $13 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $14 = ($9 | 0) == ($13 | 0); if ($14) { $$sum = ($psize + 4) | 0; $100 = ($p + $$sum) | 0; $101 = HEAP32[$100 >> 2] | 0; $102 = $101 & 3; $103 = ($102 | 0) == 3; if (!$103) { $$0 = $9; $$02 = $10; break; } HEAP32[((133240 + 8) | 0) >> 2] = $10; $104 = HEAP32[$100 >> 2] | 0; $105 = $104 & -2; HEAP32[$100 >> 2] = $105; $106 = $10 | 1; $$sum20 = (4 - $5) | 0; $107 = ($p + $$sum20) | 0; HEAP32[$107 >> 2] = $106; HEAP32[$0 >> 2] = $10; STACKTOP = sp; return; } $15 = $5 >>> 3; $16 = $5 >>> 0 < 256; if ($16) { $$sum30 = (8 - $5) | 0; $17 = ($p + $$sum30) | 0; $18 = HEAP32[$17 >> 2] | 0; $$sum31 = (12 - $5) | 0; $19 = ($p + $$sum31) | 0; $20 = HEAP32[$19 >> 2] | 0; $21 = $15 << 1; $22 = (((133240 + ($21 << 2)) | 0) + 40) | 0; $23 = ($18 | 0) == ($22 | 0); if (!$23) { $24 = $18 >>> 0 < $11 >>> 0; if ($24) { _abort(); // unreachable; } $25 = ($18 + 12) | 0; $26 = HEAP32[$25 >> 2] | 0; $27 = ($26 | 0) == ($9 | 0); if (!$27) { _abort(); // unreachable; } } $28 = ($20 | 0) == ($18 | 0); if ($28) { $29 = 1 << $15; $30 = $29 ^ -1; $31 = HEAP32[133240 >> 2] | 0; $32 = $31 & $30; HEAP32[133240 >> 2] = $32; $$0 = $9; $$02 = $10; break; } $33 = ($20 | 0) == ($22 | 0); if ($33) { $$pre64 = ($20 + 8) | 0; $$pre$phi65Z2D = $$pre64; } else { $34 = $20 >>> 0 < $11 >>> 0; if ($34) { _abort(); // unreachable; } $35 = ($20 + 8) | 0; $36 = HEAP32[$35 >> 2] | 0; $37 = ($36 | 0) == ($9 | 0); if ($37) { $$pre$phi65Z2D = $35; } else { _abort(); // unreachable; } } $38 = ($18 + 12) | 0; HEAP32[$38 >> 2] = $20; HEAP32[$$pre$phi65Z2D >> 2] = $18; $$0 = $9; $$02 = $10; break; } $$sum22 = (24 - $5) | 0; $39 = ($p + $$sum22) | 0; $40 = HEAP32[$39 >> 2] | 0; $$sum23 = (12 - $5) | 0; $41 = ($p + $$sum23) | 0; $42 = HEAP32[$41 >> 2] | 0; $43 = ($42 | 0) == ($9 | 0); do { if ($43) { $$sum24 = (16 - $5) | 0; $$sum25 = ($$sum24 + 4) | 0; $53 = ($p + $$sum25) | 0; $54 = HEAP32[$53 >> 2] | 0; $55 = ($54 | 0) == (0 | 0); if ($55) { $56 = ($p + $$sum24) | 0; $57 = HEAP32[$56 >> 2] | 0; $58 = ($57 | 0) == (0 | 0); if ($58) { $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; $61 = ($60 | 0) == (0 | 0); if (!$61) { $R$0 = $60; $RP$0 = $59; continue; } $62 = ($R$0 + 16) | 0; $63 = HEAP32[$62 >> 2] | 0; $64 = ($63 | 0) == (0 | 0); if ($64) { break; } else { $R$0 = $63; $RP$0 = $62; } } $65 = $RP$0 >>> 0 < $11 >>> 0; if ($65) { _abort(); // unreachable; } else { HEAP32[$RP$0 >> 2] = 0; $R$1 = $R$0; break; } } else { $$sum29 = (8 - $5) | 0; $44 = ($p + $$sum29) | 0; $45 = HEAP32[$44 >> 2] | 0; $46 = $45 >>> 0 < $11 >>> 0; if ($46) { _abort(); // unreachable; } $47 = ($45 + 12) | 0; $48 = HEAP32[$47 >> 2] | 0; $49 = ($48 | 0) == ($9 | 0); if (!$49) { _abort(); // unreachable; } $50 = ($42 + 8) | 0; $51 = HEAP32[$50 >> 2] | 0; $52 = ($51 | 0) == ($9 | 0); if ($52) { HEAP32[$47 >> 2] = $42; HEAP32[$50 >> 2] = $45; $R$1 = $42; break; } else { _abort(); // unreachable; } } } while (0); $66 = ($40 | 0) == (0 | 0); if ($66) { $$0 = $9; $$02 = $10; } else { $$sum26 = (28 - $5) | 0; $67 = ($p + $$sum26) | 0; $68 = HEAP32[$67 >> 2] | 0; $69 = (((133240 + ($68 << 2)) | 0) + 304) | 0; $70 = HEAP32[$69 >> 2] | 0; $71 = ($9 | 0) == ($70 | 0); if ($71) { HEAP32[$69 >> 2] = $R$1; $cond = ($R$1 | 0) == (0 | 0); if ($cond) { $72 = 1 << $68; $73 = $72 ^ -1; $74 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $75 = $74 & $73; HEAP32[((133240 + 4) | 0) >> 2] = $75; $$0 = $9; $$02 = $10; break; } } else { $76 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $77 = $40 >>> 0 < $76 >>> 0; if ($77) { _abort(); // unreachable; } $78 = ($40 + 16) | 0; $79 = HEAP32[$78 >> 2] | 0; $80 = ($79 | 0) == ($9 | 0); if ($80) { HEAP32[$78 >> 2] = $R$1; } else { $81 = ($40 + 20) | 0; HEAP32[$81 >> 2] = $R$1; } $82 = ($R$1 | 0) == (0 | 0); if ($82) { $$0 = $9; $$02 = $10; break; } } $83 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $84 = $R$1 >>> 0 < $83 >>> 0; if ($84) { _abort(); // unreachable; } $85 = ($R$1 + 24) | 0; HEAP32[$85 >> 2] = $40; $$sum27 = (16 - $5) | 0; $86 = ($p + $$sum27) | 0; $87 = HEAP32[$86 >> 2] | 0; $88 = ($87 | 0) == (0 | 0); do { if (!$88) { $89 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $90 = $87 >>> 0 < $89 >>> 0; if ($90) { _abort(); // unreachable; } else { $91 = ($R$1 + 16) | 0; HEAP32[$91 >> 2] = $87; $92 = ($87 + 24) | 0; HEAP32[$92 >> 2] = $R$1; break; } } } while (0); $$sum28 = ($$sum27 + 4) | 0; $93 = ($p + $$sum28) | 0; $94 = HEAP32[$93 >> 2] | 0; $95 = ($94 | 0) == (0 | 0); if ($95) { $$0 = $9; $$02 = $10; } else { $96 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $97 = $94 >>> 0 < $96 >>> 0; if ($97) { _abort(); // unreachable; } else { $98 = ($R$1 + 20) | 0; HEAP32[$98 >> 2] = $94; $99 = ($94 + 24) | 0; HEAP32[$99 >> 2] = $R$1; $$0 = $9; $$02 = $10; break; } } } } else { $$0 = $p; $$02 = $psize; } } while (0); $108 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $109 = $0 >>> 0 < $108 >>> 0; if ($109) { _abort(); // unreachable; } $$sum1 = ($psize + 4) | 0; $110 = ($p + $$sum1) | 0; $111 = HEAP32[$110 >> 2] | 0; $112 = $111 & 2; $113 = ($112 | 0) == 0; if ($113) { $114 = HEAP32[((133240 + 24) | 0) >> 2] | 0; $115 = ($0 | 0) == ($114 | 0); if ($115) { $116 = HEAP32[((133240 + 12) | 0) >> 2] | 0; $117 = ($116 + $$02) | 0; HEAP32[((133240 + 12) | 0) >> 2] = $117; HEAP32[((133240 + 24) | 0) >> 2] = $$0; $118 = $117 | 1; $119 = ($$0 + 4) | 0; HEAP32[$119 >> 2] = $118; $120 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $121 = ($$0 | 0) == ($120 | 0); if (!$121) { STACKTOP = sp; return; } HEAP32[((133240 + 20) | 0) >> 2] = 0; HEAP32[((133240 + 8) | 0) >> 2] = 0; STACKTOP = sp; return; } $122 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $123 = ($0 | 0) == ($122 | 0); if ($123) { $124 = HEAP32[((133240 + 8) | 0) >> 2] | 0; $125 = ($124 + $$02) | 0; HEAP32[((133240 + 8) | 0) >> 2] = $125; HEAP32[((133240 + 20) | 0) >> 2] = $$0; $126 = $125 | 1; $127 = ($$0 + 4) | 0; HEAP32[$127 >> 2] = $126; $128 = ($$0 + $125) | 0; HEAP32[$128 >> 2] = $125; STACKTOP = sp; return; } $129 = $111 & -8; $130 = ($129 + $$02) | 0; $131 = $111 >>> 3; $132 = $111 >>> 0 < 256; do { if ($132) { $$sum18 = ($psize + 8) | 0; $133 = ($p + $$sum18) | 0; $134 = HEAP32[$133 >> 2] | 0; $$sum19 = ($psize + 12) | 0; $135 = ($p + $$sum19) | 0; $136 = HEAP32[$135 >> 2] | 0; $137 = $131 << 1; $138 = (((133240 + ($137 << 2)) | 0) + 40) | 0; $139 = ($134 | 0) == ($138 | 0); if (!$139) { $140 = $134 >>> 0 < $108 >>> 0; if ($140) { _abort(); // unreachable; } $141 = ($134 + 12) | 0; $142 = HEAP32[$141 >> 2] | 0; $143 = ($142 | 0) == ($0 | 0); if (!$143) { _abort(); // unreachable; } } $144 = ($136 | 0) == ($134 | 0); if ($144) { $145 = 1 << $131; $146 = $145 ^ -1; $147 = HEAP32[133240 >> 2] | 0; $148 = $147 & $146; HEAP32[133240 >> 2] = $148; break; } $149 = ($136 | 0) == ($138 | 0); if ($149) { $$pre62 = ($136 + 8) | 0; $$pre$phi63Z2D = $$pre62; } else { $150 = $136 >>> 0 < $108 >>> 0; if ($150) { _abort(); // unreachable; } $151 = ($136 + 8) | 0; $152 = HEAP32[$151 >> 2] | 0; $153 = ($152 | 0) == ($0 | 0); if ($153) { $$pre$phi63Z2D = $151; } else { _abort(); // unreachable; } } $154 = ($134 + 12) | 0; HEAP32[$154 >> 2] = $136; HEAP32[$$pre$phi63Z2D >> 2] = $134; } else { $$sum2 = ($psize + 24) | 0; $155 = ($p + $$sum2) | 0; $156 = HEAP32[$155 >> 2] | 0; $$sum3 = ($psize + 12) | 0; $157 = ($p + $$sum3) | 0; $158 = HEAP32[$157 >> 2] | 0; $159 = ($158 | 0) == ($0 | 0); do { if ($159) { $$sum5 = ($psize + 20) | 0; $169 = ($p + $$sum5) | 0; $170 = HEAP32[$169 >> 2] | 0; $171 = ($170 | 0) == (0 | 0); if ($171) { $$sum4 = ($psize + 16) | 0; $172 = ($p + $$sum4) | 0; $173 = HEAP32[$172 >> 2] | 0; $174 = ($173 | 0) == (0 | 0); if ($174) { $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; $177 = ($176 | 0) == (0 | 0); if (!$177) { $R7$0 = $176; $RP9$0 = $175; continue; } $178 = ($R7$0 + 16) | 0; $179 = HEAP32[$178 >> 2] | 0; $180 = ($179 | 0) == (0 | 0); if ($180) { break; } else { $R7$0 = $179; $RP9$0 = $178; } } $181 = $RP9$0 >>> 0 < $108 >>> 0; if ($181) { _abort(); // unreachable; } else { HEAP32[$RP9$0 >> 2] = 0; $R7$1 = $R7$0; break; } } else { $$sum17 = ($psize + 8) | 0; $160 = ($p + $$sum17) | 0; $161 = HEAP32[$160 >> 2] | 0; $162 = $161 >>> 0 < $108 >>> 0; if ($162) { _abort(); // unreachable; } $163 = ($161 + 12) | 0; $164 = HEAP32[$163 >> 2] | 0; $165 = ($164 | 0) == ($0 | 0); if (!$165) { _abort(); // unreachable; } $166 = ($158 + 8) | 0; $167 = HEAP32[$166 >> 2] | 0; $168 = ($167 | 0) == ($0 | 0); if ($168) { HEAP32[$163 >> 2] = $158; HEAP32[$166 >> 2] = $161; $R7$1 = $158; break; } else { _abort(); // unreachable; } } } while (0); $182 = ($156 | 0) == (0 | 0); if (!$182) { $$sum14 = ($psize + 28) | 0; $183 = ($p + $$sum14) | 0; $184 = HEAP32[$183 >> 2] | 0; $185 = (((133240 + ($184 << 2)) | 0) + 304) | 0; $186 = HEAP32[$185 >> 2] | 0; $187 = ($0 | 0) == ($186 | 0); if ($187) { HEAP32[$185 >> 2] = $R7$1; $cond46 = ($R7$1 | 0) == (0 | 0); if ($cond46) { $188 = 1 << $184; $189 = $188 ^ -1; $190 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $191 = $190 & $189; HEAP32[((133240 + 4) | 0) >> 2] = $191; break; } } else { $192 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $193 = $156 >>> 0 < $192 >>> 0; if ($193) { _abort(); // unreachable; } $194 = ($156 + 16) | 0; $195 = HEAP32[$194 >> 2] | 0; $196 = ($195 | 0) == ($0 | 0); if ($196) { HEAP32[$194 >> 2] = $R7$1; } else { $197 = ($156 + 20) | 0; HEAP32[$197 >> 2] = $R7$1; } $198 = ($R7$1 | 0) == (0 | 0); if ($198) { break; } } $199 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $200 = $R7$1 >>> 0 < $199 >>> 0; if ($200) { _abort(); // unreachable; } $201 = ($R7$1 + 24) | 0; HEAP32[$201 >> 2] = $156; $$sum15 = ($psize + 16) | 0; $202 = ($p + $$sum15) | 0; $203 = HEAP32[$202 >> 2] | 0; $204 = ($203 | 0) == (0 | 0); do { if (!$204) { $205 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $206 = $203 >>> 0 < $205 >>> 0; if ($206) { _abort(); // unreachable; } else { $207 = ($R7$1 + 16) | 0; HEAP32[$207 >> 2] = $203; $208 = ($203 + 24) | 0; HEAP32[$208 >> 2] = $R7$1; break; } } } while (0); $$sum16 = ($psize + 20) | 0; $209 = ($p + $$sum16) | 0; $210 = HEAP32[$209 >> 2] | 0; $211 = ($210 | 0) == (0 | 0); if (!$211) { $212 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $213 = $210 >>> 0 < $212 >>> 0; if ($213) { _abort(); // unreachable; } else { $214 = ($R7$1 + 20) | 0; HEAP32[$214 >> 2] = $210; $215 = ($210 + 24) | 0; HEAP32[$215 >> 2] = $R7$1; break; } } } } } while (0); $216 = $130 | 1; $217 = ($$0 + 4) | 0; HEAP32[$217 >> 2] = $216; $218 = ($$0 + $130) | 0; HEAP32[$218 >> 2] = $130; $219 = HEAP32[((133240 + 20) | 0) >> 2] | 0; $220 = ($$0 | 0) == ($219 | 0); if ($220) { HEAP32[((133240 + 8) | 0) >> 2] = $130; STACKTOP = sp; return; } else { $$1 = $130; } } else { $221 = $111 & -2; HEAP32[$110 >> 2] = $221; $222 = $$02 | 1; $223 = ($$0 + 4) | 0; HEAP32[$223 >> 2] = $222; $224 = ($$0 + $$02) | 0; HEAP32[$224 >> 2] = $$02; $$1 = $$02; } $225 = $$1 >>> 3; $226 = $$1 >>> 0 < 256; if ($226) { $227 = $225 << 1; $228 = (((133240 + ($227 << 2)) | 0) + 40) | 0; $229 = HEAP32[133240 >> 2] | 0; $230 = 1 << $225; $231 = $229 & $230; $232 = ($231 | 0) == 0; if ($232) { $233 = $229 | $230; HEAP32[133240 >> 2] = $233; $$sum12$pre = ($227 + 2) | 0; $$pre = (((133240 + ($$sum12$pre << 2)) | 0) + 40) | 0; $$pre$phiZ2D = $$pre; $F16$0 = $228; } else { $$sum13 = ($227 + 2) | 0; $234 = (((133240 + ($$sum13 << 2)) | 0) + 40) | 0; $235 = HEAP32[$234 >> 2] | 0; $236 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $237 = $235 >>> 0 < $236 >>> 0; if ($237) { _abort(); // unreachable; } else { $$pre$phiZ2D = $234; $F16$0 = $235; } } HEAP32[$$pre$phiZ2D >> 2] = $$0; $238 = ($F16$0 + 12) | 0; HEAP32[$238 >> 2] = $$0; $239 = ($$0 + 8) | 0; HEAP32[$239 >> 2] = $F16$0; $240 = ($$0 + 12) | 0; HEAP32[$240 >> 2] = $228; STACKTOP = sp; return; } $241 = $$1 >>> 8; $242 = ($241 | 0) == 0; if ($242) { $I19$0 = 0; } else { $243 = $$1 >>> 0 > 16777215; if ($243) { $I19$0 = 31; } else { $244 = ($241 + 1048320) | 0; $245 = $244 >>> 16; $246 = $245 & 8; $247 = $241 << $246; $248 = ($247 + 520192) | 0; $249 = $248 >>> 16; $250 = $249 & 4; $251 = $250 | $246; $252 = $247 << $250; $253 = ($252 + 245760) | 0; $254 = $253 >>> 16; $255 = $254 & 2; $256 = $251 | $255; $257 = (14 - $256) | 0; $258 = $252 << $255; $259 = $258 >>> 15; $260 = ($257 + $259) | 0; $261 = $260 << 1; $262 = ($260 + 7) | 0; $263 = $$1 >>> $262; $264 = $263 & 1; $265 = $264 | $261; $I19$0 = $265; } } $266 = (((133240 + ($I19$0 << 2)) | 0) + 304) | 0; $267 = ($$0 + 28) | 0; $I19$0$c = $I19$0; HEAP32[$267 >> 2] = $I19$0$c; $268 = ($$0 + 20) | 0; HEAP32[$268 >> 2] = 0; $269 = ($$0 + 16) | 0; HEAP32[$269 >> 2] = 0; $270 = HEAP32[((133240 + 4) | 0) >> 2] | 0; $271 = 1 << $I19$0; $272 = $270 & $271; $273 = ($272 | 0) == 0; if ($273) { $274 = $270 | $271; HEAP32[((133240 + 4) | 0) >> 2] = $274; HEAP32[$266 >> 2] = $$0; $275 = ($$0 + 24) | 0; HEAP32[$275 >> 2] = $266; $276 = ($$0 + 12) | 0; HEAP32[$276 >> 2] = $$0; $277 = ($$0 + 8) | 0; HEAP32[$277 >> 2] = $$0; STACKTOP = sp; return; } $278 = HEAP32[$266 >> 2] | 0; $279 = ($I19$0 | 0) == 31; if ($279) { $287 = 0; } else { $280 = $I19$0 >>> 1; $281 = (25 - $280) | 0; $287 = $281; } $282 = ($278 + 4) | 0; $283 = HEAP32[$282 >> 2] | 0; $284 = $283 & -8; $285 = ($284 | 0) == ($$1 | 0); L194: do { if ($285) { $T$0$lcssa = $278; } else { $286 = $$1 << $287; $K20$049 = $286; $T$048 = $278; while (1) { $294 = $K20$049 >>> 31; $295 = ((($T$048 + ($294 << 2)) | 0) + 16) | 0; $290 = HEAP32[$295 >> 2] | 0; $296 = ($290 | 0) == (0 | 0); if ($296) { break; } $288 = $K20$049 << 1; $289 = ($290 + 4) | 0; $291 = HEAP32[$289 >> 2] | 0; $292 = $291 & -8; $293 = ($292 | 0) == ($$1 | 0); if ($293) { $T$0$lcssa = $290; break L194; } else { $K20$049 = $288; $T$048 = $290; } } $297 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $298 = $295 >>> 0 < $297 >>> 0; if ($298) { _abort(); // unreachable; } HEAP32[$295 >> 2] = $$0; $299 = ($$0 + 24) | 0; HEAP32[$299 >> 2] = $T$048; $300 = ($$0 + 12) | 0; HEAP32[$300 >> 2] = $$0; $301 = ($$0 + 8) | 0; HEAP32[$301 >> 2] = $$0; STACKTOP = sp; return; } } while (0); $302 = ($T$0$lcssa + 8) | 0; $303 = HEAP32[$302 >> 2] | 0; $304 = HEAP32[((133240 + 16) | 0) >> 2] | 0; $305 = $T$0$lcssa >>> 0 < $304 >>> 0; if ($305) { _abort(); // unreachable; } $306 = $303 >>> 0 < $304 >>> 0; if ($306) { _abort(); // unreachable; } $307 = ($303 + 12) | 0; HEAP32[$307 >> 2] = $$0; HEAP32[$302 >> 2] = $$0; $308 = ($$0 + 8) | 0; HEAP32[$308 >> 2] = $303; $309 = ($$0 + 12) | 0; HEAP32[$309 >> 2] = $T$0$lcssa; $310 = ($$0 + 24) | 0; HEAP32[$310 >> 2] = 0; STACKTOP = sp; return; } function _frexp($x, $e) { $x = +$x; $e = $e | 0; var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0, $9 = 0, $storemerge = 0, label = 0, sp = 0; sp = STACKTOP; HEAPF64[tempDoublePtr >> 3] = $x; $0 = HEAP32[tempDoublePtr >> 2] | 0; $1 = HEAP32[(tempDoublePtr + 4) >> 2] | 0; $2 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0; $3 = tempRet0; $4 = $2 & 2047; if (($4 | 0) == 0) { $5 = $x != 0.0; if ($5) { $6 = $x * 1.8446744073709552e19; $7 = +_frexp($6, $e); $8 = HEAP32[$e >> 2] | 0; $9 = ($8 + -64) | 0; $$01 = $7; $storemerge = $9; } else { $$01 = $x; $storemerge = 0; } HEAP32[$e >> 2] = $storemerge; $$0 = $$01; STACKTOP = sp; return +$$0; } else if (($4 | 0) == 2047) { $$0 = $x; STACKTOP = sp; return +$$0; } else { $10 = ($4 + -1022) | 0; HEAP32[$e >> 2] = $10; $11 = $1 & -2146435073; $12 = $11 | 1071644672; HEAP32[tempDoublePtr >> 2] = $0; HEAP32[(tempDoublePtr + 4) >> 2] = $12; $13 = +HEAPF64[tempDoublePtr >> 3]; $$0 = $13; STACKTOP = sp; return +$$0; } return +0; } function _frexpl($x, $e) { $x = +$x; $e = $e | 0; var $0 = 0.0, label = 0, sp = 0; sp = STACKTOP; $0 = +_frexp($x, $e); STACKTOP = sp; return +$0; } function _wctomb($s, $wc) { $s = $s | 0; $wc = $wc | 0; var $$0 = 0, $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($s | 0) == (0 | 0); if ($0) { $$0 = 0; } else { $1 = _wcrtomb($s, $wc, 0) | 0; $$0 = $1; } STACKTOP = sp; return $$0 | 0; } function _wcrtomb($s, $wc, $st) { $s = $s | 0; $wc = $wc | 0; $st = $st | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($s | 0) == (0 | 0); if ($0) { $$0 = 1; STACKTOP = sp; return $$0 | 0; } $1 = $wc >>> 0 < 128; if ($1) { $2 = $wc & 255; HEAP8[$s >> 0] = $2; $$0 = 1; STACKTOP = sp; return $$0 | 0; } $3 = $wc >>> 0 < 2048; if ($3) { $4 = $wc >>> 6; $5 = $4 | 192; $6 = $5 & 255; $7 = ($s + 1) | 0; HEAP8[$s >> 0] = $6; $8 = $wc & 63; $9 = $8 | 128; $10 = $9 & 255; HEAP8[$7 >> 0] = $10; $$0 = 2; STACKTOP = sp; return $$0 | 0; } $11 = $wc >>> 0 < 55296; $12 = ($wc + -57344) | 0; $13 = $12 >>> 0 < 8192; $or$cond = $11 | $13; if ($or$cond) { $14 = $wc >>> 12; $15 = $14 | 224; $16 = $15 & 255; $17 = ($s + 1) | 0; HEAP8[$s >> 0] = $16; $18 = $wc >>> 6; $19 = $18 & 63; $20 = $19 | 128; $21 = $20 & 255; $22 = ($s + 2) | 0; HEAP8[$17 >> 0] = $21; $23 = $wc & 63; $24 = $23 | 128; $25 = $24 & 255; HEAP8[$22 >> 0] = $25; $$0 = 3; STACKTOP = sp; return $$0 | 0; } $26 = ($wc + -65536) | 0; $27 = $26 >>> 0 < 1048576; if ($27) { $28 = $wc >>> 18; $29 = $28 | 240; $30 = $29 & 255; $31 = ($s + 1) | 0; HEAP8[$s >> 0] = $30; $32 = $wc >>> 12; $33 = $32 & 63; $34 = $33 | 128; $35 = $34 & 255; $36 = ($s + 2) | 0; HEAP8[$31 >> 0] = $35; $37 = $wc >>> 6; $38 = $37 & 63; $39 = $38 | 128; $40 = $39 & 255; $41 = ($s + 3) | 0; HEAP8[$36 >> 0] = $40; $42 = $wc & 63; $43 = $42 | 128; $44 = $43 & 255; HEAP8[$41 >> 0] = $44; $$0 = 4; STACKTOP = sp; return $$0 | 0; } else { $45 = ___errno_location() | 0; HEAP32[$45 >> 2] = 84; $$0 = -1; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function ___towrite($f) { $f = $f | 0; var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; var $9 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($f + 74) | 0; $1 = HEAP8[$0 >> 0] | 0; $2 = ($1 << 24) >> 24; $3 = ($2 + 255) | 0; $4 = $3 | $2; $5 = $4 & 255; HEAP8[$0 >> 0] = $5; $6 = HEAP32[$f >> 2] | 0; $7 = $6 & 8; $8 = ($7 | 0) == 0; if ($8) { $10 = ($f + 8) | 0; HEAP32[$10 >> 2] = 0; $11 = ($f + 4) | 0; HEAP32[$11 >> 2] = 0; $12 = ($f + 44) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = ($f + 28) | 0; HEAP32[$14 >> 2] = $13; $15 = ($f + 20) | 0; HEAP32[$15 >> 2] = $13; $16 = ($f + 48) | 0; $17 = HEAP32[$16 >> 2] | 0; $18 = ($13 + $17) | 0; $19 = ($f + 16) | 0; HEAP32[$19 >> 2] = $18; $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { $9 = $6 | 32; HEAP32[$f >> 2] = $9; $$0 = -1; STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function ___fwritex($s, $l, $f) { $s = $s | 0; $l = $l | 0; $f = $f | 0; var $$0 = 0, $$01 = 0, $$02 = 0, $$pre = 0, $$pre6 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i$0 = 0, $i$1 = 0; var label = 0, sp = 0; sp = STACKTOP; $0 = ($f + 16) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($1 | 0) == (0 | 0); do { if ($2) { $3 = ___towrite($f) | 0; $4 = ($3 | 0) == 0; if ($4) { $$pre6 = HEAP32[$0 >> 2] | 0; $7 = $$pre6; break; } else { $$0 = 0; STACKTOP = sp; return $$0 | 0; } } else { $7 = $1; } } while (0); $5 = ($f + 20) | 0; $6 = HEAP32[$5 >> 2] | 0; $8 = $7; $9 = $6; $10 = ($8 - $9) | 0; $11 = $10 >>> 0 < $l >>> 0; if ($11) { $12 = ($f + 36) | 0; $13 = HEAP32[$12 >> 2] | 0; $14 = FUNCTION_TABLE_iiii[$13 & 1]($f, $s, $l) | 0; $$0 = $14; STACKTOP = sp; return $$0 | 0; } $15 = ($f + 75) | 0; $16 = HEAP8[$15 >> 0] | 0; $17 = ($16 << 24) >> 24 > -1; L11: do { if ($17) { $i$0 = $l; while (1) { $18 = ($i$0 | 0) == 0; if ($18) { $$01 = $l; $$02 = $s; $29 = $6; $i$1 = 0; break L11; } $19 = ($i$0 + -1) | 0; $20 = ($s + $19) | 0; $21 = HEAP8[$20 >> 0] | 0; $22 = ($21 << 24) >> 24 == 10; if ($22) { break; } else { $i$0 = $19; } } $23 = ($f + 36) | 0; $24 = HEAP32[$23 >> 2] | 0; $25 = FUNCTION_TABLE_iiii[$24 & 1]($f, $s, $i$0) | 0; $26 = $25 >>> 0 < $i$0 >>> 0; if ($26) { $$0 = $i$0; STACKTOP = sp; return $$0 | 0; } else { $27 = ($s + $i$0) | 0; $28 = ($l - $i$0) | 0; $$pre = HEAP32[$5 >> 2] | 0; $$01 = $28; $$02 = $27; $29 = $$pre; $i$1 = $i$0; break; } } else { $$01 = $l; $$02 = $s; $29 = $6; $i$1 = 0; } } while (0); _memcpy($29 | 0, $$02 | 0, $$01 | 0) | 0; $30 = HEAP32[$5 >> 2] | 0; $31 = ($30 + $$01) | 0; HEAP32[$5 >> 2] = $31; $32 = ($i$1 + $$01) | 0; $$0 = $32; STACKTOP = sp; return $$0 | 0; } function _snprintf($s, $n, $fmt, $varargs) { $s = $s | 0; $n = $n | 0; $fmt = $fmt | 0; $varargs = $varargs | 0; var $0 = 0, $ap = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $ap = sp; HEAP32[$ap >> 2] = $varargs; $0 = _vsnprintf($s, $n, $fmt, $ap) | 0; STACKTOP = sp; return $0 | 0; } function _sprintf($s, $fmt, $varargs) { $s = $s | 0; $fmt = $fmt | 0; $varargs = $varargs | 0; var $0 = 0, $ap = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 16) | 0; $ap = sp; HEAP32[$ap >> 2] = $varargs; $0 = _vsprintf($s, $fmt, $ap) | 0; STACKTOP = sp; return $0 | 0; } function _MUSL_vfprintf($f, $fmt, $ap) { $f = $f | 0; $fmt = $fmt | 0; $ap = $ap | 0; var $$ = 0, $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; var $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0, $ret$1 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 224) | 0; $ap2 = (sp + 120) | 0; $nl_type = (sp + 80) | 0; $nl_arg = sp; $internal_buf = (sp + 136) | 0; dest = ($nl_type + 0) | 0; stop = (dest + 40) | 0; do { HEAP32[dest >> 2] = 0 | 0; dest = (dest + 4) | 0; } while ((dest | 0) < (stop | 0)); $vacopy_currentptr = HEAP32[$ap >> 2] | 0; HEAP32[$ap2 >> 2] = $vacopy_currentptr; $0 = _printf_core(0, $fmt, $ap2, $nl_arg, $nl_type) | 0; $1 = ($0 | 0) < 0; if ($1) { $$0 = -1; STACKTOP = sp; return $$0 | 0; } $2 = ($f + 48) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = ($3 | 0) == 0; if ($4) { $6 = ($f + 44) | 0; $7 = HEAP32[$6 >> 2] | 0; HEAP32[$6 >> 2] = $internal_buf; $8 = ($f + 28) | 0; HEAP32[$8 >> 2] = $internal_buf; $9 = ($f + 20) | 0; HEAP32[$9 >> 2] = $internal_buf; HEAP32[$2 >> 2] = 80; $10 = ($internal_buf + 80) | 0; $11 = ($f + 16) | 0; HEAP32[$11 >> 2] = $10; $12 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; $13 = ($7 | 0) == (0 | 0); if ($13) { $ret$1 = $12; } else { $14 = ($f + 36) | 0; $15 = HEAP32[$14 >> 2] | 0; FUNCTION_TABLE_iiii[$15 & 1]($f, 0, 0) | 0; $16 = HEAP32[$9 >> 2] | 0; $17 = ($16 | 0) == (0 | 0); $$ = $17 ? -1 : $12; HEAP32[$6 >> 2] = $7; HEAP32[$2 >> 2] = 0; HEAP32[$11 >> 2] = 0; HEAP32[$8 >> 2] = 0; HEAP32[$9 >> 2] = 0; $ret$1 = $$; } } else { $5 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; $ret$1 = $5; } $$0 = $ret$1; STACKTOP = sp; return $$0 | 0; } function _printf_core($f, $fmt, $ap, $nl_arg, $nl_type) { $f = $f | 0; $fmt = $fmt | 0; $ap = $ap | 0; $nl_arg = $nl_arg | 0; $nl_type = $nl_type | 0; var $$ = 0, $$$5$i = 0, $$$i = 0, $$$p$i = 0, $$0 = 0, $$0$lcssa$i = 0, $$0$lcssa$i$i = 0, $$0$lcssa$i103$i = 0, $$0$lcssa$i127$i = 0, $$0$lcssa$i142$i = 0, $$0$lcssa$i37 = 0, $$0$lcssa$i38$i = 0, $$0$lcssa$i43 = 0, $$0$lcssa$i45 = 0, $$0$lcssa$i45$i = 0, $$0$lcssa$i48$i = 0, $$0$lcssa$i52 = 0, $$0$lcssa$i55$i = 0, $$0$lcssa$i59 = 0, $$0$lcssa$i62$i = 0; var $$0$lcssa$i66 = 0, $$0$lcssa$i68$i = 0, $$0$lcssa$i75$i = 0, $$0$lcssa$i76 = 0, $$0$lcssa$i84$i = 0, $$0$lcssa$i96$i = 0, $$01$i = 0, $$01$i$i = 0, $$01$i101$i = 0, $$01$i125$i = 0, $$01$i140$i = 0, $$01$i35 = 0, $$01$i36$i = 0, $$01$i43$i = 0, $$01$i50 = 0, $$01$i53$i = 0, $$01$i57 = 0, $$01$i60$i = 0, $$01$i64 = 0, $$01$i66$i = 0; var $$01$i73$i = 0, $$01$i74 = 0, $$01$i94$i = 0, $$01$lcssa$off0$i = 0, $$01$lcssa$off0$i$i = 0, $$01$lcssa$off0$i85$i = 0, $$012$i = 0, $$013$i = 0, $$03$i40 = 0, $$05$i = 0, $$05$i$i = 0, $$05$i79$i = 0, $$07$i = 0.0, $$1$i = 0.0, $$1$lcssa$i$i = 0, $$1$lcssa$i112$i = 0, $$114$i = 0, $$12$i = 0, $$12$i$i = 0, $$12$i110$i = 0; var $$12$i119$i = 0, $$12$i134$i = 0, $$12$i87$i = 0, $$13 = 0, $$14 = 0, $$15 = 0, $$17 = 0, $$2$i = 0.0, $$2$us$i = 0.0, $$2$us$us$i = 0.0, $$2$us159$i = 0.0, $$20$i = 0, $$20$us$i = 0, $$21$i = 0, $$210$$23$i = 0, $$210$$25$i = 0, $$210$i = 0, $$22$i = 0.0, $$23$i = 0, $$25$i = 0; var $$3$i = 0.0, $$31$i = 0, $$311$i = 0, $$4$i = 0.0, $$412$lcssa$i = 0, $$412175$i = 0, $$5193$i = 0, $$a$3$i = 0, $$a$3$us$i = 0, $$a$3$us322$i = 0, $$a$3$us323$i = 0, $$a$3324$i = 0, $$a$3325$i = 0, $$fl$4 = 0, $$lcssa300$i = 0, $$lcssa92 = 0, $$mask$i = 0, $$mask$i30 = 0, $$mask1$i = 0, $$mask1$i29 = 0; var $$neg151$i = 0, $$neg152$i = 0, $$not$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr146$i = 0, $$pre = 0, $$pre$i = 0, $$pre290 = 0, $$pre292 = 0, $$pre319$i = 0, $$sum$i = 0, $$sum15$i = 0, $$sum16$i = 0, $$z$3$i = 0, $$z$4$us$i = 0, $0 = 0, $1 = 0; var $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0; var $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0; var $1035 = 0, $1036 = 0.0, $1037 = 0.0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1045$phi = 0, $1046 = 0, $1046$phi = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0; var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; var $19 = 0, $190 = 0.0, $191 = 0, $192 = 0, $193 = 0, $194 = 0.0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; var $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0; var $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0; var $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0; var $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0.0; var $37 = 0, $370 = 0, $371 = 0.0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0; var $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0; var $405 = 0, $406 = 0, $407 = 0.0, $408 = 0.0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0.0; var $423 = 0, $424 = 0, $425 = 0, $426 = 0.0, $427 = 0.0, $428 = 0.0, $429 = 0.0, $43 = 0, $430 = 0.0, $431 = 0.0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0; var $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0; var $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0; var $478 = 0, $479 = 0, $48 = 0, $480 = 0.0, $481 = 0.0, $482 = 0.0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0.0; var $496 = 0.0, $497 = 0.0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0.0, $511 = 0.0, $512 = 0.0; var $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0.0, $526 = 0.0, $527 = 0.0, $528 = 0, $529 = 0, $53 = 0, $530 = 0; var $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0; var $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0; var $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0.0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0.0; var $586 = 0.0, $587 = 0.0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0; var $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0; var $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0; var $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0; var $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0; var $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0; var $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0; var $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0.0, $726 = 0.0, $727 = 0, $728 = 0.0, $729 = 0; var $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0; var $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0; var $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0; var $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0; var $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0; var $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0; var $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0; var $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0; var $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0; var $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0; var $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0; var $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0; var $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0; var $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0; var $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $a$0 = 0; var $a$1 = 0, $a$1$lcssa$i = 0, $a$1263$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3249$i = 0, $a$3249$us$i = 0, $a$5$lcssa$i = 0, $a$5223$i = 0, $a$6$i = 0, $a$7$i = 0, $a$8$ph$i = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0, $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0; var $arglist_current26 = 0, $arglist_current29 = 0, $arglist_current32 = 0, $arglist_current35 = 0, $arglist_current38 = 0, $arglist_current41 = 0, $arglist_current44 = 0, $arglist_current47 = 0, $arglist_current5 = 0, $arglist_current50 = 0, $arglist_current53 = 0, $arglist_current56 = 0, $arglist_current59 = 0, $arglist_current62 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0; var $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next30 = 0, $arglist_next33 = 0, $arglist_next36 = 0, $arglist_next39 = 0, $arglist_next42 = 0, $arglist_next45 = 0, $arglist_next48 = 0, $arglist_next51 = 0, $arglist_next54 = 0, $arglist_next57 = 0, $arglist_next6 = 0, $arglist_next60 = 0, $arglist_next63 = 0, $arglist_next9 = 0, $argpos$0 = 0, $big$i = 0, $brmerge$i = 0; var $buf = 0, $buf$i = 0, $carry$0255$i = 0, $carry3$0243$i = 0, $carry3$0243$us$i = 0, $cnt$0 = 0, $cnt$1 = 0, $d$0$i = 0, $d$0254$i = 0, $d$0256$i = 0, $d$1242$i = 0, $d$1242$us$i = 0, $d$2$lcssa$i = 0, $d$2222$i = 0, $d$3$i = 0, $d$4183$i = 0, $d$5174$i = 0, $d$6192$i = 0, $e$0238$i = 0, $e$1$i = 0; var $e$2218$i = 0, $e$3$i = 0, $e$4$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$1$ph$i = 0, $estr$1200$i = 0, $estr$2$i = 0, $exitcond$i = 0, $fl$0100 = 0, $fl$0104 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $i$0$lcssa = 0, $i$0166 = 0; var $i$0168 = 0, $i$0237$i = 0, $i$03$i = 0, $i$03$i22 = 0, $i$1$lcssa$i = 0, $i$1174 = 0, $i$1230$i = 0, $i$2217$i = 0, $i$289 = 0, $i$3209$i = 0, $i$388 = 0, $isdigit = 0, $isdigit$i = 0, $isdigit$i24 = 0, $isdigit11 = 0, $isdigit2$i = 0, $isdigit2$i21 = 0, $isdigit9 = 0, $isdigittmp = 0, $isdigittmp$i = 0; var $isdigittmp$i23 = 0, $isdigittmp1$i = 0, $isdigittmp1$i20 = 0, $isdigittmp10 = 0, $isdigittmp8 = 0, $j$0$i = 0, $j$0229$i = 0, $j$0231$i = 0, $j$1210$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1$i = 0, $l$1$lcssa = 0, $l$1167 = 0, $l10n$0 = 0, $l10n$0$phi = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0; var $mb = 0, $or$cond = 0, $or$cond$i = 0, $or$cond$i$i = 0, $or$cond$i100$i = 0, $or$cond$i35$i = 0, $or$cond$i42$i = 0, $or$cond$i49 = 0, $or$cond$i52$i = 0, $or$cond$i56 = 0, $or$cond$i59$i = 0, $or$cond$i63 = 0, $or$cond$i71 = 0, $or$cond$i72$i = 0, $or$cond$i73 = 0, $or$cond$i93$i = 0, $or$cond28$i = 0, $or$cond28173$i = 0, $or$cond29$i = 0, $or$cond4$i = 0; var $p$0 = 0, $p$1 = 0, $p$2 = 0, $p$2$ = 0, $p$4296 = 0, $p$5 = 0, $pad$i = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0, $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$8$i = 0, $re$0$i = 0, $re$1165$i = 0; var $round$0164$i = 0.0, $round6$1$i = 0.0, $s$0$i = 0, $s$0$us$i = 0, $s$0$us$us$i = 0, $s$0$us158$i = 0, $s$1$i = 0, $s$1$lcssa$i = 0, $s$1$us$i = 0, $s$1$us$us$i = 0, $s$1$us160$i = 0, $s1$0$i = 0, $s7$0180$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$0169$i = 0, $s9$0$i = 0, $s9$1188$i = 0, $s9$2$i = 0, $sext = 0; var $sext84 = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $storemerge = 0, $storemerge12 = 0, $storemerge7103 = 0, $storemerge798 = 0, $t$0 = 0, $t$1 = 0, $w$$i = 0, $w$0 = 0, $w$1 = 0, $w$18$i = 0, $w$2 = 0, $w$30$i = 0, $wc = 0, $ws$0169 = 0, $ws$1175 = 0, $y$03$i = 0; var $y$03$i$i = 0, $y$03$i109$i = 0, $y$03$i118$i = 0, $y$03$i133$i = 0, $y$03$i86$i = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$093 = 0, $z$1$lcssa$i = 0, $z$1262$i = 0, $z$2 = 0, $z$2$i = 0, $z$3$lcssa$i = 0, $z$3248$i = 0, $z$3248$us$i = 0, $z$4$i = 0, $z$4$us$i = 0, $z$5$i = 0, $z$6$$i = 0, $z$6$i = 0; var $z$6$ph$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 864) | 0; $big$i = (sp + 16) | 0; $e2$i = (sp + 8) | 0; $buf$i = (sp + 836) | 0; $0 = $buf$i; $ebuf0$i = (sp + 824) | 0; $pad$i = (sp + 568) | 0; $buf = (sp + 528) | 0; $wc = sp; $mb = (sp + 520) | 0; $1 = ($f | 0) != (0 | 0); $2 = ($buf + 40) | 0; $3 = $2; $4 = ($buf + 39) | 0; $5 = ($wc + 4) | 0; $6 = ($ebuf0$i + 12) | 0; $7 = ($ebuf0$i + 11) | 0; $8 = $6; $9 = ($8 - $0) | 0; $10 = (-2 - $0) | 0; $11 = ($8 + 2) | 0; $12 = ($big$i + 288) | 0; $13 = ($buf$i + 9) | 0; $14 = $13; $15 = ($buf$i + 8) | 0; $1045 = 0; $1046 = 0; $22 = $fmt; $cnt$0 = 0; $l$0 = 0; $l10n$0 = 0; L1: while (1) { $16 = ($cnt$0 | 0) > -1; do { if ($16) { $17 = (2147483647 - $cnt$0) | 0; $18 = ($l$0 | 0) > ($17 | 0); if ($18) { $19 = ___errno_location() | 0; HEAP32[$19 >> 2] = 75; $cnt$1 = -1; break; } else { $20 = ($l$0 + $cnt$0) | 0; $cnt$1 = $20; break; } } else { $cnt$1 = $cnt$0; } } while (0); $21 = HEAP8[$22 >> 0] | 0; $23 = ($21 << 24) >> 24 == 0; if ($23) { label = 344; break; } else { $1047 = $21; $25 = $22; } while (1) { if (($1047 << 24) >> 24 == 37) { $27 = $25; $z$093 = $25; label = 9; break; } else if (($1047 << 24) >> 24 == 0) { $$lcssa92 = $25; $z$0$lcssa = $25; break; } $24 = ($25 + 1) | 0; $$pre = HEAP8[$24 >> 0] | 0; $1047 = $$pre; $25 = $24; } L12: do { if ((label | 0) == 9) { while (1) { label = 0; $26 = ($27 + 1) | 0; $28 = HEAP8[$26 >> 0] | 0; $29 = ($28 << 24) >> 24 == 37; if (!$29) { $$lcssa92 = $27; $z$0$lcssa = $z$093; break L12; } $30 = ($z$093 + 1) | 0; $31 = ($27 + 2) | 0; $32 = HEAP8[$31 >> 0] | 0; $33 = ($32 << 24) >> 24 == 37; if ($33) { $27 = $31; $z$093 = $30; label = 9; } else { $$lcssa92 = $31; $z$0$lcssa = $30; break; } } } } while (0); $34 = $z$0$lcssa; $35 = $22; $36 = ($34 - $35) | 0; if ($1) { ___fwritex($22, $36, $f) | 0; } $37 = ($z$0$lcssa | 0) == ($22 | 0); if (!$37) { $l10n$0$phi = $l10n$0; $1046$phi = $1046; $1045$phi = $1045; $22 = $$lcssa92; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$0$phi; $1046 = $1046$phi; $1045 = $1045$phi; continue; } $38 = ($$lcssa92 + 1) | 0; $39 = HEAP8[$38 >> 0] | 0; $40 = ($39 << 24) >> 24; $isdigittmp = ($40 + -48) | 0; $isdigit = $isdigittmp >>> 0 < 10; if ($isdigit) { $41 = ($$lcssa92 + 2) | 0; $42 = HEAP8[$41 >> 0] | 0; $43 = ($42 << 24) >> 24 == 36; if ($43) { $44 = ($$lcssa92 + 3) | 0; $$pre290 = HEAP8[$44 >> 0] | 0; $46 = $$pre290; $argpos$0 = $isdigittmp; $l10n$1 = 1; $storemerge = $44; } else { $46 = $39; $argpos$0 = -1; $l10n$1 = $l10n$0; $storemerge = $38; } } else { $46 = $39; $argpos$0 = -1; $l10n$1 = $l10n$0; $storemerge = $38; } $45 = ($46 << 24) >> 24; $47 = ($45 + -32) | 0; $48 = $47 >>> 0 < 32; L25: do { if ($48) { $50 = $45; $55 = $46; $fl$0104 = 0; $storemerge7103 = $storemerge; while (1) { $49 = ($50 + -32) | 0; $51 = 1 << $49; $52 = $51 & 75913; $53 = ($52 | 0) == 0; if ($53) { $64 = $55; $fl$0100 = $fl$0104; $storemerge798 = $storemerge7103; break L25; } $54 = ($55 << 24) >> 24; $56 = ($54 + -32) | 0; $57 = 1 << $56; $58 = $57 | $fl$0104; $59 = ($storemerge7103 + 1) | 0; $60 = HEAP8[$59 >> 0] | 0; $61 = ($60 << 24) >> 24; $62 = ($61 + -32) | 0; $63 = $62 >>> 0 < 32; if ($63) { $50 = $61; $55 = $60; $fl$0104 = $58; $storemerge7103 = $59; } else { $64 = $60; $fl$0100 = $58; $storemerge798 = $59; break; } } } else { $64 = $46; $fl$0100 = 0; $storemerge798 = $storemerge; } } while (0); $65 = ($64 << 24) >> 24 == 42; do { if ($65) { $66 = ($storemerge798 + 1) | 0; $67 = HEAP8[$66 >> 0] | 0; $68 = ($67 << 24) >> 24; $isdigittmp10 = ($68 + -48) | 0; $isdigit11 = $isdigittmp10 >>> 0 < 10; if ($isdigit11) { $69 = ($storemerge798 + 2) | 0; $70 = HEAP8[$69 >> 0] | 0; $71 = ($70 << 24) >> 24 == 36; if ($71) { $72 = ($nl_type + ($isdigittmp10 << 2)) | 0; HEAP32[$72 >> 2] = 10; $73 = HEAP8[$66 >> 0] | 0; $74 = ($73 << 24) >> 24; $75 = ($74 + -48) | 0; $76 = ($nl_arg + ($75 << 3)) | 0; $77 = $76; $78 = $77; $79 = HEAP32[$78 >> 2] | 0; $80 = ($77 + 4) | 0; $81 = $80; $82 = HEAP32[$81 >> 2] | 0; $83 = ($storemerge798 + 3) | 0; $l10n$2 = 1; $storemerge12 = $83; $w$0 = $79; } else { label = 24; } } else { label = 24; } if ((label | 0) == 24) { label = 0; $84 = ($l10n$1 | 0) == 0; if (!$84) { $$0 = -1; label = 362; break L1; } if (!$1) { $100 = $66; $fl$1 = $fl$0100; $l10n$3 = 0; $w$1 = 0; break; } $arglist_current = HEAP32[$ap >> 2] | 0; $85 = HEAP32[$arglist_current >> 2] | 0; $arglist_next = ($arglist_current + 4) | 0; HEAP32[$ap >> 2] = $arglist_next; $l10n$2 = 0; $storemerge12 = $66; $w$0 = $85; } $86 = ($w$0 | 0) < 0; if ($86) { $87 = $fl$0100 | 8192; $88 = (0 - $w$0) | 0; $100 = $storemerge12; $fl$1 = $87; $l10n$3 = $l10n$2; $w$1 = $88; } else { $100 = $storemerge12; $fl$1 = $fl$0100; $l10n$3 = $l10n$2; $w$1 = $w$0; } } else { $89 = ($64 << 24) >> 24; $isdigittmp1$i = ($89 + -48) | 0; $isdigit2$i = $isdigittmp1$i >>> 0 < 10; if ($isdigit2$i) { $92 = $89; $95 = $storemerge798; $i$03$i = 0; while (1) { $90 = ($i$03$i * 10) | 0; $91 = ($92 + -48) | 0; $93 = ($91 + $90) | 0; $94 = ($95 + 1) | 0; $96 = HEAP8[$94 >> 0] | 0; $97 = ($96 << 24) >> 24; $isdigittmp$i = ($97 + -48) | 0; $isdigit$i = $isdigittmp$i >>> 0 < 10; if ($isdigit$i) { $92 = $97; $95 = $94; $i$03$i = $93; } else { break; } } $98 = ($93 | 0) < 0; if ($98) { $$0 = -1; label = 362; break L1; } else { $100 = $94; $fl$1 = $fl$0100; $l10n$3 = $l10n$1; $w$1 = $93; } } else { $100 = $storemerge798; $fl$1 = $fl$0100; $l10n$3 = $l10n$1; $w$1 = 0; } } } while (0); $99 = HEAP8[$100 >> 0] | 0; $101 = ($99 << 24) >> 24 == 46; L46: do { if ($101) { $102 = ($100 + 1) | 0; $103 = HEAP8[$102 >> 0] | 0; $104 = ($103 << 24) >> 24 == 42; if (!$104) { $125 = ($103 << 24) >> 24; $isdigittmp1$i20 = ($125 + -48) | 0; $isdigit2$i21 = $isdigittmp1$i20 >>> 0 < 10; if ($isdigit2$i21) { $128 = $125; $131 = $102; $i$03$i22 = 0; } else { $1048 = $102; $p$0 = 0; break; } while (1) { $126 = ($i$03$i22 * 10) | 0; $127 = ($128 + -48) | 0; $129 = ($127 + $126) | 0; $130 = ($131 + 1) | 0; $132 = HEAP8[$130 >> 0] | 0; $133 = ($132 << 24) >> 24; $isdigittmp$i23 = ($133 + -48) | 0; $isdigit$i24 = $isdigittmp$i23 >>> 0 < 10; if ($isdigit$i24) { $128 = $133; $131 = $130; $i$03$i22 = $129; } else { $1048 = $130; $p$0 = $129; break L46; } } } $105 = ($100 + 2) | 0; $106 = HEAP8[$105 >> 0] | 0; $107 = ($106 << 24) >> 24; $isdigittmp8 = ($107 + -48) | 0; $isdigit9 = $isdigittmp8 >>> 0 < 10; if ($isdigit9) { $108 = ($100 + 3) | 0; $109 = HEAP8[$108 >> 0] | 0; $110 = ($109 << 24) >> 24 == 36; if ($110) { $111 = ($nl_type + ($isdigittmp8 << 2)) | 0; HEAP32[$111 >> 2] = 10; $112 = HEAP8[$105 >> 0] | 0; $113 = ($112 << 24) >> 24; $114 = ($113 + -48) | 0; $115 = ($nl_arg + ($114 << 3)) | 0; $116 = $115; $117 = $116; $118 = HEAP32[$117 >> 2] | 0; $119 = ($116 + 4) | 0; $120 = $119; $121 = HEAP32[$120 >> 2] | 0; $122 = ($100 + 4) | 0; $1048 = $122; $p$0 = $118; break; } } $123 = ($l10n$3 | 0) == 0; if (!$123) { $$0 = -1; label = 362; break L1; } if ($1) { $arglist_current2 = HEAP32[$ap >> 2] | 0; $124 = HEAP32[$arglist_current2 >> 2] | 0; $arglist_next3 = ($arglist_current2 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next3; $1048 = $105; $p$0 = $124; } else { $1048 = $105; $p$0 = 0; } } else { $1048 = $100; $p$0 = -1; } } while (0); $135 = $1048; $st$0 = 0; while (1) { $134 = HEAP8[$135 >> 0] | 0; $136 = ($134 << 24) >> 24; $137 = ($136 + -65) | 0; $138 = $137 >>> 0 > 57; if ($138) { $$0 = -1; label = 362; break L1; } $139 = ($135 + 1) | 0; $140 = (((133736 + (($st$0 * 58) | 0)) | 0) + $137) | 0; $141 = HEAP8[$140 >> 0] | 0; $142 = $141 & 255; $143 = ($142 + -1) | 0; $144 = $143 >>> 0 < 8; if ($144) { $135 = $139; $st$0 = $142; } else { break; } } $145 = ($141 << 24) >> 24 == 0; if ($145) { $$0 = -1; label = 362; break; } $146 = ($141 << 24) >> 24 == 19; $147 = ($argpos$0 | 0) > -1; L65: do { if ($146) { if ($147) { $$0 = -1; label = 362; break L1; } else { $1049 = $1045; $1050 = $1046; label = 63; } } else { if ($147) { $148 = ($nl_type + ($argpos$0 << 2)) | 0; HEAP32[$148 >> 2] = $142; $149 = ($nl_arg + ($argpos$0 << 3)) | 0; $150 = $149; $151 = $150; $152 = HEAP32[$151 >> 2] | 0; $153 = ($150 + 4) | 0; $154 = $153; $155 = HEAP32[$154 >> 2] | 0; $156 = $152; $1049 = $155; $1050 = $156; label = 63; break; } if (!$1) { $$0 = 0; label = 362; break L1; } $157 = ($141 & 255) > 20; if ($157) { $199 = $134; $207 = $1046; $228 = $1045; } else { do { switch ($142 | 0) { case 14: { $arglist_current20 = HEAP32[$ap >> 2] | 0; $179 = HEAP32[$arglist_current20 >> 2] | 0; $arglist_next21 = ($arglist_current20 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next21; $$mask1$i29 = $179 & 65535; $180 = $$mask1$i29; $1051 = $180; $1052 = 0; label = 64; break L65; break; } case 12: { $arglist_current14 = HEAP32[$ap >> 2] | 0; $165 = $arglist_current14; $166 = $165; $167 = HEAP32[$166 >> 2] | 0; $168 = ($165 + 4) | 0; $169 = $168; $170 = HEAP32[$169 >> 2] | 0; $arglist_next15 = ($arglist_current14 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next15; $171 = $167; $1051 = $171; $1052 = $170; label = 64; break L65; break; } case 13: { $arglist_current17 = HEAP32[$ap >> 2] | 0; $172 = HEAP32[$arglist_current17 >> 2] | 0; $arglist_next18 = ($arglist_current17 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next18; $173 = $172 & 65535; $174 = ($173 << 16) >> 16; $175 = ($174 | 0) < 0; $176 = ($175 << 31) >> 31; $sext84 = $172 << 16; $177 = $sext84 >> 16; $178 = $177; $1051 = $178; $1052 = $176; label = 64; break L65; break; } case 18: { $arglist_current32 = HEAP32[$ap >> 2] | 0; HEAP32[tempDoublePtr >> 2] = HEAP32[$arglist_current32 >> 2]; HEAP32[(tempDoublePtr + 4) >> 2] = HEAP32[($arglist_current32 + 4) >> 2]; $194 = +HEAPF64[tempDoublePtr >> 3]; $arglist_next33 = ($arglist_current32 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next33; HEAPF64[tempDoublePtr >> 3] = $194; $195 = HEAP32[tempDoublePtr >> 2] | 0; $196 = HEAP32[(tempDoublePtr + 4) >> 2] | 0; $197 = $195; $1049 = $196; $1050 = $197; label = 63; break L65; break; } case 9: { $arglist_current5 = HEAP32[$ap >> 2] | 0; $158 = HEAP32[$arglist_current5 >> 2] | 0; $arglist_next6 = ($arglist_current5 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next6; $1051 = $158; $1052 = $1045; label = 64; break L65; break; } case 11: { $arglist_current11 = HEAP32[$ap >> 2] | 0; $163 = HEAP32[$arglist_current11 >> 2] | 0; $arglist_next12 = ($arglist_current11 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next12; $164 = $163; $1051 = $164; $1052 = 0; label = 64; break L65; break; } case 15: { $arglist_current23 = HEAP32[$ap >> 2] | 0; $181 = HEAP32[$arglist_current23 >> 2] | 0; $arglist_next24 = ($arglist_current23 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next24; $182 = $181 & 255; $183 = ($182 << 24) >> 24; $184 = ($183 | 0) < 0; $185 = ($184 << 31) >> 31; $sext = $181 << 24; $186 = $sext >> 24; $187 = $186; $1051 = $187; $1052 = $185; label = 64; break L65; break; } case 17: { $arglist_current29 = HEAP32[$ap >> 2] | 0; HEAP32[tempDoublePtr >> 2] = HEAP32[$arglist_current29 >> 2]; HEAP32[(tempDoublePtr + 4) >> 2] = HEAP32[($arglist_current29 + 4) >> 2]; $190 = +HEAPF64[tempDoublePtr >> 3]; $arglist_next30 = ($arglist_current29 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next30; HEAPF64[tempDoublePtr >> 3] = $190; $191 = HEAP32[tempDoublePtr >> 2] | 0; $192 = HEAP32[(tempDoublePtr + 4) >> 2] | 0; $193 = $191; $1051 = $193; $1052 = $192; label = 64; break L65; break; } case 10: { $arglist_current8 = HEAP32[$ap >> 2] | 0; $159 = HEAP32[$arglist_current8 >> 2] | 0; $arglist_next9 = ($arglist_current8 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next9; $160 = ($159 | 0) < 0; $161 = ($160 << 31) >> 31; $162 = $159; $1051 = $162; $1052 = $161; label = 64; break L65; break; } case 16: { $arglist_current26 = HEAP32[$ap >> 2] | 0; $188 = HEAP32[$arglist_current26 >> 2] | 0; $arglist_next27 = ($arglist_current26 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next27; $$mask$i30 = $188 & 255; $189 = $$mask$i30; $1051 = $189; $1052 = 0; label = 64; break L65; break; } default: { $1051 = $1046; $1052 = $1045; label = 64; break L65; } } } while (0); } } } while (0); if ((label | 0) == 63) { label = 0; if ($1) { $1051 = $1050; $1052 = $1049; label = 64; } else { $1045 = $1049; $1046 = $1050; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue; } } if ((label | 0) == 64) { label = 0; $$pre292 = HEAP8[$135 >> 0] | 0; $199 = $$pre292; $207 = $1051; $228 = $1052; } $198 = ($199 << 24) >> 24; $200 = ($st$0 | 0) == 0; if ($200) { $t$0 = $198; } else { $201 = $198 & 15; $202 = ($201 | 0) == 3; $203 = $198 & -33; $$ = $202 ? $203 : $198; $t$0 = $$; } $204 = $fl$1 & 8192; $205 = ($204 | 0) == 0; $206 = $fl$1 & -65537; $fl$1$ = $205 ? $fl$1 : $206; L92: do { switch ($t$0 | 0) { case 117: { $276 = $207; $278 = $228; $pl$0 = 0; $prefix$0 = 134200; label = 89; break; } case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { $368 = $207; HEAP32[tempDoublePtr >> 2] = $368; HEAP32[(tempDoublePtr + 4) >> 2] = $228; $369 = +HEAPF64[tempDoublePtr >> 3]; HEAP32[$e2$i >> 2] = 0; $370 = ($228 | 0) < 0; if ($370) { $371 = -$369; $$07$i = $371; $pl$0$i = 1; $prefix$0$i = 134224; } else { $372 = $fl$1$ & 2048; $373 = ($372 | 0) == 0; if ($373) { $374 = $fl$1$ & 1; $375 = ($374 | 0) == 0; $$$i = $375 ? (134224 + 1) | 0 : (134224 + 6) | 0; $$07$i = $369; $pl$0$i = $374; $prefix$0$i = $$$i; } else { $$07$i = $369; $pl$0$i = 1; $prefix$0$i = (134224 + 3) | 0; } } HEAPF64[tempDoublePtr >> 3] = $$07$i; $376 = HEAP32[tempDoublePtr >> 2] | 0; $377 = HEAP32[(tempDoublePtr + 4) >> 2] | 0; $378 = $377 & 2146435072; $379 = $378 >>> 0 < 2146435072; $380 = ($378 | 0) == 2146435072; $381 = 0 < 0; $382 = $380 & $381; $383 = $379 | $382; if (!$383) { $384 = $t$0 & 32; $385 = ($384 | 0) != 0; $386 = $385 ? 134248 : 134256; $387 = ($$07$i != $$07$i) | (0.0 != 0.0); if ($387) { $388 = $385 ? 134264 : 134272; $pl$1$i = 0; $s1$0$i = $388; } else { $pl$1$i = $pl$0$i; $s1$0$i = $386; } $389 = ($pl$1$i + 3) | 0; $390 = $fl$1$ & 8192; $391 = ($390 | 0) == 0; $392 = ($389 | 0) < ($w$1 | 0); $or$cond$i35$i = $391 & $392; if ($or$cond$i35$i) { $393 = ($w$1 - $389) | 0; $394 = $393 >>> 0 > 256; $395 = $394 ? 256 : $393; _memset($pad$i | 0, 32, $395 | 0) | 0; $396 = $393 >>> 0 > 255; if ($396) { $$01$i36$i = $393; while (1) { ___fwritex($pad$i, 256, $f) | 0; $397 = ($$01$i36$i + -256) | 0; $398 = $397 >>> 0 > 255; if ($398) { $$01$i36$i = $397; } else { $$0$lcssa$i38$i = $397; break; } } } else { $$0$lcssa$i38$i = $393; } ___fwritex($pad$i, $$0$lcssa$i38$i, $f) | 0; } ___fwritex($prefix$0$i, $pl$1$i, $f) | 0; ___fwritex($s1$0$i, 3, $f) | 0; $399 = $fl$1$ & 73728; $400 = ($399 | 0) == 8192; $or$cond$i42$i = $400 & $392; if ($or$cond$i42$i) { $401 = ($w$1 - $389) | 0; $402 = $401 >>> 0 > 256; $403 = $402 ? 256 : $401; _memset($pad$i | 0, 32, $403 | 0) | 0; $404 = $401 >>> 0 > 255; if ($404) { $$01$i43$i = $401; while (1) { ___fwritex($pad$i, 256, $f) | 0; $405 = ($$01$i43$i + -256) | 0; $406 = $405 >>> 0 > 255; if ($406) { $$01$i43$i = $405; } else { $$0$lcssa$i45$i = $405; break; } } } else { $$0$lcssa$i45$i = $401; } ___fwritex($pad$i, $$0$lcssa$i45$i, $f) | 0; } $w$$i = $392 ? $w$1 : $389; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $w$$i; $l10n$0 = $l10n$3; continue L1; } $407 = +_frexpl($$07$i, $e2$i); $408 = $407 * 2.0; $409 = $408 != 0.0; if ($409) { $410 = HEAP32[$e2$i >> 2] | 0; $411 = ($410 + -1) | 0; HEAP32[$e2$i >> 2] = $411; } $412 = $t$0 | 32; $413 = ($412 | 0) == 97; if ($413) { $414 = $t$0 & 32; $415 = ($414 | 0) == 0; $416 = ($prefix$0$i + 9) | 0; $prefix$0$$i = $415 ? $prefix$0$i : $416; $417 = $pl$0$i | 2; $418 = $p$0 >>> 0 > 11; $419 = (12 - $p$0) | 0; $re$0$i = $418 ? 0 : $419; $420 = ($re$0$i | 0) == 0; do { if ($420) { $$1$i = $408; } else { $re$1165$i = $re$0$i; $round$0164$i = 8.0; while (1) { $421 = ($re$1165$i + -1) | 0; $422 = $round$0164$i * 16.0; $423 = ($421 | 0) == 0; if ($423) { break; } else { $re$1165$i = $421; $round$0164$i = $422; } } $424 = HEAP8[$prefix$0$$i >> 0] | 0; $425 = ($424 << 24) >> 24 == 45; if ($425) { $426 = -$408; $427 = $426 - $422; $428 = $422 + $427; $429 = -$428; $$1$i = $429; break; } else { $430 = $408 + $422; $431 = $430 - $422; $$1$i = $431; break; } } } while (0); $432 = HEAP32[$e2$i >> 2] | 0; $433 = ($432 | 0) < 0; $434 = (0 - $432) | 0; $435 = $433 ? $434 : $432; $436 = ($435 | 0) < 0; if ($436) { $437 = ($435 | 0) < 0; $438 = ($437 << 31) >> 31; $$05$i$i = $6; $439 = $435; $440 = $438; while (1) { $441 = ___uremdi3($439 | 0, $440 | 0, 10, 0) | 0; $442 = tempRet0; $443 = $441 | 48; $444 = $443 & 255; $445 = ($$05$i$i + -1) | 0; HEAP8[$445 >> 0] = $444; $446 = ___udivdi3($439 | 0, $440 | 0, 10, 0) | 0; $447 = tempRet0; $448 = $440 >>> 0 > 9; $449 = ($440 | 0) == 9; $450 = $439 >>> 0 > 4294967295; $451 = $449 & $450; $452 = $448 | $451; if ($452) { $$05$i$i = $445; $439 = $446; $440 = $447; } else { break; } } $$0$lcssa$i48$i = $445; $$01$lcssa$off0$i$i = $446; } else { $$0$lcssa$i48$i = $6; $$01$lcssa$off0$i$i = $435; } $453 = ($$01$lcssa$off0$i$i | 0) == 0; if ($453) { $$1$lcssa$i$i = $$0$lcssa$i48$i; } else { $$12$i$i = $$0$lcssa$i48$i; $y$03$i$i = $$01$lcssa$off0$i$i; while (1) { $454 = ($y$03$i$i >>> 0) % 10 & -1; $455 = $454 | 48; $456 = $455 & 255; $457 = ($$12$i$i + -1) | 0; HEAP8[$457 >> 0] = $456; $458 = (($y$03$i$i >>> 0) / 10) & -1; $459 = $y$03$i$i >>> 0 < 10; if ($459) { $$1$lcssa$i$i = $457; break; } else { $$12$i$i = $457; $y$03$i$i = $458; } } } $460 = ($$1$lcssa$i$i | 0) == ($6 | 0); if ($460) { HEAP8[$7 >> 0] = 48; $estr$0$i = $7; } else { $estr$0$i = $$1$lcssa$i$i; } $461 = HEAP32[$e2$i >> 2] | 0; $462 = $461 >> 31; $463 = $462 & 2; $464 = ($463 + 43) | 0; $465 = $464 & 255; $466 = ($estr$0$i + -1) | 0; HEAP8[$466 >> 0] = $465; $467 = ($t$0 + 15) | 0; $468 = $467 & 255; $469 = ($estr$0$i + -2) | 0; HEAP8[$469 >> 0] = $468; $470 = ($p$0 | 0) > 0; $471 = $fl$1$ & 8; $472 = ($471 | 0) == 0; if ($470) { if ($472) { $$2$us$us$i = $$1$i; $s$0$us$us$i = $buf$i; while (1) { $473 = ~~$$2$us$us$i; $474 = (134280 + $473) | 0; $475 = HEAP8[$474 >> 0] | 0; $476 = $475 & 255; $477 = $476 | $414; $478 = $477 & 255; $479 = ($s$0$us$us$i + 1) | 0; HEAP8[$s$0$us$us$i >> 0] = $478; $480 = +($473 | 0); $481 = $$2$us$us$i - $480; $482 = $481 * 16.0; $483 = $479; $484 = ($483 - $0) | 0; $485 = ($484 | 0) == 1; if ($485) { $486 = ($s$0$us$us$i + 2) | 0; HEAP8[$479 >> 0] = 46; $s$1$us$us$i = $486; } else { $s$1$us$us$i = $479; } $487 = $482 != 0.0; if ($487) { $$2$us$us$i = $482; $s$0$us$us$i = $s$1$us$us$i; } else { $s$1$lcssa$i = $s$1$us$us$i; break; } } } else { $$2$us$i = $$1$i; $s$0$us$i = $buf$i; while (1) { $488 = ~~$$2$us$i; $489 = (134280 + $488) | 0; $490 = HEAP8[$489 >> 0] | 0; $491 = $490 & 255; $492 = $491 | $414; $493 = $492 & 255; $494 = ($s$0$us$i + 1) | 0; HEAP8[$s$0$us$i >> 0] = $493; $495 = +($488 | 0); $496 = $$2$us$i - $495; $497 = $496 * 16.0; $498 = $494; $499 = ($498 - $0) | 0; $500 = ($499 | 0) == 1; if ($500) { $501 = ($s$0$us$i + 2) | 0; HEAP8[$494 >> 0] = 46; $s$1$us$i = $501; } else { $s$1$us$i = $494; } $502 = $497 != 0.0; if ($502) { $$2$us$i = $497; $s$0$us$i = $s$1$us$i; } else { $s$1$lcssa$i = $s$1$us$i; break; } } } } else { if ($472) { $$2$us159$i = $$1$i; $s$0$us158$i = $buf$i; while (1) { $503 = ~~$$2$us159$i; $504 = (134280 + $503) | 0; $505 = HEAP8[$504 >> 0] | 0; $506 = $505 & 255; $507 = $506 | $414; $508 = $507 & 255; $509 = ($s$0$us158$i + 1) | 0; HEAP8[$s$0$us158$i >> 0] = $508; $510 = +($503 | 0); $511 = $$2$us159$i - $510; $512 = $511 * 16.0; $513 = $509; $514 = ($513 - $0) | 0; $515 = ($514 | 0) == 1; $516 = $512 != 0.0; $or$cond$i71 = $515 & $516; if ($or$cond$i71) { $517 = ($s$0$us158$i + 2) | 0; HEAP8[$509 >> 0] = 46; $s$1$us160$i = $517; } else { $s$1$us160$i = $509; } if ($516) { $$2$us159$i = $512; $s$0$us158$i = $s$1$us160$i; } else { $s$1$lcssa$i = $s$1$us160$i; break; } } } else { $$2$i = $$1$i; $s$0$i = $buf$i; while (1) { $518 = ~~$$2$i; $519 = (134280 + $518) | 0; $520 = HEAP8[$519 >> 0] | 0; $521 = $520 & 255; $522 = $521 | $414; $523 = $522 & 255; $524 = ($s$0$i + 1) | 0; HEAP8[$s$0$i >> 0] = $523; $525 = +($518 | 0); $526 = $$2$i - $525; $527 = $526 * 16.0; $528 = $524; $529 = ($528 - $0) | 0; $530 = ($529 | 0) == 1; if ($530) { $531 = ($s$0$i + 2) | 0; HEAP8[$524 >> 0] = 46; $s$1$i = $531; } else { $s$1$i = $524; } $532 = $527 != 0.0; if ($532) { $$2$i = $527; $s$0$i = $s$1$i; } else { $s$1$lcssa$i = $s$1$i; break; } } } } $533 = ($p$0 | 0) == 0; $$pre319$i = $s$1$lcssa$i; do { if ($533) { label = 173; } else { $534 = ($10 + $$pre319$i) | 0; $535 = ($534 | 0) < ($p$0 | 0); if (!$535) { label = 173; break; } $536 = $469; $537 = ($11 + $p$0) | 0; $538 = ($537 - $536) | 0; $l$0$i = $538; } } while (0); if ((label | 0) == 173) { label = 0; $539 = $469; $540 = ($9 - $539) | 0; $541 = ($540 + $$pre319$i) | 0; $l$0$i = $541; } $542 = ($l$0$i + $417) | 0; $543 = $fl$1$ & 73728; $544 = ($543 | 0) == 0; $545 = ($542 | 0) < ($w$1 | 0); $or$cond$i52$i = $544 & $545; if ($or$cond$i52$i) { $546 = ($w$1 - $542) | 0; $547 = $546 >>> 0 > 256; $548 = $547 ? 256 : $546; _memset($pad$i | 0, 32, $548 | 0) | 0; $549 = $546 >>> 0 > 255; if ($549) { $$01$i53$i = $546; while (1) { ___fwritex($pad$i, 256, $f) | 0; $550 = ($$01$i53$i + -256) | 0; $551 = $550 >>> 0 > 255; if ($551) { $$01$i53$i = $550; } else { $$0$lcssa$i55$i = $550; break; } } } else { $$0$lcssa$i55$i = $546; } ___fwritex($pad$i, $$0$lcssa$i55$i, $f) | 0; } ___fwritex($prefix$0$$i, $417, $f) | 0; $552 = ($543 | 0) == 65536; $or$cond$i59$i = $552 & $545; if ($or$cond$i59$i) { $553 = ($w$1 - $542) | 0; $554 = $553 >>> 0 > 256; $555 = $554 ? 256 : $553; _memset($pad$i | 0, 48, $555 | 0) | 0; $556 = $553 >>> 0 > 255; if ($556) { $$01$i60$i = $553; while (1) { ___fwritex($pad$i, 256, $f) | 0; $557 = ($$01$i60$i + -256) | 0; $558 = $557 >>> 0 > 255; if ($558) { $$01$i60$i = $557; } else { $$0$lcssa$i62$i = $557; break; } } } else { $$0$lcssa$i62$i = $553; } ___fwritex($pad$i, $$0$lcssa$i62$i, $f) | 0; } $559 = ($$pre319$i - $0) | 0; ___fwritex($buf$i, $559, $f) | 0; $560 = $469; $561 = ($8 - $560) | 0; $562 = ($l$0$i - $561) | 0; $563 = ($562 - $559) | 0; $564 = ($563 | 0) > 0; if ($564) { $565 = $563 >>> 0 > 256; $566 = $565 ? 256 : $563; _memset($pad$i | 0, 48, $566 | 0) | 0; $567 = $563 >>> 0 > 255; if ($567) { $$01$i66$i = $563; while (1) { ___fwritex($pad$i, 256, $f) | 0; $568 = ($$01$i66$i + -256) | 0; $569 = $568 >>> 0 > 255; if ($569) { $$01$i66$i = $568; } else { $$0$lcssa$i68$i = $568; break; } } } else { $$0$lcssa$i68$i = $563; } ___fwritex($pad$i, $$0$lcssa$i68$i, $f) | 0; } ___fwritex($469, $561, $f) | 0; $570 = ($543 | 0) == 8192; $or$cond$i72$i = $570 & $545; if ($or$cond$i72$i) { $571 = ($w$1 - $542) | 0; $572 = $571 >>> 0 > 256; $573 = $572 ? 256 : $571; _memset($pad$i | 0, 32, $573 | 0) | 0; $574 = $571 >>> 0 > 255; if ($574) { $$01$i73$i = $571; while (1) { ___fwritex($pad$i, 256, $f) | 0; $575 = ($$01$i73$i + -256) | 0; $576 = $575 >>> 0 > 255; if ($576) { $$01$i73$i = $575; } else { $$0$lcssa$i75$i = $575; break; } } } else { $$0$lcssa$i75$i = $571; } ___fwritex($pad$i, $$0$lcssa$i75$i, $f) | 0; } $w$18$i = $545 ? $w$1 : $542; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $w$18$i; $l10n$0 = $l10n$3; continue L1; } $577 = ($p$0 | 0) < 0; $$p$i = $577 ? 6 : $p$0; if ($409) { $578 = $408 * 268435456.0; $579 = HEAP32[$e2$i >> 2] | 0; $580 = ($579 + -28) | 0; HEAP32[$e2$i >> 2] = $580; $$3$i = $578; $581 = $580; } else { $$pre$i = HEAP32[$e2$i >> 2] | 0; $$3$i = $408; $581 = $$pre$i; } $582 = ($581 | 0) < 0; $$31$i = $582 ? $big$i : $12; $$4$i = $$3$i; $z$0$i = $$31$i; while (1) { $583 = ~~$$4$i >>> 0; HEAP32[$z$0$i >> 2] = $583; $584 = ($z$0$i + 4) | 0; $585 = +($583 >>> 0); $586 = $$4$i - $585; $587 = $586 * 1.0e9; $588 = $587 != 0.0; if ($588) { $$4$i = $587; $z$0$i = $584; } else { break; } } $$pr$i = HEAP32[$e2$i >> 2] | 0; $589 = ($$pr$i | 0) > 0; if ($589) { $590 = $$pr$i; $a$1263$i = $$31$i; $z$1262$i = $584; while (1) { $591 = ($590 | 0) > 29; $592 = $591 ? 29 : $590; $d$0254$i = ($z$1262$i + -4) | 0; $593 = $d$0254$i >>> 0 < $a$1263$i >>> 0; do { if ($593) { $a$2$ph$i = $a$1263$i; } else { $carry$0255$i = 0; $d$0256$i = $d$0254$i; while (1) { $594 = HEAP32[$d$0256$i >> 2] | 0; $595 = _bitshift64Shl($594 | 0, 0, $592 | 0) | 0; $596 = tempRet0; $597 = _i64Add($595 | 0, $596 | 0, $carry$0255$i | 0, 0) | 0; $598 = tempRet0; $599 = ___uremdi3($597 | 0, $598 | 0, 1000000000, 0) | 0; $600 = tempRet0; HEAP32[$d$0256$i >> 2] = $599; $601 = ___udivdi3($597 | 0, $598 | 0, 1000000000, 0) | 0; $602 = tempRet0; $d$0$i = ($d$0256$i + -4) | 0; $603 = $d$0$i >>> 0 < $a$1263$i >>> 0; if ($603) { break; } else { $carry$0255$i = $601; $d$0256$i = $d$0$i; } } $604 = ($601 | 0) == 0; if ($604) { $a$2$ph$i = $a$1263$i; break; } $605 = ($a$1263$i + -4) | 0; HEAP32[$605 >> 2] = $601; $a$2$ph$i = $605; } } while (0); $z$2$i = $z$1262$i; while (1) { $606 = $z$2$i >>> 0 > $a$2$ph$i >>> 0; if (!$606) { break; } $607 = ($z$2$i + -4) | 0; $608 = HEAP32[$607 >> 2] | 0; $609 = ($608 | 0) == 0; if ($609) { $z$2$i = $607; } else { break; } } $610 = HEAP32[$e2$i >> 2] | 0; $611 = ($610 - $592) | 0; HEAP32[$e2$i >> 2] = $611; $612 = ($611 | 0) > 0; if ($612) { $590 = $611; $a$1263$i = $a$2$ph$i; $z$1262$i = $z$2$i; } else { $$pr146$i = $611; $a$1$lcssa$i = $a$2$ph$i; $z$1$lcssa$i = $z$2$i; break; } } } else { $$pr146$i = $$pr$i; $a$1$lcssa$i = $$31$i; $z$1$lcssa$i = $584; } $613 = ($$pr146$i | 0) < 0; L228: do { if ($613) { $614 = ($$p$i + 25) | 0; $615 = (($614 | 0) / 9) & -1; $616 = ($615 + 1) | 0; $617 = ($412 | 0) == 102; if ($617) { $618 = $$31$i; $619 = ($$31$i + ($616 << 2)) | 0; $621 = $$pr146$i; $a$3249$us$i = $a$1$lcssa$i; $z$3248$us$i = $z$1$lcssa$i; while (1) { $620 = (0 - $621) | 0; $622 = ($620 | 0) > 9; $$20$us$i = $622 ? 9 : $620; $623 = $a$3249$us$i >>> 0 < $z$3248$us$i >>> 0; do { if ($623) { $648 = 1 << $$20$us$i; $642 = ($648 + -1) | 0; $645 = 1000000000 >>> $$20$us$i; $carry3$0243$us$i = 0; $d$1242$us$i = $a$3249$us$i; while (1) { $640 = HEAP32[$d$1242$us$i >> 2] | 0; $641 = $640 & $642; $643 = $640 >>> $$20$us$i; $644 = ($643 + $carry3$0243$us$i) | 0; HEAP32[$d$1242$us$i >> 2] = $644; $630 = Math_imul($641, $645) | 0; $646 = ($d$1242$us$i + 4) | 0; $647 = $646 >>> 0 < $z$3248$us$i >>> 0; if ($647) { $carry3$0243$us$i = $630; $d$1242$us$i = $646; } else { break; } } $627 = HEAP32[$a$3249$us$i >> 2] | 0; $628 = ($627 | 0) == 0; $629 = ($a$3249$us$i + 4) | 0; $$a$3$us$i = $628 ? $629 : $a$3249$us$i; $631 = ($630 | 0) == 0; if ($631) { $$a$3$us323$i = $$a$3$us$i; $z$4$us$i = $z$3248$us$i; break; } $632 = ($z$3248$us$i + 4) | 0; HEAP32[$z$3248$us$i >> 2] = $630; $$a$3$us323$i = $$a$3$us$i; $z$4$us$i = $632; } else { $624 = HEAP32[$a$3249$us$i >> 2] | 0; $625 = ($624 | 0) == 0; $626 = ($a$3249$us$i + 4) | 0; $$a$3$us322$i = $625 ? $626 : $a$3249$us$i; $$a$3$us323$i = $$a$3$us322$i; $z$4$us$i = $z$3248$us$i; } } while (0); $633 = $z$4$us$i; $634 = ($633 - $618) | 0; $635 = $634 >> 2; $636 = ($635 | 0) > ($616 | 0); $$z$4$us$i = $636 ? $619 : $z$4$us$i; $637 = HEAP32[$e2$i >> 2] | 0; $638 = ($637 + $$20$us$i) | 0; HEAP32[$e2$i >> 2] = $638; $639 = ($638 | 0) < 0; if ($639) { $621 = $638; $a$3249$us$i = $$a$3$us323$i; $z$3248$us$i = $$z$4$us$i; } else { $a$3$lcssa$i = $$a$3$us323$i; $z$3$lcssa$i = $$z$4$us$i; break L228; } } } else { $650 = $$pr146$i; $a$3249$i = $a$1$lcssa$i; $z$3248$i = $z$1$lcssa$i; } while (1) { $649 = (0 - $650) | 0; $651 = ($649 | 0) > 9; $$20$i = $651 ? 9 : $649; $652 = $a$3249$i >>> 0 < $z$3248$i >>> 0; do { if ($652) { $656 = 1 << $$20$i; $657 = ($656 + -1) | 0; $658 = 1000000000 >>> $$20$i; $carry3$0243$i = 0; $d$1242$i = $a$3249$i; while (1) { $659 = HEAP32[$d$1242$i >> 2] | 0; $660 = $659 & $657; $661 = $659 >>> $$20$i; $662 = ($661 + $carry3$0243$i) | 0; HEAP32[$d$1242$i >> 2] = $662; $663 = Math_imul($660, $658) | 0; $664 = ($d$1242$i + 4) | 0; $665 = $664 >>> 0 < $z$3248$i >>> 0; if ($665) { $carry3$0243$i = $663; $d$1242$i = $664; } else { break; } } $666 = HEAP32[$a$3249$i >> 2] | 0; $667 = ($666 | 0) == 0; $668 = ($a$3249$i + 4) | 0; $$a$3$i = $667 ? $668 : $a$3249$i; $669 = ($663 | 0) == 0; if ($669) { $$a$3325$i = $$a$3$i; $z$4$i = $z$3248$i; break; } $670 = ($z$3248$i + 4) | 0; HEAP32[$z$3248$i >> 2] = $663; $$a$3325$i = $$a$3$i; $z$4$i = $670; } else { $653 = HEAP32[$a$3249$i >> 2] | 0; $654 = ($653 | 0) == 0; $655 = ($a$3249$i + 4) | 0; $$a$3324$i = $654 ? $655 : $a$3249$i; $$a$3325$i = $$a$3324$i; $z$4$i = $z$3248$i; } } while (0); $671 = $z$4$i; $672 = $$a$3325$i; $673 = ($671 - $672) | 0; $674 = $673 >> 2; $675 = ($674 | 0) > ($616 | 0); if ($675) { $676 = ($$a$3325$i + ($616 << 2)) | 0; $z$5$i = $676; } else { $z$5$i = $z$4$i; } $677 = HEAP32[$e2$i >> 2] | 0; $678 = ($677 + $$20$i) | 0; HEAP32[$e2$i >> 2] = $678; $679 = ($678 | 0) < 0; if ($679) { $650 = $678; $a$3249$i = $$a$3325$i; $z$3248$i = $z$5$i; } else { $a$3$lcssa$i = $$a$3325$i; $z$3$lcssa$i = $z$5$i; break; } } } else { $a$3$lcssa$i = $a$1$lcssa$i; $z$3$lcssa$i = $z$1$lcssa$i; } } while (0); $680 = $a$3$lcssa$i >>> 0 < $z$3$lcssa$i >>> 0; $681 = $$31$i; do { if ($680) { $682 = $a$3$lcssa$i; $683 = ($681 - $682) | 0; $684 = $683 >> 2; $685 = ($684 * 9) | 0; $686 = HEAP32[$a$3$lcssa$i >> 2] | 0; $687 = $686 >>> 0 < 10; if ($687) { $e$1$i = $685; break; } else { $e$0238$i = $685; $i$0237$i = 10; } while (1) { $688 = ($i$0237$i * 10) | 0; $689 = ($e$0238$i + 1) | 0; $690 = $686 >>> 0 < $688 >>> 0; if ($690) { $e$1$i = $689; break; } else { $e$0238$i = $689; $i$0237$i = $688; } } } else { $e$1$i = 0; } } while (0); $691 = ($412 | 0) != 102; $692 = $691 ? $e$1$i : 0; $693 = ($$p$i - $692) | 0; $694 = ($412 | 0) == 103; $695 = ($$p$i | 0) != 0; $$21$i = $694 & $695; $$neg151$i = ($$21$i << 31) >> 31; $696 = ($693 + $$neg151$i) | 0; $697 = $z$3$lcssa$i; $698 = ($697 - $681) | 0; $699 = $698 >> 2; $700 = ($699 * 9) | 0; $701 = ($700 + -9) | 0; $702 = ($696 | 0) < ($701 | 0); if ($702) { $703 = ($696 + 9216) | 0; $704 = (($703 | 0) / 9) & -1; $$sum$i = ($704 + -1023) | 0; $705 = ($$31$i + ($$sum$i << 2)) | 0; $706 = ($703 | 0) % 9 & -1; $j$0229$i = ($706 + 1) | 0; $707 = ($j$0229$i | 0) < 9; if ($707) { $i$1230$i = 10; $j$0231$i = $j$0229$i; while (1) { $708 = ($i$1230$i * 10) | 0; $j$0$i = ($j$0231$i + 1) | 0; $exitcond$i = ($j$0$i | 0) == 9; if ($exitcond$i) { $i$1$lcssa$i = $708; break; } else { $i$1230$i = $708; $j$0231$i = $j$0$i; } } } else { $i$1$lcssa$i = 10; } $709 = HEAP32[$705 >> 2] | 0; $710 = ($709 >>> 0) % ($i$1$lcssa$i >>> 0) & -1; $711 = ($710 | 0) == 0; if ($711) { $$sum15$i = ($704 + -1022) | 0; $712 = ($$31$i + ($$sum15$i << 2)) | 0; $713 = ($712 | 0) == ($z$3$lcssa$i | 0); if ($713) { $a$7$i = $a$3$lcssa$i; $d$3$i = $705; $e$3$i = $e$1$i; } else { label = 233; } } else { label = 233; } do { if ((label | 0) == 233) { label = 0; $714 = (($709 >>> 0) / ($i$1$lcssa$i >>> 0)) & -1; $715 = $714 & 1; $716 = ($715 | 0) == 0; $$22$i = $716 ? 9007199254740992.0 : 9007199254740994.0; $717 = (($i$1$lcssa$i | 0) / 2) & -1; $718 = $710 >>> 0 < $717 >>> 0; do { if ($718) { $small$0$i = 0.5; } else { $719 = ($710 | 0) == ($717 | 0); if ($719) { $$sum16$i = ($704 + -1022) | 0; $720 = ($$31$i + ($$sum16$i << 2)) | 0; $721 = ($720 | 0) == ($z$3$lcssa$i | 0); if ($721) { $small$0$i = 1.0; break; } } $small$0$i = 1.5; } } while (0); $722 = ($pl$0$i | 0) == 0; do { if ($722) { $round6$1$i = $$22$i; $small$1$i = $small$0$i; } else { $723 = HEAP8[$prefix$0$i >> 0] | 0; $724 = ($723 << 24) >> 24 == 45; if (!$724) { $round6$1$i = $$22$i; $small$1$i = $small$0$i; break; } $725 = $$22$i * -1.0; $726 = $small$0$i * -1.0; $round6$1$i = $725; $small$1$i = $726; } } while (0); $727 = ($709 - $710) | 0; HEAP32[$705 >> 2] = $727; $728 = $round6$1$i + $small$1$i; $729 = $728 != $round6$1$i; if (!$729) { $a$7$i = $a$3$lcssa$i; $d$3$i = $705; $e$3$i = $e$1$i; break; } $730 = ($727 + $i$1$lcssa$i) | 0; HEAP32[$705 >> 2] = $730; $731 = $730 >>> 0 > 999999999; if ($731) { $a$5223$i = $a$3$lcssa$i; $d$2222$i = $705; while (1) { $732 = ($d$2222$i + -4) | 0; HEAP32[$d$2222$i >> 2] = 0; $733 = $732 >>> 0 < $a$5223$i >>> 0; if ($733) { $734 = ($a$5223$i + -4) | 0; HEAP32[$734 >> 2] = 0; $a$6$i = $734; } else { $a$6$i = $a$5223$i; } $735 = HEAP32[$732 >> 2] | 0; $736 = ($735 + 1) | 0; HEAP32[$732 >> 2] = $736; $737 = $736 >>> 0 > 999999999; if ($737) { $a$5223$i = $a$6$i; $d$2222$i = $732; } else { $a$5$lcssa$i = $a$6$i; $d$2$lcssa$i = $732; break; } } } else { $a$5$lcssa$i = $a$3$lcssa$i; $d$2$lcssa$i = $705; } $738 = $a$5$lcssa$i; $739 = ($681 - $738) | 0; $740 = $739 >> 2; $741 = ($740 * 9) | 0; $742 = HEAP32[$a$5$lcssa$i >> 2] | 0; $743 = $742 >>> 0 < 10; if ($743) { $a$7$i = $a$5$lcssa$i; $d$3$i = $d$2$lcssa$i; $e$3$i = $741; break; } else { $e$2218$i = $741; $i$2217$i = 10; } while (1) { $744 = ($i$2217$i * 10) | 0; $745 = ($e$2218$i + 1) | 0; $746 = $742 >>> 0 < $744 >>> 0; if ($746) { $a$7$i = $a$5$lcssa$i; $d$3$i = $d$2$lcssa$i; $e$3$i = $745; break; } else { $e$2218$i = $745; $i$2217$i = $744; } } } } while (0); $747 = ($d$3$i + 4) | 0; $748 = $z$3$lcssa$i >>> 0 > $747 >>> 0; $$z$3$i = $748 ? $747 : $z$3$lcssa$i; $a$8$ph$i = $a$7$i; $e$4$ph$i = $e$3$i; $z$6$ph$i = $$z$3$i; } else { $a$8$ph$i = $a$3$lcssa$i; $e$4$ph$i = $e$1$i; $z$6$ph$i = $z$3$lcssa$i; } $749 = (0 - $e$4$ph$i) | 0; $z$6$i = $z$6$ph$i; while (1) { $750 = $z$6$i >>> 0 > $a$8$ph$i >>> 0; if (!$750) { $$lcssa300$i = 0; break; } $751 = ($z$6$i + -4) | 0; $752 = HEAP32[$751 >> 2] | 0; $753 = ($752 | 0) == 0; if ($753) { $z$6$i = $751; } else { $$lcssa300$i = 1; break; } } do { if ($694) { $754 = ($$p$i | 0) == 0; $755 = $754 & 1; $$$p$i = ($755 + $$p$i) | 0; $756 = ($$$p$i | 0) > ($e$4$ph$i | 0); $757 = ($e$4$ph$i | 0) > -5; $or$cond4$i = $756 & $757; if ($or$cond4$i) { $758 = ($t$0 + -1) | 0; $$neg152$i = ($$$p$i + -1) | 0; $759 = ($$neg152$i - $e$4$ph$i) | 0; $$013$i = $758; $$210$i = $759; } else { $760 = ($t$0 + -2) | 0; $761 = ($$$p$i + -1) | 0; $$013$i = $760; $$210$i = $761; } $762 = $fl$1$ & 8; $763 = ($762 | 0) == 0; if (!$763) { $$114$i = $$013$i; $$311$i = $$210$i; break; } do { if ($$lcssa300$i) { $764 = ($z$6$i + -4) | 0; $765 = HEAP32[$764 >> 2] | 0; $766 = ($765 | 0) == 0; if ($766) { $j$2$i = 9; break; } $767 = ($765 >>> 0) % 10 & -1; $768 = ($767 | 0) == 0; if ($768) { $i$3209$i = 10; $j$1210$i = 0; } else { $j$2$i = 0; break; } while (1) { $769 = ($i$3209$i * 10) | 0; $770 = ($j$1210$i + 1) | 0; $771 = ($765 >>> 0) % ($769 >>> 0) & -1; $772 = ($771 | 0) == 0; if ($772) { $i$3209$i = $769; $j$1210$i = $770; } else { $j$2$i = $770; break; } } } else { $j$2$i = 9; } } while (0); $773 = $$013$i | 32; $774 = ($773 | 0) == 102; $775 = $z$6$i; $776 = ($775 - $681) | 0; $777 = $776 >> 2; $778 = ($777 * 9) | 0; $779 = ($778 + -9) | 0; if ($774) { $780 = ($779 - $j$2$i) | 0; $781 = ($780 | 0) < 0; $$23$i = $781 ? 0 : $780; $782 = ($$210$i | 0) < ($$23$i | 0); $$210$$23$i = $782 ? $$210$i : $$23$i; $$114$i = $$013$i; $$311$i = $$210$$23$i; break; } else { $783 = ($779 + $e$4$ph$i) | 0; $784 = ($783 - $j$2$i) | 0; $785 = ($784 | 0) < 0; $$25$i = $785 ? 0 : $784; $786 = ($$210$i | 0) < ($$25$i | 0); $$210$$25$i = $786 ? $$210$i : $$25$i; $$114$i = $$013$i; $$311$i = $$210$$25$i; break; } } else { $$114$i = $t$0; $$311$i = $$p$i; } } while (0); $787 = ($$311$i | 0) != 0; if ($787) { $791 = 1; } else { $788 = $fl$1$ & 8; $789 = ($788 | 0) != 0; $791 = $789; } $790 = $791 & 1; $792 = $$114$i | 32; $793 = ($792 | 0) == 102; if ($793) { $794 = ($e$4$ph$i | 0) > 0; $795 = $794 ? $e$4$ph$i : 0; $$pn$i = $795; $estr$2$i = 0; } else { $796 = ($e$4$ph$i | 0) < 0; $797 = $796 ? $749 : $e$4$ph$i; $798 = ($797 | 0) < 0; if ($798) { $799 = ($797 | 0) < 0; $800 = ($799 << 31) >> 31; $$05$i79$i = $6; $801 = $797; $802 = $800; while (1) { $803 = ___uremdi3($801 | 0, $802 | 0, 10, 0) | 0; $804 = tempRet0; $805 = $803 | 48; $806 = $805 & 255; $807 = ($$05$i79$i + -1) | 0; HEAP8[$807 >> 0] = $806; $808 = ___udivdi3($801 | 0, $802 | 0, 10, 0) | 0; $809 = tempRet0; $810 = $802 >>> 0 > 9; $811 = ($802 | 0) == 9; $812 = $801 >>> 0 > 4294967295; $813 = $811 & $812; $814 = $810 | $813; if ($814) { $$05$i79$i = $807; $801 = $808; $802 = $809; } else { break; } } $$0$lcssa$i84$i = $807; $$01$lcssa$off0$i85$i = $808; } else { $$0$lcssa$i84$i = $6; $$01$lcssa$off0$i85$i = $797; } $815 = ($$01$lcssa$off0$i85$i | 0) == 0; if ($815) { $estr$1$ph$i = $$0$lcssa$i84$i; } else { $$12$i87$i = $$0$lcssa$i84$i; $y$03$i86$i = $$01$lcssa$off0$i85$i; while (1) { $816 = ($y$03$i86$i >>> 0) % 10 & -1; $817 = $816 | 48; $818 = $817 & 255; $819 = ($$12$i87$i + -1) | 0; HEAP8[$819 >> 0] = $818; $820 = (($y$03$i86$i >>> 0) / 10) & -1; $821 = $y$03$i86$i >>> 0 < 10; if ($821) { $estr$1$ph$i = $819; break; } else { $$12$i87$i = $819; $y$03$i86$i = $820; } } } $822 = $estr$1$ph$i; $823 = ($8 - $822) | 0; $824 = ($823 | 0) < 2; if ($824) { $estr$1200$i = $estr$1$ph$i; while (1) { $825 = ($estr$1200$i + -1) | 0; HEAP8[$825 >> 0] = 48; $826 = $825; $827 = ($8 - $826) | 0; $828 = ($827 | 0) < 2; if ($828) { $estr$1200$i = $825; } else { $estr$1$lcssa$i = $825; break; } } } else { $estr$1$lcssa$i = $estr$1$ph$i; } $829 = $e$4$ph$i >> 31; $830 = $829 & 2; $831 = ($830 + 43) | 0; $832 = $831 & 255; $833 = ($estr$1$lcssa$i + -1) | 0; HEAP8[$833 >> 0] = $832; $834 = $$114$i & 255; $835 = ($estr$1$lcssa$i + -2) | 0; HEAP8[$835 >> 0] = $834; $836 = $835; $837 = ($8 - $836) | 0; $$pn$i = $837; $estr$2$i = $835; } $838 = ($pl$0$i + 1) | 0; $839 = ($838 + $$311$i) | 0; $l$1$i = ($839 + $790) | 0; $840 = ($l$1$i + $$pn$i) | 0; $841 = $fl$1$ & 73728; $842 = ($841 | 0) == 0; $843 = ($840 | 0) < ($w$1 | 0); $or$cond$i93$i = $842 & $843; if ($or$cond$i93$i) { $844 = ($w$1 - $840) | 0; $845 = $844 >>> 0 > 256; $846 = $845 ? 256 : $844; _memset($pad$i | 0, 32, $846 | 0) | 0; $847 = $844 >>> 0 > 255; if ($847) { $$01$i94$i = $844; while (1) { ___fwritex($pad$i, 256, $f) | 0; $848 = ($$01$i94$i + -256) | 0; $849 = $848 >>> 0 > 255; if ($849) { $$01$i94$i = $848; } else { $$0$lcssa$i96$i = $848; break; } } } else { $$0$lcssa$i96$i = $844; } ___fwritex($pad$i, $$0$lcssa$i96$i, $f) | 0; } ___fwritex($prefix$0$i, $pl$0$i, $f) | 0; $850 = ($841 | 0) == 65536; $or$cond$i100$i = $850 & $843; if ($or$cond$i100$i) { $851 = ($w$1 - $840) | 0; $852 = $851 >>> 0 > 256; $853 = $852 ? 256 : $851; _memset($pad$i | 0, 48, $853 | 0) | 0; $854 = $851 >>> 0 > 255; if ($854) { $$01$i101$i = $851; while (1) { ___fwritex($pad$i, 256, $f) | 0; $855 = ($$01$i101$i + -256) | 0; $856 = $855 >>> 0 > 255; if ($856) { $$01$i101$i = $855; } else { $$0$lcssa$i103$i = $855; break; } } } else { $$0$lcssa$i103$i = $851; } ___fwritex($pad$i, $$0$lcssa$i103$i, $f) | 0; } do { if ($793) { $857 = $a$8$ph$i >>> 0 > $$31$i >>> 0; $r$0$a$8$i = $857 ? $$31$i : $a$8$ph$i; $d$4183$i = $r$0$a$8$i; while (1) { $858 = HEAP32[$d$4183$i >> 2] | 0; $859 = ($858 | 0) == 0; if ($859) { $$1$lcssa$i112$i = $13; } else { $$12$i110$i = $13; $y$03$i109$i = $858; while (1) { $860 = ($y$03$i109$i >>> 0) % 10 & -1; $861 = $860 | 48; $862 = $861 & 255; $863 = ($$12$i110$i + -1) | 0; HEAP8[$863 >> 0] = $862; $864 = (($y$03$i109$i >>> 0) / 10) & -1; $865 = $y$03$i109$i >>> 0 < 10; if ($865) { $$1$lcssa$i112$i = $863; break; } else { $$12$i110$i = $863; $y$03$i109$i = $864; } } } $866 = ($d$4183$i | 0) == ($r$0$a$8$i | 0); do { if ($866) { $870 = ($$1$lcssa$i112$i | 0) == ($13 | 0); if (!$870) { $s7$1$i = $$1$lcssa$i112$i; break; } HEAP8[$15 >> 0] = 48; $s7$1$i = $15; } else { $867 = $$1$lcssa$i112$i >>> 0 > $buf$i >>> 0; if ($867) { $s7$0180$i = $$1$lcssa$i112$i; } else { $s7$1$i = $$1$lcssa$i112$i; break; } while (1) { $868 = ($s7$0180$i + -1) | 0; HEAP8[$868 >> 0] = 48; $869 = $868 >>> 0 > $buf$i >>> 0; if ($869) { $s7$0180$i = $868; } else { $s7$1$i = $868; break; } } } } while (0); $871 = $s7$1$i; $872 = ($14 - $871) | 0; ___fwritex($s7$1$i, $872, $f) | 0; $873 = ($d$4183$i + 4) | 0; $874 = $873 >>> 0 > $$31$i >>> 0; if ($874) { break; } else { $d$4183$i = $873; } } if (!$787) { $875 = $fl$1$ & 8; $876 = ($875 | 0) == 0; if ($876) { break; } } ___fwritex(134296, 1, $f) | 0; $877 = $873 >>> 0 < $z$6$i >>> 0; $878 = ($$311$i | 0) > 0; $or$cond28173$i = $877 & $878; if ($or$cond28173$i) { $$412175$i = $$311$i; $d$5174$i = $873; while (1) { $879 = HEAP32[$d$5174$i >> 2] | 0; $880 = ($879 | 0) == 0; if ($880) { $s8$0169$i = $13; label = 300; } else { $$12$i119$i = $13; $y$03$i118$i = $879; while (1) { $881 = ($y$03$i118$i >>> 0) % 10 & -1; $882 = $881 | 48; $883 = $882 & 255; $884 = ($$12$i119$i + -1) | 0; HEAP8[$884 >> 0] = $883; $885 = (($y$03$i118$i >>> 0) / 10) & -1; $886 = $y$03$i118$i >>> 0 < 10; if ($886) { break; } else { $$12$i119$i = $884; $y$03$i118$i = $885; } } $887 = $884 >>> 0 > $buf$i >>> 0; if ($887) { $s8$0169$i = $884; label = 300; } else { $s8$0$lcssa$i = $884; } } if ((label | 0) == 300) { while (1) { label = 0; $888 = ($s8$0169$i + -1) | 0; HEAP8[$888 >> 0] = 48; $889 = $888 >>> 0 > $buf$i >>> 0; if ($889) { $s8$0169$i = $888; label = 300; } else { $s8$0$lcssa$i = $888; break; } } } $890 = ($$412175$i | 0) > 9; $891 = $890 ? 9 : $$412175$i; ___fwritex($s8$0$lcssa$i, $891, $f) | 0; $892 = ($d$5174$i + 4) | 0; $893 = ($$412175$i + -9) | 0; $894 = $892 >>> 0 < $z$6$i >>> 0; $895 = ($893 | 0) > 0; $or$cond28$i = $894 & $895; if ($or$cond28$i) { $$412175$i = $893; $d$5174$i = $892; } else { $$412$lcssa$i = $893; break; } } } else { $$412$lcssa$i = $$311$i; } $896 = ($$412$lcssa$i | 0) > 0; if (!$896) { break; } $897 = $$412$lcssa$i >>> 0 > 256; $898 = $897 ? 256 : $$412$lcssa$i; _memset($pad$i | 0, 48, $898 | 0) | 0; $899 = $$412$lcssa$i >>> 0 > 255; if ($899) { $$01$i125$i = $$412$lcssa$i; while (1) { ___fwritex($pad$i, 256, $f) | 0; $900 = ($$01$i125$i + -256) | 0; $901 = $900 >>> 0 > 255; if ($901) { $$01$i125$i = $900; } else { $$0$lcssa$i127$i = $900; break; } } } else { $$0$lcssa$i127$i = $$412$lcssa$i; } ___fwritex($pad$i, $$0$lcssa$i127$i, $f) | 0; } else { $902 = ($a$8$ph$i + 4) | 0; $z$6$$i = $$lcssa300$i ? $z$6$i : $902; $903 = ($$311$i | 0) > -1; do { if ($903) { $904 = $fl$1$ & 8; $$not$i = ($904 | 0) != 0; $$5193$i = $$311$i; $d$6192$i = $a$8$ph$i; while (1) { $905 = HEAP32[$d$6192$i >> 2] | 0; $906 = ($905 | 0) == 0; if ($906) { label = 311; } else { $$12$i134$i = $13; $y$03$i133$i = $905; while (1) { $907 = ($y$03$i133$i >>> 0) % 10 & -1; $908 = $907 | 48; $909 = $908 & 255; $910 = ($$12$i134$i + -1) | 0; HEAP8[$910 >> 0] = $909; $911 = (($y$03$i133$i >>> 0) / 10) & -1; $912 = $y$03$i133$i >>> 0 < 10; if ($912) { break; } else { $$12$i134$i = $910; $y$03$i133$i = $911; } } $913 = ($910 | 0) == ($13 | 0); if ($913) { label = 311; } else { $s9$0$i = $910; } } if ((label | 0) == 311) { label = 0; HEAP8[$15 >> 0] = 48; $s9$0$i = $15; } $914 = ($d$6192$i | 0) == ($a$8$ph$i | 0); do { if ($914) { $918 = ($s9$0$i + 1) | 0; ___fwritex($s9$0$i, 1, $f) | 0; $919 = ($$5193$i | 0) > 0; $brmerge$i = $919 | $$not$i; if (!$brmerge$i) { $s9$2$i = $918; break; } ___fwritex(134296, 1, $f) | 0; $s9$2$i = $918; } else { $915 = $s9$0$i >>> 0 > $buf$i >>> 0; if ($915) { $s9$1188$i = $s9$0$i; } else { $s9$2$i = $s9$0$i; break; } while (1) { $916 = ($s9$1188$i + -1) | 0; HEAP8[$916 >> 0] = 48; $917 = $916 >>> 0 > $buf$i >>> 0; if ($917) { $s9$1188$i = $916; } else { $s9$2$i = $916; break; } } } } while (0); $920 = $s9$2$i; $921 = ($14 - $920) | 0; $922 = ($921 | 0) < ($$5193$i | 0); $$$5$i = $922 ? $921 : $$5193$i; ___fwritex($s9$2$i, $$$5$i, $f) | 0; $923 = ($$5193$i - $921) | 0; $924 = ($d$6192$i + 4) | 0; $925 = $924 >>> 0 < $z$6$$i >>> 0; $926 = ($923 | 0) > -1; $or$cond29$i = $925 & $926; if ($or$cond29$i) { $$5193$i = $923; $d$6192$i = $924; } else { break; } } $927 = ($923 | 0) > 0; if (!$927) { break; } $928 = $923 >>> 0 > 256; $929 = $928 ? 256 : $923; _memset($pad$i | 0, 48, $929 | 0) | 0; $930 = $923 >>> 0 > 255; if ($930) { $$01$i140$i = $923; while (1) { ___fwritex($pad$i, 256, $f) | 0; $931 = ($$01$i140$i + -256) | 0; $932 = $931 >>> 0 > 255; if ($932) { $$01$i140$i = $931; } else { $$0$lcssa$i142$i = $931; break; } } } else { $$0$lcssa$i142$i = $923; } ___fwritex($pad$i, $$0$lcssa$i142$i, $f) | 0; } } while (0); $933 = $estr$2$i; $934 = ($8 - $933) | 0; ___fwritex($estr$2$i, $934, $f) | 0; } } while (0); $935 = ($841 | 0) == 8192; $or$cond$i$i = $935 & $843; if ($or$cond$i$i) { $936 = ($w$1 - $840) | 0; $937 = $936 >>> 0 > 256; $938 = $937 ? 256 : $936; _memset($pad$i | 0, 32, $938 | 0) | 0; $939 = $936 >>> 0 > 255; if ($939) { $$01$i$i = $936; while (1) { ___fwritex($pad$i, 256, $f) | 0; $940 = ($$01$i$i + -256) | 0; $941 = $940 >>> 0 > 255; if ($941) { $$01$i$i = $940; } else { $$0$lcssa$i$i = $940; break; } } } else { $$0$lcssa$i$i = $936; } ___fwritex($pad$i, $$0$lcssa$i$i, $f) | 0; } $w$30$i = $843 ? $w$1 : $840; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $w$30$i; $l10n$0 = $l10n$3; continue L1; break; } case 115: { $324 = ($207 | 0) == (0 | 0); $$17 = $324 ? 134216 : $207; $a$1 = $$17; label = 99; break; } case 105: case 100: { $267 = $207; $268 = ($228 | 0) < 0; if ($268) { $269 = _i64Subtract(0, 0, $267 | 0, $228 | 0) | 0; $270 = tempRet0; $271 = $269; $276 = $271; $278 = $270; $pl$0 = 1; $prefix$0 = 134200; label = 89; break L92; } $272 = $fl$1$ & 2048; $273 = ($272 | 0) == 0; if ($273) { $274 = $fl$1$ & 1; $275 = ($274 | 0) == 0; $$15 = $275 ? 134200 : (134200 + 2) | 0; $276 = $207; $278 = $228; $pl$0 = $274; $prefix$0 = $$15; label = 89; } else { $276 = $207; $278 = $228; $pl$0 = 1; $prefix$0 = (134200 + 1) | 0; label = 89; } break; } case 110: { switch ($st$0 | 0) { case 7: { $216 = ($cnt$1 | 0) < 0; $217 = ($216 << 31) >> 31; $218 = $207; $219 = $218; HEAP32[$219 >> 2] = $cnt$1; $220 = ($218 + 4) | 0; $221 = $220; HEAP32[$221 >> 2] = $217; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 2: { $208 = ($cnt$1 | 0) < 0; $209 = ($208 << 31) >> 31; $210 = $207; $211 = $210; HEAP32[$211 >> 2] = $cnt$1; $212 = ($210 + 4) | 0; $213 = $212; HEAP32[$213 >> 2] = $209; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 3: { $214 = $cnt$1 & 65535; HEAP16[$207 >> 1] = $214; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 4: { $215 = $cnt$1 & 255; HEAP8[$207 >> 0] = $215; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 6: { HEAP32[$207 >> 2] = $cnt$1; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 0: { HEAP32[$207 >> 2] = $cnt$1; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } case 1: { HEAP32[$207 >> 2] = $cnt$1; $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; break; } default: { $1045 = $228; $1046 = $207; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $36; $l10n$0 = $l10n$3; continue L1; } } break; } case 112: { $222 = $p$0 >>> 0 > 8; $223 = $222 ? $p$0 : 8; $224 = $fl$1$ | 8; $fl$3 = $224; $p$1 = $223; $t$1 = 120; label = 77; break; } case 99: { $319 = $207; $320 = $319 & 255; HEAP8[$4 >> 0] = $320; $1053 = $228; $1054 = $207; $a$2 = $4; $fl$6 = $206; $p$5 = 1; $pl$2 = 0; $prefix$2 = 134200; $z$2 = $2; break; } case 67: { $331 = $207; HEAP32[$wc >> 2] = $331; HEAP32[$5 >> 2] = 0; $1055 = $wc; $1056 = $wc; $p$4296 = -1; label = 104; break; } case 83: { $332 = ($p$0 | 0) == 0; if ($332) { $1057 = $207; $1058 = $207; $i$0166 = 0; label = 110; } else { $1055 = $207; $1056 = $207; $p$4296 = $p$0; label = 104; } break; } case 88: case 120: { $fl$3 = $fl$1$; $p$1 = $p$0; $t$1 = $t$0; label = 77; break; } case 111: { $249 = $207; $250 = ($249 | 0) == 0; $251 = ($228 | 0) == 0; $252 = $250 & $251; if ($252) { $$0$lcssa$i43 = $2; } else { $$03$i40 = $2; $254 = $249; $258 = $228; while (1) { $253 = $254 & 7; $255 = $253 | 48; $256 = $255 & 255; $257 = ($$03$i40 + -1) | 0; HEAP8[$257 >> 0] = $256; $259 = _bitshift64Lshr($254 | 0, $258 | 0, 3) | 0; $260 = tempRet0; $261 = ($259 | 0) == 0; $262 = ($260 | 0) == 0; $263 = $261 & $262; if ($263) { $$0$lcssa$i43 = $257; break; } else { $$03$i40 = $257; $254 = $259; $258 = $260; } } } $264 = $fl$1$ & 8; $265 = ($264 | 0) == 0; if ($265) { $307 = $207; $310 = $228; $a$0 = $$0$lcssa$i43; $fl$4 = $fl$1$; $p$2 = $p$0; $pl$1 = 0; $prefix$1 = 134200; label = 94; } else { $$13 = $252 ? 134200 : (134200 + 5) | 0; $266 = $252 & 1; $$14 = $266 ^ 1; $307 = $207; $310 = $228; $a$0 = $$0$lcssa$i43; $fl$4 = $fl$1$; $p$2 = $p$0; $pl$1 = $$14; $prefix$1 = $$13; label = 94; } break; } case 109: { $321 = ___errno_location() | 0; $322 = HEAP32[$321 >> 2] | 0; $323 = _strerror($322 | 0) | 0; $a$1 = $323; label = 99; break; } default: { $1053 = $228; $1054 = $207; $a$2 = $22; $fl$6 = $fl$1$; $p$5 = $p$0; $pl$2 = 0; $prefix$2 = 134200; $z$2 = $2; } } } while (0); L445: do { if ((label | 0) == 77) { label = 0; $225 = $207; $226 = $t$1 & 32; $227 = ($225 | 0) == 0; $229 = ($228 | 0) == 0; $230 = $227 & $229; if ($230) { $307 = $207; $310 = $228; $a$0 = $2; $fl$4 = $fl$3; $p$2 = $p$1; $pl$1 = 0; $prefix$1 = 134200; label = 94; } else { $$012$i = $2; $232 = $225; $239 = $228; while (1) { $231 = $232 & 15; $233 = (134280 + $231) | 0; $234 = HEAP8[$233 >> 0] | 0; $235 = $234 & 255; $236 = $235 | $226; $237 = $236 & 255; $238 = ($$012$i + -1) | 0; HEAP8[$238 >> 0] = $237; $240 = _bitshift64Lshr($232 | 0, $239 | 0, 4) | 0; $241 = tempRet0; $242 = ($240 | 0) == 0; $243 = ($241 | 0) == 0; $244 = $242 & $243; if ($244) { break; } else { $$012$i = $238; $232 = $240; $239 = $241; } } $245 = $fl$3 & 8; $246 = ($245 | 0) == 0; if ($246) { $307 = $207; $310 = $228; $a$0 = $238; $fl$4 = $fl$3; $p$2 = $p$1; $pl$1 = 0; $prefix$1 = 134200; label = 94; } else { $247 = $t$1 >> 4; $248 = (134200 + $247) | 0; $307 = $207; $310 = $228; $a$0 = $238; $fl$4 = $fl$3; $p$2 = $p$1; $pl$1 = 2; $prefix$1 = $248; label = 94; } } } else if ((label | 0) == 89) { label = 0; $277 = $276; $279 = $278 >>> 0 > 0; $280 = ($278 | 0) == 0; $281 = $277 >>> 0 > 4294967295; $282 = $280 & $281; $283 = $279 | $282; if ($283) { $$05$i = $2; $284 = $277; $285 = $278; while (1) { $286 = ___uremdi3($284 | 0, $285 | 0, 10, 0) | 0; $287 = tempRet0; $288 = $286 | 48; $289 = $288 & 255; $290 = ($$05$i + -1) | 0; HEAP8[$290 >> 0] = $289; $291 = ___udivdi3($284 | 0, $285 | 0, 10, 0) | 0; $292 = tempRet0; $293 = $285 >>> 0 > 9; $294 = ($285 | 0) == 9; $295 = $284 >>> 0 > 4294967295; $296 = $294 & $295; $297 = $293 | $296; if ($297) { $$05$i = $290; $284 = $291; $285 = $292; } else { break; } } $$0$lcssa$i45 = $290; $$01$lcssa$off0$i = $291; } else { $$0$lcssa$i45 = $2; $$01$lcssa$off0$i = $277; } $298 = ($$01$lcssa$off0$i | 0) == 0; if ($298) { $307 = $276; $310 = $278; $a$0 = $$0$lcssa$i45; $fl$4 = $fl$1$; $p$2 = $p$0; $pl$1 = $pl$0; $prefix$1 = $prefix$0; label = 94; } else { $$12$i = $$0$lcssa$i45; $y$03$i = $$01$lcssa$off0$i; while (1) { $299 = ($y$03$i >>> 0) % 10 & -1; $300 = $299 | 48; $301 = $300 & 255; $302 = ($$12$i + -1) | 0; HEAP8[$302 >> 0] = $301; $303 = (($y$03$i >>> 0) / 10) & -1; $304 = $y$03$i >>> 0 < 10; if ($304) { $307 = $276; $310 = $278; $a$0 = $302; $fl$4 = $fl$1$; $p$2 = $p$0; $pl$1 = $pl$0; $prefix$1 = $prefix$0; label = 94; break; } else { $$12$i = $302; $y$03$i = $303; } } } } else if ((label | 0) == 99) { label = 0; $325 = _memchr($a$1, 0, $p$0) | 0; $326 = ($325 | 0) == (0 | 0); if ($326) { $327 = ($a$1 + $p$0) | 0; $1053 = $228; $1054 = $207; $a$2 = $a$1; $fl$6 = $206; $p$5 = $p$0; $pl$2 = 0; $prefix$2 = 134200; $z$2 = $327; break; } else { $328 = $325; $329 = $a$1; $330 = ($328 - $329) | 0; $1053 = $228; $1054 = $207; $a$2 = $a$1; $fl$6 = $206; $p$5 = $330; $pl$2 = 0; $prefix$2 = 134200; $z$2 = $325; break; } } else if ((label | 0) == 104) { label = 0; $i$0168 = 0; $l$1167 = 0; $ws$0169 = $1055; while (1) { $336 = HEAP32[$ws$0169 >> 2] | 0; $337 = ($336 | 0) == 0; if ($337) { $i$0$lcssa = $i$0168; $l$1$lcssa = $l$1167; break; } $338 = _wctomb($mb, $336) | 0; $339 = ($338 | 0) > -1; if (!$339) { $$0 = -1; label = 362; break L1; } $340 = ($p$4296 - $i$0168) | 0; $341 = $338 >>> 0 > $340 >>> 0; $334 = ($338 + $i$0168) | 0; if ($341) { $1057 = $1055; $1058 = $1056; $i$0166 = $i$0168; label = 110; break L445; } $333 = ($ws$0169 + 4) | 0; $335 = $334 >>> 0 < $p$4296 >>> 0; if ($335) { $i$0168 = $334; $l$1167 = $338; $ws$0169 = $333; } else { $i$0$lcssa = $334; $l$1$lcssa = $338; break; } } $342 = ($l$1$lcssa | 0) < 0; if ($342) { $$0 = -1; label = 362; break L1; } else { $1057 = $1055; $1058 = $1056; $i$0166 = $i$0$lcssa; label = 110; } } } while (0); if ((label | 0) == 94) { label = 0; $305 = ($p$2 | 0) > -1; $306 = $fl$4 & -65537; $$fl$4 = $305 ? $306 : $fl$4; $308 = $307; $309 = ($308 | 0) == 0; $311 = ($310 | 0) == 0; $312 = $309 & $311; $313 = ($p$2 | 0) == 0; $or$cond = $312 & $313; if ($or$cond) { $1053 = $310; $1054 = $307; $a$2 = $2; $fl$6 = $$fl$4; $p$5 = 0; $pl$2 = $pl$1; $prefix$2 = $prefix$1; $z$2 = $2; } else { $314 = $a$0; $315 = ($3 - $314) | 0; $316 = $312 & 1; $317 = ($316 + $315) | 0; $318 = ($p$2 | 0) > ($317 | 0); $p$2$ = $318 ? $p$2 : $317; $1053 = $310; $1054 = $307; $a$2 = $a$0; $fl$6 = $$fl$4; $p$5 = $p$2$; $pl$2 = $pl$1; $prefix$2 = $prefix$1; $z$2 = $2; } } else if ((label | 0) == 110) { label = 0; $343 = $fl$1$ & 73728; $344 = ($343 | 0) == 0; $345 = ($i$0166 | 0) < ($w$1 | 0); $or$cond$i56 = $344 & $345; if ($or$cond$i56) { $346 = ($w$1 - $i$0166) | 0; $347 = $346 >>> 0 > 256; $348 = $347 ? 256 : $346; _memset($pad$i | 0, 32, $348 | 0) | 0; $349 = $346 >>> 0 > 255; if ($349) { $$01$i57 = $346; while (1) { ___fwritex($pad$i, 256, $f) | 0; $350 = ($$01$i57 + -256) | 0; $351 = $350 >>> 0 > 255; if ($351) { $$01$i57 = $350; } else { $$0$lcssa$i59 = $350; break; } } } else { $$0$lcssa$i59 = $346; } ___fwritex($pad$i, $$0$lcssa$i59, $f) | 0; } $352 = ($i$0166 | 0) == 0; L481: do { if (!$352) { $i$1174 = 0; $ws$1175 = $1057; while (1) { $353 = HEAP32[$ws$1175 >> 2] | 0; $354 = ($353 | 0) == 0; if ($354) { break L481; } $355 = _wctomb($mb, $353) | 0; $356 = ($355 + $i$1174) | 0; $357 = ($356 | 0) > ($i$0166 | 0); if ($357) { break L481; } $358 = ($ws$1175 + 4) | 0; ___fwritex($mb, $355, $f) | 0; $359 = $356 >>> 0 < $i$0166 >>> 0; if ($359) { $i$1174 = $356; $ws$1175 = $358; } else { break; } } } } while (0); $360 = ($343 | 0) == 8192; $or$cond$i63 = $360 & $345; if ($or$cond$i63) { $361 = ($w$1 - $i$0166) | 0; $362 = $361 >>> 0 > 256; $363 = $362 ? 256 : $361; _memset($pad$i | 0, 32, $363 | 0) | 0; $364 = $361 >>> 0 > 255; if ($364) { $$01$i64 = $361; while (1) { ___fwritex($pad$i, 256, $f) | 0; $365 = ($$01$i64 + -256) | 0; $366 = $365 >>> 0 > 255; if ($366) { $$01$i64 = $365; } else { $$0$lcssa$i66 = $365; break; } } } else { $$0$lcssa$i66 = $361; } ___fwritex($pad$i, $$0$lcssa$i66, $f) | 0; } $367 = $345 ? $w$1 : $i$0166; $1045 = $228; $1046 = $1058; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $367; $l10n$0 = $l10n$3; continue; } $942 = $z$2; $943 = $a$2; $944 = ($942 - $943) | 0; $945 = ($p$5 | 0) < ($944 | 0); $$p$5 = $945 ? $944 : $p$5; $946 = ($pl$2 + $$p$5) | 0; $947 = ($w$1 | 0) < ($946 | 0); $w$2 = $947 ? $946 : $w$1; $948 = $fl$6 & 73728; $949 = ($948 | 0) == 0; $950 = ($946 | 0) < ($w$2 | 0); $or$cond$i73 = $949 & $950; if ($or$cond$i73) { $951 = ($w$2 - $946) | 0; $952 = $951 >>> 0 > 256; $953 = $952 ? 256 : $951; _memset($pad$i | 0, 32, $953 | 0) | 0; $954 = $951 >>> 0 > 255; if ($954) { $$01$i74 = $951; while (1) { ___fwritex($pad$i, 256, $f) | 0; $955 = ($$01$i74 + -256) | 0; $956 = $955 >>> 0 > 255; if ($956) { $$01$i74 = $955; } else { $$0$lcssa$i76 = $955; break; } } } else { $$0$lcssa$i76 = $951; } ___fwritex($pad$i, $$0$lcssa$i76, $f) | 0; } ___fwritex($prefix$2, $pl$2, $f) | 0; $957 = ($948 | 0) == 65536; $or$cond$i49 = $957 & $950; if ($or$cond$i49) { $958 = ($w$2 - $946) | 0; $959 = $958 >>> 0 > 256; $960 = $959 ? 256 : $958; _memset($pad$i | 0, 48, $960 | 0) | 0; $961 = $958 >>> 0 > 255; if ($961) { $$01$i50 = $958; while (1) { ___fwritex($pad$i, 256, $f) | 0; $962 = ($$01$i50 + -256) | 0; $963 = $962 >>> 0 > 255; if ($963) { $$01$i50 = $962; } else { $$0$lcssa$i52 = $962; break; } } } else { $$0$lcssa$i52 = $958; } ___fwritex($pad$i, $$0$lcssa$i52, $f) | 0; } $964 = ($944 | 0) < ($$p$5 | 0); if ($964) { $965 = ($$p$5 - $944) | 0; $966 = $965 >>> 0 > 256; $967 = $966 ? 256 : $965; _memset($pad$i | 0, 48, $967 | 0) | 0; $968 = $965 >>> 0 > 255; if ($968) { $$01$i35 = $965; while (1) { ___fwritex($pad$i, 256, $f) | 0; $969 = ($$01$i35 + -256) | 0; $970 = $969 >>> 0 > 255; if ($970) { $$01$i35 = $969; } else { $$0$lcssa$i37 = $969; break; } } } else { $$0$lcssa$i37 = $965; } ___fwritex($pad$i, $$0$lcssa$i37, $f) | 0; } ___fwritex($a$2, $944, $f) | 0; $971 = ($948 | 0) == 8192; $or$cond$i = $971 & $950; if (!$or$cond$i) { $1045 = $1053; $1046 = $1054; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $w$2; $l10n$0 = $l10n$3; continue; } $972 = ($w$2 - $946) | 0; $973 = $972 >>> 0 > 256; $974 = $973 ? 256 : $972; _memset($pad$i | 0, 32, $974 | 0) | 0; $975 = $972 >>> 0 > 255; if ($975) { $$01$i = $972; while (1) { ___fwritex($pad$i, 256, $f) | 0; $976 = ($$01$i + -256) | 0; $977 = $976 >>> 0 > 255; if ($977) { $$01$i = $976; } else { $$0$lcssa$i = $976; break; } } } else { $$0$lcssa$i = $972; } ___fwritex($pad$i, $$0$lcssa$i, $f) | 0; $1045 = $1053; $1046 = $1054; $22 = $139; $cnt$0 = $cnt$1; $l$0 = $w$2; $l10n$0 = $l10n$3; } if ((label | 0) == 344) { $978 = ($f | 0) == (0 | 0); if (!$978) { $$0 = $cnt$1; STACKTOP = sp; return $$0 | 0; } $979 = ($l10n$0 | 0) == 0; if ($979) { $$0 = 0; STACKTOP = sp; return $$0 | 0; } else { $i$289 = 1; } while (1) { $980 = ($nl_type + ($i$289 << 2)) | 0; $981 = HEAP32[$980 >> 2] | 0; $982 = ($981 | 0) == 0; if ($982) { $i$388 = $i$289; break; } $983 = ($nl_arg + ($i$289 << 3)) | 0; $984 = $981 >>> 0 > 20; L540: do { if (!$984) { do { switch ($981 | 0) { case 9: { $arglist_current35 = HEAP32[$ap >> 2] | 0; $985 = HEAP32[$arglist_current35 >> 2] | 0; $arglist_next36 = ($arglist_current35 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next36; HEAP32[$983 >> 2] = $985; break L540; break; } case 10: { $arglist_current38 = HEAP32[$ap >> 2] | 0; $986 = HEAP32[$arglist_current38 >> 2] | 0; $arglist_next39 = ($arglist_current38 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next39; $987 = ($986 | 0) < 0; $988 = ($987 << 31) >> 31; $989 = $983; $990 = $989; HEAP32[$990 >> 2] = $986; $991 = ($989 + 4) | 0; $992 = $991; HEAP32[$992 >> 2] = $988; break L540; break; } case 11: { $arglist_current41 = HEAP32[$ap >> 2] | 0; $993 = HEAP32[$arglist_current41 >> 2] | 0; $arglist_next42 = ($arglist_current41 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next42; $994 = $983; $995 = $994; HEAP32[$995 >> 2] = $993; $996 = ($994 + 4) | 0; $997 = $996; HEAP32[$997 >> 2] = 0; break L540; break; } case 12: { $arglist_current44 = HEAP32[$ap >> 2] | 0; $998 = $arglist_current44; $999 = $998; $1000 = HEAP32[$999 >> 2] | 0; $1001 = ($998 + 4) | 0; $1002 = $1001; $1003 = HEAP32[$1002 >> 2] | 0; $arglist_next45 = ($arglist_current44 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next45; $1004 = $983; $1005 = $1004; HEAP32[$1005 >> 2] = $1000; $1006 = ($1004 + 4) | 0; $1007 = $1006; HEAP32[$1007 >> 2] = $1003; break L540; break; } case 13: { $arglist_current47 = HEAP32[$ap >> 2] | 0; $1008 = HEAP32[$arglist_current47 >> 2] | 0; $arglist_next48 = ($arglist_current47 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next48; $1009 = $1008 & 65535; $1010 = ($1009 << 16) >> 16; $1011 = ($1010 | 0) < 0; $1012 = ($1011 << 31) >> 31; $1013 = $983; $1014 = $1013; HEAP32[$1014 >> 2] = $1010; $1015 = ($1013 + 4) | 0; $1016 = $1015; HEAP32[$1016 >> 2] = $1012; break L540; break; } case 14: { $arglist_current50 = HEAP32[$ap >> 2] | 0; $1017 = HEAP32[$arglist_current50 >> 2] | 0; $arglist_next51 = ($arglist_current50 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next51; $$mask1$i = $1017 & 65535; $1018 = $983; $1019 = $1018; HEAP32[$1019 >> 2] = $$mask1$i; $1020 = ($1018 + 4) | 0; $1021 = $1020; HEAP32[$1021 >> 2] = 0; break L540; break; } case 15: { $arglist_current53 = HEAP32[$ap >> 2] | 0; $1022 = HEAP32[$arglist_current53 >> 2] | 0; $arglist_next54 = ($arglist_current53 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next54; $1023 = $1022 & 255; $1024 = ($1023 << 24) >> 24; $1025 = ($1024 | 0) < 0; $1026 = ($1025 << 31) >> 31; $1027 = $983; $1028 = $1027; HEAP32[$1028 >> 2] = $1024; $1029 = ($1027 + 4) | 0; $1030 = $1029; HEAP32[$1030 >> 2] = $1026; break L540; break; } case 16: { $arglist_current56 = HEAP32[$ap >> 2] | 0; $1031 = HEAP32[$arglist_current56 >> 2] | 0; $arglist_next57 = ($arglist_current56 + 4) | 0; HEAP32[$ap >> 2] = $arglist_next57; $$mask$i = $1031 & 255; $1032 = $983; $1033 = $1032; HEAP32[$1033 >> 2] = $$mask$i; $1034 = ($1032 + 4) | 0; $1035 = $1034; HEAP32[$1035 >> 2] = 0; break L540; break; } case 17: { $arglist_current59 = HEAP32[$ap >> 2] | 0; HEAP32[tempDoublePtr >> 2] = HEAP32[$arglist_current59 >> 2]; HEAP32[(tempDoublePtr + 4) >> 2] = HEAP32[($arglist_current59 + 4) >> 2]; $1036 = +HEAPF64[tempDoublePtr >> 3]; $arglist_next60 = ($arglist_current59 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next60; HEAPF64[$983 >> 3] = $1036; break L540; break; } case 18: { $arglist_current62 = HEAP32[$ap >> 2] | 0; HEAP32[tempDoublePtr >> 2] = HEAP32[$arglist_current62 >> 2]; HEAP32[(tempDoublePtr + 4) >> 2] = HEAP32[($arglist_current62 + 4) >> 2]; $1037 = +HEAPF64[tempDoublePtr >> 3]; $arglist_next63 = ($arglist_current62 + 8) | 0; HEAP32[$ap >> 2] = $arglist_next63; HEAPF64[$983 >> 3] = $1037; break L540; break; } default: { break L540; } } } while (0); } } while (0); $1038 = ($i$289 + 1) | 0; $1039 = ($1038 | 0) < 10; if ($1039) { $i$289 = $1038; } else { $$0 = 1; label = 362; break; } } if ((label | 0) == 362) { STACKTOP = sp; return $$0 | 0; } while (1) { $1042 = ($nl_type + ($i$388 << 2)) | 0; $1043 = HEAP32[$1042 >> 2] | 0; $1044 = ($1043 | 0) == 0; $1040 = ($i$388 + 1) | 0; if (!$1044) { $$0 = -1; label = 362; break; } $1041 = ($1040 | 0) < 10; if ($1041) { $i$388 = $1040; } else { $$0 = 1; label = 362; break; } } if ((label | 0) == 362) { STACKTOP = sp; return $$0 | 0; } } else if ((label | 0) == 362) { STACKTOP = sp; return $$0 | 0; } return 0 | 0; } function _vsnprintf($s, $n, $fmt, $ap) { $s = $s | 0; $n = $n | 0; $fmt = $fmt | 0; $ap = $ap | 0; var $$$02 = 0, $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0; var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; sp = STACKTOP; STACKTOP = (STACKTOP + 128) | 0; $b = (sp + 112) | 0; $f = sp; dest = ($f + 0) | 0; src = (134304 + 0) | 0; stop = (dest + 112) | 0; do { HEAP32[dest >> 2] = HEAP32[src >> 2] | 0; dest = (dest + 4) | 0; src = (src + 4) | 0; } while ((dest | 0) < (stop | 0)); $0 = ($n + -1) | 0; $1 = $0 >>> 0 > 2147483646; if ($1) { $2 = ($n | 0) == 0; if ($2) { $$01 = $b; $$02 = 1; } else { $3 = ___errno_location() | 0; HEAP32[$3 >> 2] = 75; $$0 = -1; STACKTOP = sp; return $$0 | 0; } } else { $$01 = $s; $$02 = $n; } $4 = $$01; $5 = (-2 - $4) | 0; $6 = $$02 >>> 0 > $5 >>> 0; $$$02 = $6 ? $5 : $$02; $7 = ($f + 48) | 0; HEAP32[$7 >> 2] = $$$02; $8 = ($f + 20) | 0; HEAP32[$8 >> 2] = $$01; $9 = ($f + 44) | 0; HEAP32[$9 >> 2] = $$01; $10 = ($$01 + $$$02) | 0; $11 = ($f + 16) | 0; HEAP32[$11 >> 2] = $10; $12 = ($f + 28) | 0; HEAP32[$12 >> 2] = $10; $13 = _MUSL_vfprintf($f, $fmt, $ap) | 0; $14 = ($$$02 | 0) == 0; if ($14) { $$0 = $13; STACKTOP = sp; return $$0 | 0; } $15 = HEAP32[$8 >> 2] | 0; $16 = HEAP32[$11 >> 2] | 0; $17 = ($15 | 0) == ($16 | 0); $18 = ($17 << 31) >> 31; $19 = ($15 + $18) | 0; HEAP8[$19 >> 0] = 0; $$0 = $13; STACKTOP = sp; return $$0 | 0; } function _sn_write($f, $s, $l) { $f = $f | 0; $s = $s | 0; $l = $l | 0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l$ = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($f + 16) | 0; $1 = HEAP32[$0 >> 2] | 0; $2 = ($f + 20) | 0; $3 = HEAP32[$2 >> 2] | 0; $4 = $1; $5 = $3; $6 = ($4 - $5) | 0; $7 = $6 >>> 0 > $l >>> 0; $l$ = $7 ? $l : $6; _memcpy($3 | 0, $s | 0, $l$ | 0) | 0; $8 = HEAP32[$2 >> 2] | 0; $9 = ($8 + $l$) | 0; HEAP32[$2 >> 2] = $9; STACKTOP = sp; return $l | 0; } function _vsprintf($s, $fmt, $ap) { $s = $s | 0; $fmt = $fmt | 0; $ap = $ap | 0; var $0 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = _vsnprintf($s, 2147483647, $fmt, $ap) | 0; STACKTOP = sp; return $0 | 0; } function _memchr($src, $c, $n) { $src = $src | 0; $c = $c | 0; $n = $n | 0; var $$0$lcssa = 0, $$0$lcssa34 = 0, $$013 = 0, $$1$lcssa = 0, $$17 = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0; var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond12 = 0, $s$0$lcssa = 0, $s$0$lcssa33 = 0, $s$014 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$08 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $c & 255; $1 = $src; $2 = $1 & 3; $3 = ($2 | 0) == 0; $4 = ($n | 0) == 0; $or$cond12 = $3 | $4; L1: do { if ($or$cond12) { $$0$lcssa = $n; $$lcssa = $4; $s$0$lcssa = $src; label = 5; } else { $5 = $c & 255; $$013 = $n; $s$014 = $src; while (1) { $6 = HEAP8[$s$014 >> 0] | 0; $7 = ($6 << 24) >> 24 == ($5 << 24) >> 24; if ($7) { $$0$lcssa34 = $$013; $s$0$lcssa33 = $s$014; label = 6; break L1; } $8 = ($s$014 + 1) | 0; $9 = ($$013 + -1) | 0; $10 = $8; $11 = $10 & 3; $12 = ($11 | 0) == 0; $13 = ($9 | 0) == 0; $or$cond = $12 | $13; if ($or$cond) { $$0$lcssa = $9; $$lcssa = $13; $s$0$lcssa = $8; label = 5; break; } else { $$013 = $9; $s$014 = $8; } } } } while (0); if ((label | 0) == 5) { if ($$lcssa) { $$3 = 0; $s$2 = $s$0$lcssa; } else { $$0$lcssa34 = $$0$lcssa; $s$0$lcssa33 = $s$0$lcssa; label = 6; } } L8: do { if ((label | 0) == 6) { $14 = HEAP8[$s$0$lcssa33 >> 0] | 0; $15 = $c & 255; $16 = ($14 << 24) >> 24 == ($15 << 24) >> 24; if ($16) { $$3 = $$0$lcssa34; $s$2 = $s$0$lcssa33; } else { $17 = Math_imul($0, 16843009) | 0; $18 = $$0$lcssa34 >>> 0 > 3; L11: do { if ($18) { $$17 = $$0$lcssa34; $w$08 = $s$0$lcssa33; while (1) { $19 = HEAP32[$w$08 >> 2] | 0; $20 = $19 ^ $17; $21 = ($20 + -16843009) | 0; $22 = $20 & -2139062144; $23 = $22 ^ -2139062144; $24 = $23 & $21; $25 = ($24 | 0) == 0; if (!$25) { $$1$lcssa = $$17; $w$0$lcssa = $w$08; break L11; } $26 = ($w$08 + 4) | 0; $27 = ($$17 + -4) | 0; $28 = $27 >>> 0 > 3; if ($28) { $$17 = $27; $w$08 = $26; } else { $$1$lcssa = $27; $w$0$lcssa = $26; break; } } } else { $$1$lcssa = $$0$lcssa34; $w$0$lcssa = $s$0$lcssa33; } } while (0); $29 = ($$1$lcssa | 0) == 0; if ($29) { $$3 = 0; $s$2 = $w$0$lcssa; } else { $$24 = $$1$lcssa; $s$15 = $w$0$lcssa; while (1) { $30 = HEAP8[$s$15 >> 0] | 0; $31 = ($30 << 24) >> 24 == ($15 << 24) >> 24; if ($31) { $$3 = $$24; $s$2 = $s$15; break L8; } $32 = ($s$15 + 1) | 0; $33 = ($$24 + -1) | 0; $34 = ($33 | 0) == 0; if ($34) { $$3 = 0; $s$2 = $32; break; } else { $$24 = $33; $s$15 = $32; } } } } } } while (0); $35 = ($$3 | 0) != 0; $36 = $35 ? $s$2 : 0; STACKTOP = sp; return $36 | 0; } function _memcmp($vl, $vr, $n) { $vl = $vl | 0; $vr = $vr | 0; $n = $n | 0; var $$03 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l$04 = 0, $r$05 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($n | 0) == 0; L1: do { if ($0) { $11 = 0; } else { $$03 = $n; $l$04 = $vl; $r$05 = $vr; while (1) { $1 = HEAP8[$l$04 >> 0] | 0; $2 = HEAP8[$r$05 >> 0] | 0; $3 = ($1 << 24) >> 24 == ($2 << 24) >> 24; if (!$3) { break; } $4 = ($$03 + -1) | 0; $5 = ($l$04 + 1) | 0; $6 = ($r$05 + 1) | 0; $7 = ($4 | 0) == 0; if ($7) { $11 = 0; break L1; } else { $$03 = $4; $l$04 = $5; $r$05 = $6; } } $8 = $1 & 255; $9 = $2 & 255; $10 = ($8 - $9) | 0; $11 = $10; } } while (0); STACKTOP = sp; return $11 | 0; } function runPostSets() {} function _i64Subtract(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; var l = 0, h = 0; l = (a - c) >>> 0; h = (b - d) >>> 0; h = (b - d - ((c >>> 0 > a >>> 0) | 0)) >>> 0; // Borrow one from high word to low word on underflow. return ((tempRet0 = h), l | 0) | 0; } function _memset(ptr, value, num) { ptr = ptr | 0; value = value | 0; num = num | 0; var stop = 0, value4 = 0, stop4 = 0, unaligned = 0; stop = (ptr + num) | 0; if ((num | 0) >= 20) { // This is unaligned, but quite large, so work hard to get to aligned settings value = value & 0xff; unaligned = ptr & 3; value4 = value | (value << 8) | (value << 16) | (value << 24); stop4 = stop & ~3; if (unaligned) { unaligned = (ptr + 4 - unaligned) | 0; while ((ptr | 0) < (unaligned | 0)) { // no need to check for stop, since we have large num HEAP8[ptr >> 0] = value; ptr = (ptr + 1) | 0; } } while ((ptr | 0) < (stop4 | 0)) { HEAP32[ptr >> 2] = value4; ptr = (ptr + 4) | 0; } } while ((ptr | 0) < (stop | 0)) { HEAP8[ptr >> 0] = value; ptr = (ptr + 1) | 0; } return (ptr - num) | 0; } function _bitshift64Shl(low, high, bits) { low = low | 0; high = high | 0; bits = bits | 0; var ander = 0; if ((bits | 0) < 32) { ander = ((1 << bits) - 1) | 0; tempRet0 = (high << bits) | ((low & (ander << (32 - bits))) >>> (32 - bits)); return low << bits; } tempRet0 = low << (bits - 32); return 0; } function _strlen(ptr) { ptr = ptr | 0; var curr = 0; curr = ptr; while (HEAP8[curr >> 0] | 0) { curr = (curr + 1) | 0; } return (curr - ptr) | 0; } function _i64Add(a, b, c, d) { /* x = a + b*2^32 y = c + d*2^32 result = l + h*2^32 */ a = a | 0; b = b | 0; c = c | 0; d = d | 0; var l = 0, h = 0; l = (a + c) >>> 0; h = (b + d + ((l >>> 0 < a >>> 0) | 0)) >>> 0; // Add carry from low word to high word on overflow. return ((tempRet0 = h), l | 0) | 0; } function _bitshift64Ashr(low, high, bits) { low = low | 0; high = high | 0; bits = bits | 0; var ander = 0; if ((bits | 0) < 32) { ander = ((1 << bits) - 1) | 0; tempRet0 = high >> bits; return (low >>> bits) | ((high & ander) << (32 - bits)); } tempRet0 = (high | 0) < 0 ? -1 : 0; return (high >> (bits - 32)) | 0; } function _bitshift64Lshr(low, high, bits) { low = low | 0; high = high | 0; bits = bits | 0; var ander = 0; if ((bits | 0) < 32) { ander = ((1 << bits) - 1) | 0; tempRet0 = high >>> bits; return (low >>> bits) | ((high & ander) << (32 - bits)); } tempRet0 = 0; return (high >>> (bits - 32)) | 0; } function _memcpy(dest, src, num) { dest = dest | 0; src = src | 0; num = num | 0; var ret = 0; if ((num | 0) >= 4096) return _emscripten_memcpy_big(dest | 0, src | 0, num | 0) | 0; ret = dest | 0; if ((dest & 3) == (src & 3)) { while (dest & 3) { if ((num | 0) == 0) return ret | 0; HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; dest = (dest + 1) | 0; src = (src + 1) | 0; num = (num - 1) | 0; } while ((num | 0) >= 4) { HEAP32[dest >> 2] = HEAP32[src >> 2] | 0; dest = (dest + 4) | 0; src = (src + 4) | 0; num = (num - 4) | 0; } } while ((num | 0) > 0) { HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; dest = (dest + 1) | 0; src = (src + 1) | 0; num = (num - 1) | 0; } return ret | 0; } function _memmove(dest, src, num) { dest = dest | 0; src = src | 0; num = num | 0; var ret = 0; if (((src | 0) < (dest | 0)) & ((dest | 0) < ((src + num) | 0))) { // Unlikely case: Copy backwards in a safe manner ret = dest; src = (src + num) | 0; dest = (dest + num) | 0; while ((num | 0) > 0) { dest = (dest - 1) | 0; src = (src - 1) | 0; num = (num - 1) | 0; HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; } dest = ret; } else { _memcpy(dest, src, num) | 0; } return dest | 0; } function _strcpy(pdest, psrc) { pdest = pdest | 0; psrc = psrc | 0; var i = 0; do { HEAP8[((pdest + i) | 0) >> 0] = HEAP8[((psrc + i) | 0) >> 0]; i = (i + 1) | 0; } while (HEAP8[(psrc + (i - 1)) >> 0] | 0); return pdest | 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) & 0xff)) >> 0] | 0; if ((ret | 0) < 8) return (ret + 8) | 0; ret = HEAP8[(ctlz_i8 + ((x >> 8) & 0xff)) >> 0] | 0; if ((ret | 0) < 8) return (ret + 16) | 0; return ((HEAP8[(ctlz_i8 + (x & 0xff)) >> 0] | 0) + 24) | 0; } function _llvm_cttz_i32(x) { x = x | 0; var ret = 0; ret = HEAP8[(cttz_i8 + (x & 0xff)) >> 0] | 0; if ((ret | 0) < 8) return ret | 0; ret = HEAP8[(cttz_i8 + ((x >> 8) & 0xff)) >> 0] | 0; if ((ret | 0) < 8) return (ret + 8) | 0; ret = HEAP8[(cttz_i8 + ((x >> 16) & 0xff)) >> 0] | 0; if ((ret | 0) < 8) return (ret + 16) | 0; return ((HEAP8[(cttz_i8 + (x >>> 24)) >> 0] | 0) + 24) | 0; } // ======== compiled code from system/lib/compiler-rt , see readme therein function ___muldsi3($a, $b) { $a = $a | 0; $b = $b | 0; var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; $1 = $a & 65535; $2 = $b & 65535; $3 = Math_imul($2, $1) | 0; $6 = $a >>> 16; $8 = (($3 >>> 16) + (Math_imul($2, $6) | 0)) | 0; $11 = $b >>> 16; $12 = Math_imul($11, $1) | 0; return ( ((tempRet0 = (((($8 >>> 16) + (Math_imul($11, $6) | 0)) | 0) + (((($8 & 65535) + $12) | 0) >>> 16)) | 0), 0 | ((($8 + $12) << 16) | ($3 & 65535))) | 0 ); } function ___divdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $7$0 = 0, $7$1 = 0, $8$0 = 0, $10$0 = 0; $1$0 = ($a$1 >> 31) | ((($a$1 | 0) < 0 ? -1 : 0) << 1); $1$1 = ((($a$1 | 0) < 0 ? -1 : 0) >> 31) | ((($a$1 | 0) < 0 ? -1 : 0) << 1); $2$0 = ($b$1 >> 31) | ((($b$1 | 0) < 0 ? -1 : 0) << 1); $2$1 = ((($b$1 | 0) < 0 ? -1 : 0) >> 31) | ((($b$1 | 0) < 0 ? -1 : 0) << 1); $4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0; $4$1 = tempRet0; $6$0 = _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0; $7$0 = $2$0 ^ $1$0; $7$1 = $2$1 ^ $1$1; $8$0 = ___udivmoddi4($4$0, $4$1, $6$0, tempRet0, 0) | 0; $10$0 = _i64Subtract($8$0 ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0; return ((tempRet0 = tempRet0), $10$0) | 0; } function ___remdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $6$0 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0; __stackBase__ = STACKTOP; STACKTOP = (STACKTOP + 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; $6$0 = _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0; ___udivmoddi4($4$0, $4$1, $6$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 ___muldi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; $x_sroa_0_0_extract_trunc = $a$0; $y_sroa_0_0_extract_trunc = $b$0; $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; $1$1 = tempRet0; $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; return ((tempRet0 = ((((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2) | 0) + $1$1) | ($1$1 & 0)), 0 | ($1$0 & -1)) | 0; } function ___udivdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; var $1$0 = 0; $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; return ((tempRet0 = tempRet0), $1$0) | 0; } function ___uremdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; var $rem = 0, __stackBase__ = 0; __stackBase__ = STACKTOP; STACKTOP = (STACKTOP + 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 ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; $b$0 = $b$0 | 0; $b$1 = $b$1 | 0; $rem = $rem | 0; var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; $n_sroa_0_0_extract_trunc = $a$0; $n_sroa_1_4_extract_shift$0 = $a$1; $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; $d_sroa_0_0_extract_trunc = $b$0; $d_sroa_1_4_extract_shift$0 = $b$1; $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; if (($n_sroa_1_4_extract_trunc | 0) == 0) { $4 = ($rem | 0) != 0; if (($d_sroa_1_4_extract_trunc | 0) == 0) { if ($4) { HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); HEAP32[($rem + 4) >> 2] = 0; } $_0$1 = 0; $_0$0 = (($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0)) >>> 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } else { if (!$4) { $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } HEAP32[$rem >> 2] = $a$0 & -1; HEAP32[($rem + 4) >> 2] = $a$1 & 0; $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } } $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; do { if (($d_sroa_0_0_extract_trunc | 0) == 0) { if ($17) { if (($rem | 0) != 0) { HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); HEAP32[($rem + 4) >> 2] = 0; } $_0$1 = 0; $_0$0 = (($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0)) >>> 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } if (($n_sroa_0_0_extract_trunc | 0) == 0) { if (($rem | 0) != 0) { HEAP32[$rem >> 2] = 0; HEAP32[($rem + 4) >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); } $_0$1 = 0; $_0$0 = (($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0)) >>> 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } $37 = ($d_sroa_1_4_extract_trunc - 1) | 0; if ((($37 & $d_sroa_1_4_extract_trunc) | 0) == 0) { if (($rem | 0) != 0) { HEAP32[$rem >> 2] = 0 | ($a$0 & -1); HEAP32[($rem + 4) >> 2] = ($37 & $n_sroa_1_4_extract_trunc) | ($a$1 & 0); } $_0$1 = 0; $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); return ((tempRet0 = $_0$1), $_0$0) | 0; } $49 = _llvm_ctlz_i32($d_sroa_1_4_extract_trunc | 0) | 0; $51 = ($49 - (_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) == 0) { $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } HEAP32[$rem >> 2] = 0 | ($a$0 & -1); HEAP32[($rem + 4) >> 2] = $n_sroa_1_4_extract_shift$0 | ($a$1 & 0); $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } else { if (!$17) { $117 = _llvm_ctlz_i32($d_sroa_1_4_extract_trunc | 0) | 0; $119 = ($117 - (_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) == 0) { $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } HEAP32[$rem >> 2] = 0 | ($a$0 & -1); HEAP32[($rem + 4) >> 2] = $n_sroa_1_4_extract_shift$0 | ($a$1 & 0); $_0$1 = 0; $_0$0 = 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } $66 = ($d_sroa_0_0_extract_trunc - 1) | 0; if ((($66 & $d_sroa_0_0_extract_trunc) | 0) != 0) { $86 = ((_llvm_ctlz_i32($d_sroa_0_0_extract_trunc | 0) | 0) + 33) | 0; $88 = ($86 - (_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 | 0) != 0) { HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; HEAP32[($rem + 4) >> 2] = 0; } if (($d_sroa_0_0_extract_trunc | 0) == 1) { $_0$1 = $n_sroa_1_4_extract_shift$0 | ($a$1 & 0); $_0$0 = 0 | ($a$0 & -1); return ((tempRet0 = $_0$1), $_0$0) | 0; } else { $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; $_0$1 = 0 | ($n_sroa_1_4_extract_trunc >>> ($78 >>> 0)); $_0$0 = ($n_sroa_1_4_extract_trunc << (32 - $78)) | ($n_sroa_0_0_extract_trunc >>> ($78 >>> 0)) | 0; return ((tempRet0 = $_0$1), $_0$0) | 0; } } } while (0); if (($sr_1_ph | 0) == 0) { $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; $carry_0_lcssa$1 = 0; $carry_0_lcssa$0 = 0; } else { $d_sroa_0_0_insert_insert99$0 = 0 | ($b$0 & -1); $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | ($b$1 & 0); $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0, $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; while (1) { $147 = ($q_sroa_0_1199 >>> 31) | ($q_sroa_1_1198 << 1); $149 = $carry_0203 | ($q_sroa_0_1199 << 1); $r_sroa_0_0_insert_insert42$0 = 0 | (($r_sroa_0_1201 << 1) | ($q_sroa_1_1198 >>> 31)); $r_sroa_0_0_insert_insert42$1 = ($r_sroa_0_1201 >>> 31) | ($r_sroa_1_1200 << 1) | 0; _i64Subtract($137$0, $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); $152 = $151$0 & 1; $154$0 = _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_0_0_extract_trunc = $154$0; $r_sroa_1_4_extract_trunc = tempRet0; $155 = ($sr_1202 - 1) | 0; if (($155 | 0) == 0) { break; } else { $q_sroa_1_1198 = $147; $q_sroa_0_1199 = $149; $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; $sr_1202 = $155; $carry_0203 = $152; } } $q_sroa_1_1_lcssa = $147; $q_sroa_0_1_lcssa = $149; $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; $carry_0_lcssa$1 = 0; $carry_0_lcssa$0 = $152; } $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; $q_sroa_0_0_insert_ext75$1 = 0; $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; if (($rem | 0) != 0) { HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; HEAP32[($rem + 4) >> 2] = $r_sroa_1_1_lcssa | 0; } $_0$1 = ((0 | $q_sroa_0_0_insert_ext75$0) >>> 31) | ($q_sroa_0_0_insert_insert77$1 << 1) | ((($q_sroa_0_0_insert_ext75$1 << 1) | ($q_sroa_0_0_insert_ext75$0 >>> 31)) & 0) | $carry_0_lcssa$1; $_0$0 = ((($q_sroa_0_0_insert_ext75$0 << 1) | (0 >>> 31)) & -2) | $carry_0_lcssa$0; return ((tempRet0 = $_0$1), $_0$0) | 0; } // ======================================================================= // EMSCRIPTEN_END_FUNCS 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 dynCall_vi(index, a1) { index = index | 0; a1 = a1 | 0; FUNCTION_TABLE_vi[index & 7](a1 | 0); } function dynCall_vii(index, a1, a2) { index = index | 0; a1 = a1 | 0; a2 = a2 | 0; FUNCTION_TABLE_vii[index & 0](a1 | 0, a2 | 0); } function dynCall_ii(index, a1) { index = index | 0; a1 = a1 | 0; return FUNCTION_TABLE_ii[index & 0](a1 | 0) | 0; } function dynCall_iii(index, a1, a2) { index = index | 0; a1 = a1 | 0; a2 = a2 | 0; return FUNCTION_TABLE_iii[index & 7](a1 | 0, a2 | 0) | 0; } function dynCall_viiii(index, a1, a2, a3, a4) { index = index | 0; a1 = a1 | 0; a2 = a2 | 0; a3 = a3 | 0; a4 = a4 | 0; FUNCTION_TABLE_viiii[index & 15](a1 | 0, a2 | 0, a3 | 0, a4 | 0); } function b0(p0, p1, p2) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; abort(0); return 0; } function b1(p0) { p0 = p0 | 0; abort(1); } function b2(p0, p1) { p0 = p0 | 0; p1 = p1 | 0; abort(2); } function b3(p0) { p0 = p0 | 0; abort(3); return 0; } function b4(p0, p1) { p0 = p0 | 0; p1 = p1 | 0; abort(4); return 0; } function b5(p0, p1, p2, p3) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; p3 = p3 | 0; abort(5); } // EMSCRIPTEN_END_FUNCS var FUNCTION_TABLE_iiii = [b0, _sn_write]; var FUNCTION_TABLE_vi = [ b1, _zbar_image_free_data, __zbar_video_recycle_image, __zbar_video_recycle_shadow, _cleanup_ref, _symbol_handler, b1, b1 ]; var FUNCTION_TABLE_vii = [b2]; var FUNCTION_TABLE_ii = [b3]; var FUNCTION_TABLE_iii = [ b4, _proc_kick_handler, _proc_video_handler, _qr_finder_vline_cmp, _qr_finder_center_cmp, _qr_cmp_edge_pt, b4, b4 ]; var FUNCTION_TABLE_viiii = [ b5, _convert_copy, _convert_uvp_append, _convert_yuv_pack, _convert_yuvp_to_rgb, _convert_uvp_resample, _convert_yuv_unpack, _convert_uv_resample, _convert_yuv_to_rgb, _convert_rgb_to_yuvp, _convert_rgb_to_yuv, _convert_rgb_resample, b5, b5, b5, b5 ]; return { _i64Subtract: _i64Subtract, _free: _free, _main: _main, _realloc: _realloc, _i64Add: _i64Add, _memmove: _memmove, _bitshift64Ashr: _bitshift64Ashr, _strlen: _strlen, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _bitshift64Lshr: _bitshift64Lshr, _strcpy: _strcpy, _calloc: _calloc, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii }; })( // EMSCRIPTEN_END_ASM Module.asmGlobalArg, Module.asmLibraryArg, buffer ); var _i64Subtract = (Module['_i64Subtract'] = asm['_i64Subtract']); var _free = (Module['_free'] = asm['_free']); var _main = (Module['_main'] = asm['_main']); var _realloc = (Module['_realloc'] = asm['_realloc']); var _i64Add = (Module['_i64Add'] = asm['_i64Add']); var _memmove = (Module['_memmove'] = asm['_memmove']); var _bitshift64Ashr = (Module['_bitshift64Ashr'] = asm['_bitshift64Ashr']); var _strlen = (Module['_strlen'] = asm['_strlen']); var _memset = (Module['_memset'] = asm['_memset']); var _malloc = (Module['_malloc'] = asm['_malloc']); var _memcpy = (Module['_memcpy'] = asm['_memcpy']); var _bitshift64Lshr = (Module['_bitshift64Lshr'] = asm['_bitshift64Lshr']); var _strcpy = (Module['_strcpy'] = asm['_strcpy']); var _calloc = (Module['_calloc'] = asm['_calloc']); var _bitshift64Shl = (Module['_bitshift64Shl'] = asm['_bitshift64Shl']); var runPostSets = (Module['runPostSets'] = asm['runPostSets']); var dynCall_iiii = (Module['dynCall_iiii'] = asm['dynCall_iiii']); 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_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 << dbits) - 1; BigInteger.prototype.DV = 1 << dbits; var BI_FP = 52; BigInteger.prototype.FV = Math.pow(2, BI_FP); BigInteger.prototype.F1 = BI_FP - dbits; BigInteger.prototype.F2 = 2 * dbits - BI_FP; // Digit conversions var BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz'; var BI_RC = new Array(); var rr, vv; rr = '0'.charCodeAt(0); for (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv; rr = 'a'.charCodeAt(0); for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; rr = 'A'.charCodeAt(0); for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; function int2char(n) { return BI_RM.charAt(n); } function intAt(s, i) { var c = BI_RC[s.charCodeAt(i)]; return c == null ? -1 : c; } // (protected) copy this to r function bnpCopyTo(r) { for (var i = this.t - 1; i >= 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)) << sh; this[this.t++] = x >> (this.DB - sh); } else this[this.t - 1] |= x << sh; sh += k; if (sh >= 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) << sh; } this.clamp(); if (mi) BigInteger.ZERO.subTo(this, this); } // (protected) clamp off excess high words function bnpClamp() { var c = this.s & this.DM; while (this.t > 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 << k) - 1, d, m = false, r = '', i = this.t; var p = this.DB - ((i * this.DB) % k); if (i-- > 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) - 1)) << (k - p); d |= this[--i] >> (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 << cbs) - 1; var ds = Math.floor(n / this.DB), c = (this.s << bs) & this.DM, i; for (i = this.t - 1; i >= 0; --i) { r[i + ds + 1] = (this[i] >> cbs) | c; c = (this[i] & bm) << bs; } for (i = ds - 1; i >= 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) - 1; r[0] = this[ds] >> bs; for (var i = ds + 1; i < this.t; ++i) { r[i - ds - 1] |= (this[i] & bm) << cbs; r[i - ds] = this[i] >> bs; } if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs; r.t = this.t - ds; r.clamp(); } // (protected) r = this - a function bnpSubTo(a, r) { var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { c += this[i] - a[i]; r[i++] = c & this.DM; c >>= 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 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0); var d1 = this.FV / yt, d2 = (1 << this.F1) / yt, e = 1 << this.F2; var i = r.t, j = i - ys, t = q == null ? nbi() : q; y.dlShiftTo(j, t); if (r.compareTo(t) >= 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 << i)) > 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) | this[0]; } // (protected) r = this + a function bnpAddTo(a, r) { var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { c += this[i] + a[i]; r[i++] = c & this.DM; c >>= 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}} return result; } ================================================ FILE: public/index.html ================================================ QR Code Scanner

QR Code

About

QR Code Scanner is the fastest and most user-friendly progressive web application.

Author: Gokulakrishnan Kalaikovan

Source: Github

Donate: PayPal

v1.0.2
================================================ FILE: public/manifest.json ================================================ { "short_name": "QR Scanner", "name": "QR Code Scanner", "description": "Easily scan a QR code. This is a simple, tiny, and super fast web application that works offline.", "display": "standalone", "orientation": "portrait", "icons": [ { "src": "/images/touch/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/images/touch/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }], "start_url": "/index.html?utm_source=homescreen", "theme_color": "#e4e4e4", "background_color": "#fff", "screenshots": [ { "src": "/images/screenshots/screenshot1.png", "type": "image/png", "sizes": "586x1041" }, { "src": "/images/screenshots/screenshot2.png", "type": "image/png", "sizes": "586x1041" }, { "src": "/images/screenshots/screenshot3.png", "type": "image/png", "sizes": "586x1041" } ] } ================================================ FILE: public/robots.txt ================================================ User-agent: Googlebot Disallow: /nogooglebot/ User-agent: * Allow: / Sitemap: https://www.qrcodescan.in/sitemap.xml Sitemap: http://www.qrcodescan.in/sitemap.xml ================================================ FILE: public/sitemap.xml ================================================ https://qrcodescan.in/ ================================================ FILE: rollup.config.js ================================================ import { terser } from 'rollup-plugin-terser'; import del from 'rollup-plugin-delete'; import { generateSW } from 'rollup-plugin-workbox'; import sizes from 'rollup-plugin-sizes'; import css from 'rollup-plugin-css-only'; const isProd = process.env.NODE_ENV === 'production'; export default { input: ['src/js/index.js'], output: [ { file: 'public/bundle.js', format: 'cjs', assetFileNames: '[name]-[hash][extname]', }, ], plugins: [ del({ targets: ['public/workbox-*.js', 'public/sw.js', 'public/bundle.js', 'public/bundle.css'] }), css({ output: 'bundle.css' }), terser(), isProd && generateSW({ swDest: 'public/service-worker.js', globDirectory: './public', clientsClaim: true, skipWaiting: true, runtimeCaching: [ { urlPattern: isProd ? /https:\/\/qrcodescan.in\// : /http:\/\/localhost:5000\//, handler: 'CacheFirst', options: { cacheName: 'pages', cacheableResponse: { statuses: [200] }, }, }, ], }), sizes(), ], }; ================================================ FILE: src/css/styles.css ================================================ html, body, p, ol, ul, li, dl, dt, dd, blockquote, figure, fieldset, legend, textarea, pre, iframe, hr, h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; } h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; } ul { list-style: none; } button, input, select, textarea { margin: 0 } html { box-sizing: border-box } *, *:before, *:after { box-sizing: inherit } img, embed, object, audio { height: auto; max-width: 100% } iframe { border: 0 } table { border-collapse: collapse; border-spacing: 0 } td, th { padding: 0; text-align: left } body { font-family: Roboto, Helvetica,Arial,sans-serif; -webkit-font-smoothing: antialiased; } .app__layout { position: absolute; width: 100%; height: 100%; overflow: hidden; background-color: rgba(0, 0, 0, 0.5); } .app__header { width: 100%; height: 56px; color: #fff; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: fixed; top: 0; left: 0; right: 0; z-index: 10; } .app__header-icon { width: 35px; height: 35px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; cursor: pointer; position: absolute; right: 20px; top: 20px; } .app__header-icon:active { opacity: 0.8; } .app__header-title { margin-left: 5px; font-size: 19px; user-select: none; } .app__layout-content { height: inherit; /*margin-top: 56px;*/ } .custom-menu-icon { font-size: 28px; line-height: 47px; } .custom-title, .custom-menu-icon { color: #fff; } .custom-btn { position: fixed; right: 26px; bottom: 26px; background: #448aff; border-radius: 50%; border: none; width: 56px; height: 56px; outline: none; box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px 0 rgba(0,0,0,.12); z-index: 9999; } .custom-btn:active { box-shadow: none; } .custom-msg { text-align: center; width: 90%; height: 50%; overflow: auto; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; font-size: 16px; } .custom-fab-icon { color: #fff; font-size: 30px; margin-top: 2px; user-select: none; } video { transform: translateX(-50%) translateY(-50%); top: 50%; left: 50%; min-width: 100%; min-height: 100%; width: auto; height: auto; position: absolute; } #list li { list-style-type: none; text-decoration: underline; color: #00F; } .custom-copy-btn { opacity: 0; } .hide { display: none; } @-webkit-keyframes scanner { 0% { bottom: 90%; } 50% { bottom: 10%; } 100% { bottom: 90%; } } @-moz-keyframes scanner { 0% { bottom: 90%; } 50% { bottom: 10%; } 100% { bottom: 90%; } } @-o-keyframes scanner { 0% { bottom: 90%; } 50% { bottom: 10%; } 100% { bottom: 90%; } } @keyframes scanner { 0% { bottom: 90%; } 50% { bottom: 10%; } 100% { bottom: 90%; } } .custom-scanner { width: 270px; height: 2px; background: #4CAF50; position: absolute; -webkit-transition: all 200ms linear; -moz-transition: all 200ms linear; transition: all 200ms linear; -webkit-animation: scanner 3s infinite linear; -moz-animation: scanner 3s infinite linear; -o-animation: scanner 3s infinite linear; animation: scanner 3s infinite linear; box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.4); display: none; left: -10px; right: 0; margin: auto; } #camera { opacity: 0; } .no-support { font-size: 20px; text-align: center; } .app__snackbar { position: fixed; bottom: 15px; left: 20px; pointer-events: none; z-index: 9999; } .app__snackbar-msg { width: 250px; min-height: 50px; background-color: #404040; color: #fff; border-radius: 3px; box-shadow: 0 0 2px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.24); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; font-size: 14px; font-weight: 500; padding-left: 15px; padding-right: 10px; word-break: break-all; -webkit-transition: opacity 3s cubic-bezier(0, 0, 0.30, 1) 0; transition: opacity 0.30s cubic-bezier(0, 0, 0.30, 1) 0; text-transform: initial; margin-bottom: 10px; z-index: 9999; } .app__snackbar--hide { opacity: 0; } .app__infodialog, .app__dialog { z-index: 12; background-color: #fff; width: 290px; height: 180px; border-radius: 8px; display: flex; position: absolute; left: 0; right: 0; bottom: 0; top: 0; margin: auto; box-shadow: 0 9px 46px 8px rgba(0,0,0,.14), 0 11px 15px -7px rgba(0,0,0,.12), 0 24px 38px 3px rgba(0,0,0,.2); } .app__infodialog { max-width: 480px; width: 95%; height: 240px; } .app__dialog-content, .app__infodialog-content { width: 100%; padding: 15px; } .app__infodialog-subcontent { margin-top: 18px; } .app__infodialog-subcontent a { color: #1b1eb5; } .app__infodialog-subcontent p:not(:first-child) { margin-top: 10px; } .app__dialog-content h1, .app__infodialog h1 { margin-top: 5px; margin-bottom: 15px; font-weight: 600; font-size: 19px; } .app__dialog input { width: 250px; height: 30px; border: none; border-bottom: 1px solid rgba(0,0,0,.24); outline: none; font-size: 15px; color: #1b1eb5; font-weight: 500; } .app__dialog-actions, .app__infodialog-actions { display: block; position: absolute; bottom: 13px; right: 20px; } .app__infodialog-open, .app__infodialog-close, .app__dialog-open, .app__dialog-close { border: 0; height: 35px; width: 70px; font-size: 16px; background: transparent; font-weight: 500; outline: none; cursor: pointer; margin-right: -15px; } .app__dialog-open { display: none; } .app__infodialog-open:active, .app__infodialog-close:active, .app__dialog-open:active, .app__dialog-close:active { opacity: 0.9; } .app__infodialog--hide, .app__dialog--hide { display: none; } .app__overlay { position: fixed; top: 0; bottom: 0; right: 0; left: 0; transition: all 200ms ease-in; width: 310px; height: 310px; margin: auto; } .app__overlay-left, .app__overlay-right { width: 52px; height: 340px; background: #7f7f7f; } .app__overlay-left { margin-left: -57px; margin-top: -10px; } .app__overlay-right { margin-right: -57px; margin-top: -340px; float: right; } .app__overlay { border: 0; } .app__help-text, .app__select-photos { color: #fff; position: absolute; bottom: -70px; font-size: 18px; right: 0; text-align: center; user-select: none; } .app__help-text { display: none; left: 0; } .app__dialog-overlay, .app__infodialog-overlay { position: fixed; left: 0; right: 0; bottom: 0; top: 0; background: rgba(0, 0, 0, 0.55); z-index: 11; } .camera__icon, .focus__icon { position: relative; left: 10px; display: none; } .app__select-photos { width: 58px; height: 58px; cursor: pointer; position: fixed; bottom: 20px; right: 20px; border-radius: 50%; background-color: #3F51B5; display: flex; align-items: center; justify-content: center; } .app__select-photos:active { opacity: 0.8; } input[type='file'] { display: none; } #frame { width: auto; height: auto; } .app__version { position: absolute; bottom: 20px; font-size: 12px; color: #737373; margin-top: 15px; display: inline-block; } .app__scanner-img { z-index: 1; position: relative; display: none; } @media screen and (max-width: 480px) { .app__infodialog { width: 90%; } .app__infodialog-content { padding: 12px 13px; } } ================================================ FILE: src/js/index.js ================================================ import QRReader from './vendor/qrscan.js'; import snackbar from './snackbar.js'; import { isURL, hasProtocolInUrl } from './utils'; import '../css/styles.css'; //If service worker is installed, show offline usage notification if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker .register('/service-worker.js') .then((reg) => { // console.log('SW registered: ', reg); if (!localStorage.getItem('offline')) { localStorage.setItem('offline', true); snackbar.show('App is ready for offline usage.', 5000); } }) .catch((regError) => { console.log('SW registration failed: ', regError); }); }); } window.addEventListener('DOMContentLoaded', () => { //To check the device and add iOS support window.iOS = ['iPad', 'iPhone', 'iPod'].indexOf(navigator.platform) >= 0; window.isMediaStreamAPISupported = navigator && navigator.mediaDevices && 'enumerateDevices' in navigator.mediaDevices; window.noCameraPermission = false; var copiedText = null; var frame = null; var selectPhotoBtn = document.querySelector('.app__select-photos'); var dialogElement = document.querySelector('.app__dialog'); var dialogOverlayElement = document.querySelector('.app__dialog-overlay'); var dialogOpenBtnElement = document.querySelector('.app__dialog-open'); var dialogCloseBtnElement = document.querySelector('.app__dialog-close'); var scanningEle = document.querySelector('.custom-scanner'); var appScanningEle = document.querySelector('.app__scanner-img'); var textBoxEle = document.querySelector('#result'); var helpTextEle = document.querySelector('.app__help-text'); var infoSvg = document.querySelector('.app__header-icon svg'); var videoElement = document.querySelector('video'); var headerIcon = document.querySelector('.app__header-icon'); var infoDialogElement = document.querySelector('.app__infodialog'); var infoDialogCloseBtnElement = document.querySelector('.app__infodialog-close'); var infoDialogOverlayElement = document.querySelector('.app__infodialog-overlay'); window.appOverlay = document.querySelector('.app__overlay'); //Initializing qr scanner window.addEventListener('load', (event) => { QRReader.init(); //To initialize QR Scanner // Set camera overlay size setTimeout(() => { setCameraOverlay(); if (window.isMediaStreamAPISupported) { scan(); } }, 1000); // To support other browsers who dont have mediaStreamAPI selectFromPhoto(); }); function setCameraOverlay() { window.appOverlay.style.borderStyle = 'solid'; } function createFrame() { frame = document.createElement('img'); frame.src = ''; frame.id = 'frame'; } //Dialog close btn event dialogCloseBtnElement.addEventListener('click', hideDialog, false); infoDialogCloseBtnElement.addEventListener('click', closeInfoDialog, false); dialogOpenBtnElement.addEventListener('click', openInBrowser, false); headerIcon.addEventListener('click', showInfo, false); //To open result in browser function openInBrowser() { // console.log('Result: ', copiedText); if (!hasProtocolInUrl(copiedText)) { copiedText = `//${copiedText}`; } window.open(copiedText, '_blank', 'toolbar=0,location=0,menubar=0'); copiedText = null; hideDialog(); } //Scan function scan(forSelectedPhotos = false) { if (window.isMediaStreamAPISupported && !window.noCameraPermission) { scanningEle.style.display = 'block'; appScanningEle.style.display = 'block'; } if (forSelectedPhotos) { scanningEle.style.display = 'block'; appScanningEle.style.display = 'block'; } QRReader.scan((result) => { copiedText = result; textBoxEle.value = result; textBoxEle.select(); scanningEle.style.display = 'none'; appScanningEle.style.display = 'none'; if (isURL(result)) { dialogOpenBtnElement.style.display = 'inline-block'; } dialogElement.classList.remove('app__dialog--hide'); dialogOverlayElement.classList.remove('app__dialog--hide'); }, forSelectedPhotos); } //Hide dialog function hideDialog() { copiedText = null; textBoxEle.value = ''; if (!window.isMediaStreamAPISupported) { frame.src = ''; frame.className = ''; } dialogElement.classList.add('app__dialog--hide'); dialogOverlayElement.classList.add('app__dialog--hide'); scan(); } function selectFromPhoto() { //Creating the camera element var camera = document.createElement('input'); camera.setAttribute('type', 'file'); camera.setAttribute('capture', 'camera'); camera.id = 'camera'; window.appOverlay.style.borderStyle = ''; selectPhotoBtn.style.display = 'flex'; createFrame(); //Add the camera and img element to DOM var pageContentElement = document.querySelector('.app__layout-content'); pageContentElement.appendChild(camera); pageContentElement.appendChild(frame); //Click of camera fab icon selectPhotoBtn.addEventListener('click', () => { scanningEle.style.display = 'none'; appScanningEle.style.display = 'none'; document.querySelector('#camera').click(); }); //On camera change camera.addEventListener('change', (event) => { if (event.target && event.target.files.length > 0) { frame.className = 'app__overlay'; frame.src = URL.createObjectURL(event.target.files[0]); if (!window.noCameraPermission) { scanningEle.style.display = 'block'; appScanningEle.style.display = 'block'; } window.appOverlay.style.borderColor = 'rgb(62, 78, 184)'; scan(true); } }); } function showInfo() { infoDialogElement.classList.remove('app__infodialog--hide'); infoDialogOverlayElement.classList.remove('app__infodialog--hide'); } function closeInfoDialog() { infoDialogElement.classList.add('app__infodialog--hide'); infoDialogOverlayElement.classList.add('app__infodialog--hide'); } }); ================================================ FILE: src/js/snackbar.js ================================================ var snackbar = {}; var snackBarElement = document.querySelector('.app__snackbar'); var snackbarMsg = null; //To show notification snackbar.show = (msg, options = 4000) => { if (!msg) return; if (snackbarMsg) { snackbarMsg.remove(); } snackbarMsg = document.createElement('div'); snackbarMsg.className = 'app__snackbar-msg'; snackbarMsg.textContent = msg; snackBarElement.appendChild(snackbarMsg); //Show toast for 3secs and hide it setTimeout(() => { snackbarMsg.remove(); }, options); }; export default snackbar; ================================================ FILE: src/js/utils.js ================================================ export const isURL = (url = '') => { if (!url || typeof url !== 'string') { return false; } const protocol = '^(https?:\\/\\/)?'; const domain = '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'; const ip = '((\\d{1,3}\\.){3}\\d{1,3}))'; const port = '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'; const queryString = '(\\?[;&a-z\\d%_.~+=-]*)?'; const fragmentLocater = '(\\#[-a-z\\d_]*)?$'; const regex = new RegExp(`${protocol + domain + ip + port + queryString + fragmentLocater}`, 'i'); return regex.test(url); }; export const hasProtocolInUrl = (url = '') => { const protocol = '^(https?:\\/\\/)'; const regex = new RegExp(protocol, 'i'); return regex.test(url); }; ================================================ FILE: src/js/vendor/qrscan.js ================================================ import snackbar from '../snackbar.js'; var QRReader = {}; QRReader.active = false; QRReader.webcam = null; QRReader.canvas = null; QRReader.ctx = null; QRReader.decoder = null; QRReader.setCanvas = () => { QRReader.canvas = document.createElement('canvas'); QRReader.ctx = QRReader.canvas.getContext('2d'); }; function setPhotoSourceToScan(forSelectedPhotos) { if (!forSelectedPhotos && window.isMediaStreamAPISupported) { QRReader.webcam = document.querySelector('video'); } else { QRReader.webcam = document.querySelector('img'); } } QRReader.init = () => { var baseurl = ''; var streaming = false; // Init Webcam + Canvas setPhotoSourceToScan(); QRReader.setCanvas(); QRReader.decoder = new Worker(baseurl + 'decoder.js'); if (window.isMediaStreamAPISupported) { // Resize webcam according to input QRReader.webcam.addEventListener( 'play', function(ev) { if (!streaming) { setCanvasProperties(); streaming = true; } }, false ); } else { setCanvasProperties(); } function setCanvasProperties() { QRReader.canvas.width = window.innerWidth; QRReader.canvas.height = window.innerHeight; } function startCapture(constraints) { navigator.mediaDevices .getUserMedia(constraints) .then(function(stream) { QRReader.webcam.srcObject = stream; QRReader.webcam.setAttribute('playsinline', true); QRReader.webcam.setAttribute('controls', true); setTimeout(() => { document.querySelector('video').removeAttribute('controls'); }); }) .catch(function(err) { console.log('Error occurred ', err); showErrorMsg(); }); } if (window.isMediaStreamAPISupported) { navigator.mediaDevices .enumerateDevices() .then(function(devices) { var device = devices.filter(function(device) { var deviceLabel = device.label.split(',')[1]; if (device.kind == 'videoinput') { return device; } }); var constraints; if (device.length > 1) { constraints = { video: { mandatory: { sourceId: device[device.length - 1].deviceId ? device[device.length - 1].deviceId : null } }, audio: false }; if (window.iOS) { constraints.video.facingMode = 'environment'; } startCapture(constraints); } else if (device.length) { constraints = { video: { mandatory: { sourceId: device[0].deviceId ? device[0].deviceId : null } }, audio: false }; if (window.iOS) { constraints.video.facingMode = 'environment'; } if (!constraints.video.mandatory.sourceId && !window.iOS) { startCapture({ video: true }); } else { startCapture(constraints); } } else { startCapture({ video: true }); } }) .catch(function(error) { showErrorMsg(); console.error('Error occurred : ', error); }); } function showErrorMsg() { window.noCameraPermission = true; document.querySelector('.custom-scanner').style.display = 'none'; snackbar.show('Unable to access the camera', 10000); } }; /** * \brief QRReader Scan Action * Call this to start scanning for QR codes. * * \param A function(scan_result) */ QRReader.scan = function(callback, forSelectedPhotos) { QRReader.active = true; QRReader.setCanvas(); function onDecoderMessage(event) { if (event.data.length > 0) { var qrid = event.data[0][2]; QRReader.active = false; callback(qrid); } setTimeout(newDecoderFrame, 0); } QRReader.decoder.onmessage = onDecoderMessage; setTimeout(() => { setPhotoSourceToScan(forSelectedPhotos); }); // Start QR-decoder function newDecoderFrame() { if (!QRReader.active) return; try { QRReader.ctx.drawImage(QRReader.webcam, 0, 0, QRReader.canvas.width, QRReader.canvas.height); var imgData = QRReader.ctx.getImageData(0, 0, QRReader.canvas.width, QRReader.canvas.height); if (imgData.data) { QRReader.decoder.postMessage(imgData); } } catch (e) { // Try-Catch to circumvent Firefox Bug #879717 if (e.name == 'NS_ERROR_NOT_AVAILABLE') setTimeout(newDecoderFrame, 0); } } newDecoderFrame(); }; export default QRReader;