/test/mjsunit/asm/embenchen/lua_binarytrees.js

http://v8.googlecode.com/ · JavaScript · 42714 lines · 40862 code · 841 blank · 1011 comment · 10734 complexity · 4bf4fb04b77a8edbd76184a5ed3432a9 MD5 · raw file

  1. // Copyright 2014 the V8 project authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. var EXPECTED_OUTPUT =
  5. 'stretch tree of depth 10\t check: -1\n' +
  6. '1448\t trees of depth 4\t check: -1448\n' +
  7. '362\t trees of depth 6\t check: -362\n' +
  8. '90\t trees of depth 8\t check: -90\n' +
  9. 'long lived tree of depth 9\t check: -1\n';
  10. var Module = {
  11. arguments: [1],
  12. print: function(x) {Module.printBuffer += x + '\n';},
  13. preRun: [function() {Module.printBuffer = ''}],
  14. postRun: [function() {
  15. assertEquals(EXPECTED_OUTPUT, Module.printBuffer);
  16. }],
  17. };
  18. var Module;
  19. if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
  20. if (!Module.expectedDataFileDownloads) {
  21. Module.expectedDataFileDownloads = 0;
  22. Module.finishedDataFileDownloads = 0;
  23. }
  24. Module.expectedDataFileDownloads++;
  25. (function() {
  26. function runWithFS() {
  27. function assert(check, msg) {
  28. if (!check) throw msg + new Error().stack;
  29. }
  30. Module['FS_createDataFile']('/', 'binarytrees.lua', [45, 45, 32, 84, 104, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 32, 76, 97, 110, 103, 117, 97, 103, 101, 32, 66, 101, 110, 99, 104, 109, 97, 114, 107, 115, 32, 71, 97, 109, 101, 10, 45, 45, 32, 104, 116, 116, 112, 58, 47, 47, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 103, 97, 109, 101, 46, 97, 108, 105, 111, 116, 104, 46, 100, 101, 98, 105, 97, 110, 46, 111, 114, 103, 47, 10, 45, 45, 32, 99, 111, 110, 116, 114, 105, 98, 117, 116, 101, 100, 32, 98, 121, 32, 77, 105, 107, 101, 32, 80, 97, 108, 108, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 116, 101, 109, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 102, 32, 100, 101, 112, 116, 104, 32, 62, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 105, 32, 61, 32, 105, 116, 101, 109, 32, 43, 32, 105, 116, 101, 109, 10, 32, 32, 32, 32, 100, 101, 112, 116, 104, 32, 61, 32, 100, 101, 112, 116, 104, 32, 45, 32, 49, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 44, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 44, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 125, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 32, 125, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 41, 10, 32, 32, 105, 102, 32, 116, 114, 101, 101, 91, 50, 93, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 50, 93, 41, 32, 45, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 51, 93, 41, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 78, 32, 61, 32, 116, 111, 110, 117, 109, 98, 101, 114, 40, 97, 114, 103, 32, 97, 110, 100, 32, 97, 114, 103, 91, 49, 93, 41, 32, 111, 114, 32, 52, 10, 10, 105, 102, 32, 78, 32, 61, 61, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 48, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 49, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 57, 46, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 50, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 49, 46, 57, 57, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 51, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 50, 46, 56, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 52, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 52, 46, 55, 50, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 53, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 53, 46, 56, 50, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 61, 32, 52, 10, 108, 111, 99, 97, 108, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 43, 32, 50, 10, 105, 102, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 60, 32, 78, 32, 116, 104, 101, 110, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 78, 32, 101, 110, 100, 10, 10, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 32, 61, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 43, 32, 49, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 115, 116, 114, 101, 116, 99, 104, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 41, 41, 41, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 109, 97, 120, 100, 101, 112, 116, 104, 41, 10, 10, 102, 111, 114, 32, 100, 101, 112, 116, 104, 61, 109, 105, 110, 100, 101, 112, 116, 104, 44, 109, 97, 120, 100, 101, 112, 116, 104, 44, 50, 32, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 50, 32, 94, 32, 40, 109, 97, 120, 100, 101, 112, 116, 104, 32, 45, 32, 100, 101, 112, 116, 104, 32, 43, 32, 109, 105, 110, 100, 101, 112, 116, 104, 41, 10, 32, 32, 108, 111, 99, 97, 108, 32, 99, 104, 101, 99, 107, 32, 61, 32, 48, 10, 32, 32, 102, 111, 114, 32, 105, 61, 49, 44, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 100, 111, 10, 32, 32, 32, 32, 99, 104, 101, 99, 107, 32, 61, 32, 99, 104, 101, 99, 107, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 32, 43, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 10, 32, 32, 101, 110, 100, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 37, 100, 92, 116, 32, 116, 114, 101, 101, 115, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 50, 44, 32, 100, 101, 112, 116, 104, 44, 32, 99, 104, 101, 99, 107, 41, 41, 10, 101, 110, 100, 10, 10, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 108, 111, 110, 103, 32, 108, 105, 118, 101, 100, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 109, 97, 120, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 41, 41, 41, 10], true, true);
  31. }
  32. if (Module['calledRun']) {
  33. runWithFS();
  34. } else {
  35. if (!Module['preRun']) Module['preRun'] = [];
  36. Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
  37. }
  38. })();
  39. // The Module object: Our interface to the outside world. We import
  40. // and export values on it, and do the work to get that through
  41. // closure compiler if necessary. There are various ways Module can be used:
  42. // 1. Not defined. We create it here
  43. // 2. A function parameter, function(Module) { ..generated code.. }
  44. // 3. pre-run appended it, var Module = {}; ..generated code..
  45. // 4. External script tag defines var Module.
  46. // We need to do an eval in order to handle the closure compiler
  47. // case, where this code here is minified but Module was defined
  48. // elsewhere (e.g. case 4 above). We also need to check if Module
  49. // already exists (e.g. case 3 above).
  50. // Note that if you want to run closure, and also to use Module
  51. // after the generated code, you will need to define var Module = {};
  52. // before the code. Then that object will be used in the code, and you
  53. // can continue to use Module afterwards as well.
  54. var Module;
  55. if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
  56. // Sometimes an existing Module object exists with properties
  57. // meant to overwrite the default module functionality. Here
  58. // we collect those properties and reapply _after_ we configure
  59. // the current environment's defaults to avoid having to be so
  60. // defensive during initialization.
  61. var moduleOverrides = {};
  62. for (var key in Module) {
  63. if (Module.hasOwnProperty(key)) {
  64. moduleOverrides[key] = Module[key];
  65. }
  66. }
  67. // The environment setup code below is customized to use Module.
  68. // *** Environment setup code ***
  69. var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function';
  70. var ENVIRONMENT_IS_WEB = typeof window === 'object';
  71. var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
  72. var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
  73. if (ENVIRONMENT_IS_NODE) {
  74. // Expose functionality in the same simple way that the shells work
  75. // Note that we pollute the global namespace here, otherwise we break in node
  76. if (!Module['print']) Module['print'] = function print(x) {
  77. process['stdout'].write(x + '\n');
  78. };
  79. if (!Module['printErr']) Module['printErr'] = function printErr(x) {
  80. process['stderr'].write(x + '\n');
  81. };
  82. var nodeFS = require('fs');
  83. var nodePath = require('path');
  84. Module['read'] = function read(filename, binary) {
  85. filename = nodePath['normalize'](filename);
  86. var ret = nodeFS['readFileSync'](filename);
  87. // The path is absolute if the normalized version is the same as the resolved.
  88. if (!ret && filename != nodePath['resolve'](filename)) {
  89. filename = path.join(__dirname, '..', 'src', filename);
  90. ret = nodeFS['readFileSync'](filename);
  91. }
  92. if (ret && !binary) ret = ret.toString();
  93. return ret;
  94. };
  95. Module['readBinary'] = function readBinary(filename) { return Module['read'](filename, true) };
  96. Module['load'] = function load(f) {
  97. globalEval(read(f));
  98. };
  99. Module['arguments'] = process['argv'].slice(2);
  100. module['exports'] = Module;
  101. }
  102. else if (ENVIRONMENT_IS_SHELL) {
  103. if (!Module['print']) Module['print'] = print;
  104. if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
  105. if (typeof read != 'undefined') {
  106. Module['read'] = read;
  107. } else {
  108. Module['read'] = function read() { throw 'no read() available (jsc?)' };
  109. }
  110. Module['readBinary'] = function readBinary(f) {
  111. return read(f, 'binary');
  112. };
  113. if (typeof scriptArgs != 'undefined') {
  114. Module['arguments'] = scriptArgs;
  115. } else if (typeof arguments != 'undefined') {
  116. Module['arguments'] = arguments;
  117. }
  118. this['Module'] = Module;
  119. eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined"); // wipe out the SpiderMonkey shell 'gc' function, which can confuse closure (uses it as a minified name, and it is then initted to a non-falsey value unexpectedly)
  120. }
  121. else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
  122. Module['read'] = function read(url) {
  123. var xhr = new XMLHttpRequest();
  124. xhr.open('GET', url, false);
  125. xhr.send(null);
  126. return xhr.responseText;
  127. };
  128. if (typeof arguments != 'undefined') {
  129. Module['arguments'] = arguments;
  130. }
  131. if (typeof console !== 'undefined') {
  132. if (!Module['print']) Module['print'] = function print(x) {
  133. console.log(x);
  134. };
  135. if (!Module['printErr']) Module['printErr'] = function printErr(x) {
  136. console.log(x);
  137. };
  138. } else {
  139. // Probably a worker, and without console.log. We can do very little here...
  140. var TRY_USE_DUMP = false;
  141. if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
  142. dump(x);
  143. }) : (function(x) {
  144. // self.postMessage(x); // enable this if you want stdout to be sent as messages
  145. }));
  146. }
  147. if (ENVIRONMENT_IS_WEB) {
  148. window['Module'] = Module;
  149. } else {
  150. Module['load'] = importScripts;
  151. }
  152. }
  153. else {
  154. // Unreachable because SHELL is dependant on the others
  155. throw 'Unknown runtime environment. Where are we?';
  156. }
  157. function globalEval(x) {
  158. eval.call(null, x);
  159. }
  160. if (!Module['load'] == 'undefined' && Module['read']) {
  161. Module['load'] = function load(f) {
  162. globalEval(Module['read'](f));
  163. };
  164. }
  165. if (!Module['print']) {
  166. Module['print'] = function(){};
  167. }
  168. if (!Module['printErr']) {
  169. Module['printErr'] = Module['print'];
  170. }
  171. if (!Module['arguments']) {
  172. Module['arguments'] = [];
  173. }
  174. // *** Environment setup code ***
  175. // Closure helpers
  176. Module.print = Module['print'];
  177. Module.printErr = Module['printErr'];
  178. // Callbacks
  179. Module['preRun'] = [];
  180. Module['postRun'] = [];
  181. // Merge back in the overrides
  182. for (var key in moduleOverrides) {
  183. if (moduleOverrides.hasOwnProperty(key)) {
  184. Module[key] = moduleOverrides[key];
  185. }
  186. }
  187. // === Auto-generated preamble library stuff ===
  188. //========================================
  189. // Runtime code shared with compiler
  190. //========================================
  191. var Runtime = {
  192. stackSave: function () {
  193. return STACKTOP;
  194. },
  195. stackRestore: function (stackTop) {
  196. STACKTOP = stackTop;
  197. },
  198. forceAlign: function (target, quantum) {
  199. quantum = quantum || 4;
  200. if (quantum == 1) return target;
  201. if (isNumber(target) && isNumber(quantum)) {
  202. return Math.ceil(target/quantum)*quantum;
  203. } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
  204. return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')';
  205. }
  206. return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
  207. },
  208. isNumberType: function (type) {
  209. return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
  210. },
  211. isPointerType: function isPointerType(type) {
  212. return type[type.length-1] == '*';
  213. },
  214. isStructType: function isStructType(type) {
  215. if (isPointerType(type)) return false;
  216. if (isArrayType(type)) return true;
  217. if (/<?\{ ?[^}]* ?\}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
  218. // See comment in isStructPointerType()
  219. return type[0] == '%';
  220. },
  221. INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
  222. FLOAT_TYPES: {"float":0,"double":0},
  223. or64: function (x, y) {
  224. var l = (x | 0) | (y | 0);
  225. var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
  226. return l + h;
  227. },
  228. and64: function (x, y) {
  229. var l = (x | 0) & (y | 0);
  230. var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
  231. return l + h;
  232. },
  233. xor64: function (x, y) {
  234. var l = (x | 0) ^ (y | 0);
  235. var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
  236. return l + h;
  237. },
  238. getNativeTypeSize: function (type) {
  239. switch (type) {
  240. case 'i1': case 'i8': return 1;
  241. case 'i16': return 2;
  242. case 'i32': return 4;
  243. case 'i64': return 8;
  244. case 'float': return 4;
  245. case 'double': return 8;
  246. default: {
  247. if (type[type.length-1] === '*') {
  248. return Runtime.QUANTUM_SIZE; // A pointer
  249. } else if (type[0] === 'i') {
  250. var bits = parseInt(type.substr(1));
  251. assert(bits % 8 === 0);
  252. return bits/8;
  253. } else {
  254. return 0;
  255. }
  256. }
  257. }
  258. },
  259. getNativeFieldSize: function (type) {
  260. return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
  261. },
  262. dedup: function dedup(items, ident) {
  263. var seen = {};
  264. if (ident) {
  265. return items.filter(function(item) {
  266. if (seen[item[ident]]) return false;
  267. seen[item[ident]] = true;
  268. return true;
  269. });
  270. } else {
  271. return items.filter(function(item) {
  272. if (seen[item]) return false;
  273. seen[item] = true;
  274. return true;
  275. });
  276. }
  277. },
  278. set: function set() {
  279. var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
  280. var ret = {};
  281. for (var i = 0; i < args.length; i++) {
  282. ret[args[i]] = 0;
  283. }
  284. return ret;
  285. },
  286. STACK_ALIGN: 8,
  287. getAlignSize: function (type, size, vararg) {
  288. // we align i64s and doubles on 64-bit boundaries, unlike x86
  289. if (!vararg && (type == 'i64' || type == 'double')) return 8;
  290. if (!type) return Math.min(size, 8); // align structures internally to 64 bits
  291. return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
  292. },
  293. calculateStructAlignment: function calculateStructAlignment(type) {
  294. type.flatSize = 0;
  295. type.alignSize = 0;
  296. var diffs = [];
  297. var prev = -1;
  298. var index = 0;
  299. type.flatIndexes = type.fields.map(function(field) {
  300. index++;
  301. var size, alignSize;
  302. if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
  303. size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
  304. alignSize = Runtime.getAlignSize(field, size);
  305. } else if (Runtime.isStructType(field)) {
  306. if (field[1] === '0') {
  307. // this is [0 x something]. When inside another structure like here, it must be at the end,
  308. // and it adds no size
  309. // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!');
  310. size = 0;
  311. if (Types.types[field]) {
  312. alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
  313. } else {
  314. alignSize = type.alignSize || QUANTUM_SIZE;
  315. }
  316. } else {
  317. size = Types.types[field].flatSize;
  318. alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
  319. }
  320. } else if (field[0] == 'b') {
  321. // bN, large number field, like a [N x i8]
  322. size = field.substr(1)|0;
  323. alignSize = 1;
  324. } else if (field[0] === '<') {
  325. // vector type
  326. size = alignSize = Types.types[field].flatSize; // fully aligned
  327. } else if (field[0] === 'i') {
  328. // illegal integer field, that could not be legalized because it is an internal structure field
  329. // it is ok to have such fields, if we just use them as markers of field size and nothing more complex
  330. size = alignSize = parseInt(field.substr(1))/8;
  331. assert(size % 1 === 0, 'cannot handle non-byte-size field ' + field);
  332. } else {
  333. assert(false, 'invalid type for calculateStructAlignment');
  334. }
  335. if (type.packed) alignSize = 1;
  336. type.alignSize = Math.max(type.alignSize, alignSize);
  337. var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
  338. type.flatSize = curr + size;
  339. if (prev >= 0) {
  340. diffs.push(curr-prev);
  341. }
  342. prev = curr;
  343. return curr;
  344. });
  345. if (type.name_ && type.name_[0] === '[') {
  346. // arrays have 2 elements, so we get the proper difference. then we scale here. that way we avoid
  347. // allocating a potentially huge array for [999999 x i8] etc.
  348. type.flatSize = parseInt(type.name_.substr(1))*type.flatSize/2;
  349. }
  350. type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
  351. if (diffs.length == 0) {
  352. type.flatFactor = type.flatSize;
  353. } else if (Runtime.dedup(diffs).length == 1) {
  354. type.flatFactor = diffs[0];
  355. }
  356. type.needsFlattening = (type.flatFactor != 1);
  357. return type.flatIndexes;
  358. },
  359. generateStructInfo: function (struct, typeName, offset) {
  360. var type, alignment;
  361. if (typeName) {
  362. offset = offset || 0;
  363. type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
  364. if (!type) return null;
  365. if (type.fields.length != struct.length) {
  366. printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
  367. return null;
  368. }
  369. alignment = type.flatIndexes;
  370. } else {
  371. var type = { fields: struct.map(function(item) { return item[0] }) };
  372. alignment = Runtime.calculateStructAlignment(type);
  373. }
  374. var ret = {
  375. __size__: type.flatSize
  376. };
  377. if (typeName) {
  378. struct.forEach(function(item, i) {
  379. if (typeof item === 'string') {
  380. ret[item] = alignment[i] + offset;
  381. } else {
  382. // embedded struct
  383. var key;
  384. for (var k in item) key = k;
  385. ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
  386. }
  387. });
  388. } else {
  389. struct.forEach(function(item, i) {
  390. ret[item[1]] = alignment[i];
  391. });
  392. }
  393. return ret;
  394. },
  395. dynCall: function (sig, ptr, args) {
  396. if (args && args.length) {
  397. if (!args.splice) args = Array.prototype.slice.call(args);
  398. args.splice(0, 0, ptr);
  399. return Module['dynCall_' + sig].apply(null, args);
  400. } else {
  401. return Module['dynCall_' + sig].call(null, ptr);
  402. }
  403. },
  404. functionPointers: [],
  405. addFunction: function (func) {
  406. for (var i = 0; i < Runtime.functionPointers.length; i++) {
  407. if (!Runtime.functionPointers[i]) {
  408. Runtime.functionPointers[i] = func;
  409. return 2*(1 + i);
  410. }
  411. }
  412. throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
  413. },
  414. removeFunction: function (index) {
  415. Runtime.functionPointers[(index-2)/2] = null;
  416. },
  417. getAsmConst: function (code, numArgs) {
  418. // code is a constant string on the heap, so we can cache these
  419. if (!Runtime.asmConstCache) Runtime.asmConstCache = {};
  420. var func = Runtime.asmConstCache[code];
  421. if (func) return func;
  422. var args = [];
  423. for (var i = 0; i < numArgs; i++) {
  424. args.push(String.fromCharCode(36) + i); // $0, $1 etc
  425. }
  426. var source = Pointer_stringify(code);
  427. if (source[0] === '"') {
  428. // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct
  429. if (source.indexOf('"', 1) === source.length-1) {
  430. source = source.substr(1, source.length-2);
  431. } else {
  432. // something invalid happened, e.g. EM_ASM("..code($0)..", input)
  433. abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)');
  434. }
  435. }
  436. try {
  437. var evalled = eval('(function(' + args.join(',') + '){ ' + source + ' })'); // new Function does not allow upvars in node
  438. } catch(e) {
  439. 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.)');
  440. throw e;
  441. }
  442. return Runtime.asmConstCache[code] = evalled;
  443. },
  444. warnOnce: function (text) {
  445. if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
  446. if (!Runtime.warnOnce.shown[text]) {
  447. Runtime.warnOnce.shown[text] = 1;
  448. Module.printErr(text);
  449. }
  450. },
  451. funcWrappers: {},
  452. getFuncWrapper: function (func, sig) {
  453. assert(sig);
  454. if (!Runtime.funcWrappers[func]) {
  455. Runtime.funcWrappers[func] = function dynCall_wrapper() {
  456. return Runtime.dynCall(sig, func, arguments);
  457. };
  458. }
  459. return Runtime.funcWrappers[func];
  460. },
  461. UTF8Processor: function () {
  462. var buffer = [];
  463. var needed = 0;
  464. this.processCChar = function (code) {
  465. code = code & 0xFF;
  466. if (buffer.length == 0) {
  467. if ((code & 0x80) == 0x00) { // 0xxxxxxx
  468. return String.fromCharCode(code);
  469. }
  470. buffer.push(code);
  471. if ((code & 0xE0) == 0xC0) { // 110xxxxx
  472. needed = 1;
  473. } else if ((code & 0xF0) == 0xE0) { // 1110xxxx
  474. needed = 2;
  475. } else { // 11110xxx
  476. needed = 3;
  477. }
  478. return '';
  479. }
  480. if (needed) {
  481. buffer.push(code);
  482. needed--;
  483. if (needed > 0) return '';
  484. }
  485. var c1 = buffer[0];
  486. var c2 = buffer[1];
  487. var c3 = buffer[2];
  488. var c4 = buffer[3];
  489. var ret;
  490. if (buffer.length == 2) {
  491. ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F));
  492. } else if (buffer.length == 3) {
  493. ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F));
  494. } else {
  495. // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
  496. var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) |
  497. ((c3 & 0x3F) << 6) | (c4 & 0x3F);
  498. ret = String.fromCharCode(
  499. Math.floor((codePoint - 0x10000) / 0x400) + 0xD800,
  500. (codePoint - 0x10000) % 0x400 + 0xDC00);
  501. }
  502. buffer.length = 0;
  503. return ret;
  504. }
  505. this.processJSString = function processJSString(string) {
  506. /* TODO: use TextEncoder when present,
  507. var encoder = new TextEncoder();
  508. encoder['encoding'] = "utf-8";
  509. var utf8Array = encoder['encode'](aMsg.data);
  510. */
  511. string = unescape(encodeURIComponent(string));
  512. var ret = [];
  513. for (var i = 0; i < string.length; i++) {
  514. ret.push(string.charCodeAt(i));
  515. }
  516. return ret;
  517. }
  518. },
  519. getCompilerSetting: function (name) {
  520. throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
  521. },
  522. stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+7)&-8); return ret; },
  523. staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+7)&-8); return ret; },
  524. dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+7)&-8); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
  525. alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
  526. makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*(+4294967296))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; },
  527. GLOBAL_BASE: 8,
  528. QUANTUM_SIZE: 4,
  529. __dummy__: 0
  530. }
  531. Module['Runtime'] = Runtime;
  532. //========================================
  533. // Runtime essentials
  534. //========================================
  535. var __THREW__ = 0; // Used in checking for thrown exceptions.
  536. var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
  537. var EXITSTATUS = 0;
  538. var undef = 0;
  539. // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
  540. // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
  541. var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat;
  542. var tempI64, tempI64b;
  543. var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
  544. function assert(condition, text) {
  545. if (!condition) {
  546. abort('Assertion failed: ' + text);
  547. }
  548. }
  549. var globalScope = this;
  550. // C calling interface. A convenient way to call C functions (in C files, or
  551. // defined with extern "C").
  552. //
  553. // Note: LLVM optimizations can inline and remove functions, after which you will not be
  554. // able to call them. Closure can also do so. To avoid that, add your function to
  555. // the exports using something like
  556. //
  557. // -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
  558. //
  559. // @param ident The name of the C function (note that C++ functions will be name-mangled - use extern "C")
  560. // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
  561. // 'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit).
  562. // @param argTypes An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
  563. // except that 'array' is not possible (there is no way for us to know the length of the array)
  564. // @param args An array of the arguments to the function, as native JS values (as in returnType)
  565. // Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
  566. // @return The return value, as a native JS value (as in returnType)
  567. function ccall(ident, returnType, argTypes, args) {
  568. return ccallFunc(getCFunc(ident), returnType, argTypes, args);
  569. }
  570. Module["ccall"] = ccall;
  571. // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
  572. function getCFunc(ident) {
  573. try {
  574. var func = Module['_' + ident]; // closure exported function
  575. if (!func) func = eval('_' + ident); // explicit lookup
  576. } catch(e) {
  577. }
  578. assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
  579. return func;
  580. }
  581. // Internal function that does a C call using a function, not an identifier
  582. function ccallFunc(func, returnType, argTypes, args) {
  583. var stack = 0;
  584. function toC(value, type) {
  585. if (type == 'string') {
  586. if (value === null || value === undefined || value === 0) return 0; // null string
  587. value = intArrayFromString(value);
  588. type = 'array';
  589. }
  590. if (type == 'array') {
  591. if (!stack) stack = Runtime.stackSave();
  592. var ret = Runtime.stackAlloc(value.length);
  593. writeArrayToMemory(value, ret);
  594. return ret;
  595. }
  596. return value;
  597. }
  598. function fromC(value, type) {
  599. if (type == 'string') {
  600. return Pointer_stringify(value);
  601. }
  602. assert(type != 'array');
  603. return value;
  604. }
  605. var i = 0;
  606. var cArgs = args ? args.map(function(arg) {
  607. return toC(arg, argTypes[i++]);
  608. }) : [];
  609. var ret = fromC(func.apply(null, cArgs), returnType);
  610. if (stack) Runtime.stackRestore(stack);
  611. return ret;
  612. }
  613. // Returns a native JS wrapper for a C function. This is similar to ccall, but
  614. // returns a function you can call repeatedly in a normal way. For example:
  615. //
  616. // var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
  617. // alert(my_function(5, 22));
  618. // alert(my_function(99, 12));
  619. //
  620. function cwrap(ident, returnType, argTypes) {
  621. var func = getCFunc(ident);
  622. return function() {
  623. return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
  624. }
  625. }
  626. Module["cwrap"] = cwrap;
  627. // Sets a value in memory in a dynamic way at run-time. Uses the
  628. // type data. This is the same as makeSetValue, except that
  629. // makeSetValue is done at compile-time and generates the needed
  630. // code then, whereas this function picks the right code at
  631. // run-time.
  632. // Note that setValue and getValue only do *aligned* writes and reads!
  633. // Note that ccall uses JS types as for defining types, while setValue and
  634. // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
  635. function setValue(ptr, value, type, noSafe) {
  636. type = type || 'i8';
  637. if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
  638. switch(type) {
  639. case 'i1': HEAP8[(ptr)]=value; break;
  640. case 'i8': HEAP8[(ptr)]=value; break;
  641. case 'i16': HEAP16[((ptr)>>1)]=value; break;
  642. case 'i32': HEAP32[((ptr)>>2)]=value; break;
  643. case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
  644. case 'float': HEAPF32[((ptr)>>2)]=value; break;
  645. case 'double': HEAPF64[((ptr)>>3)]=value; break;
  646. default: abort('invalid type for setValue: ' + type);
  647. }
  648. }
  649. Module['setValue'] = setValue;
  650. // Parallel to setValue.
  651. function getValue(ptr, type, noSafe) {
  652. type = type || 'i8';
  653. if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
  654. switch(type) {
  655. case 'i1': return HEAP8[(ptr)];
  656. case 'i8': return HEAP8[(ptr)];
  657. case 'i16': return HEAP16[((ptr)>>1)];
  658. case 'i32': return HEAP32[((ptr)>>2)];
  659. case 'i64': return HEAP32[((ptr)>>2)];
  660. case 'float': return HEAPF32[((ptr)>>2)];
  661. case 'double': return HEAPF64[((ptr)>>3)];
  662. default: abort('invalid type for setValue: ' + type);
  663. }
  664. return null;
  665. }
  666. Module['getValue'] = getValue;
  667. var ALLOC_NORMAL = 0; // Tries to use _malloc()
  668. var ALLOC_STACK = 1; // Lives for the duration of the current function call
  669. var ALLOC_STATIC = 2; // Cannot be freed
  670. var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
  671. var ALLOC_NONE = 4; // Do not allocate
  672. Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
  673. Module['ALLOC_STACK'] = ALLOC_STACK;
  674. Module['ALLOC_STATIC'] = ALLOC_STATIC;
  675. Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
  676. Module['ALLOC_NONE'] = ALLOC_NONE;
  677. // allocate(): This is for internal use. You can use it yourself as well, but the interface
  678. // is a little tricky (see docs right below). The reason is that it is optimized
  679. // for multiple syntaxes to save space in generated code. So you should
  680. // normally not use allocate(), and instead allocate memory using _malloc(),
  681. // initialize it with setValue(), and so forth.
  682. // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
  683. // in *bytes* (note that this is sometimes confusing: the next parameter does not
  684. // affect this!)
  685. // @types: Either an array of types, one for each byte (or 0 if no type at that position),
  686. // or a single type which is used for the entire block. This only matters if there
  687. // is initial data - if @slab is a number, then this does not matter at all and is
  688. // ignored.
  689. // @allocator: How to allocate memory, see ALLOC_*
  690. function allocate(slab, types, allocator, ptr) {
  691. var zeroinit, size;
  692. if (typeof slab === 'number') {
  693. zeroinit = true;
  694. size = slab;
  695. } else {
  696. zeroinit = false;
  697. size = slab.length;
  698. }
  699. var singleType = typeof types === 'string' ? types : null;
  700. var ret;
  701. if (allocator == ALLOC_NONE) {
  702. ret = ptr;
  703. } else {
  704. ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
  705. }
  706. if (zeroinit) {
  707. var ptr = ret, stop;
  708. assert((ret & 3) == 0);
  709. stop = ret + (size & ~3);
  710. for (; ptr < stop; ptr += 4) {
  711. HEAP32[((ptr)>>2)]=0;
  712. }
  713. stop = ret + size;
  714. while (ptr < stop) {
  715. HEAP8[((ptr++)|0)]=0;
  716. }
  717. return ret;
  718. }
  719. if (singleType === 'i8') {
  720. if (slab.subarray || slab.slice) {
  721. HEAPU8.set(slab, ret);
  722. } else {
  723. HEAPU8.set(new Uint8Array(slab), ret);
  724. }
  725. return ret;
  726. }
  727. var i = 0, type, typeSize, previousType;
  728. while (i < size) {
  729. var curr = slab[i];
  730. if (typeof curr === 'function') {
  731. curr = Runtime.getFunctionIndex(curr);
  732. }
  733. type = singleType || types[i];
  734. if (type === 0) {
  735. i++;
  736. continue;
  737. }
  738. if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
  739. setValue(ret+i, curr, type);
  740. // no need to look up size unless type changes, so cache it
  741. if (previousType !== type) {
  742. typeSize = Runtime.getNativeTypeSize(type);
  743. previousType = type;
  744. }
  745. i += typeSize;
  746. }
  747. return ret;
  748. }
  749. Module['allocate'] = allocate;
  750. function Pointer_stringify(ptr, /* optional */ length) {
  751. // TODO: use TextDecoder
  752. // Find the length, and check for UTF while doing so
  753. var hasUtf = false;
  754. var t;
  755. var i = 0;
  756. while (1) {
  757. t = HEAPU8[(((ptr)+(i))|0)];
  758. if (t >= 128) hasUtf = true;
  759. else if (t == 0 && !length) break;
  760. i++;
  761. if (length && i == length) break;
  762. }
  763. if (!length) length = i;
  764. var ret = '';
  765. if (!hasUtf) {
  766. var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
  767. var curr;
  768. while (length > 0) {
  769. curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
  770. ret = ret ? ret + curr : curr;
  771. ptr += MAX_CHUNK;
  772. length -= MAX_CHUNK;
  773. }
  774. return ret;
  775. }
  776. var utf8 = new Runtime.UTF8Processor();
  777. for (i = 0; i < length; i++) {
  778. t = HEAPU8[(((ptr)+(i))|0)];
  779. ret += utf8.processCChar(t);
  780. }
  781. return ret;
  782. }
  783. Module['Pointer_stringify'] = Pointer_stringify;
  784. // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
  785. // a copy of that string as a Javascript String object.
  786. function UTF16ToString(ptr) {
  787. var i = 0;
  788. var str = '';
  789. while (1) {
  790. var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
  791. if (codeUnit == 0)
  792. return str;
  793. ++i;
  794. // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
  795. str += String.fromCharCode(codeUnit);
  796. }
  797. }
  798. Module['UTF16ToString'] = UTF16ToString;
  799. // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
  800. // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP.
  801. function stringToUTF16(str, outPtr) {
  802. for(var i = 0; i < str.length; ++i) {
  803. // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
  804. var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
  805. HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit;
  806. }
  807. // Null-terminate the pointer to the HEAP.
  808. HEAP16[(((outPtr)+(str.length*2))>>1)]=0;
  809. }
  810. Module['stringToUTF16'] = stringToUTF16;
  811. // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns
  812. // a copy of that string as a Javascript String object.
  813. function UTF32ToString(ptr) {
  814. var i = 0;
  815. var str = '';
  816. while (1) {
  817. var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
  818. if (utf32 == 0)
  819. return str;
  820. ++i;
  821. // 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.
  822. if (utf32 >= 0x10000) {
  823. var ch = utf32 - 0x10000;
  824. str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
  825. } else {
  826. str += String.fromCharCode(utf32);
  827. }
  828. }
  829. }
  830. Module['UTF32ToString'] = UTF32ToString;
  831. // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
  832. // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP,
  833. // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string.
  834. function stringToUTF32(str, outPtr) {
  835. var iChar = 0;
  836. for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
  837. // 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.
  838. var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate
  839. if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
  840. var trailSurrogate = str.charCodeAt(++iCodeUnit);
  841. codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
  842. }
  843. HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit;
  844. ++iChar;
  845. }
  846. // Null-terminate the pointer to the HEAP.
  847. HEAP32[(((outPtr)+(iChar*4))>>2)]=0;
  848. }
  849. Module['stringToUTF32'] = stringToUTF32;
  850. function demangle(func) {
  851. var i = 3;
  852. // params, etc.
  853. var basicTypes = {
  854. 'v': 'void',
  855. 'b': 'bool',
  856. 'c': 'char',
  857. 's': 'short',
  858. 'i': 'int',
  859. 'l': 'long',
  860. 'f': 'float',
  861. 'd': 'double',
  862. 'w': 'wchar_t',
  863. 'a': 'signed char',
  864. 'h': 'unsigned char',
  865. 't': 'unsigned short',
  866. 'j': 'unsigned int',
  867. 'm': 'unsigned long',
  868. 'x': 'long long',
  869. 'y': 'unsigned long long',
  870. 'z': '...'
  871. };
  872. var subs = [];
  873. var first = true;
  874. function dump(x) {
  875. //return;
  876. if (x) Module.print(x);
  877. Module.print(func);
  878. var pre = '';
  879. for (var a = 0; a < i; a++) pre += ' ';
  880. Module.print (pre + '^');
  881. }
  882. function parseNested() {
  883. i++;
  884. if (func[i] === 'K') i++; // ignore const
  885. var parts = [];
  886. while (func[i] !== 'E') {
  887. if (func[i] === 'S') { // substitution
  888. i++;
  889. var next = func.indexOf('_', i);
  890. var num = func.substring(i, next) || 0;
  891. parts.push(subs[num] || '?');
  892. i = next+1;
  893. continue;
  894. }
  895. if (func[i] === 'C') { // constructor
  896. parts.push(parts[parts.length-1]);
  897. i += 2;
  898. continue;
  899. }
  900. var size = parseInt(func.substr(i));
  901. var pre = size.toString().length;
  902. if (!size || !pre) { i--; break; } // counter i++ below us
  903. var curr = func.substr(i + pre, size);
  904. parts.push(curr);
  905. subs.push(curr);
  906. i += pre + size;
  907. }
  908. i++; // skip E
  909. return parts;
  910. }
  911. function parse(rawList, limit, allowVoid) { // main parser
  912. limit = limit || Infinity;
  913. var ret = '', list = [];
  914. function flushList() {
  915. return '(' + list.join(', ') + ')';
  916. }
  917. var name;
  918. if (func[i] === 'N') {
  919. // namespaced N-E
  920. name = parseNested().join('::');
  921. limit--;
  922. if (limit === 0) return rawList ? [name] : name;
  923. } else {
  924. // not namespaced
  925. if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L'
  926. var size = parseInt(func.substr(i));
  927. if (size) {
  928. var pre = size.toString().length;
  929. name = func.substr(i + pre, size);
  930. i += pre + size;
  931. }
  932. }
  933. first = false;
  934. if (func[i] === 'I') {
  935. i++;
  936. var iList = parse(true);
  937. var iRet = parse(true, 1, true);
  938. ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>';
  939. } else {
  940. ret = name;
  941. }
  942. paramLoop: while (i < func.length && limit-- > 0) {
  943. //dump('paramLoop');
  944. var c = func[i++];
  945. if (c in basicTypes) {
  946. list.push(basicTypes[c]);
  947. } else {
  948. switch (c) {
  949. case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer
  950. case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
  951. case 'L': { // literal
  952. i++; // skip basic type
  953. var end = func.indexOf('E', i);
  954. var size = end - i;
  955. list.push(func.substr(i, size));
  956. i += size + 2; // size + 'EE'
  957. break;
  958. }
  959. case 'A': { // array
  960. var size = parseInt(func.substr(i));
  961. i += size.toString().length;
  962. if (func[i] !== '_') throw '?';
  963. i++; // skip _
  964. list.push(parse(true, 1, true)[0] + ' [' + size + ']');
  965. break;
  966. }
  967. case 'E': break paramLoop;
  968. default: ret += '?' + c; break paramLoop;
  969. }
  970. }
  971. }
  972. if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void)
  973. if (rawList) {
  974. if (ret) {
  975. list.push(ret + '?');
  976. }
  977. return list;
  978. } else {
  979. return ret + flushList();
  980. }
  981. }
  982. try {
  983. // Special-case the entry point, since its name differs from other name mangling.
  984. if (func == 'Object._main' || func == '_main') {
  985. return 'main()';
  986. }
  987. if (typeof func === 'number') func = Pointer_stringify(func);
  988. if (func[0] !== '_') return func;
  989. if (func[1] !== '_') return func; // C function
  990. if (func[2] !== 'Z') return func;
  991. switch (func[3]) {
  992. case 'n': return 'operator new()';
  993. case 'd': return 'operator delete()';
  994. }
  995. return parse();
  996. } catch(e) {
  997. return func;
  998. }
  999. }
  1000. function demangleAll(text) {
  1001. return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') });
  1002. }
  1003. function stackTrace() {
  1004. var stack = new Error().stack;
  1005. return stack ? demangleAll(stack) : '(no stack trace available)'; // Stack trace is not available at least on IE10 and Safari 6.
  1006. }
  1007. // Memory management
  1008. var PAGE_SIZE = 4096;
  1009. function alignMemoryPage(x) {
  1010. return (x+4095)&-4096;
  1011. }
  1012. var HEAP;
  1013. var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
  1014. var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
  1015. var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
  1016. var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
  1017. function enlargeMemory() {
  1018. 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.');
  1019. }
  1020. var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
  1021. var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;
  1022. var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
  1023. var totalMemory = 4096;
  1024. while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
  1025. if (totalMemory < 16*1024*1024) {
  1026. totalMemory *= 2;
  1027. } else {
  1028. totalMemory += 16*1024*1024
  1029. }
  1030. }
  1031. if (totalMemory !== TOTAL_MEMORY) {
  1032. Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be more reasonable');
  1033. TOTAL_MEMORY = totalMemory;
  1034. }
  1035. // Initialize the runtime's memory
  1036. // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
  1037. assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
  1038. 'JS engine does not provide full typed array support');
  1039. var buffer = new ArrayBuffer(TOTAL_MEMORY);
  1040. HEAP8 = new Int8Array(buffer);
  1041. HEAP16 = new Int16Array(buffer);
  1042. HEAP32 = new Int32Array(buffer);
  1043. HEAPU8 = new Uint8Array(buffer);
  1044. HEAPU16 = new Uint16Array(buffer);
  1045. HEAPU32 = new Uint32Array(buffer);
  1046. HEAPF32 = new Float32Array(buffer);
  1047. HEAPF64 = new Float64Array(buffer);
  1048. // Endianness check (note: assumes compiler arch was little-endian)
  1049. HEAP32[0] = 255;
  1050. assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
  1051. Module['HEAP'] = HEAP;
  1052. Module['HEAP8'] = HEAP8;
  1053. Module['HEAP16'] = HEAP16;
  1054. Module['HEAP32'] = HEAP32;
  1055. Module['HEAPU8'] = HEAPU8;
  1056. Module['HEAPU16'] = HEAPU16;
  1057. Module['HEAPU32'] = HEAPU32;
  1058. Module['HEAPF32'] = HEAPF32;
  1059. Module['HEAPF64'] = HEAPF64;
  1060. function callRuntimeCallbacks(callbacks) {
  1061. while(callbacks.length > 0) {
  1062. var callback = callbacks.shift();
  1063. if (typeof callback == 'function') {
  1064. callback();
  1065. continue;
  1066. }
  1067. var func = callback.func;
  1068. if (typeof func === 'number') {
  1069. if (callback.arg === undefined) {
  1070. Runtime.dynCall('v', func);
  1071. } else {
  1072. Runtime.dynCall('vi', func, [callback.arg]);
  1073. }
  1074. } else {
  1075. func(callback.arg === undefined ? null : callback.arg);
  1076. }
  1077. }
  1078. }
  1079. var __ATPRERUN__ = []; // functions called before the runtime is initialized
  1080. var __ATINIT__ = []; // functions called during startup
  1081. var __ATMAIN__ = []; // functions called when main() is to be run
  1082. var __ATEXIT__ = []; // functions called during shutdown
  1083. var __ATPOSTRUN__ = []; // functions called after the runtime has exited
  1084. var runtimeInitialized = false;
  1085. function preRun() {
  1086. // compatibility - merge in anything from Module['preRun'] at this time
  1087. if (Module['preRun']) {
  1088. if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
  1089. while (Module['preRun'].length) {
  1090. addOnPreRun(Module['preRun'].shift());
  1091. }
  1092. }
  1093. callRuntimeCallbacks(__ATPRERUN__);
  1094. }
  1095. function ensureInitRuntime() {
  1096. if (runtimeInitialized) return;
  1097. runtimeInitialized = true;
  1098. callRuntimeCallbacks(__ATINIT__);
  1099. }
  1100. function preMain() {
  1101. callRuntimeCallbacks(__ATMAIN__);
  1102. }
  1103. function exitRuntime() {
  1104. callRuntimeCallbacks(__ATEXIT__);
  1105. }
  1106. function postRun() {
  1107. // compatibility - merge in anything from Module['postRun'] at this time
  1108. if (Module['postRun']) {
  1109. if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
  1110. while (Module['postRun'].length) {
  1111. addOnPostRun(Module['postRun'].shift());
  1112. }
  1113. }
  1114. callRuntimeCallbacks(__ATPOSTRUN__);
  1115. }
  1116. function addOnPreRun(cb) {
  1117. __ATPRERUN__.unshift(cb);
  1118. }
  1119. Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun;
  1120. function addOnInit(cb) {
  1121. __ATINIT__.unshift(cb);
  1122. }
  1123. Module['addOnInit'] = Module.addOnInit = addOnInit;
  1124. function addOnPreMain(cb) {
  1125. __ATMAIN__.unshift(cb);
  1126. }
  1127. Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain;
  1128. function addOnExit(cb) {
  1129. __ATEXIT__.unshift(cb);
  1130. }
  1131. Module['addOnExit'] = Module.addOnExit = addOnExit;
  1132. function addOnPostRun(cb) {
  1133. __ATPOSTRUN__.unshift(cb);
  1134. }
  1135. Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun;
  1136. // Tools
  1137. // This processes a JS string into a C-line array of numbers, 0-terminated.
  1138. // For LLVM-originating strings, see parser.js:parseLLVMString function
  1139. function intArrayFromString(stringy, dontAddNull, length /* optional */) {
  1140. var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
  1141. if (length) {
  1142. ret.length = length;
  1143. }
  1144. if (!dontAddNull) {
  1145. ret.push(0);
  1146. }
  1147. return ret;
  1148. }
  1149. Module['intArrayFromString'] = intArrayFromString;
  1150. function intArrayToString(array) {
  1151. var ret = [];
  1152. for (var i = 0; i < array.length; i++) {
  1153. var chr = array[i];
  1154. if (chr > 0xFF) {
  1155. chr &= 0xFF;
  1156. }
  1157. ret.push(String.fromCharCode(chr));
  1158. }
  1159. return ret.join('');
  1160. }
  1161. Module['intArrayToString'] = intArrayToString;
  1162. // Write a Javascript array to somewhere in the heap
  1163. function writeStringToMemory(string, buffer, dontAddNull) {
  1164. var array = intArrayFromString(string, dontAddNull);
  1165. var i = 0;
  1166. while (i < array.length) {
  1167. var chr = array[i];
  1168. HEAP8[(((buffer)+(i))|0)]=chr;
  1169. i = i + 1;
  1170. }
  1171. }
  1172. Module['writeStringToMemory'] = writeStringToMemory;
  1173. function writeArrayToMemory(array, buffer) {
  1174. for (var i = 0; i < array.length; i++) {
  1175. HEAP8[(((buffer)+(i))|0)]=array[i];
  1176. }
  1177. }
  1178. Module['writeArrayToMemory'] = writeArrayToMemory;
  1179. function writeAsciiToMemory(str, buffer, dontAddNull) {
  1180. for (var i = 0; i < str.length; i++) {
  1181. HEAP8[(((buffer)+(i))|0)]=str.charCodeAt(i);
  1182. }
  1183. if (!dontAddNull) HEAP8[(((buffer)+(str.length))|0)]=0;
  1184. }
  1185. Module['writeAsciiToMemory'] = writeAsciiToMemory;
  1186. function unSign(value, bits, ignore) {
  1187. if (value >= 0) {
  1188. return value;
  1189. }
  1190. 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
  1191. : Math.pow(2, bits) + value;
  1192. }
  1193. function reSign(value, bits, ignore) {
  1194. if (value <= 0) {
  1195. return value;
  1196. }
  1197. var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
  1198. : Math.pow(2, bits-1);
  1199. 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
  1200. // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
  1201. // TODO: In i64 mode 1, resign the two parts separately and safely
  1202. value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
  1203. }
  1204. return value;
  1205. }
  1206. // check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
  1207. if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
  1208. var ah = a >>> 16;
  1209. var al = a & 0xffff;
  1210. var bh = b >>> 16;
  1211. var bl = b & 0xffff;
  1212. return (al*bl + ((ah*bl + al*bh) << 16))|0;
  1213. };
  1214. Math.imul = Math['imul'];
  1215. var Math_abs = Math.abs;
  1216. var Math_cos = Math.cos;
  1217. var Math_sin = Math.sin;
  1218. var Math_tan = Math.tan;
  1219. var Math_acos = Math.acos;
  1220. var Math_asin = Math.asin;
  1221. var Math_atan = Math.atan;
  1222. var Math_atan2 = Math.atan2;
  1223. var Math_exp = Math.exp;
  1224. var Math_log = Math.log;
  1225. var Math_sqrt = Math.sqrt;
  1226. var Math_ceil = Math.ceil;
  1227. var Math_floor = Math.floor;
  1228. var Math_pow = Math.pow;
  1229. var Math_imul = Math.imul;
  1230. var Math_fround = Math.fround;
  1231. var Math_min = Math.min;
  1232. // A counter of dependencies for calling run(). If we need to
  1233. // do asynchronous work before running, increment this and
  1234. // decrement it. Incrementing must happen in a place like
  1235. // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
  1236. // Note that you can add dependencies in preRun, even though
  1237. // it happens right before run - run will be postponed until
  1238. // the dependencies are met.
  1239. var runDependencies = 0;
  1240. var runDependencyWatcher = null;
  1241. var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
  1242. function addRunDependency(id) {
  1243. runDependencies++;
  1244. if (Module['monitorRunDependencies']) {
  1245. Module['monitorRunDependencies'](runDependencies);
  1246. }
  1247. }
  1248. Module['addRunDependency'] = addRunDependency;
  1249. function removeRunDependency(id) {
  1250. runDependencies--;
  1251. if (Module['monitorRunDependencies']) {
  1252. Module['monitorRunDependencies'](runDependencies);
  1253. }
  1254. if (runDependencies == 0) {
  1255. if (runDependencyWatcher !== null) {
  1256. clearInterval(runDependencyWatcher);
  1257. runDependencyWatcher = null;
  1258. }
  1259. if (dependenciesFulfilled) {
  1260. var callback = dependenciesFulfilled;
  1261. dependenciesFulfilled = null;
  1262. callback(); // can add another dependenciesFulfilled
  1263. }
  1264. }
  1265. }
  1266. Module['removeRunDependency'] = removeRunDependency;
  1267. Module["preloadedImages"] = {}; // maps url to image data
  1268. Module["preloadedAudios"] = {}; // maps url to audio data
  1269. var memoryInitializer = null;
  1270. // === Body ===
  1271. STATIC_BASE = 8;
  1272. STATICTOP = STATIC_BASE + Runtime.alignMemory(13467);
  1273. /* global initializers */ __ATINIT__.push();
  1274. /* memory initializer */ allocate([99,97,110,110,111,116,32,99,114,101,97,116,101,32,115,116,97,116,101,58,32,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,40,101,114,114,111,114,32,111,98,106,101,99,116,32,105,115,32,110,111,116,32,97,32,115,116,114,105,110,103,41,0,0,88,0,0,0,0,0,0,0,108,117,97,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,112,114,105,110,116,0,0,0,0,0,0,0,112,114,105,110,116,0,0,0,101,114,114,111,114,32,99,97,108,108,105,110,103,32,39,112,114,105,110,116,39,32,40,37,115,41,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,116,101,114,114,117,112,116,101,100,33,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,40,110,111,32,101,114,114,111,114,32,109,101,115,115,97,103,101,41,0,0,0,0,0,0,61,115,116,100,105,110,0,0,60,101,111,102,62,0,0,0,114,101,116,117,114,110,32,37,115,0,0,0,0,0,0,0,95,80,82,79,77,80,84,0,95,80,82,79,77,80,84,50,0,0,0,0,0,0,0,0,62,32,0,0,0,0,0,0,62,62,32,0,0,0,0,0,97,114,103,0,0,0,0,0,45,0,0,0,0,0,0,0,45,45,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,115,99,114,105,112,116,0,0,0,0,61,40,99,111,109,109,97,110,100,32,108,105,110,101,41,0,114,101,113,117,105,114,101,0,61,76,85,65,95,73,78,73,84,95,53,95,50,0,0,0,61,76,85,65,95,73,78,73,84,0,0,0,0,0,0,0,76,117,97,32,53,46,50,46,50,32,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,52,45,50,48,49,51,32,76,117,97,46,111,114,103,44,32,80,85,67,45,82,105,111,0,0,0,0,0,37,115,58,32,0,0,0,0,39,37,115,39,32,110,101,101,100,115,32,97,114,103,117,109,101,110,116,10,0,0,0,0,117,110,114,101,99,111,103,110,105,122,101,100,32,111,112,116,105,111,110,32,39,37,115,39,10,0,0,0,0,0,0,0,117,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,115,99,114,105,112,116,32,91,97,114,103,115,93,93,10,65,118,97,105,108,97,98,108,101,32,111,112,116,105,111,110,115,32,97,114,101,58,10,32,32,45,101,32,115,116,97,116,32,32,101,120,101,99,117,116,101,32,115,116,114,105,110,103,32,39,115,116,97,116,39,10,32,32,45,105,32,32,32,32,32,32,32,101,110,116,101,114,32,105,110,116,101,114,97,99,116,105,118,101,32,109,111,100,101,32,97,102,116,101,114,32,101,120,101,99,117,116,105,110,103,32,39,115,99,114,105,112,116,39,10,32,32,45,108,32,110,97,109,101,32,32,114,101,113,117,105,114,101,32,108,105,98,114,97,114,121,32,39,110,97,109,101,39,10,32,32,45,118,32,32,32,32,32,32,32,115,104,111,119,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,45,69,32,32,32,32,32,32,32,105,103,110,111,114,101,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,115,10,32,32,45,45,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,10,32,32,45,32,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,32,97,110,100,32,101,120,101,99,117,116,101,32,115,116,100,105,110,10,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,0,0,0,0,0,96,127,64,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,58,0,0,0,0,0,0,0,0,10,9,46,46,46,0,0,0,83,108,110,116,0,0,0,0,10,9,37,115,58,0,0,0,37,100,58,0,0,0,0,0,32,105,110,32,0,0,0,0,10,9,40,46,46,46,116,97,105,108,32,99,97,108,108,115,46,46,46,41,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,40,37,115,41,0,0,0,110,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,99,97,108,108,105,110,103,32,39,37,115,39,32,111,110,32,98,97,100,32,115,101,108,102,32,40,37,115,41,0,0,0,63,0,0,0,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,116,111,32,39,37,115,39,32,40,37,115,41,0,0,0,83,108,0,0,0,0,0,0,37,115,58,37,100,58,32,0,0,0,0,0,0,0,0,0,37,115,58,32,37,115,0,0,101,120,105,116,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,115,39,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,32,40,37,115,41,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,98,117,102,102,101,114,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,61,115,116,100,105,110,0,0,64,37,115,0,0,0,0,0,114,0,0,0,0,0,0,0,111,112,101,110,0,0,0,0,114,98,0,0,0,0,0,0,114,101,111,112,101,110,0,0,114,101,97,100,0,0,0,0,111,98,106,101,99,116,32,108,101,110,103,116,104,32,105,115,32,110,111,116,32,97,32,110,117,109,98,101,114,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,110,105,108,0,0,0,0,0,37,115,58,32,37,112,0,0,95,76,79,65,68,69,68,0,110,97,109,101,32,99,111,110,102,108,105,99,116,32,102,111,114,32,109,111,100,117,108,101,32,39,37,115,39,0,0,0,116,111,111,32,109,97,110,121,32,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,109,117,108,116,105,112,108,101,32,76,117,97,32,86,77,115,32,100,101,116,101,99,116,101,100,0,0,0,0,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,58,32,97,112,112,46,32,110,101,101,100,115,32,37,102,44,32,76,117,97,32,99,111,114,101,32,112,114,111,118,105,100,101,115,32,37,102,0,0,0,98,97,100,32,99,111,110,118,101,114,115,105,111,110,32,110,117,109,98,101,114,45,62,105,110,116,59,32,109,117,115,116,32,114,101,99,111,109,112,105,108,101,32,76,117,97,32,119,105,116,104,32,112,114,111,112,101,114,32,115,101,116,116,105,110,103,115,0,0,0,0,0,80,65,78,73,67,58,32,117,110,112,114,111,116,101,99,116,101,100,32,101,114,114,111,114,32,105,110,32,99,97,108,108,32,116,111,32,76,117,97,32,65,80,73,32,40,37,115,41,10,0,0,0,0,0,0,0,239,187,191,0,0,0,0,0,99,97,110,110,111,116,32,37,115,32,37,115,58,32,37,115,0,0,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,37,115,0,0,0,0,0,102,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,39,37,115,39,0,0,0,109,97,105,110,32,99,104,117,110,107,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,60,37,115,58,37,100,62,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,37,115,32,39,37,115,39,32,40,97,32,37,115,32,118,97,108,117,101,41,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,97,32,37,115,32,118,97,108,117,101,0,0,0,0,0,0,0,0,99,111,110,99,97,116,101,110,97,116,101,0,0,0,0,0,112,101,114,102,111,114,109,32,97,114,105,116,104,109,101,116,105,99,32,111,110,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,116,119,111,32,37,115,32,118,97,108,117,101,115,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,37,115,32,119,105,116,104,32,37,115,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,108,111,99,97,108,0,0,0,95,69,78,86,0,0,0,0,103,108,111,98,97,108,0,0,102,105,101,108,100,0,0,0,117,112,118,97,108,117,101,0,99,111,110,115,116,97,110,116,0,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,111,114,32,105,116,101,114,97,116,111,114,0,0,0,0,109,101,116,97,109,101,116,104,111,100,0,0,0,0,0,0,61,91,67,93,0,0,0,0,67,0,0,0,0,0,0,0,61,63,0,0,0,0,0,0,109,97,105,110,0,0,0,0,76,117,97,0,0,0,0,0,40,42,116,101,109,112,111,114,97,114,121,41,0,0,0,0,40,42,118,97,114,97,114,103,41,0,0,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,67,32,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,97,99,114,111,115,115,32,97,32,67,45,99,97,108,108,32,98,111,117,110,100,97,114,121,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,102,114,111,109,32,111,117,116,115,105,100,101,32,97,32,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,98,105,110,97,114,121,0,0,116,101,120,116,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,108,111,97,100,32,97,32,37,115,32,99,104,117,110,107,32,40,109,111,100,101,32,105,115,32,39,37,115,39,41,0,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,110,111,110,45,115,117,115,112,101,110,100,101,100,32,99,111,114,111,117,116,105,110,101,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,99,97,108,108,0,0,0,0,110,111,32,109,101,115,115,97,103,101,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,95,95,103,99,32,109,101,116,97,109,101,116,104,111,100,32,40,37,115,41,0,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,95,71,0,0,0,0,0,0,112,97,99,107,97,103,101,0,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,116,97,98,108,101,0,0,0,105,111,0,0,0,0,0,0,111,115,0,0,0,0,0,0,115,116,114,105,110,103,0,0,98,105,116,51,50,0,0,0,109,97,116,104,0,0,0,0,100,101,98,117,103,0,0,0,144,11,0,0,1,0,0,0,152,11,0,0,2,0,0,0,48,13,0,0,3,0,0,0,160,11,0,0,4,0,0,0,56,13,0,0,5,0,0,0,64,13,0,0,6,0,0,0,72,13,0,0,7,0,0,0,168,11,0,0,8,0,0,0,80,13,0,0,9,0,0,0,88,13,0,0,10,0,0,0,192,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,95,73,79,95,105,110,112,117,116,0,0,0,0,0,0,0,115,116,100,105,110,0,0,0,95,73,79,95,111,117,116,112,117,116,0,0,0,0,0,0,115,116,100,111,117,116,0,0,115,116,100,101,114,114,0,0,70,73,76,69,42,0,0,0,99,97,110,110,111,116,32,99,108,111,115,101,32,115,116,97,110,100,97,114,100,32,102,105,108,101,0,0,0,0,0,0,95,95,105,110,100,101,120,0,144,11,0,0,1,0,0,0,152,11,0,0,12,0,0,0,160,11,0,0,13,0,0,0,168,11,0,0,14,0,0,0,176,11,0,0,15,0,0,0,184,11,0,0,16,0,0,0,192,11,0,0,17,0,0,0,200,11,0,0,18,0,0,0,208,11,0,0,19,0,0,0,0,0,0,0,0,0,0,0,99,108,111,115,101,0,0,0,102,108,117,115,104,0,0,0,108,105,110,101,115,0,0,0,114,101,97,100,0,0,0,0,115,101,101,107,0,0,0,0,115,101,116,118,98,117,102,0,119,114,105,116,101,0,0,0,95,95,103,99,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,102,105,108,101,32,40,99,108,111,115,101,100,41,0,0,0,102,105,108,101,32,40,37,112,41,0,0,0,0,0,0,0,37,46,49,52,103,0,0,0,97,116,116,101,109,112,116,32,116,111,32,117,115,101,32,97,32,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,72,12,0,0,80,12,0,0,88,12,0,0,0,0,0,0,110,111,0,0,0,0,0,0,102,117,108,108,0,0,0,0,108,105,110,101,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,128,12,0,0,136,12,0,0,144,12,0,0,0,0,0,0,115,101,116,0,0,0,0,0,99,117,114,0,0,0,0,0,101,110,100,0,0,0,0,0,110,111,116,32,97,110,32,105,110,116,101,103,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,0,0,37,108,102,0,0,0,0,0,116,111,111,32,109,97,110,121,32,111,112,116,105,111,110,115,0,0,0,0,0,0,0,0,102,105,108,101,32,105,115,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,0,0,37,115,0,0,0,0,0,0,105,110,112,117,116,0,0,0,111,112,101,110,0,0,0,0,111,117,116,112,117,116,0,0,112,111,112,101,110,0,0,0,116,109,112,102,105,108,101,0,116,121,112,101,0,0,0,0,115,116,97,110,100,97,114,100,32,37,115,32,102,105,108,101,32,105,115,32,99,108,111,115,101,100,0,0,0,0,0,0,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,0,102,105,108,101,0,0,0,0,114,0,0,0,0,0,0,0,39,112,111,112,101,110,39,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,119,0,0,0,0,0,0,0,99,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,32,39,37,115,39,32,40,37,115,41,0,0,0,0,0,0,114,119,97,0,0,0,0,0,105,110,118,97,108,105,100,32,109,111,100,101,0,0,0,0,240,14,0,0,20,0,0,0,248,14,0,0,21,0,0,0,0,15,0,0,22,0,0,0,8,15,0,0,23,0,0,0,16,15,0,0,24,0,0,0,24,15,0,0,25,0,0,0,32,15,0,0,26,0,0,0,40,15,0,0,27,0,0,0,48,15,0,0,28,0,0,0,56,15,0,0,29,0,0,0,64,15,0,0,30,0,0,0,72,15,0,0,31,0,0,0,80,15,0,0,32,0,0,0,88,15,0,0,33,0,0,0,96,15,0,0,34,0,0,0,104,15,0,0,35,0,0,0,112,15,0,0,36,0,0,0,120,15,0,0,37,0,0,0,128,15,0,0,38,0,0,0,136,15,0,0,39,0,0,0,144,15,0,0,40,0,0,0,152,15,0,0,41,0,0,0,160,15,0,0,42,0,0,0,176,15,0,0,43,0,0,0,184,15,0,0,44,0,0,0,192,15,0,0,45,0,0,0,200,15,0,0,46,0,0,0,208,15,0,0,47,0,0,0,0,0,0,0,0,0,0,0,112,105,0,0,0,0,0,0,104,117,103,101,0,0,0,0,97,98,115,0,0,0,0,0,97,99,111,115,0,0,0,0,97,115,105,110,0,0,0,0,97,116,97,110,50,0,0,0,97,116,97,110,0,0,0,0,99,101,105,108,0,0,0,0,99,111,115,104,0,0,0,0,99,111,115,0,0,0,0,0,100,101,103,0,0,0,0,0,101,120,112,0,0,0,0,0,102,108,111,111,114,0,0,0,102,109,111,100,0,0,0,0,102,114,101,120,112,0,0,0,108,100,101,120,112,0,0,0,108,111,103,49,48,0,0,0,108,111,103,0,0,0,0,0,109,97,120,0,0,0,0,0,109,105,110,0,0,0,0,0,109,111,100,102,0,0,0,0,112,111,119,0,0,0,0,0,114,97,100,0,0,0,0,0,114,97,110,100,111,109,0,0,114,97,110,100,111,109,115,101,101,100,0,0,0,0,0,0,115,105,110,104,0,0,0,0,115,105,110,0,0,0,0,0,115,113,114,116,0,0,0,0,116,97,110,104,0,0,0,0,116,97,110,0,0,0,0,0,105,110,116,101,114,118,97,108,32,105,115,32,101,109,112,116,121,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,0,0,0,0,0,0,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,101,114,114,111,114,58,32,98,108,111,99,107,32,116,111,111,32,98,105,103,0,0,95,67,76,73,66,83,0,0,95,95,103,99,0,0,0,0,16,20,0,0,48,0,0,0,24,20,0,0,49,0,0,0,40,20,0,0,50,0,0,0,0,0,0,0,0,0,0,0,108,111,97,100,101,114,115,0,115,101,97,114,99,104,101,114,115,0,0,0,0,0,0,0,112,97,116,104,0,0,0,0,76,85,65,95,80,65,84,72,95,53,95,50,0,0,0,0,76,85,65,95,80,65,84,72,0,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,46,47,63,46,108,117,97,0,0,0,0,0,0,0,99,112,97,116,104,0,0,0,76,85,65,95,67,80,65,84,72,95,53,95,50,0,0,0,76,85,65,95,67,80,65,84,72,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,115,111,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,108,111,97,100,97,108,108,46,115,111,59,46,47,63,46,115,111,0,0,0,0,47,10,59,10,63,10,33,10,45,10,0,0,0,0,0,0,99,111,110,102,105,103,0,0,95,76,79,65,68,69,68,0,108,111,97,100,101,100,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,112,114,101,108,111,97,100,0,32,18,0,0,51,0,0,0,40,18,0,0,52,0,0,0,0,0,0,0,0,0,0,0,109,111,100,117,108,101,0,0,114,101,113,117,105,114,101,0,39,112,97,99,107,97,103,101,46,115,101,97,114,99,104,101,114,115,39,32,109,117,115,116,32,98,101,32,97,32,116,97,98,108,101,0,0,0,0,0,109,111,100,117,108,101,32,39,37,115,39,32,110,111,116,32,102,111,117,110,100,58,37,115,0,0,0,0,0,0,0,0,95,78,65,77,69,0,0,0,102,0,0,0,0,0,0,0,39,109,111,100,117,108,101,39,32,110,111,116,32,99,97,108,108,101,100,32,102,114,111,109,32,97,32,76,117,97,32,102,117,110,99,116,105,111,110,0,95,77,0,0,0,0,0,0,95,80,65,67,75,65,71,69,0,0,0,0,0,0,0,0,59,59,0,0,0,0,0,0,59,1,59,0,0,0,0,0,1,0,0,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,10,9,110,111,32,109,111,100,117,108,101,32,39,37,115,39,32,105,110,32,102,105,108,101,32,39,37,115,39,0,0,0,101,114,114,111,114,32,108,111,97,100,105,110,103,32,109,111,100,117,108,101,32,39,37,115,39,32,102,114,111,109,32,102,105,108,101,32,39,37,115,39,58,10,9,37,115,0,0,0,46,0,0,0,0,0,0,0,95,0,0,0,0,0,0,0,108,117,97,111,112,101,110,95,37,115,0,0,0,0,0,0,100,121,110,97,109,105,99,32,108,105,98,114,97,114,105,101,115,32,110,111,116,32,101,110,97,98,108,101,100,59,32,99,104,101,99,107,32,121,111,117,114,32,76,117,97,32,105,110,115,116,97,108,108,97,116,105,111,110,0,0,0,0,0,0,39,112,97,99,107,97,103,101,46,37,115,39,32,109,117,115,116,32,98,101,32,97,32,115,116,114,105,110,103,0,0,0,63,0,0,0,0,0,0,0,10,9,110,111,32,102,105,108,101,32,39,37,115,39,0,0,114,0,0,0,0,0,0,0,10,9,110,111,32,102,105,101,108,100,32,112,97,99,107,97,103,101,46,112,114,101,108,111,97,100,91,39,37,115,39,93,0,0,0,0,0,0,0,0,108,111,97,100,108,105,98,0,115,101,97,114,99,104,112,97,116,104,0,0,0,0,0,0,115,101,101,97,108,108,0,0,95,95,105,110,100,101,120,0,97,98,115,101,110,116,0,0,105,110,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,110,78,0,0,0,0,0,0,120,88,0,0,0,0,0,0,40,110,117,108,108,41,0,0,37,112,0,0,0,0,0,0,37,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,108,117,97,95,112,117,115,104,102,115,116,114,105,110,103,39,0,0,0,0,0,0,46,46,46,0,0,0,0,0,91,115,116,114,105,110,103,32,34,0,0,0,0,0,0,0,34,93,0,0,0,0,0,0,96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23,88,22,0,0,53,0,0,0,96,22,0,0,54,0,0,0,104,22,0,0,55,0,0,0,120,22,0,0,56,0,0,0,128,22,0,0,57,0,0,0,136,22,0,0,58,0,0,0,144,22,0,0,59,0,0,0,152,22,0,0,60,0,0,0,160,22,0,0,61,0,0,0,176,22,0,0,62,0,0,0,184,22,0,0,63,0,0,0,0,0,0,0,0,0,0,0,99,108,111,99,107,0,0,0,100,97,116,101,0,0,0,0,100,105,102,102,116,105,109,101,0,0,0,0,0,0,0,0,101,120,101,99,117,116,101,0,101,120,105,116,0,0,0,0,103,101,116,101,110,118,0,0,114,101,109,111,118,101,0,0,114,101,110,97,109,101,0,0,115,101,116,108,111,99,97,108,101,0,0,0,0,0,0,0,116,105,109,101,0,0,0,0,116,109,112,110,97,109,101,0,117,110,97,98,108,101,32,116,111,32,103,101,110,101,114,97,116,101,32,97,32,117,110,105,113,117,101,32,102,105,108,101,110,97,109,101,0,0,0,0,115,101,99,0,0,0,0,0,109,105,110,0,0,0,0,0,104,111,117,114,0,0,0,0,100,97,121,0,0,0,0,0,109,111,110,116,104,0,0,0,121,101,97,114,0,0,0,0,105,115,100,115,116,0,0,0,102,105,101,108,100,32,39,37,115,39,32,109,105,115,115,105,110,103,32,105,110,32,100,97,116,101,32,116,97,98,108,101,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,128,23,0,0,136,23,0,0,144,23,0,0,152,23,0,0,168,23,0,0,176,22,0,0,0,0,0,0,0,0,0,0,97,108,108,0,0,0,0,0,99,111,108,108,97,116,101,0,99,116,121,112,101,0,0,0,109,111,110,101,116,97,114,121,0,0,0,0,0,0,0,0,110,117,109,101,114,105,99,0,37,99,0,0,0,0,0,0,42,116,0,0,0,0,0,0,119,100,97,121,0,0,0,0,121,100,97,121,0,0,0,0,97,65,98,66,99,100,72,73,106,109,77,112,83,85,119,87,120,88,121,89,122,37,0,0,105,110,118,97,108,105,100,32,99,111,110,118,101,114,115,105,111,110,32,115,112,101,99,105,102,105,101,114,32,39,37,37,37,115,39,0,0,0,0,0,60,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,110,111,116,32,105,110,115,105,100,101,32,97,32,108,111,111,112,0,0,0,0,0,0,0,110,111,32,118,105,115,105,98,108,101,32,108,97,98,101,108,32,39,37,115,39,32,102,111,114,32,60,103,111,116,111,62,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,60,103,111,116,111,32,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,106,117,109,112,115,32,105,110,116,111,32,116,104,101,32,115,99,111,112,101,32,111,102,32,108,111,99,97,108,32,39,37,115,39,0,98,114,101,97,107,0,0,0,108,97,98,101,108,115,47,103,111,116,111,115,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,115,121,110,116,97,120,32,101,114,114,111,114,0,0,0,0,67,32,108,101,118,101,108,115,0,0,0,0,0,0,0,0,6,6,6,6,7,7,7,7,7,7,10,9,5,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,0,0,99,97,110,110,111,116,32,117,115,101,32,39,46,46,46,39,32,111,117,116,115,105,100,101,32,97,32,118,97,114,97,114,103,32,102,117,110,99,116,105,111,110,0,0,0,0,0,0,115,101,108,102,0,0,0,0,60,110,97,109,101,62,32,111,114,32,39,46,46,46,39,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,108,111,99,97,108,32,118,97,114,105,97,98,108,101,115,0,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,105,116,101,109,115,32,105,110,32,97,32,99,111,110,115,116,114,117,99,116,111,114,0,0,109,97,105,110,32,102,117,110,99,116,105,111,110,0,0,0,102,117,110,99,116,105,111,110,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,32,105,110,32,37,115,0,102,117,110,99,116,105,111,110,32,97,114,103,117,109,101,110,116,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,117,110,101,120,112,101,99,116,101,100,32,115,121,109,98,111,108,0,0,0,0,0,0,0,108,97,98,101,108,32,39,37,115,39,32,97,108,114,101,97,100,121,32,100,101,102,105,110,101,100,32,111,110,32,108,105,110,101,32,37,100,0,0,0,39,61,39,32,111,114,32,39,105,110,39,32,101,120,112,101,99,116,101,100,0,0,0,0,40,102,111,114,32,103,101,110,101,114,97,116,111,114,41,0,40,102,111,114,32,115,116,97,116,101,41,0,0,0,0,0,40,102,111,114,32,99,111,110,116,114,111,108,41,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,0,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,0,0,0,0,40,102,111,114,32,115,116,101,112,41,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,32,40,116,111,32,99,108,111,115,101,32,37,115,32,97,116,32,108,105,110,101,32,37,100,41,0,0,0,0,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,0,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,0,0,0,0,0,144,27,0,0,64,0,0,0,152,27,0,0,65,0,0,0,160,27,0,0,66,0,0,0,168,27,0,0,67,0,0,0,176,27,0,0,68,0,0,0,184,27,0,0,69,0,0,0,192,27,0,0,70,0,0,0,200,27,0,0,71,0,0,0,208,27,0,0,72,0,0,0,216,27,0,0,73,0,0,0,224,27,0,0,74,0,0,0,232,27,0,0,75,0,0,0,240,27,0,0,76,0,0,0,248,27,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,95,105,110,100,101,120,0,98,121,116,101,0,0,0,0,99,104,97,114,0,0,0,0,100,117,109,112,0,0,0,0,102,105,110,100,0,0,0,0,102,111,114,109,97,116,0,0,103,109,97,116,99,104,0,0,103,115,117,98,0,0,0,0,108,101,110,0,0,0,0,0,108,111,119,101,114,0,0,0,109,97,116,99,104,0,0,0,114,101,112,0,0,0,0,0,114,101,118,101,114,115,101,0,115,117,98,0,0,0,0,0,117,112,112,101,114,0,0,0,114,101,115,117,108,116,105,110,103,32,115,116,114,105,110,103,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,99,97,112,116,117,114,101,115,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,0,0,0,117,110,102,105,110,105,115,104,101,100,32,99,97,112,116,117,114,101,0,0,0,0,0,0,112,97,116,116,101,114,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,109,105,115,115,105,110,103,32,39,91,39,32,97,102,116,101,114,32,39,37,37,102,39,32,105,110,32,112,97,116,116,101,114,110,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,32,37,37,37,100,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,101,110,100,115,32,119,105,116,104,32,39,37,37,39,41,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,39,93,39,41,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,37,37,98,39,41,0,0,105,110,118,97,108,105,100,32,112,97,116,116,101,114,110,32,99,97,112,116,117,114,101,0,94,36,42,43,63,46,40,91,37,45,0,0,0,0,0,0,115,116,114,105,110,103,47,102,117,110,99,116,105,111,110,47,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,105,110,118,97,108,105,100,32,114,101,112,108,97,99,101,109,101,110,116,32,118,97,108,117,101,32,40,97,32,37,115,41,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,115,101,32,111,102,32,39,37,99,39,32,105,110,32,114,101,112,108,97,99,101,109,101,110,116,32,115,116,114,105,110,103,0,0,0,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,111,116,32,97,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,110,111,116,32,97,32,110,111,110,45,110,101,103,97,116,105,118,101,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,102,111,114,109,97,116,39,0,0,0,0,0,0,0,92,37,100,0,0,0,0,0,92,37,48,51,100,0,0,0,45,43,32,35,48,0,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,114,101,112,101,97,116,101,100,32,102,108,97,103,115,41,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,119,105,100,116,104,32,111,114,32,112,114,101,99,105,115,105,111,110,32,116,111,111,32,108,111,110,103,41,0,0,0,0,117,110,97,98,108,101,32,116,111,32,100,117,109,112,32,103,105,118,101,110,32,102,117,110,99,116,105,111,110,0,0,0,118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,115,116,114,105,110,103,32,115,108,105,99,101,32,116,111,111,32,108,111,110,103,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,110,105,108,0,0,0,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,78,97,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,0,105,110,118,97,108,105,100,32,107,101,121,32,116,111,32,39,110,101,120,116,39,0,0,0,224,31,0,0,78,0,0,0,232,31,0,0,79,0,0,0,240,31,0,0,80,0,0,0,248,31,0,0,81,0,0,0,216,31,0,0,82,0,0,0,0,32,0,0,83,0,0,0,8,32,0,0,84,0,0,0,0,0,0,0,0,0,0,0,117,110,112,97,99,107,0,0,99,111,110,99,97,116,0,0,109,97,120,110,0,0,0,0,105,110,115,101,114,116,0,0,112,97,99,107,0,0,0,0,114,101,109,111,118,101,0,0,115,111,114,116,0,0,0,0,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,114,100,101,114,32,102,117,110,99,116,105,111,110,32,102,111,114,32,115,111,114,116,105,110,103,0,0,0,0,0,0,112,111,115,105,116,105,111,110,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,117,110,112,97,99,107,0,0,0,0,0,0,110,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,105,110,115,101,114,116,39,0,0,0,105,110,118,97,108,105,100,32,118,97,108,117,101,32,40,37,115,41,32,97,116,32,105,110,100,101,120,32,37,100,32,105,110,32,116,97,98,108,101,32,102,111,114,32,39,99,111,110,99,97,116,39,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,105,108,0,0,0,0,0,98,111,111,108,101,97,110,0,117,115,101,114,100,97,116,97,0,0,0,0,0,0,0,0,110,117,109,98,101,114,0,0,115,116,114,105,110,103,0,0,116,97,98,108,101,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,116,104,114,101,97,100,0,0,112,114,111,116,111,0,0,0,117,112,118,97,108,0,0,0,224,32,0,0,240,32,0,0,248,32,0,0,0,33,0,0,16,33,0,0,24,33,0,0,32,33,0,0,40,33,0,0,0,33,0,0,56,33,0,0,64,33,0,0,72,33,0,0,200,33,0,0,208,33,0,0,224,33,0,0,232,33,0,0,240,33,0,0,248,33,0,0,0,34,0,0,8,34,0,0,16,34,0,0,24,34,0,0,32,34,0,0,40,34,0,0,48,34,0,0,56,34,0,0,64,34,0,0,72,34,0,0,88,34,0,0,0,0,0,0,95,95,105,110,100,101,120,0,95,95,110,101,119,105,110,100,101,120,0,0,0,0,0,0,95,95,103,99,0,0,0,0,95,95,109,111,100,101,0,0,95,95,108,101,110,0,0,0,95,95,101,113,0,0,0,0,95,95,97,100,100,0,0,0,95,95,115,117,98,0,0,0,95,95,109,117,108,0,0,0,95,95,100,105,118,0,0,0,95,95,109,111,100,0,0,0,95,95,112,111,119,0,0,0,95,95,117,110,109,0,0,0,95,95,108,116,0,0,0,0,95,95,108,101,0,0,0,0,95,95,99,111,110,99,97,116,0,0,0,0,0,0,0,0,95,95,99,97,108,108,0,0,98,105,110,97,114,121,32,115,116,114,105,110,103,0,0,0,25,147,13,10,26,10,0,0,116,114,117,110,99,97,116,101,100,0,0,0,0,0,0,0,37,115,58,32,37,115,32,112,114,101,99,111,109,112,105,108,101,100,32,99,104,117,110,107,0,0,0,0,0,0,0,0,99,111,114,114,117,112,116,101,100,0,0,0,0,0,0,0,110,111,116,32,97,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,32,105,110,0,0,0,0,0,105,110,99,111,109,112,97,116,105,98,108,101,0,0,0,0,37,46,49,52,103,0,0,0,105,110,100,101,120,0,0,0,108,111,111,112,32,105,110,32,103,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,108,111,111,112,32,105,110,32,115,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,115,116,114,105,110,103,32,108,101,110,103,116,104,32,111,118,101,114,102,108,111,119,0,0,103,101,116,32,108,101,110,103,116,104,32,111,102,0,0,0,39,102,111,114,39,32,105,110,105,116,105,97,108,32,118,97,108,117,101,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,108,105,109,105,116,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,115,116,101,112,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,0,95,71,0,0,0,0,0,0,152,36,0,0,85,0,0,0,160,36,0,0,86,0,0,0,176,36,0,0,87,0,0,0,184,36,0,0,88,0,0,0,192,36,0,0,89,0,0,0,208,36,0,0,90,0,0,0,216,36,0,0,91,0,0,0,232,36,0,0,92,0,0,0,240,36,0,0,92,0,0,0,0,37,0,0,93,0,0,0,8,37,0,0,94,0,0,0,16,37,0,0,95,0,0,0,24,37,0,0,96,0,0,0,32,37,0,0,97,0,0,0,48,37,0,0,98,0,0,0,56,37,0,0,99,0,0,0,64,37,0,0,100,0,0,0,72,37,0,0,101,0,0,0,80,37,0,0,102,0,0,0,96,37,0,0,103,0,0,0,112,37,0,0,104,0,0,0,128,37,0,0,105,0,0,0,136,37,0,0,106,0,0,0,0,0,0,0,0,0,0,0,76,117,97,32,53,46,50,0,95,86,69,82,83,73,79,78,0,0,0,0,0,0,0,0,97,115,115,101,114,116,0,0,99,111,108,108,101,99,116,103,97,114,98,97,103,101,0,0,100,111,102,105,108,101,0,0,101,114,114,111,114,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,105,112,97,105,114,115,0,0,108,111,97,100,102,105,108,101,0,0,0,0,0,0,0,0,108,111,97,100,0,0,0,0,108,111,97,100,115,116,114,105,110,103,0,0,0,0,0,0,110,101,120,116,0,0,0,0,112,97,105,114,115,0,0,0,112,99,97,108,108,0,0,0,112,114,105,110,116,0,0,0,114,97,119,101,113,117,97,108,0,0,0,0,0,0,0,0,114,97,119,108,101,110,0,0,114,97,119,103,101,116,0,0,114,97,119,115,101,116,0,0,115,101,108,101,99,116,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,116,111,110,117,109,98,101,114,0,0,0,0,0,0,0,0,116,111,115,116,114,105,110,103,0,0,0,0,0,0,0,0,116,121,112,101,0,0,0,0,120,112,99,97,108,108,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,98,97,115,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,0,32,12,10,13,9,11,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,95,95,109,101,116,97,116,97,98,108,101,0,0,0,0,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,97,32,112,114,111,116,101,99,116,101,100,32,109,101,116,97,116,97,98,108,101,0,0,0,0,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,116,97,98,108,101,32,111,114,32,115,116,114,105,110,103,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,39,116,111,115,116,114,105,110,103,39,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,32,116,111,32,39,112,114,105,110,116,39,0,0,0,0,0,0,95,95,112,97,105,114,115,0,98,116,0,0,0,0,0,0,61,40,108,111,97,100,41,0,116,111,111,32,109,97,110,121,32,110,101,115,116,101,100,32,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,114,101,97,100,101,114,32,102,117,110,99,116,105,111,110,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,0,0,0,0,95,95,105,112,97,105,114,115,0,0,0,0,0,0,0,0,40,39,0,0,48,39,0,0,56,39,0,0,64,39,0,0,72,39,0,0,80,39,0,0,96,39,0,0,112,39,0,0,128,39,0,0,144,39,0,0,160,39,0,0,0,0,0,0,115,116,111,112,0,0,0,0,114,101,115,116,97,114,116,0,99,111,108,108,101,99,116,0,99,111,117,110,116,0,0,0,115,116,101,112,0,0,0,0,115,101,116,112,97,117,115,101,0,0,0,0,0,0,0,0,115,101,116,115,116,101,112,109,117,108,0,0,0,0,0,0,115,101,116,109,97,106,111,114,105,110,99,0,0,0,0,0,105,115,114,117,110,110,105,110,103,0,0,0,0,0,0,0,103,101,110,101,114,97,116,105,111,110,97,108,0,0,0,0,105,110,99,114,101,109,101,110,116,97,108,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,37,115,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,33,0,0,0,0,0,0,0,104,40,0,0,107], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
  1275. /* memory initializer */ allocate([112,40,0,0,108,0,0,0,120,40,0,0,109,0,0,0,128,40,0,0,110,0,0,0,136,40,0,0,111,0,0,0,144,40,0,0,112,0,0,0,152,40,0,0,113,0,0,0,160,40,0,0,114,0,0,0,168,40,0,0,115,0,0,0,176,40,0,0,116,0,0,0,184,40,0,0,117,0,0,0,192,40,0,0,118,0,0,0,0,0,0,0,0,0,0,0,97,114,115,104,105,102,116,0,98,97,110,100,0,0,0,0,98,110,111,116,0,0,0,0,98,111,114,0,0,0,0,0,98,120,111,114,0,0,0,0,98,116,101,115,116,0,0,0,101,120,116,114,97,99,116,0,108,114,111,116,97,116,101,0,108,115,104,105,102,116,0,0,114,101,112,108,97,99,101,0,114,114,111,116,97,116,101,0,114,115,104,105,102,116,0,0,102,105,101,108,100,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,0,0,0,0,0,0,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,0,116,114,121,105,110,103,32,116,111,32,97,99,99,101,115,115,32,110,111,110,45,101,120,105,115,116,101,110,116,32,98,105,116,115,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,101,120,112,114,101,115,115,105,111,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,0,99,111,110,115,116,114,117,99,116,111,114,32,116,111,111,32,108,111,110,103,0,0,0,0,99,111,110,115,116,97,110,116,115,0,0,0,0,0,0,0,111,112,99,111,100,101,115,0,99,111,110,116,114,111,108,32,115,116,114,117,99,116,117,114,101,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,216,41,0,0,119,0,0,0,224,41,0,0,120,0,0,0,232,41,0,0,121,0,0,0,240,41,0,0,122,0,0,0,248,41,0,0,123,0,0,0,0,42,0,0,124,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,0,0,114,101,115,117,109,101,0,0,114,117,110,110,105,110,103,0,115,116,97,116,117,115,0,0,119,114,97,112,0,0,0,0,121,105,101,108,100,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,0,0,99,111,114,111,117,116,105,110,101,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,115,117,115,112,101,110,100,101,100,0,0,0,0,0,0,0,110,111,114,109,97,108,0,0,100,101,97,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,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,48,44,0,0,125,0,0,0,56,44,0,0,126,0,0,0,72,44,0,0,127,0,0,0,80,44,0,0,128,0,0,0,88,44,0,0,129,0,0,0,104,44,0,0,130,0,0,0,120,44,0,0,131,0,0,0,136,44,0,0,132,0,0,0,152,44,0,0,133,0,0,0,168,44,0,0,134,0,0,0,184,44,0,0,135,0,0,0,200,44,0,0,136,0,0,0,208,44,0,0,137,0,0,0,224,44,0,0,138,0,0,0,240,44,0,0,139,0,0,0,0,45,0,0,140,0,0,0,0,0,0,0,0,0,0,0,100,101,98,117,103,0,0,0,103,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,103,101,116,104,111,111,107,0,103,101,116,105,110,102,111,0,103,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,103,101,116,114,101,103,105,115,116,114,121,0,0,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,103,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,117,112,118,97,108,117,101,106,111,105,110,0,0,0,0,0,117,112,118,97,108,117,101,105,100,0,0,0,0,0,0,0,115,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,115,101,116,104,111,111,107,0,115,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,115,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,116,114,97,99,101,98,97,99,107,0,0,0,0,0,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,108,101,118,101,108,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,95,72,75,69,89,0,0,0,107,0,0,0,0,0,0,0,95,95,109,111,100,101,0,0,112,45,0,0,120,45,0,0,128,45,0,0,136,45,0,0,144,45,0,0,0,0,0,0,99,97,108,108,0,0,0,0,114,101,116,117,114,110,0,0,108,105,110,101,0,0,0,0,99,111,117,110,116,0,0,0,116,97,105,108,32,99,97,108,108,0,0,0,0,0,0,0,102,117,108,108,32,117,115,101,114,100,97,116,97,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,108,105,103,104,116,32,117,115,101,114,100,97,116,97,0,0,0,0,0,0,62,117,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,112,118,97,108,117,101,32,105,110,100,101,120,0,0,0,76,117,97,32,102,117,110,99,116,105,111,110,32,101,120,112,101,99,116,101,100,0,0,0,102,108,110,83,116,117,0,0,62,37,115,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,108,101,118,101,108,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,115,111,117,114,99,101,0,0,115,104,111,114,116,95,115,114,99,0,0,0,0,0,0,0,108,105,110,101,100,101,102,105,110,101,100,0,0,0,0,0,108,97,115,116,108,105,110,101,100,101,102,105,110,101,100,0,119,104,97,116,0,0,0,0,99,117,114,114,101,110,116,108,105,110,101,0,0,0,0,0,110,117,112,115,0,0,0,0,110,112,97,114,97,109,115,0,105,115,118,97,114,97,114,103,0,0,0,0,0,0,0,0,110,97,109,101,0,0,0,0,110,97,109,101,119,104,97,116,0,0,0,0,0,0,0,0,105,115,116,97,105,108,99,97,108,108,0,0,0,0,0,0,97,99,116,105,118,101,108,105,110,101,115,0,0,0,0,0,102,117,110,99,0,0,0,0,101,120,116,101,114,110,97,108,32,104,111,111,107,0,0,0,108,117,97,95,100,101,98,117,103,62,32,0,0,0,0,0,99,111,110,116,10,0,0,0,61,40,100,101,98,117,103,32,99,111,109,109,97,110,100,41,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,80,49,0,0,88,49,0,0,96,49,0,0,104,49,0,0,112,49,0,0,120,49,0,0,128,49,0,0,136,49,0,0,144,49,0,0,160,49,0,0,168,49,0,0,176,49,0,0,184,49,0,0,192,49,0,0,200,49,0,0,208,49,0,0,216,49,0,0,224,49,0,0,232,49,0,0,240,49,0,0,248,49,0,0,0,50,0,0,8,50,0,0,16,50,0,0,24,50,0,0,32,50,0,0,40,50,0,0,48,50,0,0,56,50,0,0,64,50,0,0,72,50,0,0,88,50,0,0,96,50,0,0,0,0,0,0,39,37,99,39,0,0,0,0,99,104,97,114,40,37,100,41,0,0,0,0,0,0,0,0,39,37,115,39,0,0,0,0,95,69,78,86,0,0,0,0,105,110,118,97,108,105,100,32,108,111,110,103,32,115,116,114,105,110,103,32,100,101,108,105,109,105,116,101,114,0,0,0,46,0,0,0,0,0,0,0,69,101,0,0,0,0,0,0,88,120,0,0,0,0,0,0,80,112,0,0,0,0,0,0,43,45,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,110,117,109,98,101,114,0,0,0,0,0,0,0,0,108,101,120,105,99,97,108,32,101,108,101,109,101,110,116,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,115,116,114,105,110,103,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,0,100,101,99,105,109,97,108,32,101,115,99,97,112,101,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,104,101,120,97,100,101,99,105,109,97,108,32,100,105,103,105,116,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,115,116,114,105,110,103,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,99,111,109,109,101,110,116,0,99,104,117,110,107,32,104,97,115,32,116,111,111,32,109,97,110,121,32,108,105,110,101,115,0,0,0,0,0,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,37,115,32,110,101,97,114,32,37,115,0,0,0,0,0,0,97,110,100,0,0,0,0,0,98,114,101,97,107,0,0,0,100,111,0,0,0,0,0,0,101,108,115,101,0,0,0,0,101,108,115,101,105,102,0,0,101,110,100,0,0,0,0,0,102,97,108,115,101,0,0,0,102,111,114,0,0,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,103,111,116,111,0,0,0,0,105,102,0,0,0,0,0,0,105,110,0,0,0,0,0,0,108,111,99,97,108,0,0,0,110,105,108,0,0,0,0,0,110,111,116,0,0,0,0,0,111,114,0,0,0,0,0,0,114,101,112,101,97,116,0,0,114,101,116,117,114,110,0,0,116,104,101,110,0,0,0,0,116,114,117,101,0,0,0,0,117,110,116,105,108,0,0,0,119,104,105,108,101,0,0,0,46,46,0,0,0,0,0,0,46,46,46,0,0,0,0,0,61,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,126,61,0,0,0,0,0,0,58,58,0,0,0,0,0,0,60,101,111,102,62,0,0,0,60,110,117,109,98,101,114,62,0,0,0,0,0,0,0,0,60,110,97,109,101,62,0,0,60,115,116,114,105,110,103,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
  1276. var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
  1277. assert(tempDoublePtr % 8 == 0);
  1278. function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
  1279. HEAP8[tempDoublePtr] = HEAP8[ptr];
  1280. HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
  1281. HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
  1282. HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
  1283. }
  1284. function copyTempDouble(ptr) {
  1285. HEAP8[tempDoublePtr] = HEAP8[ptr];
  1286. HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
  1287. HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
  1288. HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
  1289. HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
  1290. HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
  1291. HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
  1292. HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
  1293. }
  1294. Module["_rand_r"] = _rand_r;
  1295. var ___rand_seed=allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC);
  1296. Module["_rand"] = _rand;
  1297. 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};
  1298. 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"};
  1299. var ___errno_state=0;function ___setErrNo(value) {
  1300. // For convenient setting and returning of errno.
  1301. HEAP32[((___errno_state)>>2)]=value;
  1302. return value;
  1303. }
  1304. var PATH={splitPath:function (filename) {
  1305. var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
  1306. return splitPathRe.exec(filename).slice(1);
  1307. },normalizeArray:function (parts, allowAboveRoot) {
  1308. // if the path tries to go above the root, `up` ends up > 0
  1309. var up = 0;
  1310. for (var i = parts.length - 1; i >= 0; i--) {
  1311. var last = parts[i];
  1312. if (last === '.') {
  1313. parts.splice(i, 1);
  1314. } else if (last === '..') {
  1315. parts.splice(i, 1);
  1316. up++;
  1317. } else if (up) {
  1318. parts.splice(i, 1);
  1319. up--;
  1320. }
  1321. }
  1322. // if the path is allowed to go above the root, restore leading ..s
  1323. if (allowAboveRoot) {
  1324. for (; up--; up) {
  1325. parts.unshift('..');
  1326. }
  1327. }
  1328. return parts;
  1329. },normalize:function (path) {
  1330. var isAbsolute = path.charAt(0) === '/',
  1331. trailingSlash = path.substr(-1) === '/';
  1332. // Normalize the path
  1333. path = PATH.normalizeArray(path.split('/').filter(function(p) {
  1334. return !!p;
  1335. }), !isAbsolute).join('/');
  1336. if (!path && !isAbsolute) {
  1337. path = '.';
  1338. }
  1339. if (path && trailingSlash) {
  1340. path += '/';
  1341. }
  1342. return (isAbsolute ? '/' : '') + path;
  1343. },dirname:function (path) {
  1344. var result = PATH.splitPath(path),
  1345. root = result[0],
  1346. dir = result[1];
  1347. if (!root && !dir) {
  1348. // No dirname whatsoever
  1349. return '.';
  1350. }
  1351. if (dir) {
  1352. // It has a dirname, strip trailing slash
  1353. dir = dir.substr(0, dir.length - 1);
  1354. }
  1355. return root + dir;
  1356. },basename:function (path) {
  1357. // EMSCRIPTEN return '/'' for '/', not an empty string
  1358. if (path === '/') return '/';
  1359. var lastSlash = path.lastIndexOf('/');
  1360. if (lastSlash === -1) return path;
  1361. return path.substr(lastSlash+1);
  1362. },extname:function (path) {
  1363. return PATH.splitPath(path)[3];
  1364. },join:function () {
  1365. var paths = Array.prototype.slice.call(arguments, 0);
  1366. return PATH.normalize(paths.join('/'));
  1367. },join2:function (l, r) {
  1368. return PATH.normalize(l + '/' + r);
  1369. },resolve:function () {
  1370. var resolvedPath = '',
  1371. resolvedAbsolute = false;
  1372. for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
  1373. var path = (i >= 0) ? arguments[i] : FS.cwd();
  1374. // Skip empty and invalid entries
  1375. if (typeof path !== 'string') {
  1376. throw new TypeError('Arguments to path.resolve must be strings');
  1377. } else if (!path) {
  1378. continue;
  1379. }
  1380. resolvedPath = path + '/' + resolvedPath;
  1381. resolvedAbsolute = path.charAt(0) === '/';
  1382. }
  1383. // At this point the path should be resolved to a full absolute path, but
  1384. // handle relative paths to be safe (might happen when process.cwd() fails)
  1385. resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
  1386. return !!p;
  1387. }), !resolvedAbsolute).join('/');
  1388. return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
  1389. },relative:function (from, to) {
  1390. from = PATH.resolve(from).substr(1);
  1391. to = PATH.resolve(to).substr(1);
  1392. function trim(arr) {
  1393. var start = 0;
  1394. for (; start < arr.length; start++) {
  1395. if (arr[start] !== '') break;
  1396. }
  1397. var end = arr.length - 1;
  1398. for (; end >= 0; end--) {
  1399. if (arr[end] !== '') break;
  1400. }
  1401. if (start > end) return [];
  1402. return arr.slice(start, end - start + 1);
  1403. }
  1404. var fromParts = trim(from.split('/'));
  1405. var toParts = trim(to.split('/'));
  1406. var length = Math.min(fromParts.length, toParts.length);
  1407. var samePartsLength = length;
  1408. for (var i = 0; i < length; i++) {
  1409. if (fromParts[i] !== toParts[i]) {
  1410. samePartsLength = i;
  1411. break;
  1412. }
  1413. }
  1414. var outputParts = [];
  1415. for (var i = samePartsLength; i < fromParts.length; i++) {
  1416. outputParts.push('..');
  1417. }
  1418. outputParts = outputParts.concat(toParts.slice(samePartsLength));
  1419. return outputParts.join('/');
  1420. }};
  1421. var TTY={ttys:[],init:function () {
  1422. // https://github.com/kripken/emscripten/pull/1555
  1423. // if (ENVIRONMENT_IS_NODE) {
  1424. // // currently, FS.init does not distinguish if process.stdin is a file or TTY
  1425. // // device, it always assumes it's a TTY device. because of this, we're forcing
  1426. // // process.stdin to UTF8 encoding to at least make stdin reading compatible
  1427. // // with text files until FS.init can be refactored.
  1428. // process['stdin']['setEncoding']('utf8');
  1429. // }
  1430. },shutdown:function () {
  1431. // https://github.com/kripken/emscripten/pull/1555
  1432. // if (ENVIRONMENT_IS_NODE) {
  1433. // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
  1434. // // 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
  1435. // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
  1436. // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
  1437. // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
  1438. // process['stdin']['pause']();
  1439. // }
  1440. },register:function (dev, ops) {
  1441. TTY.ttys[dev] = { input: [], output: [], ops: ops };
  1442. FS.registerDevice(dev, TTY.stream_ops);
  1443. },stream_ops:{open:function (stream) {
  1444. var tty = TTY.ttys[stream.node.rdev];
  1445. if (!tty) {
  1446. throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  1447. }
  1448. stream.tty = tty;
  1449. stream.seekable = false;
  1450. },close:function (stream) {
  1451. // flush any pending line data
  1452. if (stream.tty.output.length) {
  1453. stream.tty.ops.put_char(stream.tty, 10);
  1454. }
  1455. },read:function (stream, buffer, offset, length, pos /* ignored */) {
  1456. if (!stream.tty || !stream.tty.ops.get_char) {
  1457. throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
  1458. }
  1459. var bytesRead = 0;
  1460. for (var i = 0; i < length; i++) {
  1461. var result;
  1462. try {
  1463. result = stream.tty.ops.get_char(stream.tty);
  1464. } catch (e) {
  1465. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  1466. }
  1467. if (result === undefined && bytesRead === 0) {
  1468. throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  1469. }
  1470. if (result === null || result === undefined) break;
  1471. bytesRead++;
  1472. buffer[offset+i] = result;
  1473. }
  1474. if (bytesRead) {
  1475. stream.node.timestamp = Date.now();
  1476. }
  1477. return bytesRead;
  1478. },write:function (stream, buffer, offset, length, pos) {
  1479. if (!stream.tty || !stream.tty.ops.put_char) {
  1480. throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
  1481. }
  1482. for (var i = 0; i < length; i++) {
  1483. try {
  1484. stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
  1485. } catch (e) {
  1486. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  1487. }
  1488. }
  1489. if (length) {
  1490. stream.node.timestamp = Date.now();
  1491. }
  1492. return i;
  1493. }},default_tty_ops:{get_char:function (tty) {
  1494. if (!tty.input.length) {
  1495. var result = null;
  1496. if (ENVIRONMENT_IS_NODE) {
  1497. result = process['stdin']['read']();
  1498. if (!result) {
  1499. if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) {
  1500. return null; // EOF
  1501. }
  1502. return undefined; // no data available
  1503. }
  1504. } else if (typeof window != 'undefined' &&
  1505. typeof window.prompt == 'function') {
  1506. // Browser.
  1507. result = window.prompt('Input: '); // returns null on cancel
  1508. if (result !== null) {
  1509. result += '\n';
  1510. }
  1511. } else if (typeof readline == 'function') {
  1512. // Command line.
  1513. result = readline();
  1514. if (result !== null) {
  1515. result += '\n';
  1516. }
  1517. }
  1518. if (!result) {
  1519. return null;
  1520. }
  1521. tty.input = intArrayFromString(result, true);
  1522. }
  1523. return tty.input.shift();
  1524. },put_char:function (tty, val) {
  1525. if (val === null || val === 10) {
  1526. Module['print'](tty.output.join(''));
  1527. tty.output = [];
  1528. } else {
  1529. tty.output.push(TTY.utf8.processCChar(val));
  1530. }
  1531. }},default_tty1_ops:{put_char:function (tty, val) {
  1532. if (val === null || val === 10) {
  1533. Module['printErr'](tty.output.join(''));
  1534. tty.output = [];
  1535. } else {
  1536. tty.output.push(TTY.utf8.processCChar(val));
  1537. }
  1538. }}};
  1539. var MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function (mount) {
  1540. return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
  1541. },createNode:function (parent, name, mode, dev) {
  1542. if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
  1543. // no supported
  1544. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1545. }
  1546. if (!MEMFS.ops_table) {
  1547. MEMFS.ops_table = {
  1548. dir: {
  1549. node: {
  1550. getattr: MEMFS.node_ops.getattr,
  1551. setattr: MEMFS.node_ops.setattr,
  1552. lookup: MEMFS.node_ops.lookup,
  1553. mknod: MEMFS.node_ops.mknod,
  1554. rename: MEMFS.node_ops.rename,
  1555. unlink: MEMFS.node_ops.unlink,
  1556. rmdir: MEMFS.node_ops.rmdir,
  1557. readdir: MEMFS.node_ops.readdir,
  1558. symlink: MEMFS.node_ops.symlink
  1559. },
  1560. stream: {
  1561. llseek: MEMFS.stream_ops.llseek
  1562. }
  1563. },
  1564. file: {
  1565. node: {
  1566. getattr: MEMFS.node_ops.getattr,
  1567. setattr: MEMFS.node_ops.setattr
  1568. },
  1569. stream: {
  1570. llseek: MEMFS.stream_ops.llseek,
  1571. read: MEMFS.stream_ops.read,
  1572. write: MEMFS.stream_ops.write,
  1573. allocate: MEMFS.stream_ops.allocate,
  1574. mmap: MEMFS.stream_ops.mmap
  1575. }
  1576. },
  1577. link: {
  1578. node: {
  1579. getattr: MEMFS.node_ops.getattr,
  1580. setattr: MEMFS.node_ops.setattr,
  1581. readlink: MEMFS.node_ops.readlink
  1582. },
  1583. stream: {}
  1584. },
  1585. chrdev: {
  1586. node: {
  1587. getattr: MEMFS.node_ops.getattr,
  1588. setattr: MEMFS.node_ops.setattr
  1589. },
  1590. stream: FS.chrdev_stream_ops
  1591. },
  1592. };
  1593. }
  1594. var node = FS.createNode(parent, name, mode, dev);
  1595. if (FS.isDir(node.mode)) {
  1596. node.node_ops = MEMFS.ops_table.dir.node;
  1597. node.stream_ops = MEMFS.ops_table.dir.stream;
  1598. node.contents = {};
  1599. } else if (FS.isFile(node.mode)) {
  1600. node.node_ops = MEMFS.ops_table.file.node;
  1601. node.stream_ops = MEMFS.ops_table.file.stream;
  1602. node.contents = [];
  1603. node.contentMode = MEMFS.CONTENT_FLEXIBLE;
  1604. } else if (FS.isLink(node.mode)) {
  1605. node.node_ops = MEMFS.ops_table.link.node;
  1606. node.stream_ops = MEMFS.ops_table.link.stream;
  1607. } else if (FS.isChrdev(node.mode)) {
  1608. node.node_ops = MEMFS.ops_table.chrdev.node;
  1609. node.stream_ops = MEMFS.ops_table.chrdev.stream;
  1610. }
  1611. node.timestamp = Date.now();
  1612. // add the new node to the parent
  1613. if (parent) {
  1614. parent.contents[name] = node;
  1615. }
  1616. return node;
  1617. },ensureFlexible:function (node) {
  1618. if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) {
  1619. var contents = node.contents;
  1620. node.contents = Array.prototype.slice.call(contents);
  1621. node.contentMode = MEMFS.CONTENT_FLEXIBLE;
  1622. }
  1623. },node_ops:{getattr:function (node) {
  1624. var attr = {};
  1625. // device numbers reuse inode numbers.
  1626. attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
  1627. attr.ino = node.id;
  1628. attr.mode = node.mode;
  1629. attr.nlink = 1;
  1630. attr.uid = 0;
  1631. attr.gid = 0;
  1632. attr.rdev = node.rdev;
  1633. if (FS.isDir(node.mode)) {
  1634. attr.size = 4096;
  1635. } else if (FS.isFile(node.mode)) {
  1636. attr.size = node.contents.length;
  1637. } else if (FS.isLink(node.mode)) {
  1638. attr.size = node.link.length;
  1639. } else {
  1640. attr.size = 0;
  1641. }
  1642. attr.atime = new Date(node.timestamp);
  1643. attr.mtime = new Date(node.timestamp);
  1644. attr.ctime = new Date(node.timestamp);
  1645. // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
  1646. // but this is not required by the standard.
  1647. attr.blksize = 4096;
  1648. attr.blocks = Math.ceil(attr.size / attr.blksize);
  1649. return attr;
  1650. },setattr:function (node, attr) {
  1651. if (attr.mode !== undefined) {
  1652. node.mode = attr.mode;
  1653. }
  1654. if (attr.timestamp !== undefined) {
  1655. node.timestamp = attr.timestamp;
  1656. }
  1657. if (attr.size !== undefined) {
  1658. MEMFS.ensureFlexible(node);
  1659. var contents = node.contents;
  1660. if (attr.size < contents.length) contents.length = attr.size;
  1661. else while (attr.size > contents.length) contents.push(0);
  1662. }
  1663. },lookup:function (parent, name) {
  1664. throw FS.genericErrors[ERRNO_CODES.ENOENT];
  1665. },mknod:function (parent, name, mode, dev) {
  1666. return MEMFS.createNode(parent, name, mode, dev);
  1667. },rename:function (old_node, new_dir, new_name) {
  1668. // if we're overwriting a directory at new_name, make sure it's empty.
  1669. if (FS.isDir(old_node.mode)) {
  1670. var new_node;
  1671. try {
  1672. new_node = FS.lookupNode(new_dir, new_name);
  1673. } catch (e) {
  1674. }
  1675. if (new_node) {
  1676. for (var i in new_node.contents) {
  1677. throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  1678. }
  1679. }
  1680. }
  1681. // do the internal rewiring
  1682. delete old_node.parent.contents[old_node.name];
  1683. old_node.name = new_name;
  1684. new_dir.contents[new_name] = old_node;
  1685. old_node.parent = new_dir;
  1686. },unlink:function (parent, name) {
  1687. delete parent.contents[name];
  1688. },rmdir:function (parent, name) {
  1689. var node = FS.lookupNode(parent, name);
  1690. for (var i in node.contents) {
  1691. throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  1692. }
  1693. delete parent.contents[name];
  1694. },readdir:function (node) {
  1695. var entries = ['.', '..']
  1696. for (var key in node.contents) {
  1697. if (!node.contents.hasOwnProperty(key)) {
  1698. continue;
  1699. }
  1700. entries.push(key);
  1701. }
  1702. return entries;
  1703. },symlink:function (parent, newname, oldpath) {
  1704. var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
  1705. node.link = oldpath;
  1706. return node;
  1707. },readlink:function (node) {
  1708. if (!FS.isLink(node.mode)) {
  1709. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1710. }
  1711. return node.link;
  1712. }},stream_ops:{read:function (stream, buffer, offset, length, position) {
  1713. var contents = stream.node.contents;
  1714. if (position >= contents.length)
  1715. return 0;
  1716. var size = Math.min(contents.length - position, length);
  1717. assert(size >= 0);
  1718. if (size > 8 && contents.subarray) { // non-trivial, and typed array
  1719. buffer.set(contents.subarray(position, position + size), offset);
  1720. } else
  1721. {
  1722. for (var i = 0; i < size; i++) {
  1723. buffer[offset + i] = contents[position + i];
  1724. }
  1725. }
  1726. return size;
  1727. },write:function (stream, buffer, offset, length, position, canOwn) {
  1728. var node = stream.node;
  1729. node.timestamp = Date.now();
  1730. var contents = node.contents;
  1731. if (length && contents.length === 0 && position === 0 && buffer.subarray) {
  1732. // just replace it with the new data
  1733. if (canOwn && offset === 0) {
  1734. node.contents = buffer; // this could be a subarray of Emscripten HEAP, or allocated from some other source.
  1735. node.contentMode = (buffer.buffer === HEAP8.buffer) ? MEMFS.CONTENT_OWNING : MEMFS.CONTENT_FIXED;
  1736. } else {
  1737. node.contents = new Uint8Array(buffer.subarray(offset, offset+length));
  1738. node.contentMode = MEMFS.CONTENT_FIXED;
  1739. }
  1740. return length;
  1741. }
  1742. MEMFS.ensureFlexible(node);
  1743. var contents = node.contents;
  1744. while (contents.length < position) contents.push(0);
  1745. for (var i = 0; i < length; i++) {
  1746. contents[position + i] = buffer[offset + i];
  1747. }
  1748. return length;
  1749. },llseek:function (stream, offset, whence) {
  1750. var position = offset;
  1751. if (whence === 1) { // SEEK_CUR.
  1752. position += stream.position;
  1753. } else if (whence === 2) { // SEEK_END.
  1754. if (FS.isFile(stream.node.mode)) {
  1755. position += stream.node.contents.length;
  1756. }
  1757. }
  1758. if (position < 0) {
  1759. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1760. }
  1761. stream.ungotten = [];
  1762. stream.position = position;
  1763. return position;
  1764. },allocate:function (stream, offset, length) {
  1765. MEMFS.ensureFlexible(stream.node);
  1766. var contents = stream.node.contents;
  1767. var limit = offset + length;
  1768. while (limit > contents.length) contents.push(0);
  1769. },mmap:function (stream, buffer, offset, length, position, prot, flags) {
  1770. if (!FS.isFile(stream.node.mode)) {
  1771. throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  1772. }
  1773. var ptr;
  1774. var allocated;
  1775. var contents = stream.node.contents;
  1776. // Only make a new copy when MAP_PRIVATE is specified.
  1777. if ( !(flags & 2) &&
  1778. (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
  1779. // We can't emulate MAP_SHARED when the file is not backed by the buffer
  1780. // we're mapping to (e.g. the HEAP buffer).
  1781. allocated = false;
  1782. ptr = contents.byteOffset;
  1783. } else {
  1784. // Try to avoid unnecessary slices.
  1785. if (position > 0 || position + length < contents.length) {
  1786. if (contents.subarray) {
  1787. contents = contents.subarray(position, position + length);
  1788. } else {
  1789. contents = Array.prototype.slice.call(contents, position, position + length);
  1790. }
  1791. }
  1792. allocated = true;
  1793. ptr = _malloc(length);
  1794. if (!ptr) {
  1795. throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
  1796. }
  1797. buffer.set(contents, ptr);
  1798. }
  1799. return { ptr: ptr, allocated: allocated };
  1800. }}};
  1801. var IDBFS={dbs:{},indexedDB:function () {
  1802. return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
  1803. },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
  1804. // reuse all of the core MEMFS functionality
  1805. return MEMFS.mount.apply(null, arguments);
  1806. },syncfs:function (mount, populate, callback) {
  1807. IDBFS.getLocalSet(mount, function(err, local) {
  1808. if (err) return callback(err);
  1809. IDBFS.getRemoteSet(mount, function(err, remote) {
  1810. if (err) return callback(err);
  1811. var src = populate ? remote : local;
  1812. var dst = populate ? local : remote;
  1813. IDBFS.reconcile(src, dst, callback);
  1814. });
  1815. });
  1816. },getDB:function (name, callback) {
  1817. // check the cache first
  1818. var db = IDBFS.dbs[name];
  1819. if (db) {
  1820. return callback(null, db);
  1821. }
  1822. var req;
  1823. try {
  1824. req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
  1825. } catch (e) {
  1826. return callback(e);
  1827. }
  1828. req.onupgradeneeded = function(e) {
  1829. var db = e.target.result;
  1830. var transaction = e.target.transaction;
  1831. var fileStore;
  1832. if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
  1833. fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
  1834. } else {
  1835. fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
  1836. }
  1837. fileStore.createIndex('timestamp', 'timestamp', { unique: false });
  1838. };
  1839. req.onsuccess = function() {
  1840. db = req.result;
  1841. // add to the cache
  1842. IDBFS.dbs[name] = db;
  1843. callback(null, db);
  1844. };
  1845. req.onerror = function() {
  1846. callback(this.error);
  1847. };
  1848. },getLocalSet:function (mount, callback) {
  1849. var entries = {};
  1850. function isRealDir(p) {
  1851. return p !== '.' && p !== '..';
  1852. };
  1853. function toAbsolute(root) {
  1854. return function(p) {
  1855. return PATH.join2(root, p);
  1856. }
  1857. };
  1858. var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
  1859. while (check.length) {
  1860. var path = check.pop();
  1861. var stat;
  1862. try {
  1863. stat = FS.stat(path);
  1864. } catch (e) {
  1865. return callback(e);
  1866. }
  1867. if (FS.isDir(stat.mode)) {
  1868. check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
  1869. }
  1870. entries[path] = { timestamp: stat.mtime };
  1871. }
  1872. return callback(null, { type: 'local', entries: entries });
  1873. },getRemoteSet:function (mount, callback) {
  1874. var entries = {};
  1875. IDBFS.getDB(mount.mountpoint, function(err, db) {
  1876. if (err) return callback(err);
  1877. var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
  1878. transaction.onerror = function() { callback(this.error); };
  1879. var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
  1880. var index = store.index('timestamp');
  1881. index.openKeyCursor().onsuccess = function(event) {
  1882. var cursor = event.target.result;
  1883. if (!cursor) {
  1884. return callback(null, { type: 'remote', db: db, entries: entries });
  1885. }
  1886. entries[cursor.primaryKey] = { timestamp: cursor.key };
  1887. cursor.continue();
  1888. };
  1889. });
  1890. },loadLocalEntry:function (path, callback) {
  1891. var stat, node;
  1892. try {
  1893. var lookup = FS.lookupPath(path);
  1894. node = lookup.node;
  1895. stat = FS.stat(path);
  1896. } catch (e) {
  1897. return callback(e);
  1898. }
  1899. if (FS.isDir(stat.mode)) {
  1900. return callback(null, { timestamp: stat.mtime, mode: stat.mode });
  1901. } else if (FS.isFile(stat.mode)) {
  1902. return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
  1903. } else {
  1904. return callback(new Error('node type not supported'));
  1905. }
  1906. },storeLocalEntry:function (path, entry, callback) {
  1907. try {
  1908. if (FS.isDir(entry.mode)) {
  1909. FS.mkdir(path, entry.mode);
  1910. } else if (FS.isFile(entry.mode)) {
  1911. FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true });
  1912. } else {
  1913. return callback(new Error('node type not supported'));
  1914. }
  1915. FS.utime(path, entry.timestamp, entry.timestamp);
  1916. } catch (e) {
  1917. return callback(e);
  1918. }
  1919. callback(null);
  1920. },removeLocalEntry:function (path, callback) {
  1921. try {
  1922. var lookup = FS.lookupPath(path);
  1923. var stat = FS.stat(path);
  1924. if (FS.isDir(stat.mode)) {
  1925. FS.rmdir(path);
  1926. } else if (FS.isFile(stat.mode)) {
  1927. FS.unlink(path);
  1928. }
  1929. } catch (e) {
  1930. return callback(e);
  1931. }
  1932. callback(null);
  1933. },loadRemoteEntry:function (store, path, callback) {
  1934. var req = store.get(path);
  1935. req.onsuccess = function(event) { callback(null, event.target.result); };
  1936. req.onerror = function() { callback(this.error); };
  1937. },storeRemoteEntry:function (store, path, entry, callback) {
  1938. var req = store.put(entry, path);
  1939. req.onsuccess = function() { callback(null); };
  1940. req.onerror = function() { callback(this.error); };
  1941. },removeRemoteEntry:function (store, path, callback) {
  1942. var req = store.delete(path);
  1943. req.onsuccess = function() { callback(null); };
  1944. req.onerror = function() { callback(this.error); };
  1945. },reconcile:function (src, dst, callback) {
  1946. var total = 0;
  1947. var create = [];
  1948. Object.keys(src.entries).forEach(function (key) {
  1949. var e = src.entries[key];
  1950. var e2 = dst.entries[key];
  1951. if (!e2 || e.timestamp > e2.timestamp) {
  1952. create.push(key);
  1953. total++;
  1954. }
  1955. });
  1956. var remove = [];
  1957. Object.keys(dst.entries).forEach(function (key) {
  1958. var e = dst.entries[key];
  1959. var e2 = src.entries[key];
  1960. if (!e2) {
  1961. remove.push(key);
  1962. total++;
  1963. }
  1964. });
  1965. if (!total) {
  1966. return callback(null);
  1967. }
  1968. var errored = false;
  1969. var completed = 0;
  1970. var db = src.type === 'remote' ? src.db : dst.db;
  1971. var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
  1972. var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
  1973. function done(err) {
  1974. if (err) {
  1975. if (!done.errored) {
  1976. done.errored = true;
  1977. return callback(err);
  1978. }
  1979. return;
  1980. }
  1981. if (++completed >= total) {
  1982. return callback(null);
  1983. }
  1984. };
  1985. transaction.onerror = function() { done(this.error); };
  1986. // sort paths in ascending order so directory entries are created
  1987. // before the files inside them
  1988. create.sort().forEach(function (path) {
  1989. if (dst.type === 'local') {
  1990. IDBFS.loadRemoteEntry(store, path, function (err, entry) {
  1991. if (err) return done(err);
  1992. IDBFS.storeLocalEntry(path, entry, done);
  1993. });
  1994. } else {
  1995. IDBFS.loadLocalEntry(path, function (err, entry) {
  1996. if (err) return done(err);
  1997. IDBFS.storeRemoteEntry(store, path, entry, done);
  1998. });
  1999. }
  2000. });
  2001. // sort paths in descending order so files are deleted before their
  2002. // parent directories
  2003. remove.sort().reverse().forEach(function(path) {
  2004. if (dst.type === 'local') {
  2005. IDBFS.removeLocalEntry(path, done);
  2006. } else {
  2007. IDBFS.removeRemoteEntry(store, path, done);
  2008. }
  2009. });
  2010. }};
  2011. var NODEFS={isWindows:false,staticInit:function () {
  2012. NODEFS.isWindows = !!process.platform.match(/^win/);
  2013. },mount:function (mount) {
  2014. assert(ENVIRONMENT_IS_NODE);
  2015. return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
  2016. },createNode:function (parent, name, mode, dev) {
  2017. if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
  2018. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2019. }
  2020. var node = FS.createNode(parent, name, mode);
  2021. node.node_ops = NODEFS.node_ops;
  2022. node.stream_ops = NODEFS.stream_ops;
  2023. return node;
  2024. },getMode:function (path) {
  2025. var stat;
  2026. try {
  2027. stat = fs.lstatSync(path);
  2028. if (NODEFS.isWindows) {
  2029. // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so
  2030. // propagate write bits to execute bits.
  2031. stat.mode = stat.mode | ((stat.mode & 146) >> 1);
  2032. }
  2033. } catch (e) {
  2034. if (!e.code) throw e;
  2035. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2036. }
  2037. return stat.mode;
  2038. },realPath:function (node) {
  2039. var parts = [];
  2040. while (node.parent !== node) {
  2041. parts.push(node.name);
  2042. node = node.parent;
  2043. }
  2044. parts.push(node.mount.opts.root);
  2045. parts.reverse();
  2046. return PATH.join.apply(null, parts);
  2047. },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) {
  2048. if (flags in NODEFS.flagsToPermissionStringMap) {
  2049. return NODEFS.flagsToPermissionStringMap[flags];
  2050. } else {
  2051. return flags;
  2052. }
  2053. },node_ops:{getattr:function (node) {
  2054. var path = NODEFS.realPath(node);
  2055. var stat;
  2056. try {
  2057. stat = fs.lstatSync(path);
  2058. } catch (e) {
  2059. if (!e.code) throw e;
  2060. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2061. }
  2062. // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
  2063. // See http://support.microsoft.com/kb/140365
  2064. if (NODEFS.isWindows && !stat.blksize) {
  2065. stat.blksize = 4096;
  2066. }
  2067. if (NODEFS.isWindows && !stat.blocks) {
  2068. stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
  2069. }
  2070. return {
  2071. dev: stat.dev,
  2072. ino: stat.ino,
  2073. mode: stat.mode,
  2074. nlink: stat.nlink,
  2075. uid: stat.uid,
  2076. gid: stat.gid,
  2077. rdev: stat.rdev,
  2078. size: stat.size,
  2079. atime: stat.atime,
  2080. mtime: stat.mtime,
  2081. ctime: stat.ctime,
  2082. blksize: stat.blksize,
  2083. blocks: stat.blocks
  2084. };
  2085. },setattr:function (node, attr) {
  2086. var path = NODEFS.realPath(node);
  2087. try {
  2088. if (attr.mode !== undefined) {
  2089. fs.chmodSync(path, attr.mode);
  2090. // update the common node structure mode as well
  2091. node.mode = attr.mode;
  2092. }
  2093. if (attr.timestamp !== undefined) {
  2094. var date = new Date(attr.timestamp);
  2095. fs.utimesSync(path, date, date);
  2096. }
  2097. if (attr.size !== undefined) {
  2098. fs.truncateSync(path, attr.size);
  2099. }
  2100. } catch (e) {
  2101. if (!e.code) throw e;
  2102. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2103. }
  2104. },lookup:function (parent, name) {
  2105. var path = PATH.join2(NODEFS.realPath(parent), name);
  2106. var mode = NODEFS.getMode(path);
  2107. return NODEFS.createNode(parent, name, mode);
  2108. },mknod:function (parent, name, mode, dev) {
  2109. var node = NODEFS.createNode(parent, name, mode, dev);
  2110. // create the backing node for this in the fs root as well
  2111. var path = NODEFS.realPath(node);
  2112. try {
  2113. if (FS.isDir(node.mode)) {
  2114. fs.mkdirSync(path, node.mode);
  2115. } else {
  2116. fs.writeFileSync(path, '', { mode: node.mode });
  2117. }
  2118. } catch (e) {
  2119. if (!e.code) throw e;
  2120. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2121. }
  2122. return node;
  2123. },rename:function (oldNode, newDir, newName) {
  2124. var oldPath = NODEFS.realPath(oldNode);
  2125. var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
  2126. try {
  2127. fs.renameSync(oldPath, newPath);
  2128. } catch (e) {
  2129. if (!e.code) throw e;
  2130. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2131. }
  2132. },unlink:function (parent, name) {
  2133. var path = PATH.join2(NODEFS.realPath(parent), name);
  2134. try {
  2135. fs.unlinkSync(path);
  2136. } catch (e) {
  2137. if (!e.code) throw e;
  2138. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2139. }
  2140. },rmdir:function (parent, name) {
  2141. var path = PATH.join2(NODEFS.realPath(parent), name);
  2142. try {
  2143. fs.rmdirSync(path);
  2144. } catch (e) {
  2145. if (!e.code) throw e;
  2146. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2147. }
  2148. },readdir:function (node) {
  2149. var path = NODEFS.realPath(node);
  2150. try {
  2151. return fs.readdirSync(path);
  2152. } catch (e) {
  2153. if (!e.code) throw e;
  2154. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2155. }
  2156. },symlink:function (parent, newName, oldPath) {
  2157. var newPath = PATH.join2(NODEFS.realPath(parent), newName);
  2158. try {
  2159. fs.symlinkSync(oldPath, newPath);
  2160. } catch (e) {
  2161. if (!e.code) throw e;
  2162. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2163. }
  2164. },readlink:function (node) {
  2165. var path = NODEFS.realPath(node);
  2166. try {
  2167. return fs.readlinkSync(path);
  2168. } catch (e) {
  2169. if (!e.code) throw e;
  2170. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2171. }
  2172. }},stream_ops:{open:function (stream) {
  2173. var path = NODEFS.realPath(stream.node);
  2174. try {
  2175. if (FS.isFile(stream.node.mode)) {
  2176. stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags));
  2177. }
  2178. } catch (e) {
  2179. if (!e.code) throw e;
  2180. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2181. }
  2182. },close:function (stream) {
  2183. try {
  2184. if (FS.isFile(stream.node.mode) && stream.nfd) {
  2185. fs.closeSync(stream.nfd);
  2186. }
  2187. } catch (e) {
  2188. if (!e.code) throw e;
  2189. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2190. }
  2191. },read:function (stream, buffer, offset, length, position) {
  2192. // FIXME this is terrible.
  2193. var nbuffer = new Buffer(length);
  2194. var res;
  2195. try {
  2196. res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
  2197. } catch (e) {
  2198. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2199. }
  2200. if (res > 0) {
  2201. for (var i = 0; i < res; i++) {
  2202. buffer[offset + i] = nbuffer[i];
  2203. }
  2204. }
  2205. return res;
  2206. },write:function (stream, buffer, offset, length, position) {
  2207. // FIXME this is terrible.
  2208. var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
  2209. var res;
  2210. try {
  2211. res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
  2212. } catch (e) {
  2213. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2214. }
  2215. return res;
  2216. },llseek:function (stream, offset, whence) {
  2217. var position = offset;
  2218. if (whence === 1) { // SEEK_CUR.
  2219. position += stream.position;
  2220. } else if (whence === 2) { // SEEK_END.
  2221. if (FS.isFile(stream.node.mode)) {
  2222. try {
  2223. var stat = fs.fstatSync(stream.nfd);
  2224. position += stat.size;
  2225. } catch (e) {
  2226. throw new FS.ErrnoError(ERRNO_CODES[e.code]);
  2227. }
  2228. }
  2229. }
  2230. if (position < 0) {
  2231. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2232. }
  2233. stream.position = position;
  2234. return position;
  2235. }}};
  2236. var _stdin=allocate(1, "i32*", ALLOC_STATIC);
  2237. var _stdout=allocate(1, "i32*", ALLOC_STATIC);
  2238. var _stderr=allocate(1, "i32*", ALLOC_STATIC);
  2239. function _fflush(stream) {
  2240. // int fflush(FILE *stream);
  2241. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
  2242. // we don't currently perform any user-space buffering of data
  2243. }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},handleFSError:function (e) {
  2244. if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
  2245. return ___setErrNo(e.errno);
  2246. },lookupPath:function (path, opts) {
  2247. path = PATH.resolve(FS.cwd(), path);
  2248. opts = opts || {};
  2249. var defaults = {
  2250. follow_mount: true,
  2251. recurse_count: 0
  2252. };
  2253. for (var key in defaults) {
  2254. if (opts[key] === undefined) {
  2255. opts[key] = defaults[key];
  2256. }
  2257. }
  2258. if (opts.recurse_count > 8) { // max recursive lookup of 8
  2259. throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
  2260. }
  2261. // split the path
  2262. var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
  2263. return !!p;
  2264. }), false);
  2265. // start at the root
  2266. var current = FS.root;
  2267. var current_path = '/';
  2268. for (var i = 0; i < parts.length; i++) {
  2269. var islast = (i === parts.length-1);
  2270. if (islast && opts.parent) {
  2271. // stop resolving
  2272. break;
  2273. }
  2274. current = FS.lookupNode(current, parts[i]);
  2275. current_path = PATH.join2(current_path, parts[i]);
  2276. // jump to the mount's root node if this is a mountpoint
  2277. if (FS.isMountpoint(current)) {
  2278. if (!islast || (islast && opts.follow_mount)) {
  2279. current = current.mounted.root;
  2280. }
  2281. }
  2282. // by default, lookupPath will not follow a symlink if it is the final path component.
  2283. // setting opts.follow = true will override this behavior.
  2284. if (!islast || opts.follow) {
  2285. var count = 0;
  2286. while (FS.isLink(current.mode)) {
  2287. var link = FS.readlink(current_path);
  2288. current_path = PATH.resolve(PATH.dirname(current_path), link);
  2289. var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
  2290. current = lookup.node;
  2291. if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
  2292. throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
  2293. }
  2294. }
  2295. }
  2296. }
  2297. return { path: current_path, node: current };
  2298. },getPath:function (node) {
  2299. var path;
  2300. while (true) {
  2301. if (FS.isRoot(node)) {
  2302. var mount = node.mount.mountpoint;
  2303. if (!path) return mount;
  2304. return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
  2305. }
  2306. path = path ? node.name + '/' + path : node.name;
  2307. node = node.parent;
  2308. }
  2309. },hashName:function (parentid, name) {
  2310. var hash = 0;
  2311. for (var i = 0; i < name.length; i++) {
  2312. hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
  2313. }
  2314. return ((parentid + hash) >>> 0) % FS.nameTable.length;
  2315. },hashAddNode:function (node) {
  2316. var hash = FS.hashName(node.parent.id, node.name);
  2317. node.name_next = FS.nameTable[hash];
  2318. FS.nameTable[hash] = node;
  2319. },hashRemoveNode:function (node) {
  2320. var hash = FS.hashName(node.parent.id, node.name);
  2321. if (FS.nameTable[hash] === node) {
  2322. FS.nameTable[hash] = node.name_next;
  2323. } else {
  2324. var current = FS.nameTable[hash];
  2325. while (current) {
  2326. if (current.name_next === node) {
  2327. current.name_next = node.name_next;
  2328. break;
  2329. }
  2330. current = current.name_next;
  2331. }
  2332. }
  2333. },lookupNode:function (parent, name) {
  2334. var err = FS.mayLookup(parent);
  2335. if (err) {
  2336. throw new FS.ErrnoError(err);
  2337. }
  2338. var hash = FS.hashName(parent.id, name);
  2339. for (var node = FS.nameTable[hash]; node; node = node.name_next) {
  2340. var nodeName = node.name;
  2341. if (node.parent.id === parent.id && nodeName === name) {
  2342. return node;
  2343. }
  2344. }
  2345. // if we failed to find it in the cache, call into the VFS
  2346. return FS.lookup(parent, name);
  2347. },createNode:function (parent, name, mode, rdev) {
  2348. if (!FS.FSNode) {
  2349. FS.FSNode = function(parent, name, mode, rdev) {
  2350. if (!parent) {
  2351. parent = this; // root node sets parent to itself
  2352. }
  2353. this.parent = parent;
  2354. this.mount = parent.mount;
  2355. this.mounted = null;
  2356. this.id = FS.nextInode++;
  2357. this.name = name;
  2358. this.mode = mode;
  2359. this.node_ops = {};
  2360. this.stream_ops = {};
  2361. this.rdev = rdev;
  2362. };
  2363. FS.FSNode.prototype = {};
  2364. // compatibility
  2365. var readMode = 292 | 73;
  2366. var writeMode = 146;
  2367. // NOTE we must use Object.defineProperties instead of individual calls to
  2368. // Object.defineProperty in order to make closure compiler happy
  2369. Object.defineProperties(FS.FSNode.prototype, {
  2370. read: {
  2371. get: function() { return (this.mode & readMode) === readMode; },
  2372. set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
  2373. },
  2374. write: {
  2375. get: function() { return (this.mode & writeMode) === writeMode; },
  2376. set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
  2377. },
  2378. isFolder: {
  2379. get: function() { return FS.isDir(this.mode); },
  2380. },
  2381. isDevice: {
  2382. get: function() { return FS.isChrdev(this.mode); },
  2383. },
  2384. });
  2385. }
  2386. var node = new FS.FSNode(parent, name, mode, rdev);
  2387. FS.hashAddNode(node);
  2388. return node;
  2389. },destroyNode:function (node) {
  2390. FS.hashRemoveNode(node);
  2391. },isRoot:function (node) {
  2392. return node === node.parent;
  2393. },isMountpoint:function (node) {
  2394. return !!node.mounted;
  2395. },isFile:function (mode) {
  2396. return (mode & 61440) === 32768;
  2397. },isDir:function (mode) {
  2398. return (mode & 61440) === 16384;
  2399. },isLink:function (mode) {
  2400. return (mode & 61440) === 40960;
  2401. },isChrdev:function (mode) {
  2402. return (mode & 61440) === 8192;
  2403. },isBlkdev:function (mode) {
  2404. return (mode & 61440) === 24576;
  2405. },isFIFO:function (mode) {
  2406. return (mode & 61440) === 4096;
  2407. },isSocket:function (mode) {
  2408. return (mode & 49152) === 49152;
  2409. },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) {
  2410. var flags = FS.flagModes[str];
  2411. if (typeof flags === 'undefined') {
  2412. throw new Error('Unknown file open mode: ' + str);
  2413. }
  2414. return flags;
  2415. },flagsToPermissionString:function (flag) {
  2416. var accmode = flag & 2097155;
  2417. var perms = ['r', 'w', 'rw'][accmode];
  2418. if ((flag & 512)) {
  2419. perms += 'w';
  2420. }
  2421. return perms;
  2422. },nodePermissions:function (node, perms) {
  2423. if (FS.ignorePermissions) {
  2424. return 0;
  2425. }
  2426. // return 0 if any user, group or owner bits are set.
  2427. if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
  2428. return ERRNO_CODES.EACCES;
  2429. } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
  2430. return ERRNO_CODES.EACCES;
  2431. } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
  2432. return ERRNO_CODES.EACCES;
  2433. }
  2434. return 0;
  2435. },mayLookup:function (dir) {
  2436. return FS.nodePermissions(dir, 'x');
  2437. },mayCreate:function (dir, name) {
  2438. try {
  2439. var node = FS.lookupNode(dir, name);
  2440. return ERRNO_CODES.EEXIST;
  2441. } catch (e) {
  2442. }
  2443. return FS.nodePermissions(dir, 'wx');
  2444. },mayDelete:function (dir, name, isdir) {
  2445. var node;
  2446. try {
  2447. node = FS.lookupNode(dir, name);
  2448. } catch (e) {
  2449. return e.errno;
  2450. }
  2451. var err = FS.nodePermissions(dir, 'wx');
  2452. if (err) {
  2453. return err;
  2454. }
  2455. if (isdir) {
  2456. if (!FS.isDir(node.mode)) {
  2457. return ERRNO_CODES.ENOTDIR;
  2458. }
  2459. if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
  2460. return ERRNO_CODES.EBUSY;
  2461. }
  2462. } else {
  2463. if (FS.isDir(node.mode)) {
  2464. return ERRNO_CODES.EISDIR;
  2465. }
  2466. }
  2467. return 0;
  2468. },mayOpen:function (node, flags) {
  2469. if (!node) {
  2470. return ERRNO_CODES.ENOENT;
  2471. }
  2472. if (FS.isLink(node.mode)) {
  2473. return ERRNO_CODES.ELOOP;
  2474. } else if (FS.isDir(node.mode)) {
  2475. if ((flags & 2097155) !== 0 || // opening for write
  2476. (flags & 512)) {
  2477. return ERRNO_CODES.EISDIR;
  2478. }
  2479. }
  2480. return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
  2481. },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
  2482. fd_start = fd_start || 0;
  2483. fd_end = fd_end || FS.MAX_OPEN_FDS;
  2484. for (var fd = fd_start; fd <= fd_end; fd++) {
  2485. if (!FS.streams[fd]) {
  2486. return fd;
  2487. }
  2488. }
  2489. throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
  2490. },getStream:function (fd) {
  2491. return FS.streams[fd];
  2492. },createStream:function (stream, fd_start, fd_end) {
  2493. if (!FS.FSStream) {
  2494. FS.FSStream = function(){};
  2495. FS.FSStream.prototype = {};
  2496. // compatibility
  2497. Object.defineProperties(FS.FSStream.prototype, {
  2498. object: {
  2499. get: function() { return this.node; },
  2500. set: function(val) { this.node = val; }
  2501. },
  2502. isRead: {
  2503. get: function() { return (this.flags & 2097155) !== 1; }
  2504. },
  2505. isWrite: {
  2506. get: function() { return (this.flags & 2097155) !== 0; }
  2507. },
  2508. isAppend: {
  2509. get: function() { return (this.flags & 1024); }
  2510. }
  2511. });
  2512. }
  2513. if (0) {
  2514. // reuse the object
  2515. stream.__proto__ = FS.FSStream.prototype;
  2516. } else {
  2517. var newStream = new FS.FSStream();
  2518. for (var p in stream) {
  2519. newStream[p] = stream[p];
  2520. }
  2521. stream = newStream;
  2522. }
  2523. var fd = FS.nextfd(fd_start, fd_end);
  2524. stream.fd = fd;
  2525. FS.streams[fd] = stream;
  2526. return stream;
  2527. },closeStream:function (fd) {
  2528. FS.streams[fd] = null;
  2529. },getStreamFromPtr:function (ptr) {
  2530. return FS.streams[ptr - 1];
  2531. },getPtrForStream:function (stream) {
  2532. return stream ? stream.fd + 1 : 0;
  2533. },chrdev_stream_ops:{open:function (stream) {
  2534. var device = FS.getDevice(stream.node.rdev);
  2535. // override node's stream ops with the device's
  2536. stream.stream_ops = device.stream_ops;
  2537. // forward the open call
  2538. if (stream.stream_ops.open) {
  2539. stream.stream_ops.open(stream);
  2540. }
  2541. },llseek:function () {
  2542. throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  2543. }},major:function (dev) {
  2544. return ((dev) >> 8);
  2545. },minor:function (dev) {
  2546. return ((dev) & 0xff);
  2547. },makedev:function (ma, mi) {
  2548. return ((ma) << 8 | (mi));
  2549. },registerDevice:function (dev, ops) {
  2550. FS.devices[dev] = { stream_ops: ops };
  2551. },getDevice:function (dev) {
  2552. return FS.devices[dev];
  2553. },getMounts:function (mount) {
  2554. var mounts = [];
  2555. var check = [mount];
  2556. while (check.length) {
  2557. var m = check.pop();
  2558. mounts.push(m);
  2559. check.push.apply(check, m.mounts);
  2560. }
  2561. return mounts;
  2562. },syncfs:function (populate, callback) {
  2563. if (typeof(populate) === 'function') {
  2564. callback = populate;
  2565. populate = false;
  2566. }
  2567. var mounts = FS.getMounts(FS.root.mount);
  2568. var completed = 0;
  2569. function done(err) {
  2570. if (err) {
  2571. if (!done.errored) {
  2572. done.errored = true;
  2573. return callback(err);
  2574. }
  2575. return;
  2576. }
  2577. if (++completed >= mounts.length) {
  2578. callback(null);
  2579. }
  2580. };
  2581. // sync all mounts
  2582. mounts.forEach(function (mount) {
  2583. if (!mount.type.syncfs) {
  2584. return done(null);
  2585. }
  2586. mount.type.syncfs(mount, populate, done);
  2587. });
  2588. },mount:function (type, opts, mountpoint) {
  2589. var root = mountpoint === '/';
  2590. var pseudo = !mountpoint;
  2591. var node;
  2592. if (root && FS.root) {
  2593. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2594. } else if (!root && !pseudo) {
  2595. var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
  2596. mountpoint = lookup.path; // use the absolute path
  2597. node = lookup.node;
  2598. if (FS.isMountpoint(node)) {
  2599. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2600. }
  2601. if (!FS.isDir(node.mode)) {
  2602. throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
  2603. }
  2604. }
  2605. var mount = {
  2606. type: type,
  2607. opts: opts,
  2608. mountpoint: mountpoint,
  2609. mounts: []
  2610. };
  2611. // create a root node for the fs
  2612. var mountRoot = type.mount(mount);
  2613. mountRoot.mount = mount;
  2614. mount.root = mountRoot;
  2615. if (root) {
  2616. FS.root = mountRoot;
  2617. } else if (node) {
  2618. // set as a mountpoint
  2619. node.mounted = mount;
  2620. // add the new mount to the current mount's children
  2621. if (node.mount) {
  2622. node.mount.mounts.push(mount);
  2623. }
  2624. }
  2625. return mountRoot;
  2626. },unmount:function (mountpoint) {
  2627. var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
  2628. if (!FS.isMountpoint(lookup.node)) {
  2629. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2630. }
  2631. // destroy the nodes for this mount, and all its child mounts
  2632. var node = lookup.node;
  2633. var mount = node.mounted;
  2634. var mounts = FS.getMounts(mount);
  2635. Object.keys(FS.nameTable).forEach(function (hash) {
  2636. var current = FS.nameTable[hash];
  2637. while (current) {
  2638. var next = current.name_next;
  2639. if (mounts.indexOf(current.mount) !== -1) {
  2640. FS.destroyNode(current);
  2641. }
  2642. current = next;
  2643. }
  2644. });
  2645. // no longer a mountpoint
  2646. node.mounted = null;
  2647. // remove this mount from the child mounts
  2648. var idx = node.mount.mounts.indexOf(mount);
  2649. assert(idx !== -1);
  2650. node.mount.mounts.splice(idx, 1);
  2651. },lookup:function (parent, name) {
  2652. return parent.node_ops.lookup(parent, name);
  2653. },mknod:function (path, mode, dev) {
  2654. var lookup = FS.lookupPath(path, { parent: true });
  2655. var parent = lookup.node;
  2656. var name = PATH.basename(path);
  2657. var err = FS.mayCreate(parent, name);
  2658. if (err) {
  2659. throw new FS.ErrnoError(err);
  2660. }
  2661. if (!parent.node_ops.mknod) {
  2662. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2663. }
  2664. return parent.node_ops.mknod(parent, name, mode, dev);
  2665. },create:function (path, mode) {
  2666. mode = mode !== undefined ? mode : 438 /* 0666 */;
  2667. mode &= 4095;
  2668. mode |= 32768;
  2669. return FS.mknod(path, mode, 0);
  2670. },mkdir:function (path, mode) {
  2671. mode = mode !== undefined ? mode : 511 /* 0777 */;
  2672. mode &= 511 | 512;
  2673. mode |= 16384;
  2674. return FS.mknod(path, mode, 0);
  2675. },mkdev:function (path, mode, dev) {
  2676. if (typeof(dev) === 'undefined') {
  2677. dev = mode;
  2678. mode = 438 /* 0666 */;
  2679. }
  2680. mode |= 8192;
  2681. return FS.mknod(path, mode, dev);
  2682. },symlink:function (oldpath, newpath) {
  2683. var lookup = FS.lookupPath(newpath, { parent: true });
  2684. var parent = lookup.node;
  2685. var newname = PATH.basename(newpath);
  2686. var err = FS.mayCreate(parent, newname);
  2687. if (err) {
  2688. throw new FS.ErrnoError(err);
  2689. }
  2690. if (!parent.node_ops.symlink) {
  2691. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2692. }
  2693. return parent.node_ops.symlink(parent, newname, oldpath);
  2694. },rename:function (old_path, new_path) {
  2695. var old_dirname = PATH.dirname(old_path);
  2696. var new_dirname = PATH.dirname(new_path);
  2697. var old_name = PATH.basename(old_path);
  2698. var new_name = PATH.basename(new_path);
  2699. // parents must exist
  2700. var lookup, old_dir, new_dir;
  2701. try {
  2702. lookup = FS.lookupPath(old_path, { parent: true });
  2703. old_dir = lookup.node;
  2704. lookup = FS.lookupPath(new_path, { parent: true });
  2705. new_dir = lookup.node;
  2706. } catch (e) {
  2707. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2708. }
  2709. // need to be part of the same mount
  2710. if (old_dir.mount !== new_dir.mount) {
  2711. throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
  2712. }
  2713. // source must exist
  2714. var old_node = FS.lookupNode(old_dir, old_name);
  2715. // old path should not be an ancestor of the new path
  2716. var relative = PATH.relative(old_path, new_dirname);
  2717. if (relative.charAt(0) !== '.') {
  2718. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2719. }
  2720. // new path should not be an ancestor of the old path
  2721. relative = PATH.relative(new_path, old_dirname);
  2722. if (relative.charAt(0) !== '.') {
  2723. throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  2724. }
  2725. // see if the new path already exists
  2726. var new_node;
  2727. try {
  2728. new_node = FS.lookupNode(new_dir, new_name);
  2729. } catch (e) {
  2730. // not fatal
  2731. }
  2732. // early out if nothing needs to change
  2733. if (old_node === new_node) {
  2734. return;
  2735. }
  2736. // we'll need to delete the old entry
  2737. var isdir = FS.isDir(old_node.mode);
  2738. var err = FS.mayDelete(old_dir, old_name, isdir);
  2739. if (err) {
  2740. throw new FS.ErrnoError(err);
  2741. }
  2742. // need delete permissions if we'll be overwriting.
  2743. // need create permissions if new doesn't already exist.
  2744. err = new_node ?
  2745. FS.mayDelete(new_dir, new_name, isdir) :
  2746. FS.mayCreate(new_dir, new_name);
  2747. if (err) {
  2748. throw new FS.ErrnoError(err);
  2749. }
  2750. if (!old_dir.node_ops.rename) {
  2751. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2752. }
  2753. if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
  2754. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2755. }
  2756. // if we are going to change the parent, check write permissions
  2757. if (new_dir !== old_dir) {
  2758. err = FS.nodePermissions(old_dir, 'w');
  2759. if (err) {
  2760. throw new FS.ErrnoError(err);
  2761. }
  2762. }
  2763. // remove the node from the lookup hash
  2764. FS.hashRemoveNode(old_node);
  2765. // do the underlying fs rename
  2766. try {
  2767. old_dir.node_ops.rename(old_node, new_dir, new_name);
  2768. } catch (e) {
  2769. throw e;
  2770. } finally {
  2771. // add the node back to the hash (in case node_ops.rename
  2772. // changed its name)
  2773. FS.hashAddNode(old_node);
  2774. }
  2775. },rmdir:function (path) {
  2776. var lookup = FS.lookupPath(path, { parent: true });
  2777. var parent = lookup.node;
  2778. var name = PATH.basename(path);
  2779. var node = FS.lookupNode(parent, name);
  2780. var err = FS.mayDelete(parent, name, true);
  2781. if (err) {
  2782. throw new FS.ErrnoError(err);
  2783. }
  2784. if (!parent.node_ops.rmdir) {
  2785. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2786. }
  2787. if (FS.isMountpoint(node)) {
  2788. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2789. }
  2790. parent.node_ops.rmdir(parent, name);
  2791. FS.destroyNode(node);
  2792. },readdir:function (path) {
  2793. var lookup = FS.lookupPath(path, { follow: true });
  2794. var node = lookup.node;
  2795. if (!node.node_ops.readdir) {
  2796. throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
  2797. }
  2798. return node.node_ops.readdir(node);
  2799. },unlink:function (path) {
  2800. var lookup = FS.lookupPath(path, { parent: true });
  2801. var parent = lookup.node;
  2802. var name = PATH.basename(path);
  2803. var node = FS.lookupNode(parent, name);
  2804. var err = FS.mayDelete(parent, name, false);
  2805. if (err) {
  2806. // POSIX says unlink should set EPERM, not EISDIR
  2807. if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
  2808. throw new FS.ErrnoError(err);
  2809. }
  2810. if (!parent.node_ops.unlink) {
  2811. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2812. }
  2813. if (FS.isMountpoint(node)) {
  2814. throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  2815. }
  2816. parent.node_ops.unlink(parent, name);
  2817. FS.destroyNode(node);
  2818. },readlink:function (path) {
  2819. var lookup = FS.lookupPath(path);
  2820. var link = lookup.node;
  2821. if (!link.node_ops.readlink) {
  2822. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2823. }
  2824. return link.node_ops.readlink(link);
  2825. },stat:function (path, dontFollow) {
  2826. var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2827. var node = lookup.node;
  2828. if (!node.node_ops.getattr) {
  2829. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2830. }
  2831. return node.node_ops.getattr(node);
  2832. },lstat:function (path) {
  2833. return FS.stat(path, true);
  2834. },chmod:function (path, mode, dontFollow) {
  2835. var node;
  2836. if (typeof path === 'string') {
  2837. var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2838. node = lookup.node;
  2839. } else {
  2840. node = path;
  2841. }
  2842. if (!node.node_ops.setattr) {
  2843. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2844. }
  2845. node.node_ops.setattr(node, {
  2846. mode: (mode & 4095) | (node.mode & ~4095),
  2847. timestamp: Date.now()
  2848. });
  2849. },lchmod:function (path, mode) {
  2850. FS.chmod(path, mode, true);
  2851. },fchmod:function (fd, mode) {
  2852. var stream = FS.getStream(fd);
  2853. if (!stream) {
  2854. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2855. }
  2856. FS.chmod(stream.node, mode);
  2857. },chown:function (path, uid, gid, dontFollow) {
  2858. var node;
  2859. if (typeof path === 'string') {
  2860. var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2861. node = lookup.node;
  2862. } else {
  2863. node = path;
  2864. }
  2865. if (!node.node_ops.setattr) {
  2866. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2867. }
  2868. node.node_ops.setattr(node, {
  2869. timestamp: Date.now()
  2870. // we ignore the uid / gid for now
  2871. });
  2872. },lchown:function (path, uid, gid) {
  2873. FS.chown(path, uid, gid, true);
  2874. },fchown:function (fd, uid, gid) {
  2875. var stream = FS.getStream(fd);
  2876. if (!stream) {
  2877. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2878. }
  2879. FS.chown(stream.node, uid, gid);
  2880. },truncate:function (path, len) {
  2881. if (len < 0) {
  2882. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2883. }
  2884. var node;
  2885. if (typeof path === 'string') {
  2886. var lookup = FS.lookupPath(path, { follow: true });
  2887. node = lookup.node;
  2888. } else {
  2889. node = path;
  2890. }
  2891. if (!node.node_ops.setattr) {
  2892. throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2893. }
  2894. if (FS.isDir(node.mode)) {
  2895. throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  2896. }
  2897. if (!FS.isFile(node.mode)) {
  2898. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2899. }
  2900. var err = FS.nodePermissions(node, 'w');
  2901. if (err) {
  2902. throw new FS.ErrnoError(err);
  2903. }
  2904. node.node_ops.setattr(node, {
  2905. size: len,
  2906. timestamp: Date.now()
  2907. });
  2908. },ftruncate:function (fd, len) {
  2909. var stream = FS.getStream(fd);
  2910. if (!stream) {
  2911. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2912. }
  2913. if ((stream.flags & 2097155) === 0) {
  2914. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2915. }
  2916. FS.truncate(stream.node, len);
  2917. },utime:function (path, atime, mtime) {
  2918. var lookup = FS.lookupPath(path, { follow: true });
  2919. var node = lookup.node;
  2920. node.node_ops.setattr(node, {
  2921. timestamp: Math.max(atime, mtime)
  2922. });
  2923. },open:function (path, flags, mode, fd_start, fd_end) {
  2924. flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
  2925. mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
  2926. if ((flags & 64)) {
  2927. mode = (mode & 4095) | 32768;
  2928. } else {
  2929. mode = 0;
  2930. }
  2931. var node;
  2932. if (typeof path === 'object') {
  2933. node = path;
  2934. } else {
  2935. path = PATH.normalize(path);
  2936. try {
  2937. var lookup = FS.lookupPath(path, {
  2938. follow: !(flags & 131072)
  2939. });
  2940. node = lookup.node;
  2941. } catch (e) {
  2942. // ignore
  2943. }
  2944. }
  2945. // perhaps we need to create the node
  2946. if ((flags & 64)) {
  2947. if (node) {
  2948. // if O_CREAT and O_EXCL are set, error out if the node already exists
  2949. if ((flags & 128)) {
  2950. throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
  2951. }
  2952. } else {
  2953. // node doesn't exist, try to create it
  2954. node = FS.mknod(path, mode, 0);
  2955. }
  2956. }
  2957. if (!node) {
  2958. throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
  2959. }
  2960. // can't truncate a device
  2961. if (FS.isChrdev(node.mode)) {
  2962. flags &= ~512;
  2963. }
  2964. // check permissions
  2965. var err = FS.mayOpen(node, flags);
  2966. if (err) {
  2967. throw new FS.ErrnoError(err);
  2968. }
  2969. // do truncation if necessary
  2970. if ((flags & 512)) {
  2971. FS.truncate(node, 0);
  2972. }
  2973. // we've already handled these, don't pass down to the underlying vfs
  2974. flags &= ~(128 | 512);
  2975. // register the stream with the filesystem
  2976. var stream = FS.createStream({
  2977. node: node,
  2978. path: FS.getPath(node), // we want the absolute path to the node
  2979. flags: flags,
  2980. seekable: true,
  2981. position: 0,
  2982. stream_ops: node.stream_ops,
  2983. // used by the file family libc calls (fopen, fwrite, ferror, etc.)
  2984. ungotten: [],
  2985. error: false
  2986. }, fd_start, fd_end);
  2987. // call the new stream's open function
  2988. if (stream.stream_ops.open) {
  2989. stream.stream_ops.open(stream);
  2990. }
  2991. if (Module['logReadFiles'] && !(flags & 1)) {
  2992. if (!FS.readFiles) FS.readFiles = {};
  2993. if (!(path in FS.readFiles)) {
  2994. FS.readFiles[path] = 1;
  2995. Module['printErr']('read file: ' + path);
  2996. }
  2997. }
  2998. return stream;
  2999. },close:function (stream) {
  3000. try {
  3001. if (stream.stream_ops.close) {
  3002. stream.stream_ops.close(stream);
  3003. }
  3004. } catch (e) {
  3005. throw e;
  3006. } finally {
  3007. FS.closeStream(stream.fd);
  3008. }
  3009. },llseek:function (stream, offset, whence) {
  3010. if (!stream.seekable || !stream.stream_ops.llseek) {
  3011. throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  3012. }
  3013. return stream.stream_ops.llseek(stream, offset, whence);
  3014. },read:function (stream, buffer, offset, length, position) {
  3015. if (length < 0 || position < 0) {
  3016. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3017. }
  3018. if ((stream.flags & 2097155) === 1) {
  3019. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  3020. }
  3021. if (FS.isDir(stream.node.mode)) {
  3022. throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  3023. }
  3024. if (!stream.stream_ops.read) {
  3025. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3026. }
  3027. var seeking = true;
  3028. if (typeof position === 'undefined') {
  3029. position = stream.position;
  3030. seeking = false;
  3031. } else if (!stream.seekable) {
  3032. throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  3033. }
  3034. var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
  3035. if (!seeking) stream.position += bytesRead;
  3036. return bytesRead;
  3037. },write:function (stream, buffer, offset, length, position, canOwn) {
  3038. if (length < 0 || position < 0) {
  3039. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3040. }
  3041. if ((stream.flags & 2097155) === 0) {
  3042. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  3043. }
  3044. if (FS.isDir(stream.node.mode)) {
  3045. throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  3046. }
  3047. if (!stream.stream_ops.write) {
  3048. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3049. }
  3050. var seeking = true;
  3051. if (typeof position === 'undefined') {
  3052. position = stream.position;
  3053. seeking = false;
  3054. } else if (!stream.seekable) {
  3055. throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  3056. }
  3057. if (stream.flags & 1024) {
  3058. // seek to the end before writing in append mode
  3059. FS.llseek(stream, 0, 2);
  3060. }
  3061. var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
  3062. if (!seeking) stream.position += bytesWritten;
  3063. return bytesWritten;
  3064. },allocate:function (stream, offset, length) {
  3065. if (offset < 0 || length <= 0) {
  3066. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3067. }
  3068. if ((stream.flags & 2097155) === 0) {
  3069. throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  3070. }
  3071. if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
  3072. throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  3073. }
  3074. if (!stream.stream_ops.allocate) {
  3075. throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
  3076. }
  3077. stream.stream_ops.allocate(stream, offset, length);
  3078. },mmap:function (stream, buffer, offset, length, position, prot, flags) {
  3079. // TODO if PROT is PROT_WRITE, make sure we have write access
  3080. if ((stream.flags & 2097155) === 1) {
  3081. throw new FS.ErrnoError(ERRNO_CODES.EACCES);
  3082. }
  3083. if (!stream.stream_ops.mmap) {
  3084. throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  3085. }
  3086. return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
  3087. },ioctl:function (stream, cmd, arg) {
  3088. if (!stream.stream_ops.ioctl) {
  3089. throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
  3090. }
  3091. return stream.stream_ops.ioctl(stream, cmd, arg);
  3092. },readFile:function (path, opts) {
  3093. opts = opts || {};
  3094. opts.flags = opts.flags || 'r';
  3095. opts.encoding = opts.encoding || 'binary';
  3096. if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
  3097. throw new Error('Invalid encoding type "' + opts.encoding + '"');
  3098. }
  3099. var ret;
  3100. var stream = FS.open(path, opts.flags);
  3101. var stat = FS.stat(path);
  3102. var length = stat.size;
  3103. var buf = new Uint8Array(length);
  3104. FS.read(stream, buf, 0, length, 0);
  3105. if (opts.encoding === 'utf8') {
  3106. ret = '';
  3107. var utf8 = new Runtime.UTF8Processor();
  3108. for (var i = 0; i < length; i++) {
  3109. ret += utf8.processCChar(buf[i]);
  3110. }
  3111. } else if (opts.encoding === 'binary') {
  3112. ret = buf;
  3113. }
  3114. FS.close(stream);
  3115. return ret;
  3116. },writeFile:function (path, data, opts) {
  3117. opts = opts || {};
  3118. opts.flags = opts.flags || 'w';
  3119. opts.encoding = opts.encoding || 'utf8';
  3120. if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
  3121. throw new Error('Invalid encoding type "' + opts.encoding + '"');
  3122. }
  3123. var stream = FS.open(path, opts.flags, opts.mode);
  3124. if (opts.encoding === 'utf8') {
  3125. var utf8 = new Runtime.UTF8Processor();
  3126. var buf = new Uint8Array(utf8.processJSString(data));
  3127. FS.write(stream, buf, 0, buf.length, 0, opts.canOwn);
  3128. } else if (opts.encoding === 'binary') {
  3129. FS.write(stream, data, 0, data.length, 0, opts.canOwn);
  3130. }
  3131. FS.close(stream);
  3132. },cwd:function () {
  3133. return FS.currentPath;
  3134. },chdir:function (path) {
  3135. var lookup = FS.lookupPath(path, { follow: true });
  3136. if (!FS.isDir(lookup.node.mode)) {
  3137. throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
  3138. }
  3139. var err = FS.nodePermissions(lookup.node, 'x');
  3140. if (err) {
  3141. throw new FS.ErrnoError(err);
  3142. }
  3143. FS.currentPath = lookup.path;
  3144. },createDefaultDirectories:function () {
  3145. FS.mkdir('/tmp');
  3146. },createDefaultDevices:function () {
  3147. // create /dev
  3148. FS.mkdir('/dev');
  3149. // setup /dev/null
  3150. FS.registerDevice(FS.makedev(1, 3), {
  3151. read: function() { return 0; },
  3152. write: function() { return 0; }
  3153. });
  3154. FS.mkdev('/dev/null', FS.makedev(1, 3));
  3155. // setup /dev/tty and /dev/tty1
  3156. // stderr needs to print output using Module['printErr']
  3157. // so we register a second tty just for it.
  3158. TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
  3159. TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
  3160. FS.mkdev('/dev/tty', FS.makedev(5, 0));
  3161. FS.mkdev('/dev/tty1', FS.makedev(6, 0));
  3162. // we're not going to emulate the actual shm device,
  3163. // just create the tmp dirs that reside in it commonly
  3164. FS.mkdir('/dev/shm');
  3165. FS.mkdir('/dev/shm/tmp');
  3166. },createStandardStreams:function () {
  3167. // TODO deprecate the old functionality of a single
  3168. // input / output callback and that utilizes FS.createDevice
  3169. // and instead require a unique set of stream ops
  3170. // by default, we symlink the standard streams to the
  3171. // default tty devices. however, if the standard streams
  3172. // have been overwritten we create a unique device for
  3173. // them instead.
  3174. if (Module['stdin']) {
  3175. FS.createDevice('/dev', 'stdin', Module['stdin']);
  3176. } else {
  3177. FS.symlink('/dev/tty', '/dev/stdin');
  3178. }
  3179. if (Module['stdout']) {
  3180. FS.createDevice('/dev', 'stdout', null, Module['stdout']);
  3181. } else {
  3182. FS.symlink('/dev/tty', '/dev/stdout');
  3183. }
  3184. if (Module['stderr']) {
  3185. FS.createDevice('/dev', 'stderr', null, Module['stderr']);
  3186. } else {
  3187. FS.symlink('/dev/tty1', '/dev/stderr');
  3188. }
  3189. // open default streams for the stdin, stdout and stderr devices
  3190. var stdin = FS.open('/dev/stdin', 'r');
  3191. HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin);
  3192. assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
  3193. var stdout = FS.open('/dev/stdout', 'w');
  3194. HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout);
  3195. assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
  3196. var stderr = FS.open('/dev/stderr', 'w');
  3197. HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr);
  3198. assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
  3199. },ensureErrnoError:function () {
  3200. if (FS.ErrnoError) return;
  3201. FS.ErrnoError = function ErrnoError(errno) {
  3202. this.errno = errno;
  3203. for (var key in ERRNO_CODES) {
  3204. if (ERRNO_CODES[key] === errno) {
  3205. this.code = key;
  3206. break;
  3207. }
  3208. }
  3209. this.message = ERRNO_MESSAGES[errno];
  3210. };
  3211. FS.ErrnoError.prototype = new Error();
  3212. FS.ErrnoError.prototype.constructor = FS.ErrnoError;
  3213. // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
  3214. [ERRNO_CODES.ENOENT].forEach(function(code) {
  3215. FS.genericErrors[code] = new FS.ErrnoError(code);
  3216. FS.genericErrors[code].stack = '<generic error, no stack>';
  3217. });
  3218. },staticInit:function () {
  3219. FS.ensureErrnoError();
  3220. FS.nameTable = new Array(4096);
  3221. FS.mount(MEMFS, {}, '/');
  3222. FS.createDefaultDirectories();
  3223. FS.createDefaultDevices();
  3224. },init:function (input, output, error) {
  3225. 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)');
  3226. FS.init.initialized = true;
  3227. FS.ensureErrnoError();
  3228. // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
  3229. Module['stdin'] = input || Module['stdin'];
  3230. Module['stdout'] = output || Module['stdout'];
  3231. Module['stderr'] = error || Module['stderr'];
  3232. FS.createStandardStreams();
  3233. },quit:function () {
  3234. FS.init.initialized = false;
  3235. for (var i = 0; i < FS.streams.length; i++) {
  3236. var stream = FS.streams[i];
  3237. if (!stream) {
  3238. continue;
  3239. }
  3240. FS.close(stream);
  3241. }
  3242. },getMode:function (canRead, canWrite) {
  3243. var mode = 0;
  3244. if (canRead) mode |= 292 | 73;
  3245. if (canWrite) mode |= 146;
  3246. return mode;
  3247. },joinPath:function (parts, forceRelative) {
  3248. var path = PATH.join.apply(null, parts);
  3249. if (forceRelative && path[0] == '/') path = path.substr(1);
  3250. return path;
  3251. },absolutePath:function (relative, base) {
  3252. return PATH.resolve(base, relative);
  3253. },standardizePath:function (path) {
  3254. return PATH.normalize(path);
  3255. },findObject:function (path, dontResolveLastLink) {
  3256. var ret = FS.analyzePath(path, dontResolveLastLink);
  3257. if (ret.exists) {
  3258. return ret.object;
  3259. } else {
  3260. ___setErrNo(ret.error);
  3261. return null;
  3262. }
  3263. },analyzePath:function (path, dontResolveLastLink) {
  3264. // operate from within the context of the symlink's target
  3265. try {
  3266. var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
  3267. path = lookup.path;
  3268. } catch (e) {
  3269. }
  3270. var ret = {
  3271. isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
  3272. parentExists: false, parentPath: null, parentObject: null
  3273. };
  3274. try {
  3275. var lookup = FS.lookupPath(path, { parent: true });
  3276. ret.parentExists = true;
  3277. ret.parentPath = lookup.path;
  3278. ret.parentObject = lookup.node;
  3279. ret.name = PATH.basename(path);
  3280. lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
  3281. ret.exists = true;
  3282. ret.path = lookup.path;
  3283. ret.object = lookup.node;
  3284. ret.name = lookup.node.name;
  3285. ret.isRoot = lookup.path === '/';
  3286. } catch (e) {
  3287. ret.error = e.errno;
  3288. };
  3289. return ret;
  3290. },createFolder:function (parent, name, canRead, canWrite) {
  3291. var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  3292. var mode = FS.getMode(canRead, canWrite);
  3293. return FS.mkdir(path, mode);
  3294. },createPath:function (parent, path, canRead, canWrite) {
  3295. parent = typeof parent === 'string' ? parent : FS.getPath(parent);
  3296. var parts = path.split('/').reverse();
  3297. while (parts.length) {
  3298. var part = parts.pop();
  3299. if (!part) continue;
  3300. var current = PATH.join2(parent, part);
  3301. try {
  3302. FS.mkdir(current);
  3303. } catch (e) {
  3304. // ignore EEXIST
  3305. }
  3306. parent = current;
  3307. }
  3308. return current;
  3309. },createFile:function (parent, name, properties, canRead, canWrite) {
  3310. var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  3311. var mode = FS.getMode(canRead, canWrite);
  3312. return FS.create(path, mode);
  3313. },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
  3314. var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
  3315. var mode = FS.getMode(canRead, canWrite);
  3316. var node = FS.create(path, mode);
  3317. if (data) {
  3318. if (typeof data === 'string') {
  3319. var arr = new Array(data.length);
  3320. for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
  3321. data = arr;
  3322. }
  3323. // make sure we can write to the file
  3324. FS.chmod(node, mode | 146);
  3325. var stream = FS.open(node, 'w');
  3326. FS.write(stream, data, 0, data.length, 0, canOwn);
  3327. FS.close(stream);
  3328. FS.chmod(node, mode);
  3329. }
  3330. return node;
  3331. },createDevice:function (parent, name, input, output) {
  3332. var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  3333. var mode = FS.getMode(!!input, !!output);
  3334. if (!FS.createDevice.major) FS.createDevice.major = 64;
  3335. var dev = FS.makedev(FS.createDevice.major++, 0);
  3336. // Create a fake device that a set of stream ops to emulate
  3337. // the old behavior.
  3338. FS.registerDevice(dev, {
  3339. open: function(stream) {
  3340. stream.seekable = false;
  3341. },
  3342. close: function(stream) {
  3343. // flush any pending line data
  3344. if (output && output.buffer && output.buffer.length) {
  3345. output(10);
  3346. }
  3347. },
  3348. read: function(stream, buffer, offset, length, pos /* ignored */) {
  3349. var bytesRead = 0;
  3350. for (var i = 0; i < length; i++) {
  3351. var result;
  3352. try {
  3353. result = input();
  3354. } catch (e) {
  3355. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  3356. }
  3357. if (result === undefined && bytesRead === 0) {
  3358. throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  3359. }
  3360. if (result === null || result === undefined) break;
  3361. bytesRead++;
  3362. buffer[offset+i] = result;
  3363. }
  3364. if (bytesRead) {
  3365. stream.node.timestamp = Date.now();
  3366. }
  3367. return bytesRead;
  3368. },
  3369. write: function(stream, buffer, offset, length, pos) {
  3370. for (var i = 0; i < length; i++) {
  3371. try {
  3372. output(buffer[offset+i]);
  3373. } catch (e) {
  3374. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  3375. }
  3376. }
  3377. if (length) {
  3378. stream.node.timestamp = Date.now();
  3379. }
  3380. return i;
  3381. }
  3382. });
  3383. return FS.mkdev(path, mode, dev);
  3384. },createLink:function (parent, name, target, canRead, canWrite) {
  3385. var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  3386. return FS.symlink(target, path);
  3387. },forceLoadFile:function (obj) {
  3388. if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
  3389. var success = true;
  3390. if (typeof XMLHttpRequest !== 'undefined') {
  3391. 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.");
  3392. } else if (Module['read']) {
  3393. // Command-line.
  3394. try {
  3395. // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
  3396. // read() will try to parse UTF8.
  3397. obj.contents = intArrayFromString(Module['read'](obj.url), true);
  3398. } catch (e) {
  3399. success = false;
  3400. }
  3401. } else {
  3402. throw new Error('Cannot load without read() or XMLHttpRequest.');
  3403. }
  3404. if (!success) ___setErrNo(ERRNO_CODES.EIO);
  3405. return success;
  3406. },createLazyFile:function (parent, name, url, canRead, canWrite) {
  3407. // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
  3408. function LazyUint8Array() {
  3409. this.lengthKnown = false;
  3410. this.chunks = []; // Loaded chunks. Index is the chunk number
  3411. }
  3412. LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
  3413. if (idx > this.length-1 || idx < 0) {
  3414. return undefined;
  3415. }
  3416. var chunkOffset = idx % this.chunkSize;
  3417. var chunkNum = Math.floor(idx / this.chunkSize);
  3418. return this.getter(chunkNum)[chunkOffset];
  3419. }
  3420. LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
  3421. this.getter = getter;
  3422. }
  3423. LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
  3424. // Find length
  3425. var xhr = new XMLHttpRequest();
  3426. xhr.open('HEAD', url, false);
  3427. xhr.send(null);
  3428. if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
  3429. var datalength = Number(xhr.getResponseHeader("Content-length"));
  3430. var header;
  3431. var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
  3432. var chunkSize = 1024*1024; // Chunk size in bytes
  3433. if (!hasByteServing) chunkSize = datalength;
  3434. // Function to get a range from the remote URL.
  3435. var doXHR = (function(from, to) {
  3436. if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
  3437. if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
  3438. // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
  3439. var xhr = new XMLHttpRequest();
  3440. xhr.open('GET', url, false);
  3441. if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
  3442. // Some hints to the browser that we want binary data.
  3443. if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
  3444. if (xhr.overrideMimeType) {
  3445. xhr.overrideMimeType('text/plain; charset=x-user-defined');
  3446. }
  3447. xhr.send(null);
  3448. if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
  3449. if (xhr.response !== undefined) {
  3450. return new Uint8Array(xhr.response || []);
  3451. } else {
  3452. return intArrayFromString(xhr.responseText || '', true);
  3453. }
  3454. });
  3455. var lazyArray = this;
  3456. lazyArray.setDataGetter(function(chunkNum) {
  3457. var start = chunkNum * chunkSize;
  3458. var end = (chunkNum+1) * chunkSize - 1; // including this byte
  3459. end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
  3460. if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
  3461. lazyArray.chunks[chunkNum] = doXHR(start, end);
  3462. }
  3463. if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
  3464. return lazyArray.chunks[chunkNum];
  3465. });
  3466. this._length = datalength;
  3467. this._chunkSize = chunkSize;
  3468. this.lengthKnown = true;
  3469. }
  3470. if (typeof XMLHttpRequest !== 'undefined') {
  3471. if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
  3472. var lazyArray = new LazyUint8Array();
  3473. Object.defineProperty(lazyArray, "length", {
  3474. get: function() {
  3475. if(!this.lengthKnown) {
  3476. this.cacheLength();
  3477. }
  3478. return this._length;
  3479. }
  3480. });
  3481. Object.defineProperty(lazyArray, "chunkSize", {
  3482. get: function() {
  3483. if(!this.lengthKnown) {
  3484. this.cacheLength();
  3485. }
  3486. return this._chunkSize;
  3487. }
  3488. });
  3489. var properties = { isDevice: false, contents: lazyArray };
  3490. } else {
  3491. var properties = { isDevice: false, url: url };
  3492. }
  3493. var node = FS.createFile(parent, name, properties, canRead, canWrite);
  3494. // This is a total hack, but I want to get this lazy file code out of the
  3495. // core of MEMFS. If we want to keep this lazy file concept I feel it should
  3496. // be its own thin LAZYFS proxying calls to MEMFS.
  3497. if (properties.contents) {
  3498. node.contents = properties.contents;
  3499. } else if (properties.url) {
  3500. node.contents = null;
  3501. node.url = properties.url;
  3502. }
  3503. // override each stream op with one that tries to force load the lazy file first
  3504. var stream_ops = {};
  3505. var keys = Object.keys(node.stream_ops);
  3506. keys.forEach(function(key) {
  3507. var fn = node.stream_ops[key];
  3508. stream_ops[key] = function forceLoadLazyFile() {
  3509. if (!FS.forceLoadFile(node)) {
  3510. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  3511. }
  3512. return fn.apply(null, arguments);
  3513. };
  3514. });
  3515. // use a custom read function
  3516. stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
  3517. if (!FS.forceLoadFile(node)) {
  3518. throw new FS.ErrnoError(ERRNO_CODES.EIO);
  3519. }
  3520. var contents = stream.node.contents;
  3521. if (position >= contents.length)
  3522. return 0;
  3523. var size = Math.min(contents.length - position, length);
  3524. assert(size >= 0);
  3525. if (contents.slice) { // normal array
  3526. for (var i = 0; i < size; i++) {
  3527. buffer[offset + i] = contents[position + i];
  3528. }
  3529. } else {
  3530. for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
  3531. buffer[offset + i] = contents.get(position + i);
  3532. }
  3533. }
  3534. return size;
  3535. };
  3536. node.stream_ops = stream_ops;
  3537. return node;
  3538. },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
  3539. Browser.init();
  3540. // TODO we should allow people to just pass in a complete filename instead
  3541. // of parent and name being that we just join them anyways
  3542. var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
  3543. function processData(byteArray) {
  3544. function finish(byteArray) {
  3545. if (!dontCreateFile) {
  3546. FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
  3547. }
  3548. if (onload) onload();
  3549. removeRunDependency('cp ' + fullname);
  3550. }
  3551. var handled = false;
  3552. Module['preloadPlugins'].forEach(function(plugin) {
  3553. if (handled) return;
  3554. if (plugin['canHandle'](fullname)) {
  3555. plugin['handle'](byteArray, fullname, finish, function() {
  3556. if (onerror) onerror();
  3557. removeRunDependency('cp ' + fullname);
  3558. });
  3559. handled = true;
  3560. }
  3561. });
  3562. if (!handled) finish(byteArray);
  3563. }
  3564. addRunDependency('cp ' + fullname);
  3565. if (typeof url == 'string') {
  3566. Browser.asyncLoad(url, function(byteArray) {
  3567. processData(byteArray);
  3568. }, onerror);
  3569. } else {
  3570. processData(url);
  3571. }
  3572. },indexedDB:function () {
  3573. return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
  3574. },DB_NAME:function () {
  3575. return 'EM_FS_' + window.location.pathname;
  3576. },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
  3577. onload = onload || function(){};
  3578. onerror = onerror || function(){};
  3579. var indexedDB = FS.indexedDB();
  3580. try {
  3581. var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
  3582. } catch (e) {
  3583. return onerror(e);
  3584. }
  3585. openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
  3586. console.log('creating db');
  3587. var db = openRequest.result;
  3588. db.createObjectStore(FS.DB_STORE_NAME);
  3589. };
  3590. openRequest.onsuccess = function openRequest_onsuccess() {
  3591. var db = openRequest.result;
  3592. var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
  3593. var files = transaction.objectStore(FS.DB_STORE_NAME);
  3594. var ok = 0, fail = 0, total = paths.length;
  3595. function finish() {
  3596. if (fail == 0) onload(); else onerror();
  3597. }
  3598. paths.forEach(function(path) {
  3599. var putRequest = files.put(FS.analyzePath(path).object.contents, path);
  3600. putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
  3601. putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
  3602. });
  3603. transaction.onerror = onerror;
  3604. };
  3605. openRequest.onerror = onerror;
  3606. },loadFilesFromDB:function (paths, onload, onerror) {
  3607. onload = onload || function(){};
  3608. onerror = onerror || function(){};
  3609. var indexedDB = FS.indexedDB();
  3610. try {
  3611. var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
  3612. } catch (e) {
  3613. return onerror(e);
  3614. }
  3615. openRequest.onupgradeneeded = onerror; // no database to load from
  3616. openRequest.onsuccess = function openRequest_onsuccess() {
  3617. var db = openRequest.result;
  3618. try {
  3619. var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
  3620. } catch(e) {
  3621. onerror(e);
  3622. return;
  3623. }
  3624. var files = transaction.objectStore(FS.DB_STORE_NAME);
  3625. var ok = 0, fail = 0, total = paths.length;
  3626. function finish() {
  3627. if (fail == 0) onload(); else onerror();
  3628. }
  3629. paths.forEach(function(path) {
  3630. var getRequest = files.get(path);
  3631. getRequest.onsuccess = function getRequest_onsuccess() {
  3632. if (FS.analyzePath(path).exists) {
  3633. FS.unlink(path);
  3634. }
  3635. FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
  3636. ok++;
  3637. if (ok + fail == total) finish();
  3638. };
  3639. getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
  3640. });
  3641. transaction.onerror = onerror;
  3642. };
  3643. openRequest.onerror = onerror;
  3644. }};
  3645. function _lseek(fildes, offset, whence) {
  3646. // off_t lseek(int fildes, off_t offset, int whence);
  3647. // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html
  3648. var stream = FS.getStream(fildes);
  3649. if (!stream) {
  3650. ___setErrNo(ERRNO_CODES.EBADF);
  3651. return -1;
  3652. }
  3653. try {
  3654. return FS.llseek(stream, offset, whence);
  3655. } catch (e) {
  3656. FS.handleFSError(e);
  3657. return -1;
  3658. }
  3659. }
  3660. function _fileno(stream) {
  3661. // int fileno(FILE *stream);
  3662. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html
  3663. stream = FS.getStreamFromPtr(stream);
  3664. if (!stream) return -1;
  3665. return stream.fd;
  3666. }function _fseek(stream, offset, whence) {
  3667. // int fseek(FILE *stream, long offset, int whence);
  3668. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html
  3669. var fd = _fileno(stream);
  3670. var ret = _lseek(fd, offset, whence);
  3671. if (ret == -1) {
  3672. return -1;
  3673. }
  3674. stream = FS.getStreamFromPtr(stream);
  3675. stream.eof = false;
  3676. return 0;
  3677. }
  3678. Module["_i64Subtract"] = _i64Subtract;
  3679. Module["_i64Add"] = _i64Add;
  3680. function _setlocale(category, locale) {
  3681. if (!_setlocale.ret) _setlocale.ret = allocate([0], 'i8', ALLOC_NORMAL);
  3682. return _setlocale.ret;
  3683. }
  3684. function _close(fildes) {
  3685. // int close(int fildes);
  3686. // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html
  3687. var stream = FS.getStream(fildes);
  3688. if (!stream) {
  3689. ___setErrNo(ERRNO_CODES.EBADF);
  3690. return -1;
  3691. }
  3692. try {
  3693. FS.close(stream);
  3694. return 0;
  3695. } catch (e) {
  3696. FS.handleFSError(e);
  3697. return -1;
  3698. }
  3699. }
  3700. function _fsync(fildes) {
  3701. // int fsync(int fildes);
  3702. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html
  3703. var stream = FS.getStream(fildes);
  3704. if (stream) {
  3705. // We write directly to the file system, so there's nothing to do here.
  3706. return 0;
  3707. } else {
  3708. ___setErrNo(ERRNO_CODES.EBADF);
  3709. return -1;
  3710. }
  3711. }function _fclose(stream) {
  3712. // int fclose(FILE *stream);
  3713. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html
  3714. var fd = _fileno(stream);
  3715. _fsync(fd);
  3716. return _close(fd);
  3717. }
  3718. function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) {
  3719. return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
  3720. },createSocket:function (family, type, protocol) {
  3721. var streaming = type == 1;
  3722. if (protocol) {
  3723. assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
  3724. }
  3725. // create our internal socket structure
  3726. var sock = {
  3727. family: family,
  3728. type: type,
  3729. protocol: protocol,
  3730. server: null,
  3731. peers: {},
  3732. pending: [],
  3733. recv_queue: [],
  3734. sock_ops: SOCKFS.websocket_sock_ops
  3735. };
  3736. // create the filesystem node to store the socket structure
  3737. var name = SOCKFS.nextname();
  3738. var node = FS.createNode(SOCKFS.root, name, 49152, 0);
  3739. node.sock = sock;
  3740. // and the wrapping stream that enables library functions such
  3741. // as read and write to indirectly interact with the socket
  3742. var stream = FS.createStream({
  3743. path: name,
  3744. node: node,
  3745. flags: FS.modeStringToFlags('r+'),
  3746. seekable: false,
  3747. stream_ops: SOCKFS.stream_ops
  3748. });
  3749. // map the new stream to the socket structure (sockets have a 1:1
  3750. // relationship with a stream)
  3751. sock.stream = stream;
  3752. return sock;
  3753. },getSocket:function (fd) {
  3754. var stream = FS.getStream(fd);
  3755. if (!stream || !FS.isSocket(stream.node.mode)) {
  3756. return null;
  3757. }
  3758. return stream.node.sock;
  3759. },stream_ops:{poll:function (stream) {
  3760. var sock = stream.node.sock;
  3761. return sock.sock_ops.poll(sock);
  3762. },ioctl:function (stream, request, varargs) {
  3763. var sock = stream.node.sock;
  3764. return sock.sock_ops.ioctl(sock, request, varargs);
  3765. },read:function (stream, buffer, offset, length, position /* ignored */) {
  3766. var sock = stream.node.sock;
  3767. var msg = sock.sock_ops.recvmsg(sock, length);
  3768. if (!msg) {
  3769. // socket is closed
  3770. return 0;
  3771. }
  3772. buffer.set(msg.buffer, offset);
  3773. return msg.buffer.length;
  3774. },write:function (stream, buffer, offset, length, position /* ignored */) {
  3775. var sock = stream.node.sock;
  3776. return sock.sock_ops.sendmsg(sock, buffer, offset, length);
  3777. },close:function (stream) {
  3778. var sock = stream.node.sock;
  3779. sock.sock_ops.close(sock);
  3780. }},nextname:function () {
  3781. if (!SOCKFS.nextname.current) {
  3782. SOCKFS.nextname.current = 0;
  3783. }
  3784. return 'socket[' + (SOCKFS.nextname.current++) + ']';
  3785. },websocket_sock_ops:{createPeer:function (sock, addr, port) {
  3786. var ws;
  3787. if (typeof addr === 'object') {
  3788. ws = addr;
  3789. addr = null;
  3790. port = null;
  3791. }
  3792. if (ws) {
  3793. // for sockets that've already connected (e.g. we're the server)
  3794. // we can inspect the _socket property for the address
  3795. if (ws._socket) {
  3796. addr = ws._socket.remoteAddress;
  3797. port = ws._socket.remotePort;
  3798. }
  3799. // if we're just now initializing a connection to the remote,
  3800. // inspect the url property
  3801. else {
  3802. var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
  3803. if (!result) {
  3804. throw new Error('WebSocket URL must be in the format ws(s)://address:port');
  3805. }
  3806. addr = result[1];
  3807. port = parseInt(result[2], 10);
  3808. }
  3809. } else {
  3810. // create the actual websocket object and connect
  3811. try {
  3812. // runtimeConfig gets set to true if WebSocket runtime configuration is available.
  3813. var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket']));
  3814. // The default value is 'ws://' the replace is needed because the compiler replaces "//" comments with '#'
  3815. // comments without checking context, so we'd end up with ws:#, the replace swaps the "#" for "//" again.
  3816. var url = 'ws:#'.replace('#', '//');
  3817. if (runtimeConfig) {
  3818. if ('string' === typeof Module['websocket']['url']) {
  3819. url = Module['websocket']['url']; // Fetch runtime WebSocket URL config.
  3820. }
  3821. }
  3822. if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it.
  3823. url = url + addr + ':' + port;
  3824. }
  3825. // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set.
  3826. var subProtocols = 'binary'; // The default value is 'binary'
  3827. if (runtimeConfig) {
  3828. if ('string' === typeof Module['websocket']['subprotocol']) {
  3829. subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config.
  3830. }
  3831. }
  3832. // The regex trims the string (removes spaces at the beginning and end, then splits the string by
  3833. // <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws.
  3834. subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */);
  3835. // The node ws library API for specifying optional subprotocol is slightly different than the browser's.
  3836. var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols;
  3837. // If node we use the ws library.
  3838. var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket'];
  3839. ws = new WebSocket(url, opts);
  3840. ws.binaryType = 'arraybuffer';
  3841. } catch (e) {
  3842. throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
  3843. }
  3844. }
  3845. var peer = {
  3846. addr: addr,
  3847. port: port,
  3848. socket: ws,
  3849. dgram_send_queue: []
  3850. };
  3851. SOCKFS.websocket_sock_ops.addPeer(sock, peer);
  3852. SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
  3853. // if this is a bound dgram socket, send the port number first to allow
  3854. // us to override the ephemeral port reported to us by remotePort on the
  3855. // remote end.
  3856. if (sock.type === 2 && typeof sock.sport !== 'undefined') {
  3857. peer.dgram_send_queue.push(new Uint8Array([
  3858. 255, 255, 255, 255,
  3859. 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
  3860. ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
  3861. ]));
  3862. }
  3863. return peer;
  3864. },getPeer:function (sock, addr, port) {
  3865. return sock.peers[addr + ':' + port];
  3866. },addPeer:function (sock, peer) {
  3867. sock.peers[peer.addr + ':' + peer.port] = peer;
  3868. },removePeer:function (sock, peer) {
  3869. delete sock.peers[peer.addr + ':' + peer.port];
  3870. },handlePeerEvents:function (sock, peer) {
  3871. var first = true;
  3872. var handleOpen = function () {
  3873. try {
  3874. var queued = peer.dgram_send_queue.shift();
  3875. while (queued) {
  3876. peer.socket.send(queued);
  3877. queued = peer.dgram_send_queue.shift();
  3878. }
  3879. } catch (e) {
  3880. // not much we can do here in the way of proper error handling as we've already
  3881. // lied and said this data was sent. shut it down.
  3882. peer.socket.close();
  3883. }
  3884. };
  3885. function handleMessage(data) {
  3886. assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer
  3887. data = new Uint8Array(data); // make a typed array view on the array buffer
  3888. // if this is the port message, override the peer's port with it
  3889. var wasfirst = first;
  3890. first = false;
  3891. if (wasfirst &&
  3892. data.length === 10 &&
  3893. data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
  3894. data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
  3895. // update the peer's port and it's key in the peer map
  3896. var newport = ((data[8] << 8) | data[9]);
  3897. SOCKFS.websocket_sock_ops.removePeer(sock, peer);
  3898. peer.port = newport;
  3899. SOCKFS.websocket_sock_ops.addPeer(sock, peer);
  3900. return;
  3901. }
  3902. sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
  3903. };
  3904. if (ENVIRONMENT_IS_NODE) {
  3905. peer.socket.on('open', handleOpen);
  3906. peer.socket.on('message', function(data, flags) {
  3907. if (!flags.binary) {
  3908. return;
  3909. }
  3910. handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer
  3911. });
  3912. peer.socket.on('error', function() {
  3913. // don't throw
  3914. });
  3915. } else {
  3916. peer.socket.onopen = handleOpen;
  3917. peer.socket.onmessage = function peer_socket_onmessage(event) {
  3918. handleMessage(event.data);
  3919. };
  3920. }
  3921. },poll:function (sock) {
  3922. if (sock.type === 1 && sock.server) {
  3923. // listen sockets should only say they're available for reading
  3924. // if there are pending clients.
  3925. return sock.pending.length ? (64 | 1) : 0;
  3926. }
  3927. var mask = 0;
  3928. var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets
  3929. SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
  3930. null;
  3931. if (sock.recv_queue.length ||
  3932. !dest || // connection-less sockets are always ready to read
  3933. (dest && dest.socket.readyState === dest.socket.CLOSING) ||
  3934. (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed
  3935. mask |= (64 | 1);
  3936. }
  3937. if (!dest || // connection-less sockets are always ready to write
  3938. (dest && dest.socket.readyState === dest.socket.OPEN)) {
  3939. mask |= 4;
  3940. }
  3941. if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
  3942. (dest && dest.socket.readyState === dest.socket.CLOSED)) {
  3943. mask |= 16;
  3944. }
  3945. return mask;
  3946. },ioctl:function (sock, request, arg) {
  3947. switch (request) {
  3948. case 21531:
  3949. var bytes = 0;
  3950. if (sock.recv_queue.length) {
  3951. bytes = sock.recv_queue[0].data.length;
  3952. }
  3953. HEAP32[((arg)>>2)]=bytes;
  3954. return 0;
  3955. default:
  3956. return ERRNO_CODES.EINVAL;
  3957. }
  3958. },close:function (sock) {
  3959. // if we've spawned a listen server, close it
  3960. if (sock.server) {
  3961. try {
  3962. sock.server.close();
  3963. } catch (e) {
  3964. }
  3965. sock.server = null;
  3966. }
  3967. // close any peer connections
  3968. var peers = Object.keys(sock.peers);
  3969. for (var i = 0; i < peers.length; i++) {
  3970. var peer = sock.peers[peers[i]];
  3971. try {
  3972. peer.socket.close();
  3973. } catch (e) {
  3974. }
  3975. SOCKFS.websocket_sock_ops.removePeer(sock, peer);
  3976. }
  3977. return 0;
  3978. },bind:function (sock, addr, port) {
  3979. if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
  3980. throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound
  3981. }
  3982. sock.saddr = addr;
  3983. sock.sport = port || _mkport();
  3984. // in order to emulate dgram sockets, we need to launch a listen server when
  3985. // binding on a connection-less socket
  3986. // note: this is only required on the server side
  3987. if (sock.type === 2) {
  3988. // close the existing server if it exists
  3989. if (sock.server) {
  3990. sock.server.close();
  3991. sock.server = null;
  3992. }
  3993. // swallow error operation not supported error that occurs when binding in the
  3994. // browser where this isn't supported
  3995. try {
  3996. sock.sock_ops.listen(sock, 0);
  3997. } catch (e) {
  3998. if (!(e instanceof FS.ErrnoError)) throw e;
  3999. if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
  4000. }
  4001. }
  4002. },connect:function (sock, addr, port) {
  4003. if (sock.server) {
  4004. throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);
  4005. }
  4006. // TODO autobind
  4007. // if (!sock.addr && sock.type == 2) {
  4008. // }
  4009. // early out if we're already connected / in the middle of connecting
  4010. if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
  4011. var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
  4012. if (dest) {
  4013. if (dest.socket.readyState === dest.socket.CONNECTING) {
  4014. throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
  4015. } else {
  4016. throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
  4017. }
  4018. }
  4019. }
  4020. // add the socket to our peer list and set our
  4021. // destination address / port to match
  4022. var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
  4023. sock.daddr = peer.addr;
  4024. sock.dport = peer.port;
  4025. // always "fail" in non-blocking mode
  4026. throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
  4027. },listen:function (sock, backlog) {
  4028. if (!ENVIRONMENT_IS_NODE) {
  4029. throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
  4030. }
  4031. if (sock.server) {
  4032. throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening
  4033. }
  4034. var WebSocketServer = require('ws').Server;
  4035. var host = sock.saddr;
  4036. sock.server = new WebSocketServer({
  4037. host: host,
  4038. port: sock.sport
  4039. // TODO support backlog
  4040. });
  4041. sock.server.on('connection', function(ws) {
  4042. if (sock.type === 1) {
  4043. var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
  4044. // create a peer on the new socket
  4045. var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
  4046. newsock.daddr = peer.addr;
  4047. newsock.dport = peer.port;
  4048. // push to queue for accept to pick up
  4049. sock.pending.push(newsock);
  4050. } else {
  4051. // create a peer on the listen socket so calling sendto
  4052. // with the listen socket and an address will resolve
  4053. // to the correct client
  4054. SOCKFS.websocket_sock_ops.createPeer(sock, ws);
  4055. }
  4056. });
  4057. sock.server.on('closed', function() {
  4058. sock.server = null;
  4059. });
  4060. sock.server.on('error', function() {
  4061. // don't throw
  4062. });
  4063. },accept:function (listensock) {
  4064. if (!listensock.server) {
  4065. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  4066. }
  4067. var newsock = listensock.pending.shift();
  4068. newsock.stream.flags = listensock.stream.flags;
  4069. return newsock;
  4070. },getname:function (sock, peer) {
  4071. var addr, port;
  4072. if (peer) {
  4073. if (sock.daddr === undefined || sock.dport === undefined) {
  4074. throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  4075. }
  4076. addr = sock.daddr;
  4077. port = sock.dport;
  4078. } else {
  4079. // TODO saddr and sport will be set for bind()'d UDP sockets, but what
  4080. // should we be returning for TCP sockets that've been connect()'d?
  4081. addr = sock.saddr || 0;
  4082. port = sock.sport || 0;
  4083. }
  4084. return { addr: addr, port: port };
  4085. },sendmsg:function (sock, buffer, offset, length, addr, port) {
  4086. if (sock.type === 2) {
  4087. // connection-less sockets will honor the message address,
  4088. // and otherwise fall back to the bound destination address
  4089. if (addr === undefined || port === undefined) {
  4090. addr = sock.daddr;
  4091. port = sock.dport;
  4092. }
  4093. // if there was no address to fall back to, error out
  4094. if (addr === undefined || port === undefined) {
  4095. throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
  4096. }
  4097. } else {
  4098. // connection-based sockets will only use the bound
  4099. addr = sock.daddr;
  4100. port = sock.dport;
  4101. }
  4102. // find the peer for the destination address
  4103. var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
  4104. // early out if not connected with a connection-based socket
  4105. if (sock.type === 1) {
  4106. if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  4107. throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  4108. } else if (dest.socket.readyState === dest.socket.CONNECTING) {
  4109. throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  4110. }
  4111. }
  4112. // create a copy of the incoming data to send, as the WebSocket API
  4113. // doesn't work entirely with an ArrayBufferView, it'll just send
  4114. // the entire underlying buffer
  4115. var data;
  4116. if (buffer instanceof Array || buffer instanceof ArrayBuffer) {
  4117. data = buffer.slice(offset, offset + length);
  4118. } else { // ArrayBufferView
  4119. data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length);
  4120. }
  4121. // if we're emulating a connection-less dgram socket and don't have
  4122. // a cached connection, queue the buffer to send upon connect and
  4123. // lie, saying the data was sent now.
  4124. if (sock.type === 2) {
  4125. if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
  4126. // if we're not connected, open a new connection
  4127. if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  4128. dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
  4129. }
  4130. dest.dgram_send_queue.push(data);
  4131. return length;
  4132. }
  4133. }
  4134. try {
  4135. // send the actual data
  4136. dest.socket.send(data);
  4137. return length;
  4138. } catch (e) {
  4139. throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  4140. }
  4141. },recvmsg:function (sock, length) {
  4142. // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
  4143. if (sock.type === 1 && sock.server) {
  4144. // tcp servers should not be recv()'ing on the listen socket
  4145. throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  4146. }
  4147. var queued = sock.recv_queue.shift();
  4148. if (!queued) {
  4149. if (sock.type === 1) {
  4150. var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
  4151. if (!dest) {
  4152. // if we have a destination address but are not connected, error out
  4153. throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  4154. }
  4155. else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  4156. // return null if the socket has closed
  4157. return null;
  4158. }
  4159. else {
  4160. // else, our socket is in a valid state but truly has nothing available
  4161. throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  4162. }
  4163. } else {
  4164. throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  4165. }
  4166. }
  4167. // queued.data will be an ArrayBuffer if it's unadulterated, but if it's
  4168. // requeued TCP data it'll be an ArrayBufferView
  4169. var queuedLength = queued.data.byteLength || queued.data.length;
  4170. var queuedOffset = queued.data.byteOffset || 0;
  4171. var queuedBuffer = queued.data.buffer || queued.data;
  4172. var bytesRead = Math.min(length, queuedLength);
  4173. var res = {
  4174. buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
  4175. addr: queued.addr,
  4176. port: queued.port
  4177. };
  4178. // push back any unread data for TCP connections
  4179. if (sock.type === 1 && bytesRead < queuedLength) {
  4180. var bytesRemaining = queuedLength - bytesRead;
  4181. queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
  4182. sock.recv_queue.unshift(queued);
  4183. }
  4184. return res;
  4185. }}};function _recv(fd, buf, len, flags) {
  4186. var sock = SOCKFS.getSocket(fd);
  4187. if (!sock) {
  4188. ___setErrNo(ERRNO_CODES.EBADF);
  4189. return -1;
  4190. }
  4191. // TODO honor flags
  4192. return _read(fd, buf, len);
  4193. }
  4194. function _pread(fildes, buf, nbyte, offset) {
  4195. // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
  4196. // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
  4197. var stream = FS.getStream(fildes);
  4198. if (!stream) {
  4199. ___setErrNo(ERRNO_CODES.EBADF);
  4200. return -1;
  4201. }
  4202. try {
  4203. var slab = HEAP8;
  4204. return FS.read(stream, slab, buf, nbyte, offset);
  4205. } catch (e) {
  4206. FS.handleFSError(e);
  4207. return -1;
  4208. }
  4209. }function _read(fildes, buf, nbyte) {
  4210. // ssize_t read(int fildes, void *buf, size_t nbyte);
  4211. // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
  4212. var stream = FS.getStream(fildes);
  4213. if (!stream) {
  4214. ___setErrNo(ERRNO_CODES.EBADF);
  4215. return -1;
  4216. }
  4217. try {
  4218. var slab = HEAP8;
  4219. return FS.read(stream, slab, buf, nbyte);
  4220. } catch (e) {
  4221. FS.handleFSError(e);
  4222. return -1;
  4223. }
  4224. }function _fread(ptr, size, nitems, stream) {
  4225. // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
  4226. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html
  4227. var bytesToRead = nitems * size;
  4228. if (bytesToRead == 0) {
  4229. return 0;
  4230. }
  4231. var bytesRead = 0;
  4232. var streamObj = FS.getStreamFromPtr(stream);
  4233. if (!streamObj) {
  4234. ___setErrNo(ERRNO_CODES.EBADF);
  4235. return 0;
  4236. }
  4237. while (streamObj.ungotten.length && bytesToRead > 0) {
  4238. HEAP8[((ptr++)|0)]=streamObj.ungotten.pop();
  4239. bytesToRead--;
  4240. bytesRead++;
  4241. }
  4242. var err = _read(streamObj.fd, ptr, bytesToRead);
  4243. if (err == -1) {
  4244. if (streamObj) streamObj.error = true;
  4245. return 0;
  4246. }
  4247. bytesRead += err;
  4248. if (bytesRead < bytesToRead) streamObj.eof = true;
  4249. return Math.floor(bytesRead / size);
  4250. }
  4251. function _toupper(chr) {
  4252. if (chr >= 97 && chr <= 122) {
  4253. return chr - 97 + 65;
  4254. } else {
  4255. return chr;
  4256. }
  4257. }
  4258. function _open(path, oflag, varargs) {
  4259. // int open(const char *path, int oflag, ...);
  4260. // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html
  4261. var mode = HEAP32[((varargs)>>2)];
  4262. path = Pointer_stringify(path);
  4263. try {
  4264. var stream = FS.open(path, oflag, mode);
  4265. return stream.fd;
  4266. } catch (e) {
  4267. FS.handleFSError(e);
  4268. return -1;
  4269. }
  4270. }function _fopen(filename, mode) {
  4271. // FILE *fopen(const char *restrict filename, const char *restrict mode);
  4272. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html
  4273. var flags;
  4274. mode = Pointer_stringify(mode);
  4275. if (mode[0] == 'r') {
  4276. if (mode.indexOf('+') != -1) {
  4277. flags = 2;
  4278. } else {
  4279. flags = 0;
  4280. }
  4281. } else if (mode[0] == 'w') {
  4282. if (mode.indexOf('+') != -1) {
  4283. flags = 2;
  4284. } else {
  4285. flags = 1;
  4286. }
  4287. flags |= 64;
  4288. flags |= 512;
  4289. } else if (mode[0] == 'a') {
  4290. if (mode.indexOf('+') != -1) {
  4291. flags = 2;
  4292. } else {
  4293. flags = 1;
  4294. }
  4295. flags |= 64;
  4296. flags |= 1024;
  4297. } else {
  4298. ___setErrNo(ERRNO_CODES.EINVAL);
  4299. return 0;
  4300. }
  4301. var fd = _open(filename, flags, allocate([0x1FF, 0, 0, 0], 'i32', ALLOC_STACK)); // All creation permissions.
  4302. return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd));
  4303. }
  4304. var _emscripten_check_longjmp=true;
  4305. function _send(fd, buf, len, flags) {
  4306. var sock = SOCKFS.getSocket(fd);
  4307. if (!sock) {
  4308. ___setErrNo(ERRNO_CODES.EBADF);
  4309. return -1;
  4310. }
  4311. // TODO honor flags
  4312. return _write(fd, buf, len);
  4313. }
  4314. function _pwrite(fildes, buf, nbyte, offset) {
  4315. // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
  4316. // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
  4317. var stream = FS.getStream(fildes);
  4318. if (!stream) {
  4319. ___setErrNo(ERRNO_CODES.EBADF);
  4320. return -1;
  4321. }
  4322. try {
  4323. var slab = HEAP8;
  4324. return FS.write(stream, slab, buf, nbyte, offset);
  4325. } catch (e) {
  4326. FS.handleFSError(e);
  4327. return -1;
  4328. }
  4329. }function _write(fildes, buf, nbyte) {
  4330. // ssize_t write(int fildes, const void *buf, size_t nbyte);
  4331. // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
  4332. var stream = FS.getStream(fildes);
  4333. if (!stream) {
  4334. ___setErrNo(ERRNO_CODES.EBADF);
  4335. return -1;
  4336. }
  4337. try {
  4338. var slab = HEAP8;
  4339. return FS.write(stream, slab, buf, nbyte);
  4340. } catch (e) {
  4341. FS.handleFSError(e);
  4342. return -1;
  4343. }
  4344. }function _fputc(c, stream) {
  4345. // int fputc(int c, FILE *stream);
  4346. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html
  4347. var chr = unSign(c & 0xFF);
  4348. HEAP8[((_fputc.ret)|0)]=chr;
  4349. var fd = _fileno(stream);
  4350. var ret = _write(fd, _fputc.ret, 1);
  4351. if (ret == -1) {
  4352. var streamObj = FS.getStreamFromPtr(stream);
  4353. if (streamObj) streamObj.error = true;
  4354. return -1;
  4355. } else {
  4356. return chr;
  4357. }
  4358. }
  4359. var _log=Math_log;
  4360. var _emscripten_postinvoke=true;
  4361. function _putchar(c) {
  4362. // int putchar(int c);
  4363. // http://pubs.opengroup.org/onlinepubs/000095399/functions/putchar.html
  4364. return _fputc(c, HEAP32[((_stdout)>>2)]);
  4365. }
  4366. Module["_saveSetjmp"] = _saveSetjmp;
  4367. function _fwrite(ptr, size, nitems, stream) {
  4368. // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
  4369. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
  4370. var bytesToWrite = nitems * size;
  4371. if (bytesToWrite == 0) return 0;
  4372. var fd = _fileno(stream);
  4373. var bytesWritten = _write(fd, ptr, bytesToWrite);
  4374. if (bytesWritten == -1) {
  4375. var streamObj = FS.getStreamFromPtr(stream);
  4376. if (streamObj) streamObj.error = true;
  4377. return 0;
  4378. } else {
  4379. return Math.floor(bytesWritten / size);
  4380. }
  4381. }
  4382. function _system(command) {
  4383. // int system(const char *command);
  4384. // http://pubs.opengroup.org/onlinepubs/000095399/functions/system.html
  4385. // Can't call external programs.
  4386. ___setErrNo(ERRNO_CODES.EAGAIN);
  4387. return -1;
  4388. }
  4389. function _frexp(x, exp_addr) {
  4390. var sig = 0, exp_ = 0;
  4391. if (x !== 0) {
  4392. var sign = 1;
  4393. if (x < 0) {
  4394. x = -x;
  4395. sign = -1;
  4396. }
  4397. var raw_exp = Math.log(x)/Math.log(2);
  4398. exp_ = Math.ceil(raw_exp);
  4399. if (exp_ === raw_exp) exp_ += 1;
  4400. sig = sign*x/Math.pow(2, exp_);
  4401. }
  4402. HEAP32[((exp_addr)>>2)]=exp_;
  4403. return sig;
  4404. }
  4405. var _tzname=allocate(8, "i32*", ALLOC_STATIC);
  4406. var _daylight=allocate(1, "i32*", ALLOC_STATIC);
  4407. var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() {
  4408. // TODO: Use (malleable) environment variables instead of system settings.
  4409. if (_tzset.called) return;
  4410. _tzset.called = true;
  4411. HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60;
  4412. var winter = new Date(2000, 0, 1);
  4413. var summer = new Date(2000, 6, 1);
  4414. HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset());
  4415. var winterName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | winter.toString().match(/\(([A-Z]+)\)/)[1];
  4416. var summerName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | summer.toString().match(/\(([A-Z]+)\)/)[1];
  4417. var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL);
  4418. var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL);
  4419. HEAP32[((_tzname)>>2)]=winterNamePtr;
  4420. HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr;
  4421. }function _mktime(tmPtr) {
  4422. _tzset();
  4423. var year = HEAP32[(((tmPtr)+(20))>>2)];
  4424. var timestamp = new Date(year >= 1900 ? year : year + 1900,
  4425. HEAP32[(((tmPtr)+(16))>>2)],
  4426. HEAP32[(((tmPtr)+(12))>>2)],
  4427. HEAP32[(((tmPtr)+(8))>>2)],
  4428. HEAP32[(((tmPtr)+(4))>>2)],
  4429. HEAP32[((tmPtr)>>2)],
  4430. 0).getTime() / 1000;
  4431. HEAP32[(((tmPtr)+(24))>>2)]=new Date(timestamp).getDay();
  4432. var yday = Math.round((timestamp - (new Date(year, 0, 1)).getTime()) / (1000 * 60 * 60 * 24));
  4433. HEAP32[(((tmPtr)+(28))>>2)]=yday;
  4434. return timestamp;
  4435. }
  4436. function _isalpha(chr) {
  4437. return (chr >= 97 && chr <= 122) ||
  4438. (chr >= 65 && chr <= 90);
  4439. }
  4440. function _malloc(bytes) {
  4441. /* Over-allocate to make sure it is byte-aligned by 8.
  4442. * This will leak memory, but this is only the dummy
  4443. * implementation (replaced by dlmalloc normally) so
  4444. * not an issue.
  4445. */
  4446. var ptr = Runtime.dynamicAlloc(bytes + 8);
  4447. return (ptr+8) & 0xFFFFFFF8;
  4448. }
  4449. Module["_malloc"] = _malloc;function _tmpnam(s, dir, prefix) {
  4450. // char *tmpnam(char *s);
  4451. // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpnam.html
  4452. // NOTE: The dir and prefix arguments are for internal use only.
  4453. var folder = FS.findObject(dir || '/tmp');
  4454. if (!folder || !folder.isFolder) {
  4455. dir = '/tmp';
  4456. folder = FS.findObject(dir);
  4457. if (!folder || !folder.isFolder) return 0;
  4458. }
  4459. var name = prefix || 'file';
  4460. do {
  4461. name += String.fromCharCode(65 + Math.floor(Math.random() * 25));
  4462. } while (name in folder.contents);
  4463. var result = dir + '/' + name;
  4464. if (!_tmpnam.buffer) _tmpnam.buffer = _malloc(256);
  4465. if (!s) s = _tmpnam.buffer;
  4466. writeAsciiToMemory(result, s);
  4467. return s;
  4468. }
  4469. var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:function () {
  4470. Browser.mainLoop.shouldPause = true;
  4471. },resume:function () {
  4472. if (Browser.mainLoop.paused) {
  4473. Browser.mainLoop.paused = false;
  4474. Browser.mainLoop.scheduler();
  4475. }
  4476. Browser.mainLoop.shouldPause = false;
  4477. },updateStatus:function () {
  4478. if (Module['setStatus']) {
  4479. var message = Module['statusMessage'] || 'Please wait...';
  4480. var remaining = Browser.mainLoop.remainingBlockers;
  4481. var expected = Browser.mainLoop.expectedBlockers;
  4482. if (remaining) {
  4483. if (remaining < expected) {
  4484. Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
  4485. } else {
  4486. Module['setStatus'](message);
  4487. }
  4488. } else {
  4489. Module['setStatus']('');
  4490. }
  4491. }
  4492. }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
  4493. if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
  4494. if (Browser.initted || ENVIRONMENT_IS_WORKER) return;
  4495. Browser.initted = true;
  4496. try {
  4497. new Blob();
  4498. Browser.hasBlobConstructor = true;
  4499. } catch(e) {
  4500. Browser.hasBlobConstructor = false;
  4501. console.log("warning: no blob constructor, cannot create blobs with mimetypes");
  4502. }
  4503. Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
  4504. Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
  4505. if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
  4506. console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
  4507. Module.noImageDecoding = true;
  4508. }
  4509. // Support for plugins that can process preloaded files. You can add more of these to
  4510. // your app by creating and appending to Module.preloadPlugins.
  4511. //
  4512. // Each plugin is asked if it can handle a file based on the file's name. If it can,
  4513. // it is given the file's raw data. When it is done, it calls a callback with the file's
  4514. // (possibly modified) data. For example, a plugin might decompress a file, or it
  4515. // might create some side data structure for use later (like an Image element, etc.).
  4516. var imagePlugin = {};
  4517. imagePlugin['canHandle'] = function imagePlugin_canHandle(name) {
  4518. return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
  4519. };
  4520. imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) {
  4521. var b = null;
  4522. if (Browser.hasBlobConstructor) {
  4523. try {
  4524. b = new Blob([byteArray], { type: Browser.getMimetype(name) });
  4525. if (b.size !== byteArray.length) { // Safari bug #118630
  4526. // Safari's Blob can only take an ArrayBuffer
  4527. b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
  4528. }
  4529. } catch(e) {
  4530. Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
  4531. }
  4532. }
  4533. if (!b) {
  4534. var bb = new Browser.BlobBuilder();
  4535. bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
  4536. b = bb.getBlob();
  4537. }
  4538. var url = Browser.URLObject.createObjectURL(b);
  4539. var img = new Image();
  4540. img.onload = function img_onload() {
  4541. assert(img.complete, 'Image ' + name + ' could not be decoded');
  4542. var canvas = document.createElement('canvas');
  4543. canvas.width = img.width;
  4544. canvas.height = img.height;
  4545. var ctx = canvas.getContext('2d');
  4546. ctx.drawImage(img, 0, 0);
  4547. Module["preloadedImages"][name] = canvas;
  4548. Browser.URLObject.revokeObjectURL(url);
  4549. if (onload) onload(byteArray);
  4550. };
  4551. img.onerror = function img_onerror(event) {
  4552. console.log('Image ' + url + ' could not be decoded');
  4553. if (onerror) onerror();
  4554. };
  4555. img.src = url;
  4556. };
  4557. Module['preloadPlugins'].push(imagePlugin);
  4558. var audioPlugin = {};
  4559. audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
  4560. return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
  4561. };
  4562. audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
  4563. var done = false;
  4564. function finish(audio) {
  4565. if (done) return;
  4566. done = true;
  4567. Module["preloadedAudios"][name] = audio;
  4568. if (onload) onload(byteArray);
  4569. }
  4570. function fail() {
  4571. if (done) return;
  4572. done = true;
  4573. Module["preloadedAudios"][name] = new Audio(); // empty shim
  4574. if (onerror) onerror();
  4575. }
  4576. if (Browser.hasBlobConstructor) {
  4577. try {
  4578. var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
  4579. } catch(e) {
  4580. return fail();
  4581. }
  4582. var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
  4583. var audio = new Audio();
  4584. audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
  4585. audio.onerror = function audio_onerror(event) {
  4586. if (done) return;
  4587. console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
  4588. function encode64(data) {
  4589. var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  4590. var PAD = '=';
  4591. var ret = '';
  4592. var leftchar = 0;
  4593. var leftbits = 0;
  4594. for (var i = 0; i < data.length; i++) {
  4595. leftchar = (leftchar << 8) | data[i];
  4596. leftbits += 8;
  4597. while (leftbits >= 6) {
  4598. var curr = (leftchar >> (leftbits-6)) & 0x3f;
  4599. leftbits -= 6;
  4600. ret += BASE[curr];
  4601. }
  4602. }
  4603. if (leftbits == 2) {
  4604. ret += BASE[(leftchar&3) << 4];
  4605. ret += PAD + PAD;
  4606. } else if (leftbits == 4) {
  4607. ret += BASE[(leftchar&0xf) << 2];
  4608. ret += PAD;
  4609. }
  4610. return ret;
  4611. }
  4612. audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
  4613. finish(audio); // we don't wait for confirmation this worked - but it's worth trying
  4614. };
  4615. audio.src = url;
  4616. // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
  4617. Browser.safeSetTimeout(function() {
  4618. finish(audio); // try to use it even though it is not necessarily ready to play
  4619. }, 10000);
  4620. } else {
  4621. return fail();
  4622. }
  4623. };
  4624. Module['preloadPlugins'].push(audioPlugin);
  4625. // Canvas event setup
  4626. var canvas = Module['canvas'];
  4627. // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
  4628. // Module['forcedAspectRatio'] = 4 / 3;
  4629. canvas.requestPointerLock = canvas['requestPointerLock'] ||
  4630. canvas['mozRequestPointerLock'] ||
  4631. canvas['webkitRequestPointerLock'] ||
  4632. canvas['msRequestPointerLock'] ||
  4633. function(){};
  4634. canvas.exitPointerLock = document['exitPointerLock'] ||
  4635. document['mozExitPointerLock'] ||
  4636. document['webkitExitPointerLock'] ||
  4637. document['msExitPointerLock'] ||
  4638. function(){}; // no-op if function does not exist
  4639. canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
  4640. function pointerLockChange() {
  4641. Browser.pointerLock = document['pointerLockElement'] === canvas ||
  4642. document['mozPointerLockElement'] === canvas ||
  4643. document['webkitPointerLockElement'] === canvas ||
  4644. document['msPointerLockElement'] === canvas;
  4645. }
  4646. document.addEventListener('pointerlockchange', pointerLockChange, false);
  4647. document.addEventListener('mozpointerlockchange', pointerLockChange, false);
  4648. document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
  4649. document.addEventListener('mspointerlockchange', pointerLockChange, false);
  4650. if (Module['elementPointerLock']) {
  4651. canvas.addEventListener("click", function(ev) {
  4652. if (!Browser.pointerLock && canvas.requestPointerLock) {
  4653. canvas.requestPointerLock();
  4654. ev.preventDefault();
  4655. }
  4656. }, false);
  4657. }
  4658. },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) {
  4659. var ctx;
  4660. var errorInfo = '?';
  4661. function onContextCreationError(event) {
  4662. errorInfo = event.statusMessage || errorInfo;
  4663. }
  4664. try {
  4665. if (useWebGL) {
  4666. var contextAttributes = {
  4667. antialias: false,
  4668. alpha: false
  4669. };
  4670. if (webGLContextAttributes) {
  4671. for (var attribute in webGLContextAttributes) {
  4672. contextAttributes[attribute] = webGLContextAttributes[attribute];
  4673. }
  4674. }
  4675. canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false);
  4676. try {
  4677. ['experimental-webgl', 'webgl'].some(function(webglId) {
  4678. return ctx = canvas.getContext(webglId, contextAttributes);
  4679. });
  4680. } finally {
  4681. canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false);
  4682. }
  4683. } else {
  4684. ctx = canvas.getContext('2d');
  4685. }
  4686. if (!ctx) throw ':(';
  4687. } catch (e) {
  4688. Module.print('Could not create canvas: ' + [errorInfo, e]);
  4689. return null;
  4690. }
  4691. if (useWebGL) {
  4692. // Set the background of the WebGL canvas to black
  4693. canvas.style.backgroundColor = "black";
  4694. // Warn on context loss
  4695. canvas.addEventListener('webglcontextlost', function(event) {
  4696. alert('WebGL context lost. You will need to reload the page.');
  4697. }, false);
  4698. }
  4699. if (setInModule) {
  4700. GLctx = Module.ctx = ctx;
  4701. Module.useWebGL = useWebGL;
  4702. Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
  4703. Browser.init();
  4704. }
  4705. return ctx;
  4706. },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
  4707. Browser.lockPointer = lockPointer;
  4708. Browser.resizeCanvas = resizeCanvas;
  4709. if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
  4710. if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
  4711. var canvas = Module['canvas'];
  4712. function fullScreenChange() {
  4713. Browser.isFullScreen = false;
  4714. var canvasContainer = canvas.parentNode;
  4715. if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
  4716. document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
  4717. document['fullScreenElement'] || document['fullscreenElement'] ||
  4718. document['msFullScreenElement'] || document['msFullscreenElement'] ||
  4719. document['webkitCurrentFullScreenElement']) === canvasContainer) {
  4720. canvas.cancelFullScreen = document['cancelFullScreen'] ||
  4721. document['mozCancelFullScreen'] ||
  4722. document['webkitCancelFullScreen'] ||
  4723. document['msExitFullscreen'] ||
  4724. document['exitFullscreen'] ||
  4725. function() {};
  4726. canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
  4727. if (Browser.lockPointer) canvas.requestPointerLock();
  4728. Browser.isFullScreen = true;
  4729. if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
  4730. } else {
  4731. // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen
  4732. canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
  4733. canvasContainer.parentNode.removeChild(canvasContainer);
  4734. if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
  4735. }
  4736. if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
  4737. Browser.updateCanvasDimensions(canvas);
  4738. }
  4739. if (!Browser.fullScreenHandlersInstalled) {
  4740. Browser.fullScreenHandlersInstalled = true;
  4741. document.addEventListener('fullscreenchange', fullScreenChange, false);
  4742. document.addEventListener('mozfullscreenchange', fullScreenChange, false);
  4743. document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
  4744. document.addEventListener('MSFullscreenChange', fullScreenChange, false);
  4745. }
  4746. // 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
  4747. var canvasContainer = document.createElement("div");
  4748. canvas.parentNode.insertBefore(canvasContainer, canvas);
  4749. canvasContainer.appendChild(canvas);
  4750. // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
  4751. canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] ||
  4752. canvasContainer['mozRequestFullScreen'] ||
  4753. canvasContainer['msRequestFullscreen'] ||
  4754. (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
  4755. canvasContainer.requestFullScreen();
  4756. },requestAnimationFrame:function requestAnimationFrame(func) {
  4757. if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js)
  4758. setTimeout(func, 1000/60);
  4759. } else {
  4760. if (!window.requestAnimationFrame) {
  4761. window.requestAnimationFrame = window['requestAnimationFrame'] ||
  4762. window['mozRequestAnimationFrame'] ||
  4763. window['webkitRequestAnimationFrame'] ||
  4764. window['msRequestAnimationFrame'] ||
  4765. window['oRequestAnimationFrame'] ||
  4766. window['setTimeout'];
  4767. }
  4768. window.requestAnimationFrame(func);
  4769. }
  4770. },safeCallback:function (func) {
  4771. return function() {
  4772. if (!ABORT) return func.apply(null, arguments);
  4773. };
  4774. },safeRequestAnimationFrame:function (func) {
  4775. return Browser.requestAnimationFrame(function() {
  4776. if (!ABORT) func();
  4777. });
  4778. },safeSetTimeout:function (func, timeout) {
  4779. return setTimeout(function() {
  4780. if (!ABORT) func();
  4781. }, timeout);
  4782. },safeSetInterval:function (func, timeout) {
  4783. return setInterval(function() {
  4784. if (!ABORT) func();
  4785. }, timeout);
  4786. },getMimetype:function (name) {
  4787. return {
  4788. 'jpg': 'image/jpeg',
  4789. 'jpeg': 'image/jpeg',
  4790. 'png': 'image/png',
  4791. 'bmp': 'image/bmp',
  4792. 'ogg': 'audio/ogg',
  4793. 'wav': 'audio/wav',
  4794. 'mp3': 'audio/mpeg'
  4795. }[name.substr(name.lastIndexOf('.')+1)];
  4796. },getUserMedia:function (func) {
  4797. if(!window.getUserMedia) {
  4798. window.getUserMedia = navigator['getUserMedia'] ||
  4799. navigator['mozGetUserMedia'];
  4800. }
  4801. window.getUserMedia(func);
  4802. },getMovementX:function (event) {
  4803. return event['movementX'] ||
  4804. event['mozMovementX'] ||
  4805. event['webkitMovementX'] ||
  4806. 0;
  4807. },getMovementY:function (event) {
  4808. return event['movementY'] ||
  4809. event['mozMovementY'] ||
  4810. event['webkitMovementY'] ||
  4811. 0;
  4812. },getMouseWheelDelta:function (event) {
  4813. return Math.max(-1, Math.min(1, event.type === 'DOMMouseScroll' ? event.detail : -event.wheelDelta));
  4814. },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
  4815. if (Browser.pointerLock) {
  4816. // When the pointer is locked, calculate the coordinates
  4817. // based on the movement of the mouse.
  4818. // Workaround for Firefox bug 764498
  4819. if (event.type != 'mousemove' &&
  4820. ('mozMovementX' in event)) {
  4821. Browser.mouseMovementX = Browser.mouseMovementY = 0;
  4822. } else {
  4823. Browser.mouseMovementX = Browser.getMovementX(event);
  4824. Browser.mouseMovementY = Browser.getMovementY(event);
  4825. }
  4826. // check if SDL is available
  4827. if (typeof SDL != "undefined") {
  4828. Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
  4829. Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
  4830. } else {
  4831. // just add the mouse delta to the current absolut mouse position
  4832. // FIXME: ideally this should be clamped against the canvas size and zero
  4833. Browser.mouseX += Browser.mouseMovementX;
  4834. Browser.mouseY += Browser.mouseMovementY;
  4835. }
  4836. } else {
  4837. // Otherwise, calculate the movement based on the changes
  4838. // in the coordinates.
  4839. var rect = Module["canvas"].getBoundingClientRect();
  4840. var x, y;
  4841. // Neither .scrollX or .pageXOffset are defined in a spec, but
  4842. // we prefer .scrollX because it is currently in a spec draft.
  4843. // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/)
  4844. var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset);
  4845. var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset);
  4846. if (event.type == 'touchstart' ||
  4847. event.type == 'touchend' ||
  4848. event.type == 'touchmove') {
  4849. var t = event.touches.item(0);
  4850. if (t) {
  4851. x = t.pageX - (scrollX + rect.left);
  4852. y = t.pageY - (scrollY + rect.top);
  4853. } else {
  4854. return;
  4855. }
  4856. } else {
  4857. x = event.pageX - (scrollX + rect.left);
  4858. y = event.pageY - (scrollY + rect.top);
  4859. }
  4860. // the canvas might be CSS-scaled compared to its backbuffer;
  4861. // SDL-using content will want mouse coordinates in terms
  4862. // of backbuffer units.
  4863. var cw = Module["canvas"].width;
  4864. var ch = Module["canvas"].height;
  4865. x = x * (cw / rect.width);
  4866. y = y * (ch / rect.height);
  4867. Browser.mouseMovementX = x - Browser.mouseX;
  4868. Browser.mouseMovementY = y - Browser.mouseY;
  4869. Browser.mouseX = x;
  4870. Browser.mouseY = y;
  4871. }
  4872. },xhrLoad:function (url, onload, onerror) {
  4873. var xhr = new XMLHttpRequest();
  4874. xhr.open('GET', url, true);
  4875. xhr.responseType = 'arraybuffer';
  4876. xhr.onload = function xhr_onload() {
  4877. if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
  4878. onload(xhr.response);
  4879. } else {
  4880. onerror();
  4881. }
  4882. };
  4883. xhr.onerror = onerror;
  4884. xhr.send(null);
  4885. },asyncLoad:function (url, onload, onerror, noRunDep) {
  4886. Browser.xhrLoad(url, function(arrayBuffer) {
  4887. assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
  4888. onload(new Uint8Array(arrayBuffer));
  4889. if (!noRunDep) removeRunDependency('al ' + url);
  4890. }, function(event) {
  4891. if (onerror) {
  4892. onerror();
  4893. } else {
  4894. throw 'Loading data file "' + url + '" failed.';
  4895. }
  4896. });
  4897. if (!noRunDep) addRunDependency('al ' + url);
  4898. },resizeListeners:[],updateResizeListeners:function () {
  4899. var canvas = Module['canvas'];
  4900. Browser.resizeListeners.forEach(function(listener) {
  4901. listener(canvas.width, canvas.height);
  4902. });
  4903. },setCanvasSize:function (width, height, noUpdates) {
  4904. var canvas = Module['canvas'];
  4905. Browser.updateCanvasDimensions(canvas, width, height);
  4906. if (!noUpdates) Browser.updateResizeListeners();
  4907. },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
  4908. // check if SDL is available
  4909. if (typeof SDL != "undefined") {
  4910. var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
  4911. flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
  4912. HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
  4913. }
  4914. Browser.updateResizeListeners();
  4915. },setWindowedCanvasSize:function () {
  4916. // check if SDL is available
  4917. if (typeof SDL != "undefined") {
  4918. var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
  4919. flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
  4920. HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
  4921. }
  4922. Browser.updateResizeListeners();
  4923. },updateCanvasDimensions:function (canvas, wNative, hNative) {
  4924. if (wNative && hNative) {
  4925. canvas.widthNative = wNative;
  4926. canvas.heightNative = hNative;
  4927. } else {
  4928. wNative = canvas.widthNative;
  4929. hNative = canvas.heightNative;
  4930. }
  4931. var w = wNative;
  4932. var h = hNative;
  4933. if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) {
  4934. if (w/h < Module['forcedAspectRatio']) {
  4935. w = Math.round(h * Module['forcedAspectRatio']);
  4936. } else {
  4937. h = Math.round(w / Module['forcedAspectRatio']);
  4938. }
  4939. }
  4940. if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
  4941. document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
  4942. document['fullScreenElement'] || document['fullscreenElement'] ||
  4943. document['msFullScreenElement'] || document['msFullscreenElement'] ||
  4944. document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) {
  4945. var factor = Math.min(screen.width / w, screen.height / h);
  4946. w = Math.round(w * factor);
  4947. h = Math.round(h * factor);
  4948. }
  4949. if (Browser.resizeCanvas) {
  4950. if (canvas.width != w) canvas.width = w;
  4951. if (canvas.height != h) canvas.height = h;
  4952. if (typeof canvas.style != 'undefined') {
  4953. canvas.style.removeProperty( "width");
  4954. canvas.style.removeProperty("height");
  4955. }
  4956. } else {
  4957. if (canvas.width != wNative) canvas.width = wNative;
  4958. if (canvas.height != hNative) canvas.height = hNative;
  4959. if (typeof canvas.style != 'undefined') {
  4960. if (w != wNative || h != hNative) {
  4961. canvas.style.setProperty( "width", w + "px", "important");
  4962. canvas.style.setProperty("height", h + "px", "important");
  4963. } else {
  4964. canvas.style.removeProperty( "width");
  4965. canvas.style.removeProperty("height");
  4966. }
  4967. }
  4968. }
  4969. }};
  4970. function _log10(x) {
  4971. return Math.log(x) / Math.LN10;
  4972. }
  4973. function _isspace(chr) {
  4974. return (chr == 32) || (chr >= 9 && chr <= 13);
  4975. }
  4976. var ___tm_current=allocate(44, "i8", ALLOC_STATIC);
  4977. var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);function _localtime_r(time, tmPtr) {
  4978. _tzset();
  4979. var date = new Date(HEAP32[((time)>>2)]*1000);
  4980. HEAP32[((tmPtr)>>2)]=date.getSeconds();
  4981. HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes();
  4982. HEAP32[(((tmPtr)+(8))>>2)]=date.getHours();
  4983. HEAP32[(((tmPtr)+(12))>>2)]=date.getDate();
  4984. HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth();
  4985. HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900;
  4986. HEAP32[(((tmPtr)+(24))>>2)]=date.getDay();
  4987. var start = new Date(date.getFullYear(), 0, 1);
  4988. var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
  4989. HEAP32[(((tmPtr)+(28))>>2)]=yday;
  4990. HEAP32[(((tmPtr)+(36))>>2)]=start.getTimezoneOffset() * 60;
  4991. var dst = Number(start.getTimezoneOffset() != date.getTimezoneOffset());
  4992. HEAP32[(((tmPtr)+(32))>>2)]=dst;
  4993. HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
  4994. return tmPtr;
  4995. }function _localtime(time) {
  4996. return _localtime_r(time, ___tm_current);
  4997. }
  4998. function _srand(seed) {
  4999. HEAP32[((___rand_seed)>>2)]=seed
  5000. }
  5001. var _emscripten_prep_setjmp=true;
  5002. Module["_testSetjmp"] = _testSetjmp;function _longjmp(env, value) {
  5003. asm['setThrew'](env, value || 1);
  5004. throw 'longjmp';
  5005. }function _emscripten_longjmp(env, value) {
  5006. _longjmp(env, value);
  5007. }
  5008. var _ceil=Math_ceil;
  5009. function _emscripten_memcpy_big(dest, src, num) {
  5010. HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
  5011. return dest;
  5012. }
  5013. Module["_memcpy"] = _memcpy;
  5014. var _llvm_pow_f64=Math_pow;
  5015. Module["_strlen"] = _strlen;function _fputs(s, stream) {
  5016. // int fputs(const char *restrict s, FILE *restrict stream);
  5017. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html
  5018. var fd = _fileno(stream);
  5019. return _write(fd, s, _strlen(s));
  5020. }
  5021. function _sbrk(bytes) {
  5022. // Implement a Linux-like 'memory area' for our 'process'.
  5023. // Changes the size of the memory area by |bytes|; returns the
  5024. // address of the previous top ('break') of the memory area
  5025. // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
  5026. var self = _sbrk;
  5027. if (!self.called) {
  5028. DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
  5029. self.called = true;
  5030. assert(Runtime.dynamicAlloc);
  5031. self.alloc = Runtime.dynamicAlloc;
  5032. Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
  5033. }
  5034. var ret = DYNAMICTOP;
  5035. if (bytes != 0) self.alloc(bytes);
  5036. return ret; // Previous break location.
  5037. }
  5038. function _sinh(x) {
  5039. var p = Math.pow(Math.E, x);
  5040. return (p - (1 / p)) / 2;
  5041. }
  5042. function _cosh(x) {
  5043. var p = Math.pow(Math.E, x);
  5044. return (p + (1 / p)) / 2;
  5045. }function _tanh(x) {
  5046. return _sinh(x) / _cosh(x);
  5047. }
  5048. function _signal(sig, func) {
  5049. // TODO
  5050. return 0;
  5051. }
  5052. function __getFloat(text) {
  5053. return /^[+-]?[0-9]*\.?[0-9]+([eE][+-]?[0-9]+)?/.exec(text);
  5054. }function __scanString(format, get, unget, varargs) {
  5055. if (!__scanString.whiteSpace) {
  5056. __scanString.whiteSpace = {};
  5057. __scanString.whiteSpace[32] = 1;
  5058. __scanString.whiteSpace[9] = 1;
  5059. __scanString.whiteSpace[10] = 1;
  5060. __scanString.whiteSpace[11] = 1;
  5061. __scanString.whiteSpace[12] = 1;
  5062. __scanString.whiteSpace[13] = 1;
  5063. }
  5064. // Supports %x, %4x, %d.%d, %lld, %s, %f, %lf.
  5065. // TODO: Support all format specifiers.
  5066. format = Pointer_stringify(format);
  5067. var soFar = 0;
  5068. if (format.indexOf('%n') >= 0) {
  5069. // need to track soFar
  5070. var _get = get;
  5071. get = function get() {
  5072. soFar++;
  5073. return _get();
  5074. }
  5075. var _unget = unget;
  5076. unget = function unget() {
  5077. soFar--;
  5078. return _unget();
  5079. }
  5080. }
  5081. var formatIndex = 0;
  5082. var argsi = 0;
  5083. var fields = 0;
  5084. var argIndex = 0;
  5085. var next;
  5086. mainLoop:
  5087. for (var formatIndex = 0; formatIndex < format.length;) {
  5088. if (format[formatIndex] === '%' && format[formatIndex+1] == 'n') {
  5089. var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
  5090. argIndex += Runtime.getAlignSize('void*', null, true);
  5091. HEAP32[((argPtr)>>2)]=soFar;
  5092. formatIndex += 2;
  5093. continue;
  5094. }
  5095. if (format[formatIndex] === '%') {
  5096. var nextC = format.indexOf('c', formatIndex+1);
  5097. if (nextC > 0) {
  5098. var maxx = 1;
  5099. if (nextC > formatIndex+1) {
  5100. var sub = format.substring(formatIndex+1, nextC);
  5101. maxx = parseInt(sub);
  5102. if (maxx != sub) maxx = 0;
  5103. }
  5104. if (maxx) {
  5105. var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
  5106. argIndex += Runtime.getAlignSize('void*', null, true);
  5107. fields++;
  5108. for (var i = 0; i < maxx; i++) {
  5109. next = get();
  5110. HEAP8[((argPtr++)|0)]=next;
  5111. if (next === 0) return i > 0 ? fields : fields-1; // we failed to read the full length of this field
  5112. }
  5113. formatIndex += nextC - formatIndex + 1;
  5114. continue;
  5115. }
  5116. }
  5117. }
  5118. // handle %[...]
  5119. if (format[formatIndex] === '%' && format.indexOf('[', formatIndex+1) > 0) {
  5120. var match = /\%([0-9]*)\[(\^)?(\]?[^\]]*)\]/.exec(format.substring(formatIndex));
  5121. if (match) {
  5122. var maxNumCharacters = parseInt(match[1]) || Infinity;
  5123. var negateScanList = (match[2] === '^');
  5124. var scanList = match[3];
  5125. // expand "middle" dashs into character sets
  5126. var middleDashMatch;
  5127. while ((middleDashMatch = /([^\-])\-([^\-])/.exec(scanList))) {
  5128. var rangeStartCharCode = middleDashMatch[1].charCodeAt(0);
  5129. var rangeEndCharCode = middleDashMatch[2].charCodeAt(0);
  5130. for (var expanded = ''; rangeStartCharCode <= rangeEndCharCode; expanded += String.fromCharCode(rangeStartCharCode++));
  5131. scanList = scanList.replace(middleDashMatch[1] + '-' + middleDashMatch[2], expanded);
  5132. }
  5133. var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
  5134. argIndex += Runtime.getAlignSize('void*', null, true);
  5135. fields++;
  5136. for (var i = 0; i < maxNumCharacters; i++) {
  5137. next = get();
  5138. if (negateScanList) {
  5139. if (scanList.indexOf(String.fromCharCode(next)) < 0) {
  5140. HEAP8[((argPtr++)|0)]=next;
  5141. } else {
  5142. unget();
  5143. break;
  5144. }
  5145. } else {
  5146. if (scanList.indexOf(String.fromCharCode(next)) >= 0) {
  5147. HEAP8[((argPtr++)|0)]=next;
  5148. } else {
  5149. unget();
  5150. break;
  5151. }
  5152. }
  5153. }
  5154. // write out null-terminating character
  5155. HEAP8[((argPtr++)|0)]=0;
  5156. formatIndex += match[0].length;
  5157. continue;
  5158. }
  5159. }
  5160. // remove whitespace
  5161. while (1) {
  5162. next = get();
  5163. if (next == 0) return fields;
  5164. if (!(next in __scanString.whiteSpace)) break;
  5165. }
  5166. unget();
  5167. if (format[formatIndex] === '%') {
  5168. formatIndex++;
  5169. var suppressAssignment = false;
  5170. if (format[formatIndex] == '*') {
  5171. suppressAssignment = true;
  5172. formatIndex++;
  5173. }
  5174. var maxSpecifierStart = formatIndex;
  5175. while (format[formatIndex].charCodeAt(0) >= 48 &&
  5176. format[formatIndex].charCodeAt(0) <= 57) {
  5177. formatIndex++;
  5178. }
  5179. var max_;
  5180. if (formatIndex != maxSpecifierStart) {
  5181. max_ = parseInt(format.slice(maxSpecifierStart, formatIndex), 10);
  5182. }
  5183. var long_ = false;
  5184. var half = false;
  5185. var longLong = false;
  5186. if (format[formatIndex] == 'l') {
  5187. long_ = true;
  5188. formatIndex++;
  5189. if (format[formatIndex] == 'l') {
  5190. longLong = true;
  5191. formatIndex++;
  5192. }
  5193. } else if (format[formatIndex] == 'h') {
  5194. half = true;
  5195. formatIndex++;
  5196. }
  5197. var type = format[formatIndex];
  5198. formatIndex++;
  5199. var curr = 0;
  5200. var buffer = [];
  5201. // Read characters according to the format. floats are trickier, they may be in an unfloat state in the middle, then be a valid float later
  5202. if (type == 'f' || type == 'e' || type == 'g' ||
  5203. type == 'F' || type == 'E' || type == 'G') {
  5204. next = get();
  5205. while (next > 0 && (!(next in __scanString.whiteSpace))) {
  5206. buffer.push(String.fromCharCode(next));
  5207. next = get();
  5208. }
  5209. var m = __getFloat(buffer.join(''));
  5210. var last = m ? m[0].length : 0;
  5211. for (var i = 0; i < buffer.length - last + 1; i++) {
  5212. unget();
  5213. }
  5214. buffer.length = last;
  5215. } else {
  5216. next = get();
  5217. var first = true;
  5218. // Strip the optional 0x prefix for %x.
  5219. if ((type == 'x' || type == 'X') && (next == 48)) {
  5220. var peek = get();
  5221. if (peek == 120 || peek == 88) {
  5222. next = get();
  5223. } else {
  5224. unget();
  5225. }
  5226. }
  5227. while ((curr < max_ || isNaN(max_)) && next > 0) {
  5228. if (!(next in __scanString.whiteSpace) && // stop on whitespace
  5229. (type == 's' ||
  5230. ((type === 'd' || type == 'u' || type == 'i') && ((next >= 48 && next <= 57) ||
  5231. (first && next == 45))) ||
  5232. ((type === 'x' || type === 'X') && (next >= 48 && next <= 57 ||
  5233. next >= 97 && next <= 102 ||
  5234. next >= 65 && next <= 70))) &&
  5235. (formatIndex >= format.length || next !== format[formatIndex].charCodeAt(0))) { // Stop when we read something that is coming up
  5236. buffer.push(String.fromCharCode(next));
  5237. next = get();
  5238. curr++;
  5239. first = false;
  5240. } else {
  5241. break;
  5242. }
  5243. }
  5244. unget();
  5245. }
  5246. if (buffer.length === 0) return 0; // Failure.
  5247. if (suppressAssignment) continue;
  5248. var text = buffer.join('');
  5249. var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
  5250. argIndex += Runtime.getAlignSize('void*', null, true);
  5251. switch (type) {
  5252. case 'd': case 'u': case 'i':
  5253. if (half) {
  5254. HEAP16[((argPtr)>>1)]=parseInt(text, 10);
  5255. } else if (longLong) {
  5256. (tempI64 = [parseInt(text, 10)>>>0,(tempDouble=parseInt(text, 10),(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((argPtr)>>2)]=tempI64[0],HEAP32[(((argPtr)+(4))>>2)]=tempI64[1]);
  5257. } else {
  5258. HEAP32[((argPtr)>>2)]=parseInt(text, 10);
  5259. }
  5260. break;
  5261. case 'X':
  5262. case 'x':
  5263. HEAP32[((argPtr)>>2)]=parseInt(text, 16);
  5264. break;
  5265. case 'F':
  5266. case 'f':
  5267. case 'E':
  5268. case 'e':
  5269. case 'G':
  5270. case 'g':
  5271. case 'E':
  5272. // fallthrough intended
  5273. if (long_) {
  5274. HEAPF64[((argPtr)>>3)]=parseFloat(text);
  5275. } else {
  5276. HEAPF32[((argPtr)>>2)]=parseFloat(text);
  5277. }
  5278. break;
  5279. case 's':
  5280. var array = intArrayFromString(text);
  5281. for (var j = 0; j < array.length; j++) {
  5282. HEAP8[(((argPtr)+(j))|0)]=array[j];
  5283. }
  5284. break;
  5285. }
  5286. fields++;
  5287. } else if (format[formatIndex].charCodeAt(0) in __scanString.whiteSpace) {
  5288. next = get();
  5289. while (next in __scanString.whiteSpace) {
  5290. if (next <= 0) break mainLoop; // End of input.
  5291. next = get();
  5292. }
  5293. unget(next);
  5294. formatIndex++;
  5295. } else {
  5296. // Not a specifier.
  5297. next = get();
  5298. if (format[formatIndex].charCodeAt(0) !== next) {
  5299. unget(next);
  5300. break mainLoop;
  5301. }
  5302. formatIndex++;
  5303. }
  5304. }
  5305. return fields;
  5306. }
  5307. function _fgetc(stream) {
  5308. // int fgetc(FILE *stream);
  5309. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgetc.html
  5310. var streamObj = FS.getStreamFromPtr(stream);
  5311. if (!streamObj) return -1;
  5312. if (streamObj.eof || streamObj.error) return -1;
  5313. var ret = _fread(_fgetc.ret, 1, 1, stream);
  5314. if (ret == 0) {
  5315. return -1;
  5316. } else if (ret == -1) {
  5317. streamObj.error = true;
  5318. return -1;
  5319. } else {
  5320. return HEAPU8[((_fgetc.ret)|0)];
  5321. }
  5322. }
  5323. function _ungetc(c, stream) {
  5324. // int ungetc(int c, FILE *stream);
  5325. // http://pubs.opengroup.org/onlinepubs/000095399/functions/ungetc.html
  5326. stream = FS.getStreamFromPtr(stream);
  5327. if (!stream) {
  5328. return -1;
  5329. }
  5330. if (c === -1) {
  5331. // do nothing for EOF character
  5332. return c;
  5333. }
  5334. c = unSign(c & 0xFF);
  5335. stream.ungotten.push(c);
  5336. stream.eof = false;
  5337. return c;
  5338. }function _fscanf(stream, format, varargs) {
  5339. // int fscanf(FILE *restrict stream, const char *restrict format, ... );
  5340. // http://pubs.opengroup.org/onlinepubs/000095399/functions/scanf.html
  5341. var streamObj = FS.getStreamFromPtr(stream);
  5342. if (!streamObj) {
  5343. return -1;
  5344. }
  5345. var buffer = [];
  5346. function get() {
  5347. var c = _fgetc(stream);
  5348. buffer.push(c);
  5349. return c;
  5350. };
  5351. function unget() {
  5352. _ungetc(buffer.pop(), stream);
  5353. };
  5354. return __scanString(format, get, unget, varargs);
  5355. }
  5356. var _emscripten_preinvoke=true;
  5357. function _localeconv() {
  5358. // %struct.timeval = type { char* decimal point, other stuff... }
  5359. // var indexes = Runtime.calculateStructAlignment({ fields: ['i32', 'i32'] });
  5360. var me = _localeconv;
  5361. if (!me.ret) {
  5362. // These are defaults from the "C" locale
  5363. me.ret = allocate([
  5364. allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL),0,0,0, // decimal_point
  5365. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // thousands_sep
  5366. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // grouping
  5367. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // int_curr_symbol
  5368. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // currency_symbol
  5369. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_decimal_point
  5370. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_thousands_sep
  5371. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_grouping
  5372. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // positive_sign
  5373. allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0 // negative_sign
  5374. ], 'i8*', ALLOC_NORMAL); // Allocate strings in lconv, still don't allocate chars
  5375. }
  5376. return me.ret;
  5377. }
  5378. function _unlink(path) {
  5379. // int unlink(const char *path);
  5380. // http://pubs.opengroup.org/onlinepubs/000095399/functions/unlink.html
  5381. path = Pointer_stringify(path);
  5382. try {
  5383. FS.unlink(path);
  5384. return 0;
  5385. } catch (e) {
  5386. FS.handleFSError(e);
  5387. return -1;
  5388. }
  5389. }
  5390. function _rmdir(path) {
  5391. // int rmdir(const char *path);
  5392. // http://pubs.opengroup.org/onlinepubs/000095399/functions/rmdir.html
  5393. path = Pointer_stringify(path);
  5394. try {
  5395. FS.rmdir(path);
  5396. return 0;
  5397. } catch (e) {
  5398. FS.handleFSError(e);
  5399. return -1;
  5400. }
  5401. }function _remove(path) {
  5402. // int remove(const char *path);
  5403. // http://pubs.opengroup.org/onlinepubs/000095399/functions/remove.html
  5404. var ret = _unlink(path);
  5405. if (ret == -1) ret = _rmdir(path);
  5406. return ret;
  5407. }
  5408. function _freopen(filename, mode, stream) {
  5409. // FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict stream);
  5410. // http://pubs.opengroup.org/onlinepubs/000095399/functions/freopen.html
  5411. if (!filename) {
  5412. var streamObj = FS.getStreamFromPtr(stream);
  5413. if (!streamObj) {
  5414. ___setErrNo(ERRNO_CODES.EBADF);
  5415. return 0;
  5416. }
  5417. if (_freopen.buffer) _free(_freopen.buffer);
  5418. filename = intArrayFromString(streamObj.path);
  5419. filename = allocate(filename, 'i8', ALLOC_NORMAL);
  5420. }
  5421. _fclose(stream);
  5422. return _fopen(filename, mode);
  5423. }
  5424. function _rename(old_path, new_path) {
  5425. // int rename(const char *old, const char *new);
  5426. // http://pubs.opengroup.org/onlinepubs/000095399/functions/rename.html
  5427. old_path = Pointer_stringify(old_path);
  5428. new_path = Pointer_stringify(new_path);
  5429. try {
  5430. FS.rename(old_path, new_path);
  5431. return 0;
  5432. } catch (e) {
  5433. FS.handleFSError(e);
  5434. return -1;
  5435. }
  5436. }
  5437. function _tmpfile() {
  5438. // FILE *tmpfile(void);
  5439. // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpfile.html
  5440. // TODO: Delete the created file on closing.
  5441. if (_tmpfile.mode) {
  5442. _tmpfile.mode = allocate(intArrayFromString('w+'), 'i8', ALLOC_NORMAL);
  5443. }
  5444. return _fopen(_tmpnam(0), _tmpfile.mode);
  5445. }
  5446. function _sysconf(name) {
  5447. // long sysconf(int name);
  5448. // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
  5449. switch(name) {
  5450. case 30: return PAGE_SIZE;
  5451. case 132:
  5452. case 133:
  5453. case 12:
  5454. case 137:
  5455. case 138:
  5456. case 15:
  5457. case 235:
  5458. case 16:
  5459. case 17:
  5460. case 18:
  5461. case 19:
  5462. case 20:
  5463. case 149:
  5464. case 13:
  5465. case 10:
  5466. case 236:
  5467. case 153:
  5468. case 9:
  5469. case 21:
  5470. case 22:
  5471. case 159:
  5472. case 154:
  5473. case 14:
  5474. case 77:
  5475. case 78:
  5476. case 139:
  5477. case 80:
  5478. case 81:
  5479. case 79:
  5480. case 82:
  5481. case 68:
  5482. case 67:
  5483. case 164:
  5484. case 11:
  5485. case 29:
  5486. case 47:
  5487. case 48:
  5488. case 95:
  5489. case 52:
  5490. case 51:
  5491. case 46:
  5492. return 200809;
  5493. case 27:
  5494. case 246:
  5495. case 127:
  5496. case 128:
  5497. case 23:
  5498. case 24:
  5499. case 160:
  5500. case 161:
  5501. case 181:
  5502. case 182:
  5503. case 242:
  5504. case 183:
  5505. case 184:
  5506. case 243:
  5507. case 244:
  5508. case 245:
  5509. case 165:
  5510. case 178:
  5511. case 179:
  5512. case 49:
  5513. case 50:
  5514. case 168:
  5515. case 169:
  5516. case 175:
  5517. case 170:
  5518. case 171:
  5519. case 172:
  5520. case 97:
  5521. case 76:
  5522. case 32:
  5523. case 173:
  5524. case 35:
  5525. return -1;
  5526. case 176:
  5527. case 177:
  5528. case 7:
  5529. case 155:
  5530. case 8:
  5531. case 157:
  5532. case 125:
  5533. case 126:
  5534. case 92:
  5535. case 93:
  5536. case 129:
  5537. case 130:
  5538. case 131:
  5539. case 94:
  5540. case 91:
  5541. return 1;
  5542. case 74:
  5543. case 60:
  5544. case 69:
  5545. case 70:
  5546. case 4:
  5547. return 1024;
  5548. case 31:
  5549. case 42:
  5550. case 72:
  5551. return 32;
  5552. case 87:
  5553. case 26:
  5554. case 33:
  5555. return 2147483647;
  5556. case 34:
  5557. case 1:
  5558. return 47839;
  5559. case 38:
  5560. case 36:
  5561. return 99;
  5562. case 43:
  5563. case 37:
  5564. return 2048;
  5565. case 0: return 2097152;
  5566. case 3: return 65536;
  5567. case 28: return 32768;
  5568. case 44: return 32767;
  5569. case 75: return 16384;
  5570. case 39: return 1000;
  5571. case 89: return 700;
  5572. case 71: return 256;
  5573. case 40: return 255;
  5574. case 2: return 100;
  5575. case 180: return 64;
  5576. case 25: return 20;
  5577. case 5: return 16;
  5578. case 6: return 6;
  5579. case 73: return 4;
  5580. case 84: return 1;
  5581. }
  5582. ___setErrNo(ERRNO_CODES.EINVAL);
  5583. return -1;
  5584. }
  5585. function ___errno_location() {
  5586. return ___errno_state;
  5587. }
  5588. Module["_memset"] = _memset;
  5589. Module["_bitshift64Shl"] = _bitshift64Shl;
  5590. function _abort() {
  5591. Module['abort']();
  5592. }
  5593. function __reallyNegative(x) {
  5594. return x < 0 || (x === 0 && (1/x) === -Infinity);
  5595. }function __formatString(format, varargs) {
  5596. var textIndex = format;
  5597. var argIndex = 0;
  5598. function getNextArg(type) {
  5599. // NOTE: Explicitly ignoring type safety. Otherwise this fails:
  5600. // int x = 4; printf("%c\n", (char)x);
  5601. var ret;
  5602. if (type === 'double') {
  5603. ret = HEAPF64[(((varargs)+(argIndex))>>3)];
  5604. } else if (type == 'i64') {
  5605. ret = [HEAP32[(((varargs)+(argIndex))>>2)],
  5606. HEAP32[(((varargs)+(argIndex+4))>>2)]];
  5607. } else {
  5608. type = 'i32'; // varargs are always i32, i64, or double
  5609. ret = HEAP32[(((varargs)+(argIndex))>>2)];
  5610. }
  5611. argIndex += Runtime.getNativeFieldSize(type);
  5612. return ret;
  5613. }
  5614. var ret = [];
  5615. var curr, next, currArg;
  5616. while(1) {
  5617. var startTextIndex = textIndex;
  5618. curr = HEAP8[(textIndex)];
  5619. if (curr === 0) break;
  5620. next = HEAP8[((textIndex+1)|0)];
  5621. if (curr == 37) {
  5622. // Handle flags.
  5623. var flagAlwaysSigned = false;
  5624. var flagLeftAlign = false;
  5625. var flagAlternative = false;
  5626. var flagZeroPad = false;
  5627. var flagPadSign = false;
  5628. flagsLoop: while (1) {
  5629. switch (next) {
  5630. case 43:
  5631. flagAlwaysSigned = true;
  5632. break;
  5633. case 45:
  5634. flagLeftAlign = true;
  5635. break;
  5636. case 35:
  5637. flagAlternative = true;
  5638. break;
  5639. case 48:
  5640. if (flagZeroPad) {
  5641. break flagsLoop;
  5642. } else {
  5643. flagZeroPad = true;
  5644. break;
  5645. }
  5646. case 32:
  5647. flagPadSign = true;
  5648. break;
  5649. default:
  5650. break flagsLoop;
  5651. }
  5652. textIndex++;
  5653. next = HEAP8[((textIndex+1)|0)];
  5654. }
  5655. // Handle width.
  5656. var width = 0;
  5657. if (next == 42) {
  5658. width = getNextArg('i32');
  5659. textIndex++;
  5660. next = HEAP8[((textIndex+1)|0)];
  5661. } else {
  5662. while (next >= 48 && next <= 57) {
  5663. width = width * 10 + (next - 48);
  5664. textIndex++;
  5665. next = HEAP8[((textIndex+1)|0)];
  5666. }
  5667. }
  5668. // Handle precision.
  5669. var precisionSet = false, precision = -1;
  5670. if (next == 46) {
  5671. precision = 0;
  5672. precisionSet = true;
  5673. textIndex++;
  5674. next = HEAP8[((textIndex+1)|0)];
  5675. if (next == 42) {
  5676. precision = getNextArg('i32');
  5677. textIndex++;
  5678. } else {
  5679. while(1) {
  5680. var precisionChr = HEAP8[((textIndex+1)|0)];
  5681. if (precisionChr < 48 ||
  5682. precisionChr > 57) break;
  5683. precision = precision * 10 + (precisionChr - 48);
  5684. textIndex++;
  5685. }
  5686. }
  5687. next = HEAP8[((textIndex+1)|0)];
  5688. }
  5689. if (precision < 0) {
  5690. precision = 6; // Standard default.
  5691. precisionSet = false;
  5692. }
  5693. // Handle integer sizes. WARNING: These assume a 32-bit architecture!
  5694. var argSize;
  5695. switch (String.fromCharCode(next)) {
  5696. case 'h':
  5697. var nextNext = HEAP8[((textIndex+2)|0)];
  5698. if (nextNext == 104) {
  5699. textIndex++;
  5700. argSize = 1; // char (actually i32 in varargs)
  5701. } else {
  5702. argSize = 2; // short (actually i32 in varargs)
  5703. }
  5704. break;
  5705. case 'l':
  5706. var nextNext = HEAP8[((textIndex+2)|0)];
  5707. if (nextNext == 108) {
  5708. textIndex++;
  5709. argSize = 8; // long long
  5710. } else {
  5711. argSize = 4; // long
  5712. }
  5713. break;
  5714. case 'L': // long long
  5715. case 'q': // int64_t
  5716. case 'j': // intmax_t
  5717. argSize = 8;
  5718. break;
  5719. case 'z': // size_t
  5720. case 't': // ptrdiff_t
  5721. case 'I': // signed ptrdiff_t or unsigned size_t
  5722. argSize = 4;
  5723. break;
  5724. default:
  5725. argSize = null;
  5726. }
  5727. if (argSize) textIndex++;
  5728. next = HEAP8[((textIndex+1)|0)];
  5729. // Handle type specifier.
  5730. switch (String.fromCharCode(next)) {
  5731. case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
  5732. // Integer.
  5733. var signed = next == 100 || next == 105;
  5734. argSize = argSize || 4;
  5735. var currArg = getNextArg('i' + (argSize * 8));
  5736. var origArg = currArg;
  5737. var argText;
  5738. // Flatten i64-1 [low, high] into a (slightly rounded) double
  5739. if (argSize == 8) {
  5740. currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117);
  5741. }
  5742. // Truncate to requested size.
  5743. if (argSize <= 4) {
  5744. var limit = Math.pow(256, argSize) - 1;
  5745. currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
  5746. }
  5747. // Format the number.
  5748. var currAbsArg = Math.abs(currArg);
  5749. var prefix = '';
  5750. if (next == 100 || next == 105) {
  5751. if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
  5752. argText = reSign(currArg, 8 * argSize, 1).toString(10);
  5753. } else if (next == 117) {
  5754. if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
  5755. argText = unSign(currArg, 8 * argSize, 1).toString(10);
  5756. currArg = Math.abs(currArg);
  5757. } else if (next == 111) {
  5758. argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
  5759. } else if (next == 120 || next == 88) {
  5760. prefix = (flagAlternative && currArg != 0) ? '0x' : '';
  5761. if (argSize == 8 && i64Math) {
  5762. if (origArg[1]) {
  5763. argText = (origArg[1]>>>0).toString(16);
  5764. var lower = (origArg[0]>>>0).toString(16);
  5765. while (lower.length < 8) lower = '0' + lower;
  5766. argText += lower;
  5767. } else {
  5768. argText = (origArg[0]>>>0).toString(16);
  5769. }
  5770. } else
  5771. if (currArg < 0) {
  5772. // Represent negative numbers in hex as 2's complement.
  5773. currArg = -currArg;
  5774. argText = (currAbsArg - 1).toString(16);
  5775. var buffer = [];
  5776. for (var i = 0; i < argText.length; i++) {
  5777. buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
  5778. }
  5779. argText = buffer.join('');
  5780. while (argText.length < argSize * 2) argText = 'f' + argText;
  5781. } else {
  5782. argText = currAbsArg.toString(16);
  5783. }
  5784. if (next == 88) {
  5785. prefix = prefix.toUpperCase();
  5786. argText = argText.toUpperCase();
  5787. }
  5788. } else if (next == 112) {
  5789. if (currAbsArg === 0) {
  5790. argText = '(nil)';
  5791. } else {
  5792. prefix = '0x';
  5793. argText = currAbsArg.toString(16);
  5794. }
  5795. }
  5796. if (precisionSet) {
  5797. while (argText.length < precision) {
  5798. argText = '0' + argText;
  5799. }
  5800. }
  5801. // Add sign if needed
  5802. if (currArg >= 0) {
  5803. if (flagAlwaysSigned) {
  5804. prefix = '+' + prefix;
  5805. } else if (flagPadSign) {
  5806. prefix = ' ' + prefix;
  5807. }
  5808. }
  5809. // Move sign to prefix so we zero-pad after the sign
  5810. if (argText.charAt(0) == '-') {
  5811. prefix = '-' + prefix;
  5812. argText = argText.substr(1);
  5813. }
  5814. // Add padding.
  5815. while (prefix.length + argText.length < width) {
  5816. if (flagLeftAlign) {
  5817. argText += ' ';
  5818. } else {
  5819. if (flagZeroPad) {
  5820. argText = '0' + argText;
  5821. } else {
  5822. prefix = ' ' + prefix;
  5823. }
  5824. }
  5825. }
  5826. // Insert the result into the buffer.
  5827. argText = prefix + argText;
  5828. argText.split('').forEach(function(chr) {
  5829. ret.push(chr.charCodeAt(0));
  5830. });
  5831. break;
  5832. }
  5833. case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
  5834. // Float.
  5835. var currArg = getNextArg('double');
  5836. var argText;
  5837. if (isNaN(currArg)) {
  5838. argText = 'nan';
  5839. flagZeroPad = false;
  5840. } else if (!isFinite(currArg)) {
  5841. argText = (currArg < 0 ? '-' : '') + 'inf';
  5842. flagZeroPad = false;
  5843. } else {
  5844. var isGeneral = false;
  5845. var effectivePrecision = Math.min(precision, 20);
  5846. // Convert g/G to f/F or e/E, as per:
  5847. // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
  5848. if (next == 103 || next == 71) {
  5849. isGeneral = true;
  5850. precision = precision || 1;
  5851. var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
  5852. if (precision > exponent && exponent >= -4) {
  5853. next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
  5854. precision -= exponent + 1;
  5855. } else {
  5856. next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
  5857. precision--;
  5858. }
  5859. effectivePrecision = Math.min(precision, 20);
  5860. }
  5861. if (next == 101 || next == 69) {
  5862. argText = currArg.toExponential(effectivePrecision);
  5863. // Make sure the exponent has at least 2 digits.
  5864. if (/[eE][-+]\d$/.test(argText)) {
  5865. argText = argText.slice(0, -1) + '0' + argText.slice(-1);
  5866. }
  5867. } else if (next == 102 || next == 70) {
  5868. argText = currArg.toFixed(effectivePrecision);
  5869. if (currArg === 0 && __reallyNegative(currArg)) {
  5870. argText = '-' + argText;
  5871. }
  5872. }
  5873. var parts = argText.split('e');
  5874. if (isGeneral && !flagAlternative) {
  5875. // Discard trailing zeros and periods.
  5876. while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
  5877. (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
  5878. parts[0] = parts[0].slice(0, -1);
  5879. }
  5880. } else {
  5881. // Make sure we have a period in alternative mode.
  5882. if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
  5883. // Zero pad until required precision.
  5884. while (precision > effectivePrecision++) parts[0] += '0';
  5885. }
  5886. argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
  5887. // Capitalize 'E' if needed.
  5888. if (next == 69) argText = argText.toUpperCase();
  5889. // Add sign.
  5890. if (currArg >= 0) {
  5891. if (flagAlwaysSigned) {
  5892. argText = '+' + argText;
  5893. } else if (flagPadSign) {
  5894. argText = ' ' + argText;
  5895. }
  5896. }
  5897. }
  5898. // Add padding.
  5899. while (argText.length < width) {
  5900. if (flagLeftAlign) {
  5901. argText += ' ';
  5902. } else {
  5903. if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
  5904. argText = argText[0] + '0' + argText.slice(1);
  5905. } else {
  5906. argText = (flagZeroPad ? '0' : ' ') + argText;
  5907. }
  5908. }
  5909. }
  5910. // Adjust case.
  5911. if (next < 97) argText = argText.toUpperCase();
  5912. // Insert the result into the buffer.
  5913. argText.split('').forEach(function(chr) {
  5914. ret.push(chr.charCodeAt(0));
  5915. });
  5916. break;
  5917. }
  5918. case 's': {
  5919. // String.
  5920. var arg = getNextArg('i8*');
  5921. var argLength = arg ? _strlen(arg) : '(null)'.length;
  5922. if (precisionSet) argLength = Math.min(argLength, precision);
  5923. if (!flagLeftAlign) {
  5924. while (argLength < width--) {
  5925. ret.push(32);
  5926. }
  5927. }
  5928. if (arg) {
  5929. for (var i = 0; i < argLength; i++) {
  5930. ret.push(HEAPU8[((arg++)|0)]);
  5931. }
  5932. } else {
  5933. ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
  5934. }
  5935. if (flagLeftAlign) {
  5936. while (argLength < width--) {
  5937. ret.push(32);
  5938. }
  5939. }
  5940. break;
  5941. }
  5942. case 'c': {
  5943. // Character.
  5944. if (flagLeftAlign) ret.push(getNextArg('i8'));
  5945. while (--width > 0) {
  5946. ret.push(32);
  5947. }
  5948. if (!flagLeftAlign) ret.push(getNextArg('i8'));
  5949. break;
  5950. }
  5951. case 'n': {
  5952. // Write the length written so far to the next parameter.
  5953. var ptr = getNextArg('i32*');
  5954. HEAP32[((ptr)>>2)]=ret.length;
  5955. break;
  5956. }
  5957. case '%': {
  5958. // Literal percent sign.
  5959. ret.push(curr);
  5960. break;
  5961. }
  5962. default: {
  5963. // Unknown specifiers remain untouched.
  5964. for (var i = startTextIndex; i < textIndex + 2; i++) {
  5965. ret.push(HEAP8[(i)]);
  5966. }
  5967. }
  5968. }
  5969. textIndex += 2;
  5970. // TODO: Support a/A (hex float) and m (last error) specifiers.
  5971. // TODO: Support %1${specifier} for arg selection.
  5972. } else {
  5973. ret.push(curr);
  5974. textIndex += 1;
  5975. }
  5976. }
  5977. return ret;
  5978. }function _fprintf(stream, format, varargs) {
  5979. // int fprintf(FILE *restrict stream, const char *restrict format, ...);
  5980. // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  5981. var result = __formatString(format, varargs);
  5982. var stack = Runtime.stackSave();
  5983. var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
  5984. Runtime.stackRestore(stack);
  5985. return ret;
  5986. }
  5987. function _fgets(s, n, stream) {
  5988. // char *fgets(char *restrict s, int n, FILE *restrict stream);
  5989. // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgets.html
  5990. var streamObj = FS.getStreamFromPtr(stream);
  5991. if (!streamObj) return 0;
  5992. if (streamObj.error || streamObj.eof) return 0;
  5993. var byte_;
  5994. for (var i = 0; i < n - 1 && byte_ != 10; i++) {
  5995. byte_ = _fgetc(stream);
  5996. if (byte_ == -1) {
  5997. if (streamObj.error || (streamObj.eof && i == 0)) return 0;
  5998. else if (streamObj.eof) break;
  5999. }
  6000. HEAP8[(((s)+(i))|0)]=byte_;
  6001. }
  6002. HEAP8[(((s)+(i))|0)]=0;
  6003. return s;
  6004. }
  6005. var _tan=Math_tan;
  6006. function _ispunct(chr) {
  6007. return (chr >= 33 && chr <= 47) ||
  6008. (chr >= 58 && chr <= 64) ||
  6009. (chr >= 91 && chr <= 96) ||
  6010. (chr >= 123 && chr <= 126);
  6011. }
  6012. function _feof(stream) {
  6013. // int feof(FILE *stream);
  6014. // http://pubs.opengroup.org/onlinepubs/000095399/functions/feof.html
  6015. stream = FS.getStreamFromPtr(stream);
  6016. return Number(stream && stream.eof);
  6017. }
  6018. Module["_tolower"] = _tolower;
  6019. var _asin=Math_asin;
  6020. function _clearerr(stream) {
  6021. // void clearerr(FILE *stream);
  6022. // http://pubs.opengroup.org/onlinepubs/000095399/functions/clearerr.html
  6023. stream = FS.getStreamFromPtr(stream);
  6024. if (!stream) {
  6025. return;
  6026. }
  6027. stream.eof = false;
  6028. stream.error = false;
  6029. }
  6030. var _fabs=Math_abs;
  6031. function _clock() {
  6032. if (_clock.start === undefined) _clock.start = Date.now();
  6033. return Math.floor((Date.now() - _clock.start) * (1000000/1000));
  6034. }
  6035. var _getc=_fgetc;
  6036. function _modf(x, intpart) {
  6037. HEAPF64[((intpart)>>3)]=Math.floor(x);
  6038. return x - HEAPF64[((intpart)>>3)];
  6039. }
  6040. var _sqrt=Math_sqrt;
  6041. function _isxdigit(chr) {
  6042. return (chr >= 48 && chr <= 57) ||
  6043. (chr >= 97 && chr <= 102) ||
  6044. (chr >= 65 && chr <= 70);
  6045. }
  6046. function _ftell(stream) {
  6047. // long ftell(FILE *stream);
  6048. // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html
  6049. stream = FS.getStreamFromPtr(stream);
  6050. if (!stream) {
  6051. ___setErrNo(ERRNO_CODES.EBADF);
  6052. return -1;
  6053. }
  6054. if (FS.isChrdev(stream.node.mode)) {
  6055. ___setErrNo(ERRNO_CODES.ESPIPE);
  6056. return -1;
  6057. } else {
  6058. return stream.position;
  6059. }
  6060. }
  6061. function __exit(status) {
  6062. // void _exit(int status);
  6063. // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
  6064. Module['exit'](status);
  6065. }function _exit(status) {
  6066. __exit(status);
  6067. }
  6068. function _snprintf(s, n, format, varargs) {
  6069. // int snprintf(char *restrict s, size_t n, const char *restrict format, ...);
  6070. // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  6071. var result = __formatString(format, varargs);
  6072. var limit = (n === undefined) ? result.length
  6073. : Math.min(result.length, Math.max(n - 1, 0));
  6074. if (s < 0) {
  6075. s = -s;
  6076. var buf = _malloc(limit+1);
  6077. HEAP32[((s)>>2)]=buf;
  6078. s = buf;
  6079. }
  6080. for (var i = 0; i < limit; i++) {
  6081. HEAP8[(((s)+(i))|0)]=result[i];
  6082. }
  6083. if (limit < n || (n === undefined)) HEAP8[(((s)+(i))|0)]=0;
  6084. return result.length;
  6085. }function _sprintf(s, format, varargs) {
  6086. // int sprintf(char *restrict s, const char *restrict format, ...);
  6087. // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  6088. return _snprintf(s, undefined, format, varargs);
  6089. }
  6090. var _emscripten_get_longjmp_result=true;
  6091. var _sin=Math_sin;
  6092. function _fmod(x, y) {
  6093. return x % y;
  6094. }var _fmodl=_fmod;
  6095. var _atan=Math_atan;
  6096. function _ferror(stream) {
  6097. // int ferror(FILE *stream);
  6098. // http://pubs.opengroup.org/onlinepubs/000095399/functions/ferror.html
  6099. stream = FS.getStreamFromPtr(stream);
  6100. return Number(stream && stream.error);
  6101. }
  6102. function _time(ptr) {
  6103. var ret = Math.floor(Date.now()/1000);
  6104. if (ptr) {
  6105. HEAP32[((ptr)>>2)]=ret;
  6106. }
  6107. return ret;
  6108. }
  6109. function _copysign(a, b) {
  6110. return __reallyNegative(a) === __reallyNegative(b) ? a : -a;
  6111. }
  6112. function _gmtime_r(time, tmPtr) {
  6113. var date = new Date(HEAP32[((time)>>2)]*1000);
  6114. HEAP32[((tmPtr)>>2)]=date.getUTCSeconds();
  6115. HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes();
  6116. HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours();
  6117. HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate();
  6118. HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth();
  6119. HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900;
  6120. HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay();
  6121. HEAP32[(((tmPtr)+(36))>>2)]=0;
  6122. HEAP32[(((tmPtr)+(32))>>2)]=0;
  6123. var start = new Date(date); // define date using UTC, start from Jan 01 00:00:00 UTC
  6124. start.setUTCDate(1);
  6125. start.setUTCMonth(0);
  6126. start.setUTCHours(0);
  6127. start.setUTCMinutes(0);
  6128. start.setUTCSeconds(0);
  6129. start.setUTCMilliseconds(0);
  6130. var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
  6131. HEAP32[(((tmPtr)+(28))>>2)]=yday;
  6132. HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
  6133. return tmPtr;
  6134. }function _gmtime(time) {
  6135. return _gmtime_r(time, ___tm_current);
  6136. }
  6137. function _isgraph(chr) {
  6138. return 0x20 < chr && chr < 0x7F;
  6139. }
  6140. function _strerror_r(errnum, strerrbuf, buflen) {
  6141. if (errnum in ERRNO_MESSAGES) {
  6142. if (ERRNO_MESSAGES[errnum].length > buflen - 1) {
  6143. return ___setErrNo(ERRNO_CODES.ERANGE);
  6144. } else {
  6145. var msg = ERRNO_MESSAGES[errnum];
  6146. writeAsciiToMemory(msg, strerrbuf);
  6147. return 0;
  6148. }
  6149. } else {
  6150. return ___setErrNo(ERRNO_CODES.EINVAL);
  6151. }
  6152. }function _strerror(errnum) {
  6153. if (!_strerror.buffer) _strerror.buffer = _malloc(256);
  6154. _strerror_r(errnum, _strerror.buffer, 256);
  6155. return _strerror.buffer;
  6156. }
  6157. var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) {
  6158. // WARNING: Arbitrary limit!
  6159. var MAX_ENV_VALUES = 64;
  6160. var TOTAL_ENV_SIZE = 1024;
  6161. // Statically allocate memory for the environment.
  6162. var poolPtr;
  6163. var envPtr;
  6164. if (!___buildEnvironment.called) {
  6165. ___buildEnvironment.called = true;
  6166. // Set default values. Use string keys for Closure Compiler compatibility.
  6167. ENV['USER'] = 'root';
  6168. ENV['PATH'] = '/';
  6169. ENV['PWD'] = '/';
  6170. ENV['HOME'] = '/home/emscripten';
  6171. ENV['LANG'] = 'en_US.UTF-8';
  6172. ENV['_'] = './this.program';
  6173. // Allocate memory.
  6174. poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
  6175. envPtr = allocate(MAX_ENV_VALUES * 4,
  6176. 'i8*', ALLOC_STATIC);
  6177. HEAP32[((envPtr)>>2)]=poolPtr;
  6178. HEAP32[((_environ)>>2)]=envPtr;
  6179. } else {
  6180. envPtr = HEAP32[((_environ)>>2)];
  6181. poolPtr = HEAP32[((envPtr)>>2)];
  6182. }
  6183. // Collect key=value lines.
  6184. var strings = [];
  6185. var totalSize = 0;
  6186. for (var key in env) {
  6187. if (typeof env[key] === 'string') {
  6188. var line = key + '=' + env[key];
  6189. strings.push(line);
  6190. totalSize += line.length;
  6191. }
  6192. }
  6193. if (totalSize > TOTAL_ENV_SIZE) {
  6194. throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
  6195. }
  6196. // Make new.
  6197. var ptrSize = 4;
  6198. for (var i = 0; i < strings.length; i++) {
  6199. var line = strings[i];
  6200. writeAsciiToMemory(line, poolPtr);
  6201. HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
  6202. poolPtr += line.length + 1;
  6203. }
  6204. HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
  6205. }var ENV={};function _getenv(name) {
  6206. // char *getenv(const char *name);
  6207. // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
  6208. if (name === 0) return 0;
  6209. name = Pointer_stringify(name);
  6210. if (!ENV.hasOwnProperty(name)) return 0;
  6211. if (_getenv.ret) _free(_getenv.ret);
  6212. _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL);
  6213. return _getenv.ret;
  6214. }
  6215. var _emscripten_setjmp=true;
  6216. var _cos=Math_cos;
  6217. function _isalnum(chr) {
  6218. return (chr >= 48 && chr <= 57) ||
  6219. (chr >= 97 && chr <= 122) ||
  6220. (chr >= 65 && chr <= 90);
  6221. }
  6222. var _BItoD=true;
  6223. function _difftime(time1, time0) {
  6224. return time1 - time0;
  6225. }
  6226. var _floor=Math_floor;
  6227. function _iscntrl(chr) {
  6228. return (0 <= chr && chr <= 0x1F) || chr === 0x7F;
  6229. }
  6230. var _atan2=Math_atan2;
  6231. function _setvbuf(stream, buf, type, size) {
  6232. // int setvbuf(FILE *restrict stream, char *restrict buf, int type, size_t size);
  6233. // http://pubs.opengroup.org/onlinepubs/000095399/functions/setvbuf.html
  6234. // TODO: Implement custom buffering.
  6235. return 0;
  6236. }
  6237. var _exp=Math_exp;
  6238. var _copysignl=_copysign;
  6239. function _islower(chr) {
  6240. return chr >= 97 && chr <= 122;
  6241. }
  6242. var _acos=Math_acos;
  6243. function _isupper(chr) {
  6244. return chr >= 65 && chr <= 90;
  6245. }
  6246. function __isLeapYear(year) {
  6247. return year%4 === 0 && (year%100 !== 0 || year%400 === 0);
  6248. }
  6249. function __arraySum(array, index) {
  6250. var sum = 0;
  6251. for (var i = 0; i <= index; sum += array[i++]);
  6252. return sum;
  6253. }
  6254. var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];
  6255. var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) {
  6256. var newDate = new Date(date.getTime());
  6257. while(days > 0) {
  6258. var leap = __isLeapYear(newDate.getFullYear());
  6259. var currentMonth = newDate.getMonth();
  6260. var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
  6261. if (days > daysInCurrentMonth-newDate.getDate()) {
  6262. // we spill over to next month
  6263. days -= (daysInCurrentMonth-newDate.getDate()+1);
  6264. newDate.setDate(1);
  6265. if (currentMonth < 11) {
  6266. newDate.setMonth(currentMonth+1)
  6267. } else {
  6268. newDate.setMonth(0);
  6269. newDate.setFullYear(newDate.getFullYear()+1);
  6270. }
  6271. } else {
  6272. // we stay in current month
  6273. newDate.setDate(newDate.getDate()+days);
  6274. return newDate;
  6275. }
  6276. }
  6277. return newDate;
  6278. }function _strftime(s, maxsize, format, tm) {
  6279. // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr);
  6280. // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
  6281. var date = {
  6282. tm_sec: HEAP32[((tm)>>2)],
  6283. tm_min: HEAP32[(((tm)+(4))>>2)],
  6284. tm_hour: HEAP32[(((tm)+(8))>>2)],
  6285. tm_mday: HEAP32[(((tm)+(12))>>2)],
  6286. tm_mon: HEAP32[(((tm)+(16))>>2)],
  6287. tm_year: HEAP32[(((tm)+(20))>>2)],
  6288. tm_wday: HEAP32[(((tm)+(24))>>2)],
  6289. tm_yday: HEAP32[(((tm)+(28))>>2)],
  6290. tm_isdst: HEAP32[(((tm)+(32))>>2)]
  6291. };
  6292. var pattern = Pointer_stringify(format);
  6293. // expand format
  6294. var EXPANSION_RULES_1 = {
  6295. '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013
  6296. '%D': '%m/%d/%y', // Equivalent to %m / %d / %y
  6297. '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d
  6298. '%h': '%b', // Equivalent to %b
  6299. '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation
  6300. '%R': '%H:%M', // Replaced by the time in 24-hour notation
  6301. '%T': '%H:%M:%S', // Replaced by the time
  6302. '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation
  6303. '%X': '%H:%M:%S', // Replaced by the locale's appropriate date representation
  6304. };
  6305. for (var rule in EXPANSION_RULES_1) {
  6306. pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]);
  6307. }
  6308. var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  6309. var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
  6310. function leadingSomething(value, digits, character) {
  6311. var str = typeof value === 'number' ? value.toString() : (value || '');
  6312. while (str.length < digits) {
  6313. str = character[0]+str;
  6314. }
  6315. return str;
  6316. };
  6317. function leadingNulls(value, digits) {
  6318. return leadingSomething(value, digits, '0');
  6319. };
  6320. function compareByDay(date1, date2) {
  6321. function sgn(value) {
  6322. return value < 0 ? -1 : (value > 0 ? 1 : 0);
  6323. };
  6324. var compare;
  6325. if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) {
  6326. if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) {
  6327. compare = sgn(date1.getDate()-date2.getDate());
  6328. }
  6329. }
  6330. return compare;
  6331. };
  6332. function getFirstWeekStartDate(janFourth) {
  6333. switch (janFourth.getDay()) {
  6334. case 0: // Sunday
  6335. return new Date(janFourth.getFullYear()-1, 11, 29);
  6336. case 1: // Monday
  6337. return janFourth;
  6338. case 2: // Tuesday
  6339. return new Date(janFourth.getFullYear(), 0, 3);
  6340. case 3: // Wednesday
  6341. return new Date(janFourth.getFullYear(), 0, 2);
  6342. case 4: // Thursday
  6343. return new Date(janFourth.getFullYear(), 0, 1);
  6344. case 5: // Friday
  6345. return new Date(janFourth.getFullYear()-1, 11, 31);
  6346. case 6: // Saturday
  6347. return new Date(janFourth.getFullYear()-1, 11, 30);
  6348. }
  6349. };
  6350. function getWeekBasedYear(date) {
  6351. var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
  6352. var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
  6353. var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4);
  6354. var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
  6355. var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
  6356. if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
  6357. // this date is after the start of the first week of this year
  6358. if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
  6359. return thisDate.getFullYear()+1;
  6360. } else {
  6361. return thisDate.getFullYear();
  6362. }
  6363. } else {
  6364. return thisDate.getFullYear()-1;
  6365. }
  6366. };
  6367. var EXPANSION_RULES_2 = {
  6368. '%a': function(date) {
  6369. return WEEKDAYS[date.tm_wday].substring(0,3);
  6370. },
  6371. '%A': function(date) {
  6372. return WEEKDAYS[date.tm_wday];
  6373. },
  6374. '%b': function(date) {
  6375. return MONTHS[date.tm_mon].substring(0,3);
  6376. },
  6377. '%B': function(date) {
  6378. return MONTHS[date.tm_mon];
  6379. },
  6380. '%C': function(date) {
  6381. var year = date.tm_year+1900;
  6382. return leadingNulls(Math.floor(year/100),2);
  6383. },
  6384. '%d': function(date) {
  6385. return leadingNulls(date.tm_mday, 2);
  6386. },
  6387. '%e': function(date) {
  6388. return leadingSomething(date.tm_mday, 2, ' ');
  6389. },
  6390. '%g': function(date) {
  6391. // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year.
  6392. // In this system, weeks begin on a Monday and week 1 of the year is the week that includes
  6393. // January 4th, which is also the week that includes the first Thursday of the year, and
  6394. // is also the first week that contains at least four days in the year.
  6395. // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of
  6396. // the last week of the preceding year; thus, for Saturday 2nd January 1999,
  6397. // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th,
  6398. // or 31st is a Monday, it and any following days are part of week 1 of the following year.
  6399. // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01.
  6400. return getWeekBasedYear(date).toString().substring(2);
  6401. },
  6402. '%G': function(date) {
  6403. return getWeekBasedYear(date);
  6404. },
  6405. '%H': function(date) {
  6406. return leadingNulls(date.tm_hour, 2);
  6407. },
  6408. '%I': function(date) {
  6409. return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 2);
  6410. },
  6411. '%j': function(date) {
  6412. // Day of the year (001-366)
  6413. return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3);
  6414. },
  6415. '%m': function(date) {
  6416. return leadingNulls(date.tm_mon+1, 2);
  6417. },
  6418. '%M': function(date) {
  6419. return leadingNulls(date.tm_min, 2);
  6420. },
  6421. '%n': function() {
  6422. return '\n';
  6423. },
  6424. '%p': function(date) {
  6425. if (date.tm_hour > 0 && date.tm_hour < 13) {
  6426. return 'AM';
  6427. } else {
  6428. return 'PM';
  6429. }
  6430. },
  6431. '%S': function(date) {
  6432. return leadingNulls(date.tm_sec, 2);
  6433. },
  6434. '%t': function() {
  6435. return '\t';
  6436. },
  6437. '%u': function(date) {
  6438. var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
  6439. return day.getDay() || 7;
  6440. },
  6441. '%U': function(date) {
  6442. // Replaced by the week number of the year as a decimal number [00,53].
  6443. // The first Sunday of January is the first day of week 1;
  6444. // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
  6445. var janFirst = new Date(date.tm_year+1900, 0, 1);
  6446. var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay());
  6447. var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
  6448. // is target date after the first Sunday?
  6449. if (compareByDay(firstSunday, endDate) < 0) {
  6450. // calculate difference in days between first Sunday and endDate
  6451. var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
  6452. var firstSundayUntilEndJanuary = 31-firstSunday.getDate();
  6453. var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
  6454. return leadingNulls(Math.ceil(days/7), 2);
  6455. }
  6456. return compareByDay(firstSunday, janFirst) === 0 ? '01': '00';
  6457. },
  6458. '%V': function(date) {
  6459. // Replaced by the week number of the year (Monday as the first day of the week)
  6460. // as a decimal number [01,53]. If the week containing 1 January has four
  6461. // or more days in the new year, then it is considered week 1.
  6462. // Otherwise, it is the last week of the previous year, and the next week is week 1.
  6463. // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday]
  6464. var janFourthThisYear = new Date(date.tm_year+1900, 0, 4);
  6465. var janFourthNextYear = new Date(date.tm_year+1901, 0, 4);
  6466. var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
  6467. var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
  6468. var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
  6469. if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
  6470. // if given date is before this years first week, then it belongs to the 53rd week of last year
  6471. return '53';
  6472. }
  6473. if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
  6474. // if given date is after next years first week, then it belongs to the 01th week of next year
  6475. return '01';
  6476. }
  6477. // given date is in between CW 01..53 of this calendar year
  6478. var daysDifference;
  6479. if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) {
  6480. // first CW of this year starts last year
  6481. daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate()
  6482. } else {
  6483. // first CW of this year starts this year
  6484. daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate();
  6485. }
  6486. return leadingNulls(Math.ceil(daysDifference/7), 2);
  6487. },
  6488. '%w': function(date) {
  6489. var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
  6490. return day.getDay();
  6491. },
  6492. '%W': function(date) {
  6493. // Replaced by the week number of the year as a decimal number [00,53].
  6494. // The first Monday of January is the first day of week 1;
  6495. // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
  6496. var janFirst = new Date(date.tm_year, 0, 1);
  6497. var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1);
  6498. var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
  6499. // is target date after the first Monday?
  6500. if (compareByDay(firstMonday, endDate) < 0) {
  6501. var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
  6502. var firstMondayUntilEndJanuary = 31-firstMonday.getDate();
  6503. var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
  6504. return leadingNulls(Math.ceil(days/7), 2);
  6505. }
  6506. return compareByDay(firstMonday, janFirst) === 0 ? '01': '00';
  6507. },
  6508. '%y': function(date) {
  6509. // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year]
  6510. return (date.tm_year+1900).toString().substring(2);
  6511. },
  6512. '%Y': function(date) {
  6513. // Replaced by the year as a decimal number (for example, 1997). [ tm_year]
  6514. return date.tm_year+1900;
  6515. },
  6516. '%z': function(date) {
  6517. // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ),
  6518. // or by no characters if no timezone is determinable.
  6519. // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich).
  6520. // If tm_isdst is zero, the standard time offset is used.
  6521. // If tm_isdst is greater than zero, the daylight savings time offset is used.
  6522. // If tm_isdst is negative, no characters are returned.
  6523. // FIXME: we cannot determine time zone (or can we?)
  6524. return '';
  6525. },
  6526. '%Z': function(date) {
  6527. // Replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists. [ tm_isdst]
  6528. // FIXME: we cannot determine time zone (or can we?)
  6529. return '';
  6530. },
  6531. '%%': function() {
  6532. return '%';
  6533. }
  6534. };
  6535. for (var rule in EXPANSION_RULES_2) {
  6536. if (pattern.indexOf(rule) >= 0) {
  6537. pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date));
  6538. }
  6539. }
  6540. var bytes = intArrayFromString(pattern, false);
  6541. if (bytes.length > maxsize) {
  6542. return 0;
  6543. }
  6544. writeArrayToMemory(bytes, s);
  6545. return bytes.length-1;
  6546. }
  6547. 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;
  6548. ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0;
  6549. __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor();
  6550. if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); NODEFS.staticInit(); }
  6551. __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } });
  6552. _fputc.ret = allocate([0], "i8", ALLOC_STATIC);
  6553. Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
  6554. Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) };
  6555. Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
  6556. Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() };
  6557. Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
  6558. Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
  6559. _fgetc.ret = allocate([0], "i8", ALLOC_STATIC);
  6560. ___buildEnvironment(ENV);
  6561. STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
  6562. staticSealed = true; // seal the static portion of memory
  6563. STACK_MAX = STACK_BASE + 5242880;
  6564. DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
  6565. assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
  6566. 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);
  6567. 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);
  6568. var Math_min = Math.min;
  6569. function invoke_iiii(index,a1,a2,a3) {
  6570. try {
  6571. return Module["dynCall_iiii"](index,a1,a2,a3);
  6572. } catch(e) {
  6573. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6574. asm["setThrew"](1, 0);
  6575. }
  6576. }
  6577. function invoke_vi(index,a1) {
  6578. try {
  6579. Module["dynCall_vi"](index,a1);
  6580. } catch(e) {
  6581. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6582. asm["setThrew"](1, 0);
  6583. }
  6584. }
  6585. function invoke_vii(index,a1,a2) {
  6586. try {
  6587. Module["dynCall_vii"](index,a1,a2);
  6588. } catch(e) {
  6589. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6590. asm["setThrew"](1, 0);
  6591. }
  6592. }
  6593. function invoke_ii(index,a1) {
  6594. try {
  6595. return Module["dynCall_ii"](index,a1);
  6596. } catch(e) {
  6597. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6598. asm["setThrew"](1, 0);
  6599. }
  6600. }
  6601. function invoke_iiiii(index,a1,a2,a3,a4) {
  6602. try {
  6603. return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
  6604. } catch(e) {
  6605. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6606. asm["setThrew"](1, 0);
  6607. }
  6608. }
  6609. function invoke_iii(index,a1,a2) {
  6610. try {
  6611. return Module["dynCall_iii"](index,a1,a2);
  6612. } catch(e) {
  6613. if (typeof e !== 'number' && e !== 'longjmp') throw e;
  6614. asm["setThrew"](1, 0);
  6615. }
  6616. }
  6617. function asmPrintInt(x, y) {
  6618. Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack);
  6619. }
  6620. function asmPrintFloat(x, y) {
  6621. Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack);
  6622. }
  6623. // EMSCRIPTEN_START_ASM
  6624. var asm = (function(global, env, buffer) {
  6625. 'use asm';
  6626. var HEAP8 = new global.Int8Array(buffer);
  6627. var HEAP16 = new global.Int16Array(buffer);
  6628. var HEAP32 = new global.Int32Array(buffer);
  6629. var HEAPU8 = new global.Uint8Array(buffer);
  6630. var HEAPU16 = new global.Uint16Array(buffer);
  6631. var HEAPU32 = new global.Uint32Array(buffer);
  6632. var HEAPF32 = new global.Float32Array(buffer);
  6633. var HEAPF64 = new global.Float64Array(buffer);
  6634. var STACKTOP=env.STACKTOP|0;
  6635. var STACK_MAX=env.STACK_MAX|0;
  6636. var tempDoublePtr=env.tempDoublePtr|0;
  6637. var ABORT=env.ABORT|0;
  6638. var cttz_i8=env.cttz_i8|0;
  6639. var ctlz_i8=env.ctlz_i8|0;
  6640. var ___rand_seed=env.___rand_seed|0;
  6641. var _stderr=env._stderr|0;
  6642. var _stdin=env._stdin|0;
  6643. var _stdout=env._stdout|0;
  6644. var __THREW__ = 0;
  6645. var threwValue = 0;
  6646. var setjmpId = 0;
  6647. var undef = 0;
  6648. var nan = +env.NaN, inf = +env.Infinity;
  6649. var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
  6650. var tempRet0 = 0;
  6651. var tempRet1 = 0;
  6652. var tempRet2 = 0;
  6653. var tempRet3 = 0;
  6654. var tempRet4 = 0;
  6655. var tempRet5 = 0;
  6656. var tempRet6 = 0;
  6657. var tempRet7 = 0;
  6658. var tempRet8 = 0;
  6659. var tempRet9 = 0;
  6660. var Math_floor=global.Math.floor;
  6661. var Math_abs=global.Math.abs;
  6662. var Math_sqrt=global.Math.sqrt;
  6663. var Math_pow=global.Math.pow;
  6664. var Math_cos=global.Math.cos;
  6665. var Math_sin=global.Math.sin;
  6666. var Math_tan=global.Math.tan;
  6667. var Math_acos=global.Math.acos;
  6668. var Math_asin=global.Math.asin;
  6669. var Math_atan=global.Math.atan;
  6670. var Math_atan2=global.Math.atan2;
  6671. var Math_exp=global.Math.exp;
  6672. var Math_log=global.Math.log;
  6673. var Math_ceil=global.Math.ceil;
  6674. var Math_imul=global.Math.imul;
  6675. var abort=env.abort;
  6676. var assert=env.assert;
  6677. var asmPrintInt=env.asmPrintInt;
  6678. var asmPrintFloat=env.asmPrintFloat;
  6679. var Math_min=env.min;
  6680. var invoke_iiii=env.invoke_iiii;
  6681. var invoke_vi=env.invoke_vi;
  6682. var invoke_vii=env.invoke_vii;
  6683. var invoke_ii=env.invoke_ii;
  6684. var invoke_iiiii=env.invoke_iiiii;
  6685. var invoke_iii=env.invoke_iii;
  6686. var _isalnum=env._isalnum;
  6687. var _fabs=env._fabs;
  6688. var _frexp=env._frexp;
  6689. var _exp=env._exp;
  6690. var _fread=env._fread;
  6691. var __reallyNegative=env.__reallyNegative;
  6692. var _longjmp=env._longjmp;
  6693. var __addDays=env.__addDays;
  6694. var _fsync=env._fsync;
  6695. var _signal=env._signal;
  6696. var _rename=env._rename;
  6697. var _sbrk=env._sbrk;
  6698. var _emscripten_memcpy_big=env._emscripten_memcpy_big;
  6699. var _sinh=env._sinh;
  6700. var _sysconf=env._sysconf;
  6701. var _close=env._close;
  6702. var _ferror=env._ferror;
  6703. var _clock=env._clock;
  6704. var _cos=env._cos;
  6705. var _tanh=env._tanh;
  6706. var _unlink=env._unlink;
  6707. var _write=env._write;
  6708. var __isLeapYear=env.__isLeapYear;
  6709. var _ftell=env._ftell;
  6710. var _isupper=env._isupper;
  6711. var _gmtime_r=env._gmtime_r;
  6712. var _islower=env._islower;
  6713. var _tmpnam=env._tmpnam;
  6714. var _tmpfile=env._tmpfile;
  6715. var _send=env._send;
  6716. var _abort=env._abort;
  6717. var _setvbuf=env._setvbuf;
  6718. var _atan2=env._atan2;
  6719. var _setlocale=env._setlocale;
  6720. var _isgraph=env._isgraph;
  6721. var _modf=env._modf;
  6722. var _strerror_r=env._strerror_r;
  6723. var _fscanf=env._fscanf;
  6724. var ___setErrNo=env.___setErrNo;
  6725. var _isalpha=env._isalpha;
  6726. var _srand=env._srand;
  6727. var _mktime=env._mktime;
  6728. var _putchar=env._putchar;
  6729. var _gmtime=env._gmtime;
  6730. var _localeconv=env._localeconv;
  6731. var _sprintf=env._sprintf;
  6732. var _localtime=env._localtime;
  6733. var _read=env._read;
  6734. var _fwrite=env._fwrite;
  6735. var _time=env._time;
  6736. var _fprintf=env._fprintf;
  6737. var _exit=env._exit;
  6738. var _freopen=env._freopen;
  6739. var _llvm_pow_f64=env._llvm_pow_f64;
  6740. var _fgetc=env._fgetc;
  6741. var _fmod=env._fmod;
  6742. var _lseek=env._lseek;
  6743. var _rmdir=env._rmdir;
  6744. var _asin=env._asin;
  6745. var _floor=env._floor;
  6746. var _pwrite=env._pwrite;
  6747. var _localtime_r=env._localtime_r;
  6748. var _tzset=env._tzset;
  6749. var _open=env._open;
  6750. var _remove=env._remove;
  6751. var _snprintf=env._snprintf;
  6752. var __scanString=env.__scanString;
  6753. var _strftime=env._strftime;
  6754. var _fseek=env._fseek;
  6755. var _iscntrl=env._iscntrl;
  6756. var _isxdigit=env._isxdigit;
  6757. var _fclose=env._fclose;
  6758. var _log=env._log;
  6759. var _recv=env._recv;
  6760. var _tan=env._tan;
  6761. var _copysign=env._copysign;
  6762. var __getFloat=env.__getFloat;
  6763. var _fputc=env._fputc;
  6764. var _ispunct=env._ispunct;
  6765. var _ceil=env._ceil;
  6766. var _isspace=env._isspace;
  6767. var _fopen=env._fopen;
  6768. var _sin=env._sin;
  6769. var _acos=env._acos;
  6770. var _cosh=env._cosh;
  6771. var ___buildEnvironment=env.___buildEnvironment;
  6772. var _difftime=env._difftime;
  6773. var _ungetc=env._ungetc;
  6774. var _system=env._system;
  6775. var _fflush=env._fflush;
  6776. var _log10=env._log10;
  6777. var _fileno=env._fileno;
  6778. var __exit=env.__exit;
  6779. var __arraySum=env.__arraySum;
  6780. var _fgets=env._fgets;
  6781. var _atan=env._atan;
  6782. var _pread=env._pread;
  6783. var _mkport=env._mkport;
  6784. var _toupper=env._toupper;
  6785. var _feof=env._feof;
  6786. var ___errno_location=env.___errno_location;
  6787. var _clearerr=env._clearerr;
  6788. var _getenv=env._getenv;
  6789. var _strerror=env._strerror;
  6790. var _emscripten_longjmp=env._emscripten_longjmp;
  6791. var __formatString=env.__formatString;
  6792. var _fputs=env._fputs;
  6793. var _sqrt=env._sqrt;
  6794. var tempFloat = 0.0;
  6795. // EMSCRIPTEN_START_FUNCS
  6796. function _malloc(i12) {
  6797. i12 = i12 | 0;
  6798. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
  6799. i1 = STACKTOP;
  6800. do {
  6801. if (i12 >>> 0 < 245) {
  6802. if (i12 >>> 0 < 11) {
  6803. i12 = 16;
  6804. } else {
  6805. i12 = i12 + 11 & -8;
  6806. }
  6807. i20 = i12 >>> 3;
  6808. i18 = HEAP32[3228] | 0;
  6809. i21 = i18 >>> i20;
  6810. if ((i21 & 3 | 0) != 0) {
  6811. i6 = (i21 & 1 ^ 1) + i20 | 0;
  6812. i5 = i6 << 1;
  6813. i3 = 12952 + (i5 << 2) | 0;
  6814. i5 = 12952 + (i5 + 2 << 2) | 0;
  6815. i7 = HEAP32[i5 >> 2] | 0;
  6816. i2 = i7 + 8 | 0;
  6817. i4 = HEAP32[i2 >> 2] | 0;
  6818. do {
  6819. if ((i3 | 0) != (i4 | 0)) {
  6820. if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  6821. _abort();
  6822. }
  6823. i8 = i4 + 12 | 0;
  6824. if ((HEAP32[i8 >> 2] | 0) == (i7 | 0)) {
  6825. HEAP32[i8 >> 2] = i3;
  6826. HEAP32[i5 >> 2] = i4;
  6827. break;
  6828. } else {
  6829. _abort();
  6830. }
  6831. } else {
  6832. HEAP32[3228] = i18 & ~(1 << i6);
  6833. }
  6834. } while (0);
  6835. i32 = i6 << 3;
  6836. HEAP32[i7 + 4 >> 2] = i32 | 3;
  6837. i32 = i7 + (i32 | 4) | 0;
  6838. HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
  6839. i32 = i2;
  6840. STACKTOP = i1;
  6841. return i32 | 0;
  6842. }
  6843. if (i12 >>> 0 > (HEAP32[12920 >> 2] | 0) >>> 0) {
  6844. if ((i21 | 0) != 0) {
  6845. i7 = 2 << i20;
  6846. i7 = i21 << i20 & (i7 | 0 - i7);
  6847. i7 = (i7 & 0 - i7) + -1 | 0;
  6848. i2 = i7 >>> 12 & 16;
  6849. i7 = i7 >>> i2;
  6850. i6 = i7 >>> 5 & 8;
  6851. i7 = i7 >>> i6;
  6852. i5 = i7 >>> 2 & 4;
  6853. i7 = i7 >>> i5;
  6854. i4 = i7 >>> 1 & 2;
  6855. i7 = i7 >>> i4;
  6856. i3 = i7 >>> 1 & 1;
  6857. i3 = (i6 | i2 | i5 | i4 | i3) + (i7 >>> i3) | 0;
  6858. i7 = i3 << 1;
  6859. i4 = 12952 + (i7 << 2) | 0;
  6860. i7 = 12952 + (i7 + 2 << 2) | 0;
  6861. i5 = HEAP32[i7 >> 2] | 0;
  6862. i2 = i5 + 8 | 0;
  6863. i6 = HEAP32[i2 >> 2] | 0;
  6864. do {
  6865. if ((i4 | 0) != (i6 | 0)) {
  6866. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  6867. _abort();
  6868. }
  6869. i8 = i6 + 12 | 0;
  6870. if ((HEAP32[i8 >> 2] | 0) == (i5 | 0)) {
  6871. HEAP32[i8 >> 2] = i4;
  6872. HEAP32[i7 >> 2] = i6;
  6873. break;
  6874. } else {
  6875. _abort();
  6876. }
  6877. } else {
  6878. HEAP32[3228] = i18 & ~(1 << i3);
  6879. }
  6880. } while (0);
  6881. i6 = i3 << 3;
  6882. i4 = i6 - i12 | 0;
  6883. HEAP32[i5 + 4 >> 2] = i12 | 3;
  6884. i3 = i5 + i12 | 0;
  6885. HEAP32[i5 + (i12 | 4) >> 2] = i4 | 1;
  6886. HEAP32[i5 + i6 >> 2] = i4;
  6887. i6 = HEAP32[12920 >> 2] | 0;
  6888. if ((i6 | 0) != 0) {
  6889. i5 = HEAP32[12932 >> 2] | 0;
  6890. i8 = i6 >>> 3;
  6891. i9 = i8 << 1;
  6892. i6 = 12952 + (i9 << 2) | 0;
  6893. i7 = HEAP32[3228] | 0;
  6894. i8 = 1 << i8;
  6895. if ((i7 & i8 | 0) != 0) {
  6896. i7 = 12952 + (i9 + 2 << 2) | 0;
  6897. i8 = HEAP32[i7 >> 2] | 0;
  6898. if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  6899. _abort();
  6900. } else {
  6901. i28 = i7;
  6902. i27 = i8;
  6903. }
  6904. } else {
  6905. HEAP32[3228] = i7 | i8;
  6906. i28 = 12952 + (i9 + 2 << 2) | 0;
  6907. i27 = i6;
  6908. }
  6909. HEAP32[i28 >> 2] = i5;
  6910. HEAP32[i27 + 12 >> 2] = i5;
  6911. HEAP32[i5 + 8 >> 2] = i27;
  6912. HEAP32[i5 + 12 >> 2] = i6;
  6913. }
  6914. HEAP32[12920 >> 2] = i4;
  6915. HEAP32[12932 >> 2] = i3;
  6916. i32 = i2;
  6917. STACKTOP = i1;
  6918. return i32 | 0;
  6919. }
  6920. i18 = HEAP32[12916 >> 2] | 0;
  6921. if ((i18 | 0) != 0) {
  6922. i2 = (i18 & 0 - i18) + -1 | 0;
  6923. i31 = i2 >>> 12 & 16;
  6924. i2 = i2 >>> i31;
  6925. i30 = i2 >>> 5 & 8;
  6926. i2 = i2 >>> i30;
  6927. i32 = i2 >>> 2 & 4;
  6928. i2 = i2 >>> i32;
  6929. i6 = i2 >>> 1 & 2;
  6930. i2 = i2 >>> i6;
  6931. i3 = i2 >>> 1 & 1;
  6932. i3 = HEAP32[13216 + ((i30 | i31 | i32 | i6 | i3) + (i2 >>> i3) << 2) >> 2] | 0;
  6933. i2 = (HEAP32[i3 + 4 >> 2] & -8) - i12 | 0;
  6934. i6 = i3;
  6935. while (1) {
  6936. i5 = HEAP32[i6 + 16 >> 2] | 0;
  6937. if ((i5 | 0) == 0) {
  6938. i5 = HEAP32[i6 + 20 >> 2] | 0;
  6939. if ((i5 | 0) == 0) {
  6940. break;
  6941. }
  6942. }
  6943. i6 = (HEAP32[i5 + 4 >> 2] & -8) - i12 | 0;
  6944. i4 = i6 >>> 0 < i2 >>> 0;
  6945. i2 = i4 ? i6 : i2;
  6946. i6 = i5;
  6947. i3 = i4 ? i5 : i3;
  6948. }
  6949. i6 = HEAP32[12928 >> 2] | 0;
  6950. if (i3 >>> 0 < i6 >>> 0) {
  6951. _abort();
  6952. }
  6953. i4 = i3 + i12 | 0;
  6954. if (!(i3 >>> 0 < i4 >>> 0)) {
  6955. _abort();
  6956. }
  6957. i5 = HEAP32[i3 + 24 >> 2] | 0;
  6958. i7 = HEAP32[i3 + 12 >> 2] | 0;
  6959. do {
  6960. if ((i7 | 0) == (i3 | 0)) {
  6961. i8 = i3 + 20 | 0;
  6962. i7 = HEAP32[i8 >> 2] | 0;
  6963. if ((i7 | 0) == 0) {
  6964. i8 = i3 + 16 | 0;
  6965. i7 = HEAP32[i8 >> 2] | 0;
  6966. if ((i7 | 0) == 0) {
  6967. i26 = 0;
  6968. break;
  6969. }
  6970. }
  6971. while (1) {
  6972. i10 = i7 + 20 | 0;
  6973. i9 = HEAP32[i10 >> 2] | 0;
  6974. if ((i9 | 0) != 0) {
  6975. i7 = i9;
  6976. i8 = i10;
  6977. continue;
  6978. }
  6979. i10 = i7 + 16 | 0;
  6980. i9 = HEAP32[i10 >> 2] | 0;
  6981. if ((i9 | 0) == 0) {
  6982. break;
  6983. } else {
  6984. i7 = i9;
  6985. i8 = i10;
  6986. }
  6987. }
  6988. if (i8 >>> 0 < i6 >>> 0) {
  6989. _abort();
  6990. } else {
  6991. HEAP32[i8 >> 2] = 0;
  6992. i26 = i7;
  6993. break;
  6994. }
  6995. } else {
  6996. i8 = HEAP32[i3 + 8 >> 2] | 0;
  6997. if (i8 >>> 0 < i6 >>> 0) {
  6998. _abort();
  6999. }
  7000. i6 = i8 + 12 | 0;
  7001. if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) {
  7002. _abort();
  7003. }
  7004. i9 = i7 + 8 | 0;
  7005. if ((HEAP32[i9 >> 2] | 0) == (i3 | 0)) {
  7006. HEAP32[i6 >> 2] = i7;
  7007. HEAP32[i9 >> 2] = i8;
  7008. i26 = i7;
  7009. break;
  7010. } else {
  7011. _abort();
  7012. }
  7013. }
  7014. } while (0);
  7015. do {
  7016. if ((i5 | 0) != 0) {
  7017. i7 = HEAP32[i3 + 28 >> 2] | 0;
  7018. i6 = 13216 + (i7 << 2) | 0;
  7019. if ((i3 | 0) == (HEAP32[i6 >> 2] | 0)) {
  7020. HEAP32[i6 >> 2] = i26;
  7021. if ((i26 | 0) == 0) {
  7022. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i7);
  7023. break;
  7024. }
  7025. } else {
  7026. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7027. _abort();
  7028. }
  7029. i6 = i5 + 16 | 0;
  7030. if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
  7031. HEAP32[i6 >> 2] = i26;
  7032. } else {
  7033. HEAP32[i5 + 20 >> 2] = i26;
  7034. }
  7035. if ((i26 | 0) == 0) {
  7036. break;
  7037. }
  7038. }
  7039. if (i26 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7040. _abort();
  7041. }
  7042. HEAP32[i26 + 24 >> 2] = i5;
  7043. i5 = HEAP32[i3 + 16 >> 2] | 0;
  7044. do {
  7045. if ((i5 | 0) != 0) {
  7046. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7047. _abort();
  7048. } else {
  7049. HEAP32[i26 + 16 >> 2] = i5;
  7050. HEAP32[i5 + 24 >> 2] = i26;
  7051. break;
  7052. }
  7053. }
  7054. } while (0);
  7055. i5 = HEAP32[i3 + 20 >> 2] | 0;
  7056. if ((i5 | 0) != 0) {
  7057. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7058. _abort();
  7059. } else {
  7060. HEAP32[i26 + 20 >> 2] = i5;
  7061. HEAP32[i5 + 24 >> 2] = i26;
  7062. break;
  7063. }
  7064. }
  7065. }
  7066. } while (0);
  7067. if (i2 >>> 0 < 16) {
  7068. i32 = i2 + i12 | 0;
  7069. HEAP32[i3 + 4 >> 2] = i32 | 3;
  7070. i32 = i3 + (i32 + 4) | 0;
  7071. HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
  7072. } else {
  7073. HEAP32[i3 + 4 >> 2] = i12 | 3;
  7074. HEAP32[i3 + (i12 | 4) >> 2] = i2 | 1;
  7075. HEAP32[i3 + (i2 + i12) >> 2] = i2;
  7076. i6 = HEAP32[12920 >> 2] | 0;
  7077. if ((i6 | 0) != 0) {
  7078. i5 = HEAP32[12932 >> 2] | 0;
  7079. i8 = i6 >>> 3;
  7080. i9 = i8 << 1;
  7081. i6 = 12952 + (i9 << 2) | 0;
  7082. i7 = HEAP32[3228] | 0;
  7083. i8 = 1 << i8;
  7084. if ((i7 & i8 | 0) != 0) {
  7085. i7 = 12952 + (i9 + 2 << 2) | 0;
  7086. i8 = HEAP32[i7 >> 2] | 0;
  7087. if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7088. _abort();
  7089. } else {
  7090. i25 = i7;
  7091. i24 = i8;
  7092. }
  7093. } else {
  7094. HEAP32[3228] = i7 | i8;
  7095. i25 = 12952 + (i9 + 2 << 2) | 0;
  7096. i24 = i6;
  7097. }
  7098. HEAP32[i25 >> 2] = i5;
  7099. HEAP32[i24 + 12 >> 2] = i5;
  7100. HEAP32[i5 + 8 >> 2] = i24;
  7101. HEAP32[i5 + 12 >> 2] = i6;
  7102. }
  7103. HEAP32[12920 >> 2] = i2;
  7104. HEAP32[12932 >> 2] = i4;
  7105. }
  7106. i32 = i3 + 8 | 0;
  7107. STACKTOP = i1;
  7108. return i32 | 0;
  7109. }
  7110. }
  7111. } else {
  7112. if (!(i12 >>> 0 > 4294967231)) {
  7113. i24 = i12 + 11 | 0;
  7114. i12 = i24 & -8;
  7115. i26 = HEAP32[12916 >> 2] | 0;
  7116. if ((i26 | 0) != 0) {
  7117. i25 = 0 - i12 | 0;
  7118. i24 = i24 >>> 8;
  7119. if ((i24 | 0) != 0) {
  7120. if (i12 >>> 0 > 16777215) {
  7121. i27 = 31;
  7122. } else {
  7123. i31 = (i24 + 1048320 | 0) >>> 16 & 8;
  7124. i32 = i24 << i31;
  7125. i30 = (i32 + 520192 | 0) >>> 16 & 4;
  7126. i32 = i32 << i30;
  7127. i27 = (i32 + 245760 | 0) >>> 16 & 2;
  7128. i27 = 14 - (i30 | i31 | i27) + (i32 << i27 >>> 15) | 0;
  7129. i27 = i12 >>> (i27 + 7 | 0) & 1 | i27 << 1;
  7130. }
  7131. } else {
  7132. i27 = 0;
  7133. }
  7134. i30 = HEAP32[13216 + (i27 << 2) >> 2] | 0;
  7135. L126 : do {
  7136. if ((i30 | 0) == 0) {
  7137. i29 = 0;
  7138. i24 = 0;
  7139. } else {
  7140. if ((i27 | 0) == 31) {
  7141. i24 = 0;
  7142. } else {
  7143. i24 = 25 - (i27 >>> 1) | 0;
  7144. }
  7145. i29 = 0;
  7146. i28 = i12 << i24;
  7147. i24 = 0;
  7148. while (1) {
  7149. i32 = HEAP32[i30 + 4 >> 2] & -8;
  7150. i31 = i32 - i12 | 0;
  7151. if (i31 >>> 0 < i25 >>> 0) {
  7152. if ((i32 | 0) == (i12 | 0)) {
  7153. i25 = i31;
  7154. i29 = i30;
  7155. i24 = i30;
  7156. break L126;
  7157. } else {
  7158. i25 = i31;
  7159. i24 = i30;
  7160. }
  7161. }
  7162. i31 = HEAP32[i30 + 20 >> 2] | 0;
  7163. i30 = HEAP32[i30 + (i28 >>> 31 << 2) + 16 >> 2] | 0;
  7164. i29 = (i31 | 0) == 0 | (i31 | 0) == (i30 | 0) ? i29 : i31;
  7165. if ((i30 | 0) == 0) {
  7166. break;
  7167. } else {
  7168. i28 = i28 << 1;
  7169. }
  7170. }
  7171. }
  7172. } while (0);
  7173. if ((i29 | 0) == 0 & (i24 | 0) == 0) {
  7174. i32 = 2 << i27;
  7175. i26 = i26 & (i32 | 0 - i32);
  7176. if ((i26 | 0) == 0) {
  7177. break;
  7178. }
  7179. i32 = (i26 & 0 - i26) + -1 | 0;
  7180. i28 = i32 >>> 12 & 16;
  7181. i32 = i32 >>> i28;
  7182. i27 = i32 >>> 5 & 8;
  7183. i32 = i32 >>> i27;
  7184. i30 = i32 >>> 2 & 4;
  7185. i32 = i32 >>> i30;
  7186. i31 = i32 >>> 1 & 2;
  7187. i32 = i32 >>> i31;
  7188. i29 = i32 >>> 1 & 1;
  7189. i29 = HEAP32[13216 + ((i27 | i28 | i30 | i31 | i29) + (i32 >>> i29) << 2) >> 2] | 0;
  7190. }
  7191. if ((i29 | 0) != 0) {
  7192. while (1) {
  7193. i27 = (HEAP32[i29 + 4 >> 2] & -8) - i12 | 0;
  7194. i26 = i27 >>> 0 < i25 >>> 0;
  7195. i25 = i26 ? i27 : i25;
  7196. i24 = i26 ? i29 : i24;
  7197. i26 = HEAP32[i29 + 16 >> 2] | 0;
  7198. if ((i26 | 0) != 0) {
  7199. i29 = i26;
  7200. continue;
  7201. }
  7202. i29 = HEAP32[i29 + 20 >> 2] | 0;
  7203. if ((i29 | 0) == 0) {
  7204. break;
  7205. }
  7206. }
  7207. }
  7208. if ((i24 | 0) != 0 ? i25 >>> 0 < ((HEAP32[12920 >> 2] | 0) - i12 | 0) >>> 0 : 0) {
  7209. i4 = HEAP32[12928 >> 2] | 0;
  7210. if (i24 >>> 0 < i4 >>> 0) {
  7211. _abort();
  7212. }
  7213. i2 = i24 + i12 | 0;
  7214. if (!(i24 >>> 0 < i2 >>> 0)) {
  7215. _abort();
  7216. }
  7217. i3 = HEAP32[i24 + 24 >> 2] | 0;
  7218. i6 = HEAP32[i24 + 12 >> 2] | 0;
  7219. do {
  7220. if ((i6 | 0) == (i24 | 0)) {
  7221. i6 = i24 + 20 | 0;
  7222. i5 = HEAP32[i6 >> 2] | 0;
  7223. if ((i5 | 0) == 0) {
  7224. i6 = i24 + 16 | 0;
  7225. i5 = HEAP32[i6 >> 2] | 0;
  7226. if ((i5 | 0) == 0) {
  7227. i22 = 0;
  7228. break;
  7229. }
  7230. }
  7231. while (1) {
  7232. i8 = i5 + 20 | 0;
  7233. i7 = HEAP32[i8 >> 2] | 0;
  7234. if ((i7 | 0) != 0) {
  7235. i5 = i7;
  7236. i6 = i8;
  7237. continue;
  7238. }
  7239. i7 = i5 + 16 | 0;
  7240. i8 = HEAP32[i7 >> 2] | 0;
  7241. if ((i8 | 0) == 0) {
  7242. break;
  7243. } else {
  7244. i5 = i8;
  7245. i6 = i7;
  7246. }
  7247. }
  7248. if (i6 >>> 0 < i4 >>> 0) {
  7249. _abort();
  7250. } else {
  7251. HEAP32[i6 >> 2] = 0;
  7252. i22 = i5;
  7253. break;
  7254. }
  7255. } else {
  7256. i5 = HEAP32[i24 + 8 >> 2] | 0;
  7257. if (i5 >>> 0 < i4 >>> 0) {
  7258. _abort();
  7259. }
  7260. i7 = i5 + 12 | 0;
  7261. if ((HEAP32[i7 >> 2] | 0) != (i24 | 0)) {
  7262. _abort();
  7263. }
  7264. i4 = i6 + 8 | 0;
  7265. if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
  7266. HEAP32[i7 >> 2] = i6;
  7267. HEAP32[i4 >> 2] = i5;
  7268. i22 = i6;
  7269. break;
  7270. } else {
  7271. _abort();
  7272. }
  7273. }
  7274. } while (0);
  7275. do {
  7276. if ((i3 | 0) != 0) {
  7277. i4 = HEAP32[i24 + 28 >> 2] | 0;
  7278. i5 = 13216 + (i4 << 2) | 0;
  7279. if ((i24 | 0) == (HEAP32[i5 >> 2] | 0)) {
  7280. HEAP32[i5 >> 2] = i22;
  7281. if ((i22 | 0) == 0) {
  7282. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i4);
  7283. break;
  7284. }
  7285. } else {
  7286. if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7287. _abort();
  7288. }
  7289. i4 = i3 + 16 | 0;
  7290. if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
  7291. HEAP32[i4 >> 2] = i22;
  7292. } else {
  7293. HEAP32[i3 + 20 >> 2] = i22;
  7294. }
  7295. if ((i22 | 0) == 0) {
  7296. break;
  7297. }
  7298. }
  7299. if (i22 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7300. _abort();
  7301. }
  7302. HEAP32[i22 + 24 >> 2] = i3;
  7303. i3 = HEAP32[i24 + 16 >> 2] | 0;
  7304. do {
  7305. if ((i3 | 0) != 0) {
  7306. if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7307. _abort();
  7308. } else {
  7309. HEAP32[i22 + 16 >> 2] = i3;
  7310. HEAP32[i3 + 24 >> 2] = i22;
  7311. break;
  7312. }
  7313. }
  7314. } while (0);
  7315. i3 = HEAP32[i24 + 20 >> 2] | 0;
  7316. if ((i3 | 0) != 0) {
  7317. if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7318. _abort();
  7319. } else {
  7320. HEAP32[i22 + 20 >> 2] = i3;
  7321. HEAP32[i3 + 24 >> 2] = i22;
  7322. break;
  7323. }
  7324. }
  7325. }
  7326. } while (0);
  7327. L204 : do {
  7328. if (!(i25 >>> 0 < 16)) {
  7329. HEAP32[i24 + 4 >> 2] = i12 | 3;
  7330. HEAP32[i24 + (i12 | 4) >> 2] = i25 | 1;
  7331. HEAP32[i24 + (i25 + i12) >> 2] = i25;
  7332. i4 = i25 >>> 3;
  7333. if (i25 >>> 0 < 256) {
  7334. i6 = i4 << 1;
  7335. i3 = 12952 + (i6 << 2) | 0;
  7336. i5 = HEAP32[3228] | 0;
  7337. i4 = 1 << i4;
  7338. if ((i5 & i4 | 0) != 0) {
  7339. i5 = 12952 + (i6 + 2 << 2) | 0;
  7340. i4 = HEAP32[i5 >> 2] | 0;
  7341. if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7342. _abort();
  7343. } else {
  7344. i21 = i5;
  7345. i20 = i4;
  7346. }
  7347. } else {
  7348. HEAP32[3228] = i5 | i4;
  7349. i21 = 12952 + (i6 + 2 << 2) | 0;
  7350. i20 = i3;
  7351. }
  7352. HEAP32[i21 >> 2] = i2;
  7353. HEAP32[i20 + 12 >> 2] = i2;
  7354. HEAP32[i24 + (i12 + 8) >> 2] = i20;
  7355. HEAP32[i24 + (i12 + 12) >> 2] = i3;
  7356. break;
  7357. }
  7358. i3 = i25 >>> 8;
  7359. if ((i3 | 0) != 0) {
  7360. if (i25 >>> 0 > 16777215) {
  7361. i3 = 31;
  7362. } else {
  7363. i31 = (i3 + 1048320 | 0) >>> 16 & 8;
  7364. i32 = i3 << i31;
  7365. i30 = (i32 + 520192 | 0) >>> 16 & 4;
  7366. i32 = i32 << i30;
  7367. i3 = (i32 + 245760 | 0) >>> 16 & 2;
  7368. i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
  7369. i3 = i25 >>> (i3 + 7 | 0) & 1 | i3 << 1;
  7370. }
  7371. } else {
  7372. i3 = 0;
  7373. }
  7374. i6 = 13216 + (i3 << 2) | 0;
  7375. HEAP32[i24 + (i12 + 28) >> 2] = i3;
  7376. HEAP32[i24 + (i12 + 20) >> 2] = 0;
  7377. HEAP32[i24 + (i12 + 16) >> 2] = 0;
  7378. i4 = HEAP32[12916 >> 2] | 0;
  7379. i5 = 1 << i3;
  7380. if ((i4 & i5 | 0) == 0) {
  7381. HEAP32[12916 >> 2] = i4 | i5;
  7382. HEAP32[i6 >> 2] = i2;
  7383. HEAP32[i24 + (i12 + 24) >> 2] = i6;
  7384. HEAP32[i24 + (i12 + 12) >> 2] = i2;
  7385. HEAP32[i24 + (i12 + 8) >> 2] = i2;
  7386. break;
  7387. }
  7388. i4 = HEAP32[i6 >> 2] | 0;
  7389. if ((i3 | 0) == 31) {
  7390. i3 = 0;
  7391. } else {
  7392. i3 = 25 - (i3 >>> 1) | 0;
  7393. }
  7394. L225 : do {
  7395. if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i25 | 0)) {
  7396. i3 = i25 << i3;
  7397. while (1) {
  7398. i6 = i4 + (i3 >>> 31 << 2) + 16 | 0;
  7399. i5 = HEAP32[i6 >> 2] | 0;
  7400. if ((i5 | 0) == 0) {
  7401. break;
  7402. }
  7403. if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i25 | 0)) {
  7404. i18 = i5;
  7405. break L225;
  7406. } else {
  7407. i3 = i3 << 1;
  7408. i4 = i5;
  7409. }
  7410. }
  7411. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7412. _abort();
  7413. } else {
  7414. HEAP32[i6 >> 2] = i2;
  7415. HEAP32[i24 + (i12 + 24) >> 2] = i4;
  7416. HEAP32[i24 + (i12 + 12) >> 2] = i2;
  7417. HEAP32[i24 + (i12 + 8) >> 2] = i2;
  7418. break L204;
  7419. }
  7420. } else {
  7421. i18 = i4;
  7422. }
  7423. } while (0);
  7424. i4 = i18 + 8 | 0;
  7425. i3 = HEAP32[i4 >> 2] | 0;
  7426. i5 = HEAP32[12928 >> 2] | 0;
  7427. if (i18 >>> 0 < i5 >>> 0) {
  7428. _abort();
  7429. }
  7430. if (i3 >>> 0 < i5 >>> 0) {
  7431. _abort();
  7432. } else {
  7433. HEAP32[i3 + 12 >> 2] = i2;
  7434. HEAP32[i4 >> 2] = i2;
  7435. HEAP32[i24 + (i12 + 8) >> 2] = i3;
  7436. HEAP32[i24 + (i12 + 12) >> 2] = i18;
  7437. HEAP32[i24 + (i12 + 24) >> 2] = 0;
  7438. break;
  7439. }
  7440. } else {
  7441. i32 = i25 + i12 | 0;
  7442. HEAP32[i24 + 4 >> 2] = i32 | 3;
  7443. i32 = i24 + (i32 + 4) | 0;
  7444. HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
  7445. }
  7446. } while (0);
  7447. i32 = i24 + 8 | 0;
  7448. STACKTOP = i1;
  7449. return i32 | 0;
  7450. }
  7451. }
  7452. } else {
  7453. i12 = -1;
  7454. }
  7455. }
  7456. } while (0);
  7457. i18 = HEAP32[12920 >> 2] | 0;
  7458. if (!(i12 >>> 0 > i18 >>> 0)) {
  7459. i3 = i18 - i12 | 0;
  7460. i2 = HEAP32[12932 >> 2] | 0;
  7461. if (i3 >>> 0 > 15) {
  7462. HEAP32[12932 >> 2] = i2 + i12;
  7463. HEAP32[12920 >> 2] = i3;
  7464. HEAP32[i2 + (i12 + 4) >> 2] = i3 | 1;
  7465. HEAP32[i2 + i18 >> 2] = i3;
  7466. HEAP32[i2 + 4 >> 2] = i12 | 3;
  7467. } else {
  7468. HEAP32[12920 >> 2] = 0;
  7469. HEAP32[12932 >> 2] = 0;
  7470. HEAP32[i2 + 4 >> 2] = i18 | 3;
  7471. i32 = i2 + (i18 + 4) | 0;
  7472. HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
  7473. }
  7474. i32 = i2 + 8 | 0;
  7475. STACKTOP = i1;
  7476. return i32 | 0;
  7477. }
  7478. i18 = HEAP32[12924 >> 2] | 0;
  7479. if (i12 >>> 0 < i18 >>> 0) {
  7480. i31 = i18 - i12 | 0;
  7481. HEAP32[12924 >> 2] = i31;
  7482. i32 = HEAP32[12936 >> 2] | 0;
  7483. HEAP32[12936 >> 2] = i32 + i12;
  7484. HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
  7485. HEAP32[i32 + 4 >> 2] = i12 | 3;
  7486. i32 = i32 + 8 | 0;
  7487. STACKTOP = i1;
  7488. return i32 | 0;
  7489. }
  7490. do {
  7491. if ((HEAP32[3346] | 0) == 0) {
  7492. i18 = _sysconf(30) | 0;
  7493. if ((i18 + -1 & i18 | 0) == 0) {
  7494. HEAP32[13392 >> 2] = i18;
  7495. HEAP32[13388 >> 2] = i18;
  7496. HEAP32[13396 >> 2] = -1;
  7497. HEAP32[13400 >> 2] = -1;
  7498. HEAP32[13404 >> 2] = 0;
  7499. HEAP32[13356 >> 2] = 0;
  7500. HEAP32[3346] = (_time(0) | 0) & -16 ^ 1431655768;
  7501. break;
  7502. } else {
  7503. _abort();
  7504. }
  7505. }
  7506. } while (0);
  7507. i20 = i12 + 48 | 0;
  7508. i25 = HEAP32[13392 >> 2] | 0;
  7509. i21 = i12 + 47 | 0;
  7510. i22 = i25 + i21 | 0;
  7511. i25 = 0 - i25 | 0;
  7512. i18 = i22 & i25;
  7513. if (!(i18 >>> 0 > i12 >>> 0)) {
  7514. i32 = 0;
  7515. STACKTOP = i1;
  7516. return i32 | 0;
  7517. }
  7518. i24 = HEAP32[13352 >> 2] | 0;
  7519. if ((i24 | 0) != 0 ? (i31 = HEAP32[13344 >> 2] | 0, i32 = i31 + i18 | 0, i32 >>> 0 <= i31 >>> 0 | i32 >>> 0 > i24 >>> 0) : 0) {
  7520. i32 = 0;
  7521. STACKTOP = i1;
  7522. return i32 | 0;
  7523. }
  7524. L269 : do {
  7525. if ((HEAP32[13356 >> 2] & 4 | 0) == 0) {
  7526. i26 = HEAP32[12936 >> 2] | 0;
  7527. L271 : do {
  7528. if ((i26 | 0) != 0) {
  7529. i24 = 13360 | 0;
  7530. while (1) {
  7531. i27 = HEAP32[i24 >> 2] | 0;
  7532. if (!(i27 >>> 0 > i26 >>> 0) ? (i23 = i24 + 4 | 0, (i27 + (HEAP32[i23 >> 2] | 0) | 0) >>> 0 > i26 >>> 0) : 0) {
  7533. break;
  7534. }
  7535. i24 = HEAP32[i24 + 8 >> 2] | 0;
  7536. if ((i24 | 0) == 0) {
  7537. i13 = 182;
  7538. break L271;
  7539. }
  7540. }
  7541. if ((i24 | 0) != 0) {
  7542. i25 = i22 - (HEAP32[12924 >> 2] | 0) & i25;
  7543. if (i25 >>> 0 < 2147483647) {
  7544. i13 = _sbrk(i25 | 0) | 0;
  7545. i26 = (i13 | 0) == ((HEAP32[i24 >> 2] | 0) + (HEAP32[i23 >> 2] | 0) | 0);
  7546. i22 = i13;
  7547. i24 = i25;
  7548. i23 = i26 ? i13 : -1;
  7549. i25 = i26 ? i25 : 0;
  7550. i13 = 191;
  7551. } else {
  7552. i25 = 0;
  7553. }
  7554. } else {
  7555. i13 = 182;
  7556. }
  7557. } else {
  7558. i13 = 182;
  7559. }
  7560. } while (0);
  7561. do {
  7562. if ((i13 | 0) == 182) {
  7563. i23 = _sbrk(0) | 0;
  7564. if ((i23 | 0) != (-1 | 0)) {
  7565. i24 = i23;
  7566. i22 = HEAP32[13388 >> 2] | 0;
  7567. i25 = i22 + -1 | 0;
  7568. if ((i25 & i24 | 0) == 0) {
  7569. i25 = i18;
  7570. } else {
  7571. i25 = i18 - i24 + (i25 + i24 & 0 - i22) | 0;
  7572. }
  7573. i24 = HEAP32[13344 >> 2] | 0;
  7574. i26 = i24 + i25 | 0;
  7575. if (i25 >>> 0 > i12 >>> 0 & i25 >>> 0 < 2147483647) {
  7576. i22 = HEAP32[13352 >> 2] | 0;
  7577. if ((i22 | 0) != 0 ? i26 >>> 0 <= i24 >>> 0 | i26 >>> 0 > i22 >>> 0 : 0) {
  7578. i25 = 0;
  7579. break;
  7580. }
  7581. i22 = _sbrk(i25 | 0) | 0;
  7582. i13 = (i22 | 0) == (i23 | 0);
  7583. i24 = i25;
  7584. i23 = i13 ? i23 : -1;
  7585. i25 = i13 ? i25 : 0;
  7586. i13 = 191;
  7587. } else {
  7588. i25 = 0;
  7589. }
  7590. } else {
  7591. i25 = 0;
  7592. }
  7593. }
  7594. } while (0);
  7595. L291 : do {
  7596. if ((i13 | 0) == 191) {
  7597. i13 = 0 - i24 | 0;
  7598. if ((i23 | 0) != (-1 | 0)) {
  7599. i17 = i23;
  7600. i14 = i25;
  7601. i13 = 202;
  7602. break L269;
  7603. }
  7604. do {
  7605. if ((i22 | 0) != (-1 | 0) & i24 >>> 0 < 2147483647 & i24 >>> 0 < i20 >>> 0 ? (i19 = HEAP32[13392 >> 2] | 0, i19 = i21 - i24 + i19 & 0 - i19, i19 >>> 0 < 2147483647) : 0) {
  7606. if ((_sbrk(i19 | 0) | 0) == (-1 | 0)) {
  7607. _sbrk(i13 | 0) | 0;
  7608. break L291;
  7609. } else {
  7610. i24 = i19 + i24 | 0;
  7611. break;
  7612. }
  7613. }
  7614. } while (0);
  7615. if ((i22 | 0) != (-1 | 0)) {
  7616. i17 = i22;
  7617. i14 = i24;
  7618. i13 = 202;
  7619. break L269;
  7620. }
  7621. }
  7622. } while (0);
  7623. HEAP32[13356 >> 2] = HEAP32[13356 >> 2] | 4;
  7624. i13 = 199;
  7625. } else {
  7626. i25 = 0;
  7627. i13 = 199;
  7628. }
  7629. } while (0);
  7630. if ((((i13 | 0) == 199 ? i18 >>> 0 < 2147483647 : 0) ? (i17 = _sbrk(i18 | 0) | 0, i16 = _sbrk(0) | 0, (i16 | 0) != (-1 | 0) & (i17 | 0) != (-1 | 0) & i17 >>> 0 < i16 >>> 0) : 0) ? (i15 = i16 - i17 | 0, i14 = i15 >>> 0 > (i12 + 40 | 0) >>> 0, i14) : 0) {
  7631. i14 = i14 ? i15 : i25;
  7632. i13 = 202;
  7633. }
  7634. if ((i13 | 0) == 202) {
  7635. i15 = (HEAP32[13344 >> 2] | 0) + i14 | 0;
  7636. HEAP32[13344 >> 2] = i15;
  7637. if (i15 >>> 0 > (HEAP32[13348 >> 2] | 0) >>> 0) {
  7638. HEAP32[13348 >> 2] = i15;
  7639. }
  7640. i15 = HEAP32[12936 >> 2] | 0;
  7641. L311 : do {
  7642. if ((i15 | 0) != 0) {
  7643. i21 = 13360 | 0;
  7644. while (1) {
  7645. i16 = HEAP32[i21 >> 2] | 0;
  7646. i19 = i21 + 4 | 0;
  7647. i20 = HEAP32[i19 >> 2] | 0;
  7648. if ((i17 | 0) == (i16 + i20 | 0)) {
  7649. i13 = 214;
  7650. break;
  7651. }
  7652. i18 = HEAP32[i21 + 8 >> 2] | 0;
  7653. if ((i18 | 0) == 0) {
  7654. break;
  7655. } else {
  7656. i21 = i18;
  7657. }
  7658. }
  7659. if (((i13 | 0) == 214 ? (HEAP32[i21 + 12 >> 2] & 8 | 0) == 0 : 0) ? i15 >>> 0 >= i16 >>> 0 & i15 >>> 0 < i17 >>> 0 : 0) {
  7660. HEAP32[i19 >> 2] = i20 + i14;
  7661. i2 = (HEAP32[12924 >> 2] | 0) + i14 | 0;
  7662. i3 = i15 + 8 | 0;
  7663. if ((i3 & 7 | 0) == 0) {
  7664. i3 = 0;
  7665. } else {
  7666. i3 = 0 - i3 & 7;
  7667. }
  7668. i32 = i2 - i3 | 0;
  7669. HEAP32[12936 >> 2] = i15 + i3;
  7670. HEAP32[12924 >> 2] = i32;
  7671. HEAP32[i15 + (i3 + 4) >> 2] = i32 | 1;
  7672. HEAP32[i15 + (i2 + 4) >> 2] = 40;
  7673. HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
  7674. break;
  7675. }
  7676. if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7677. HEAP32[12928 >> 2] = i17;
  7678. }
  7679. i19 = i17 + i14 | 0;
  7680. i16 = 13360 | 0;
  7681. while (1) {
  7682. if ((HEAP32[i16 >> 2] | 0) == (i19 | 0)) {
  7683. i13 = 224;
  7684. break;
  7685. }
  7686. i18 = HEAP32[i16 + 8 >> 2] | 0;
  7687. if ((i18 | 0) == 0) {
  7688. break;
  7689. } else {
  7690. i16 = i18;
  7691. }
  7692. }
  7693. if ((i13 | 0) == 224 ? (HEAP32[i16 + 12 >> 2] & 8 | 0) == 0 : 0) {
  7694. HEAP32[i16 >> 2] = i17;
  7695. i6 = i16 + 4 | 0;
  7696. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i14;
  7697. i6 = i17 + 8 | 0;
  7698. if ((i6 & 7 | 0) == 0) {
  7699. i6 = 0;
  7700. } else {
  7701. i6 = 0 - i6 & 7;
  7702. }
  7703. i7 = i17 + (i14 + 8) | 0;
  7704. if ((i7 & 7 | 0) == 0) {
  7705. i13 = 0;
  7706. } else {
  7707. i13 = 0 - i7 & 7;
  7708. }
  7709. i15 = i17 + (i13 + i14) | 0;
  7710. i8 = i6 + i12 | 0;
  7711. i7 = i17 + i8 | 0;
  7712. i10 = i15 - (i17 + i6) - i12 | 0;
  7713. HEAP32[i17 + (i6 + 4) >> 2] = i12 | 3;
  7714. L348 : do {
  7715. if ((i15 | 0) != (HEAP32[12936 >> 2] | 0)) {
  7716. if ((i15 | 0) == (HEAP32[12932 >> 2] | 0)) {
  7717. i32 = (HEAP32[12920 >> 2] | 0) + i10 | 0;
  7718. HEAP32[12920 >> 2] = i32;
  7719. HEAP32[12932 >> 2] = i7;
  7720. HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
  7721. HEAP32[i17 + (i32 + i8) >> 2] = i32;
  7722. break;
  7723. }
  7724. i12 = i14 + 4 | 0;
  7725. i18 = HEAP32[i17 + (i12 + i13) >> 2] | 0;
  7726. if ((i18 & 3 | 0) == 1) {
  7727. i11 = i18 & -8;
  7728. i16 = i18 >>> 3;
  7729. do {
  7730. if (!(i18 >>> 0 < 256)) {
  7731. i9 = HEAP32[i17 + ((i13 | 24) + i14) >> 2] | 0;
  7732. i19 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
  7733. do {
  7734. if ((i19 | 0) == (i15 | 0)) {
  7735. i19 = i13 | 16;
  7736. i18 = i17 + (i12 + i19) | 0;
  7737. i16 = HEAP32[i18 >> 2] | 0;
  7738. if ((i16 | 0) == 0) {
  7739. i18 = i17 + (i19 + i14) | 0;
  7740. i16 = HEAP32[i18 >> 2] | 0;
  7741. if ((i16 | 0) == 0) {
  7742. i5 = 0;
  7743. break;
  7744. }
  7745. }
  7746. while (1) {
  7747. i20 = i16 + 20 | 0;
  7748. i19 = HEAP32[i20 >> 2] | 0;
  7749. if ((i19 | 0) != 0) {
  7750. i16 = i19;
  7751. i18 = i20;
  7752. continue;
  7753. }
  7754. i19 = i16 + 16 | 0;
  7755. i20 = HEAP32[i19 >> 2] | 0;
  7756. if ((i20 | 0) == 0) {
  7757. break;
  7758. } else {
  7759. i16 = i20;
  7760. i18 = i19;
  7761. }
  7762. }
  7763. if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7764. _abort();
  7765. } else {
  7766. HEAP32[i18 >> 2] = 0;
  7767. i5 = i16;
  7768. break;
  7769. }
  7770. } else {
  7771. i18 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
  7772. if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7773. _abort();
  7774. }
  7775. i16 = i18 + 12 | 0;
  7776. if ((HEAP32[i16 >> 2] | 0) != (i15 | 0)) {
  7777. _abort();
  7778. }
  7779. i20 = i19 + 8 | 0;
  7780. if ((HEAP32[i20 >> 2] | 0) == (i15 | 0)) {
  7781. HEAP32[i16 >> 2] = i19;
  7782. HEAP32[i20 >> 2] = i18;
  7783. i5 = i19;
  7784. break;
  7785. } else {
  7786. _abort();
  7787. }
  7788. }
  7789. } while (0);
  7790. if ((i9 | 0) != 0) {
  7791. i16 = HEAP32[i17 + (i14 + 28 + i13) >> 2] | 0;
  7792. i18 = 13216 + (i16 << 2) | 0;
  7793. if ((i15 | 0) == (HEAP32[i18 >> 2] | 0)) {
  7794. HEAP32[i18 >> 2] = i5;
  7795. if ((i5 | 0) == 0) {
  7796. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i16);
  7797. break;
  7798. }
  7799. } else {
  7800. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7801. _abort();
  7802. }
  7803. i16 = i9 + 16 | 0;
  7804. if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
  7805. HEAP32[i16 >> 2] = i5;
  7806. } else {
  7807. HEAP32[i9 + 20 >> 2] = i5;
  7808. }
  7809. if ((i5 | 0) == 0) {
  7810. break;
  7811. }
  7812. }
  7813. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7814. _abort();
  7815. }
  7816. HEAP32[i5 + 24 >> 2] = i9;
  7817. i15 = i13 | 16;
  7818. i9 = HEAP32[i17 + (i15 + i14) >> 2] | 0;
  7819. do {
  7820. if ((i9 | 0) != 0) {
  7821. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7822. _abort();
  7823. } else {
  7824. HEAP32[i5 + 16 >> 2] = i9;
  7825. HEAP32[i9 + 24 >> 2] = i5;
  7826. break;
  7827. }
  7828. }
  7829. } while (0);
  7830. i9 = HEAP32[i17 + (i12 + i15) >> 2] | 0;
  7831. if ((i9 | 0) != 0) {
  7832. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7833. _abort();
  7834. } else {
  7835. HEAP32[i5 + 20 >> 2] = i9;
  7836. HEAP32[i9 + 24 >> 2] = i5;
  7837. break;
  7838. }
  7839. }
  7840. }
  7841. } else {
  7842. i5 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
  7843. i12 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
  7844. i18 = 12952 + (i16 << 1 << 2) | 0;
  7845. if ((i5 | 0) != (i18 | 0)) {
  7846. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7847. _abort();
  7848. }
  7849. if ((HEAP32[i5 + 12 >> 2] | 0) != (i15 | 0)) {
  7850. _abort();
  7851. }
  7852. }
  7853. if ((i12 | 0) == (i5 | 0)) {
  7854. HEAP32[3228] = HEAP32[3228] & ~(1 << i16);
  7855. break;
  7856. }
  7857. if ((i12 | 0) != (i18 | 0)) {
  7858. if (i12 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7859. _abort();
  7860. }
  7861. i16 = i12 + 8 | 0;
  7862. if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
  7863. i9 = i16;
  7864. } else {
  7865. _abort();
  7866. }
  7867. } else {
  7868. i9 = i12 + 8 | 0;
  7869. }
  7870. HEAP32[i5 + 12 >> 2] = i12;
  7871. HEAP32[i9 >> 2] = i5;
  7872. }
  7873. } while (0);
  7874. i15 = i17 + ((i11 | i13) + i14) | 0;
  7875. i10 = i11 + i10 | 0;
  7876. }
  7877. i5 = i15 + 4 | 0;
  7878. HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & -2;
  7879. HEAP32[i17 + (i8 + 4) >> 2] = i10 | 1;
  7880. HEAP32[i17 + (i10 + i8) >> 2] = i10;
  7881. i5 = i10 >>> 3;
  7882. if (i10 >>> 0 < 256) {
  7883. i10 = i5 << 1;
  7884. i2 = 12952 + (i10 << 2) | 0;
  7885. i9 = HEAP32[3228] | 0;
  7886. i5 = 1 << i5;
  7887. if ((i9 & i5 | 0) != 0) {
  7888. i9 = 12952 + (i10 + 2 << 2) | 0;
  7889. i5 = HEAP32[i9 >> 2] | 0;
  7890. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7891. _abort();
  7892. } else {
  7893. i3 = i9;
  7894. i4 = i5;
  7895. }
  7896. } else {
  7897. HEAP32[3228] = i9 | i5;
  7898. i3 = 12952 + (i10 + 2 << 2) | 0;
  7899. i4 = i2;
  7900. }
  7901. HEAP32[i3 >> 2] = i7;
  7902. HEAP32[i4 + 12 >> 2] = i7;
  7903. HEAP32[i17 + (i8 + 8) >> 2] = i4;
  7904. HEAP32[i17 + (i8 + 12) >> 2] = i2;
  7905. break;
  7906. }
  7907. i3 = i10 >>> 8;
  7908. if ((i3 | 0) != 0) {
  7909. if (i10 >>> 0 > 16777215) {
  7910. i3 = 31;
  7911. } else {
  7912. i31 = (i3 + 1048320 | 0) >>> 16 & 8;
  7913. i32 = i3 << i31;
  7914. i30 = (i32 + 520192 | 0) >>> 16 & 4;
  7915. i32 = i32 << i30;
  7916. i3 = (i32 + 245760 | 0) >>> 16 & 2;
  7917. i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
  7918. i3 = i10 >>> (i3 + 7 | 0) & 1 | i3 << 1;
  7919. }
  7920. } else {
  7921. i3 = 0;
  7922. }
  7923. i4 = 13216 + (i3 << 2) | 0;
  7924. HEAP32[i17 + (i8 + 28) >> 2] = i3;
  7925. HEAP32[i17 + (i8 + 20) >> 2] = 0;
  7926. HEAP32[i17 + (i8 + 16) >> 2] = 0;
  7927. i9 = HEAP32[12916 >> 2] | 0;
  7928. i5 = 1 << i3;
  7929. if ((i9 & i5 | 0) == 0) {
  7930. HEAP32[12916 >> 2] = i9 | i5;
  7931. HEAP32[i4 >> 2] = i7;
  7932. HEAP32[i17 + (i8 + 24) >> 2] = i4;
  7933. HEAP32[i17 + (i8 + 12) >> 2] = i7;
  7934. HEAP32[i17 + (i8 + 8) >> 2] = i7;
  7935. break;
  7936. }
  7937. i4 = HEAP32[i4 >> 2] | 0;
  7938. if ((i3 | 0) == 31) {
  7939. i3 = 0;
  7940. } else {
  7941. i3 = 25 - (i3 >>> 1) | 0;
  7942. }
  7943. L445 : do {
  7944. if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i10 | 0)) {
  7945. i3 = i10 << i3;
  7946. while (1) {
  7947. i5 = i4 + (i3 >>> 31 << 2) + 16 | 0;
  7948. i9 = HEAP32[i5 >> 2] | 0;
  7949. if ((i9 | 0) == 0) {
  7950. break;
  7951. }
  7952. if ((HEAP32[i9 + 4 >> 2] & -8 | 0) == (i10 | 0)) {
  7953. i2 = i9;
  7954. break L445;
  7955. } else {
  7956. i3 = i3 << 1;
  7957. i4 = i9;
  7958. }
  7959. }
  7960. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  7961. _abort();
  7962. } else {
  7963. HEAP32[i5 >> 2] = i7;
  7964. HEAP32[i17 + (i8 + 24) >> 2] = i4;
  7965. HEAP32[i17 + (i8 + 12) >> 2] = i7;
  7966. HEAP32[i17 + (i8 + 8) >> 2] = i7;
  7967. break L348;
  7968. }
  7969. } else {
  7970. i2 = i4;
  7971. }
  7972. } while (0);
  7973. i4 = i2 + 8 | 0;
  7974. i3 = HEAP32[i4 >> 2] | 0;
  7975. i5 = HEAP32[12928 >> 2] | 0;
  7976. if (i2 >>> 0 < i5 >>> 0) {
  7977. _abort();
  7978. }
  7979. if (i3 >>> 0 < i5 >>> 0) {
  7980. _abort();
  7981. } else {
  7982. HEAP32[i3 + 12 >> 2] = i7;
  7983. HEAP32[i4 >> 2] = i7;
  7984. HEAP32[i17 + (i8 + 8) >> 2] = i3;
  7985. HEAP32[i17 + (i8 + 12) >> 2] = i2;
  7986. HEAP32[i17 + (i8 + 24) >> 2] = 0;
  7987. break;
  7988. }
  7989. } else {
  7990. i32 = (HEAP32[12924 >> 2] | 0) + i10 | 0;
  7991. HEAP32[12924 >> 2] = i32;
  7992. HEAP32[12936 >> 2] = i7;
  7993. HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
  7994. }
  7995. } while (0);
  7996. i32 = i17 + (i6 | 8) | 0;
  7997. STACKTOP = i1;
  7998. return i32 | 0;
  7999. }
  8000. i3 = 13360 | 0;
  8001. while (1) {
  8002. i2 = HEAP32[i3 >> 2] | 0;
  8003. if (!(i2 >>> 0 > i15 >>> 0) ? (i11 = HEAP32[i3 + 4 >> 2] | 0, i10 = i2 + i11 | 0, i10 >>> 0 > i15 >>> 0) : 0) {
  8004. break;
  8005. }
  8006. i3 = HEAP32[i3 + 8 >> 2] | 0;
  8007. }
  8008. i3 = i2 + (i11 + -39) | 0;
  8009. if ((i3 & 7 | 0) == 0) {
  8010. i3 = 0;
  8011. } else {
  8012. i3 = 0 - i3 & 7;
  8013. }
  8014. i2 = i2 + (i11 + -47 + i3) | 0;
  8015. i2 = i2 >>> 0 < (i15 + 16 | 0) >>> 0 ? i15 : i2;
  8016. i3 = i2 + 8 | 0;
  8017. i4 = i17 + 8 | 0;
  8018. if ((i4 & 7 | 0) == 0) {
  8019. i4 = 0;
  8020. } else {
  8021. i4 = 0 - i4 & 7;
  8022. }
  8023. i32 = i14 + -40 - i4 | 0;
  8024. HEAP32[12936 >> 2] = i17 + i4;
  8025. HEAP32[12924 >> 2] = i32;
  8026. HEAP32[i17 + (i4 + 4) >> 2] = i32 | 1;
  8027. HEAP32[i17 + (i14 + -36) >> 2] = 40;
  8028. HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
  8029. HEAP32[i2 + 4 >> 2] = 27;
  8030. HEAP32[i3 + 0 >> 2] = HEAP32[13360 >> 2];
  8031. HEAP32[i3 + 4 >> 2] = HEAP32[13364 >> 2];
  8032. HEAP32[i3 + 8 >> 2] = HEAP32[13368 >> 2];
  8033. HEAP32[i3 + 12 >> 2] = HEAP32[13372 >> 2];
  8034. HEAP32[13360 >> 2] = i17;
  8035. HEAP32[13364 >> 2] = i14;
  8036. HEAP32[13372 >> 2] = 0;
  8037. HEAP32[13368 >> 2] = i3;
  8038. i4 = i2 + 28 | 0;
  8039. HEAP32[i4 >> 2] = 7;
  8040. if ((i2 + 32 | 0) >>> 0 < i10 >>> 0) {
  8041. while (1) {
  8042. i3 = i4 + 4 | 0;
  8043. HEAP32[i3 >> 2] = 7;
  8044. if ((i4 + 8 | 0) >>> 0 < i10 >>> 0) {
  8045. i4 = i3;
  8046. } else {
  8047. break;
  8048. }
  8049. }
  8050. }
  8051. if ((i2 | 0) != (i15 | 0)) {
  8052. i2 = i2 - i15 | 0;
  8053. i3 = i15 + (i2 + 4) | 0;
  8054. HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & -2;
  8055. HEAP32[i15 + 4 >> 2] = i2 | 1;
  8056. HEAP32[i15 + i2 >> 2] = i2;
  8057. i3 = i2 >>> 3;
  8058. if (i2 >>> 0 < 256) {
  8059. i4 = i3 << 1;
  8060. i2 = 12952 + (i4 << 2) | 0;
  8061. i5 = HEAP32[3228] | 0;
  8062. i3 = 1 << i3;
  8063. if ((i5 & i3 | 0) != 0) {
  8064. i4 = 12952 + (i4 + 2 << 2) | 0;
  8065. i3 = HEAP32[i4 >> 2] | 0;
  8066. if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  8067. _abort();
  8068. } else {
  8069. i7 = i4;
  8070. i8 = i3;
  8071. }
  8072. } else {
  8073. HEAP32[3228] = i5 | i3;
  8074. i7 = 12952 + (i4 + 2 << 2) | 0;
  8075. i8 = i2;
  8076. }
  8077. HEAP32[i7 >> 2] = i15;
  8078. HEAP32[i8 + 12 >> 2] = i15;
  8079. HEAP32[i15 + 8 >> 2] = i8;
  8080. HEAP32[i15 + 12 >> 2] = i2;
  8081. break;
  8082. }
  8083. i3 = i2 >>> 8;
  8084. if ((i3 | 0) != 0) {
  8085. if (i2 >>> 0 > 16777215) {
  8086. i3 = 31;
  8087. } else {
  8088. i31 = (i3 + 1048320 | 0) >>> 16 & 8;
  8089. i32 = i3 << i31;
  8090. i30 = (i32 + 520192 | 0) >>> 16 & 4;
  8091. i32 = i32 << i30;
  8092. i3 = (i32 + 245760 | 0) >>> 16 & 2;
  8093. i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
  8094. i3 = i2 >>> (i3 + 7 | 0) & 1 | i3 << 1;
  8095. }
  8096. } else {
  8097. i3 = 0;
  8098. }
  8099. i7 = 13216 + (i3 << 2) | 0;
  8100. HEAP32[i15 + 28 >> 2] = i3;
  8101. HEAP32[i15 + 20 >> 2] = 0;
  8102. HEAP32[i15 + 16 >> 2] = 0;
  8103. i4 = HEAP32[12916 >> 2] | 0;
  8104. i5 = 1 << i3;
  8105. if ((i4 & i5 | 0) == 0) {
  8106. HEAP32[12916 >> 2] = i4 | i5;
  8107. HEAP32[i7 >> 2] = i15;
  8108. HEAP32[i15 + 24 >> 2] = i7;
  8109. HEAP32[i15 + 12 >> 2] = i15;
  8110. HEAP32[i15 + 8 >> 2] = i15;
  8111. break;
  8112. }
  8113. i4 = HEAP32[i7 >> 2] | 0;
  8114. if ((i3 | 0) == 31) {
  8115. i3 = 0;
  8116. } else {
  8117. i3 = 25 - (i3 >>> 1) | 0;
  8118. }
  8119. L499 : do {
  8120. if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i2 | 0)) {
  8121. i3 = i2 << i3;
  8122. while (1) {
  8123. i7 = i4 + (i3 >>> 31 << 2) + 16 | 0;
  8124. i5 = HEAP32[i7 >> 2] | 0;
  8125. if ((i5 | 0) == 0) {
  8126. break;
  8127. }
  8128. if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i2 | 0)) {
  8129. i6 = i5;
  8130. break L499;
  8131. } else {
  8132. i3 = i3 << 1;
  8133. i4 = i5;
  8134. }
  8135. }
  8136. if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  8137. _abort();
  8138. } else {
  8139. HEAP32[i7 >> 2] = i15;
  8140. HEAP32[i15 + 24 >> 2] = i4;
  8141. HEAP32[i15 + 12 >> 2] = i15;
  8142. HEAP32[i15 + 8 >> 2] = i15;
  8143. break L311;
  8144. }
  8145. } else {
  8146. i6 = i4;
  8147. }
  8148. } while (0);
  8149. i4 = i6 + 8 | 0;
  8150. i3 = HEAP32[i4 >> 2] | 0;
  8151. i2 = HEAP32[12928 >> 2] | 0;
  8152. if (i6 >>> 0 < i2 >>> 0) {
  8153. _abort();
  8154. }
  8155. if (i3 >>> 0 < i2 >>> 0) {
  8156. _abort();
  8157. } else {
  8158. HEAP32[i3 + 12 >> 2] = i15;
  8159. HEAP32[i4 >> 2] = i15;
  8160. HEAP32[i15 + 8 >> 2] = i3;
  8161. HEAP32[i15 + 12 >> 2] = i6;
  8162. HEAP32[i15 + 24 >> 2] = 0;
  8163. break;
  8164. }
  8165. }
  8166. } else {
  8167. i32 = HEAP32[12928 >> 2] | 0;
  8168. if ((i32 | 0) == 0 | i17 >>> 0 < i32 >>> 0) {
  8169. HEAP32[12928 >> 2] = i17;
  8170. }
  8171. HEAP32[13360 >> 2] = i17;
  8172. HEAP32[13364 >> 2] = i14;
  8173. HEAP32[13372 >> 2] = 0;
  8174. HEAP32[12948 >> 2] = HEAP32[3346];
  8175. HEAP32[12944 >> 2] = -1;
  8176. i2 = 0;
  8177. do {
  8178. i32 = i2 << 1;
  8179. i31 = 12952 + (i32 << 2) | 0;
  8180. HEAP32[12952 + (i32 + 3 << 2) >> 2] = i31;
  8181. HEAP32[12952 + (i32 + 2 << 2) >> 2] = i31;
  8182. i2 = i2 + 1 | 0;
  8183. } while ((i2 | 0) != 32);
  8184. i2 = i17 + 8 | 0;
  8185. if ((i2 & 7 | 0) == 0) {
  8186. i2 = 0;
  8187. } else {
  8188. i2 = 0 - i2 & 7;
  8189. }
  8190. i32 = i14 + -40 - i2 | 0;
  8191. HEAP32[12936 >> 2] = i17 + i2;
  8192. HEAP32[12924 >> 2] = i32;
  8193. HEAP32[i17 + (i2 + 4) >> 2] = i32 | 1;
  8194. HEAP32[i17 + (i14 + -36) >> 2] = 40;
  8195. HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
  8196. }
  8197. } while (0);
  8198. i2 = HEAP32[12924 >> 2] | 0;
  8199. if (i2 >>> 0 > i12 >>> 0) {
  8200. i31 = i2 - i12 | 0;
  8201. HEAP32[12924 >> 2] = i31;
  8202. i32 = HEAP32[12936 >> 2] | 0;
  8203. HEAP32[12936 >> 2] = i32 + i12;
  8204. HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
  8205. HEAP32[i32 + 4 >> 2] = i12 | 3;
  8206. i32 = i32 + 8 | 0;
  8207. STACKTOP = i1;
  8208. return i32 | 0;
  8209. }
  8210. }
  8211. HEAP32[(___errno_location() | 0) >> 2] = 12;
  8212. i32 = 0;
  8213. STACKTOP = i1;
  8214. return i32 | 0;
  8215. }
  8216. function _llex(i2, i3) {
  8217. i2 = i2 | 0;
  8218. i3 = i3 | 0;
  8219. var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
  8220. i1 = STACKTOP;
  8221. STACKTOP = STACKTOP + 16 | 0;
  8222. i12 = i1;
  8223. i4 = i2 + 60 | 0;
  8224. HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
  8225. i5 = i2 + 56 | 0;
  8226. L1 : while (1) {
  8227. i13 = HEAP32[i2 >> 2] | 0;
  8228. L3 : while (1) {
  8229. switch (i13 | 0) {
  8230. case 11:
  8231. case 9:
  8232. case 12:
  8233. case 32:
  8234. {
  8235. break;
  8236. }
  8237. case 91:
  8238. {
  8239. i9 = 25;
  8240. break L1;
  8241. }
  8242. case 62:
  8243. {
  8244. i9 = 45;
  8245. break L1;
  8246. }
  8247. case 46:
  8248. {
  8249. i9 = 161;
  8250. break L1;
  8251. }
  8252. case 13:
  8253. case 10:
  8254. {
  8255. i9 = 4;
  8256. break L3;
  8257. }
  8258. case 45:
  8259. {
  8260. break L3;
  8261. }
  8262. case 61:
  8263. {
  8264. i9 = 29;
  8265. break L1;
  8266. }
  8267. case 39:
  8268. case 34:
  8269. {
  8270. i9 = 69;
  8271. break L1;
  8272. }
  8273. case 126:
  8274. {
  8275. i9 = 53;
  8276. break L1;
  8277. }
  8278. case 60:
  8279. {
  8280. i9 = 37;
  8281. break L1;
  8282. }
  8283. case 58:
  8284. {
  8285. i9 = 61;
  8286. break L1;
  8287. }
  8288. case 57:
  8289. case 56:
  8290. case 55:
  8291. case 54:
  8292. case 53:
  8293. case 52:
  8294. case 51:
  8295. case 50:
  8296. case 49:
  8297. case 48:
  8298. {
  8299. i20 = i13;
  8300. break L1;
  8301. }
  8302. case -1:
  8303. {
  8304. i2 = 286;
  8305. i9 = 306;
  8306. break L1;
  8307. }
  8308. default:
  8309. {
  8310. i9 = 283;
  8311. break L1;
  8312. }
  8313. }
  8314. i13 = HEAP32[i5 >> 2] | 0;
  8315. i27 = HEAP32[i13 >> 2] | 0;
  8316. HEAP32[i13 >> 2] = i27 + -1;
  8317. if ((i27 | 0) == 0) {
  8318. i13 = _luaZ_fill(i13) | 0;
  8319. } else {
  8320. i27 = i13 + 4 | 0;
  8321. i13 = HEAP32[i27 >> 2] | 0;
  8322. HEAP32[i27 >> 2] = i13 + 1;
  8323. i13 = HEAPU8[i13] | 0;
  8324. }
  8325. HEAP32[i2 >> 2] = i13;
  8326. }
  8327. if ((i9 | 0) == 4) {
  8328. i9 = 0;
  8329. _inclinenumber(i2);
  8330. continue;
  8331. }
  8332. i13 = HEAP32[i5 >> 2] | 0;
  8333. i27 = HEAP32[i13 >> 2] | 0;
  8334. HEAP32[i13 >> 2] = i27 + -1;
  8335. if ((i27 | 0) == 0) {
  8336. i13 = _luaZ_fill(i13) | 0;
  8337. } else {
  8338. i27 = i13 + 4 | 0;
  8339. i13 = HEAP32[i27 >> 2] | 0;
  8340. HEAP32[i27 >> 2] = i13 + 1;
  8341. i13 = HEAPU8[i13] | 0;
  8342. }
  8343. HEAP32[i2 >> 2] = i13;
  8344. if ((i13 | 0) != 45) {
  8345. i2 = 45;
  8346. i9 = 306;
  8347. break;
  8348. }
  8349. i13 = HEAP32[i5 >> 2] | 0;
  8350. i27 = HEAP32[i13 >> 2] | 0;
  8351. HEAP32[i13 >> 2] = i27 + -1;
  8352. if ((i27 | 0) == 0) {
  8353. i13 = _luaZ_fill(i13) | 0;
  8354. } else {
  8355. i27 = i13 + 4 | 0;
  8356. i13 = HEAP32[i27 >> 2] | 0;
  8357. HEAP32[i27 >> 2] = i13 + 1;
  8358. i13 = HEAPU8[i13] | 0;
  8359. }
  8360. HEAP32[i2 >> 2] = i13;
  8361. do {
  8362. if ((i13 | 0) == 91) {
  8363. i13 = _skip_sep(i2) | 0;
  8364. HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
  8365. if ((i13 | 0) > -1) {
  8366. _read_long_string(i2, 0, i13);
  8367. HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
  8368. continue L1;
  8369. } else {
  8370. i13 = HEAP32[i2 >> 2] | 0;
  8371. break;
  8372. }
  8373. }
  8374. } while (0);
  8375. while (1) {
  8376. if ((i13 | 0) == -1 | (i13 | 0) == 13 | (i13 | 0) == 10) {
  8377. continue L1;
  8378. }
  8379. i13 = HEAP32[i5 >> 2] | 0;
  8380. i27 = HEAP32[i13 >> 2] | 0;
  8381. HEAP32[i13 >> 2] = i27 + -1;
  8382. if ((i27 | 0) == 0) {
  8383. i13 = _luaZ_fill(i13) | 0;
  8384. } else {
  8385. i27 = i13 + 4 | 0;
  8386. i13 = HEAP32[i27 >> 2] | 0;
  8387. HEAP32[i27 >> 2] = i13 + 1;
  8388. i13 = HEAPU8[i13] | 0;
  8389. }
  8390. HEAP32[i2 >> 2] = i13;
  8391. }
  8392. }
  8393. if ((i9 | 0) == 25) {
  8394. i9 = _skip_sep(i2) | 0;
  8395. if ((i9 | 0) > -1) {
  8396. _read_long_string(i2, i3, i9);
  8397. i27 = 289;
  8398. STACKTOP = i1;
  8399. return i27 | 0;
  8400. }
  8401. if ((i9 | 0) == -1) {
  8402. i27 = 91;
  8403. STACKTOP = i1;
  8404. return i27 | 0;
  8405. } else {
  8406. _lexerror(i2, 12272, 289);
  8407. }
  8408. } else if ((i9 | 0) == 29) {
  8409. i3 = HEAP32[i5 >> 2] | 0;
  8410. i27 = HEAP32[i3 >> 2] | 0;
  8411. HEAP32[i3 >> 2] = i27 + -1;
  8412. if ((i27 | 0) == 0) {
  8413. i3 = _luaZ_fill(i3) | 0;
  8414. } else {
  8415. i27 = i3 + 4 | 0;
  8416. i3 = HEAP32[i27 >> 2] | 0;
  8417. HEAP32[i27 >> 2] = i3 + 1;
  8418. i3 = HEAPU8[i3] | 0;
  8419. }
  8420. HEAP32[i2 >> 2] = i3;
  8421. if ((i3 | 0) != 61) {
  8422. i27 = 61;
  8423. STACKTOP = i1;
  8424. return i27 | 0;
  8425. }
  8426. i3 = HEAP32[i5 >> 2] | 0;
  8427. i27 = HEAP32[i3 >> 2] | 0;
  8428. HEAP32[i3 >> 2] = i27 + -1;
  8429. if ((i27 | 0) == 0) {
  8430. i3 = _luaZ_fill(i3) | 0;
  8431. } else {
  8432. i27 = i3 + 4 | 0;
  8433. i3 = HEAP32[i27 >> 2] | 0;
  8434. HEAP32[i27 >> 2] = i3 + 1;
  8435. i3 = HEAPU8[i3] | 0;
  8436. }
  8437. HEAP32[i2 >> 2] = i3;
  8438. i27 = 281;
  8439. STACKTOP = i1;
  8440. return i27 | 0;
  8441. } else if ((i9 | 0) == 37) {
  8442. i3 = HEAP32[i5 >> 2] | 0;
  8443. i27 = HEAP32[i3 >> 2] | 0;
  8444. HEAP32[i3 >> 2] = i27 + -1;
  8445. if ((i27 | 0) == 0) {
  8446. i3 = _luaZ_fill(i3) | 0;
  8447. } else {
  8448. i27 = i3 + 4 | 0;
  8449. i3 = HEAP32[i27 >> 2] | 0;
  8450. HEAP32[i27 >> 2] = i3 + 1;
  8451. i3 = HEAPU8[i3] | 0;
  8452. }
  8453. HEAP32[i2 >> 2] = i3;
  8454. if ((i3 | 0) != 61) {
  8455. i27 = 60;
  8456. STACKTOP = i1;
  8457. return i27 | 0;
  8458. }
  8459. i3 = HEAP32[i5 >> 2] | 0;
  8460. i27 = HEAP32[i3 >> 2] | 0;
  8461. HEAP32[i3 >> 2] = i27 + -1;
  8462. if ((i27 | 0) == 0) {
  8463. i3 = _luaZ_fill(i3) | 0;
  8464. } else {
  8465. i27 = i3 + 4 | 0;
  8466. i3 = HEAP32[i27 >> 2] | 0;
  8467. HEAP32[i27 >> 2] = i3 + 1;
  8468. i3 = HEAPU8[i3] | 0;
  8469. }
  8470. HEAP32[i2 >> 2] = i3;
  8471. i27 = 283;
  8472. STACKTOP = i1;
  8473. return i27 | 0;
  8474. } else if ((i9 | 0) == 45) {
  8475. i3 = HEAP32[i5 >> 2] | 0;
  8476. i27 = HEAP32[i3 >> 2] | 0;
  8477. HEAP32[i3 >> 2] = i27 + -1;
  8478. if ((i27 | 0) == 0) {
  8479. i3 = _luaZ_fill(i3) | 0;
  8480. } else {
  8481. i27 = i3 + 4 | 0;
  8482. i3 = HEAP32[i27 >> 2] | 0;
  8483. HEAP32[i27 >> 2] = i3 + 1;
  8484. i3 = HEAPU8[i3] | 0;
  8485. }
  8486. HEAP32[i2 >> 2] = i3;
  8487. if ((i3 | 0) != 61) {
  8488. i27 = 62;
  8489. STACKTOP = i1;
  8490. return i27 | 0;
  8491. }
  8492. i3 = HEAP32[i5 >> 2] | 0;
  8493. i27 = HEAP32[i3 >> 2] | 0;
  8494. HEAP32[i3 >> 2] = i27 + -1;
  8495. if ((i27 | 0) == 0) {
  8496. i3 = _luaZ_fill(i3) | 0;
  8497. } else {
  8498. i27 = i3 + 4 | 0;
  8499. i3 = HEAP32[i27 >> 2] | 0;
  8500. HEAP32[i27 >> 2] = i3 + 1;
  8501. i3 = HEAPU8[i3] | 0;
  8502. }
  8503. HEAP32[i2 >> 2] = i3;
  8504. i27 = 282;
  8505. STACKTOP = i1;
  8506. return i27 | 0;
  8507. } else if ((i9 | 0) == 53) {
  8508. i3 = HEAP32[i5 >> 2] | 0;
  8509. i27 = HEAP32[i3 >> 2] | 0;
  8510. HEAP32[i3 >> 2] = i27 + -1;
  8511. if ((i27 | 0) == 0) {
  8512. i3 = _luaZ_fill(i3) | 0;
  8513. } else {
  8514. i27 = i3 + 4 | 0;
  8515. i3 = HEAP32[i27 >> 2] | 0;
  8516. HEAP32[i27 >> 2] = i3 + 1;
  8517. i3 = HEAPU8[i3] | 0;
  8518. }
  8519. HEAP32[i2 >> 2] = i3;
  8520. if ((i3 | 0) != 61) {
  8521. i27 = 126;
  8522. STACKTOP = i1;
  8523. return i27 | 0;
  8524. }
  8525. i3 = HEAP32[i5 >> 2] | 0;
  8526. i27 = HEAP32[i3 >> 2] | 0;
  8527. HEAP32[i3 >> 2] = i27 + -1;
  8528. if ((i27 | 0) == 0) {
  8529. i3 = _luaZ_fill(i3) | 0;
  8530. } else {
  8531. i27 = i3 + 4 | 0;
  8532. i3 = HEAP32[i27 >> 2] | 0;
  8533. HEAP32[i27 >> 2] = i3 + 1;
  8534. i3 = HEAPU8[i3] | 0;
  8535. }
  8536. HEAP32[i2 >> 2] = i3;
  8537. i27 = 284;
  8538. STACKTOP = i1;
  8539. return i27 | 0;
  8540. } else if ((i9 | 0) == 61) {
  8541. i3 = HEAP32[i5 >> 2] | 0;
  8542. i27 = HEAP32[i3 >> 2] | 0;
  8543. HEAP32[i3 >> 2] = i27 + -1;
  8544. if ((i27 | 0) == 0) {
  8545. i3 = _luaZ_fill(i3) | 0;
  8546. } else {
  8547. i27 = i3 + 4 | 0;
  8548. i3 = HEAP32[i27 >> 2] | 0;
  8549. HEAP32[i27 >> 2] = i3 + 1;
  8550. i3 = HEAPU8[i3] | 0;
  8551. }
  8552. HEAP32[i2 >> 2] = i3;
  8553. if ((i3 | 0) != 58) {
  8554. i27 = 58;
  8555. STACKTOP = i1;
  8556. return i27 | 0;
  8557. }
  8558. i3 = HEAP32[i5 >> 2] | 0;
  8559. i27 = HEAP32[i3 >> 2] | 0;
  8560. HEAP32[i3 >> 2] = i27 + -1;
  8561. if ((i27 | 0) == 0) {
  8562. i3 = _luaZ_fill(i3) | 0;
  8563. } else {
  8564. i27 = i3 + 4 | 0;
  8565. i3 = HEAP32[i27 >> 2] | 0;
  8566. HEAP32[i27 >> 2] = i3 + 1;
  8567. i3 = HEAPU8[i3] | 0;
  8568. }
  8569. HEAP32[i2 >> 2] = i3;
  8570. i27 = 285;
  8571. STACKTOP = i1;
  8572. return i27 | 0;
  8573. } else if ((i9 | 0) == 69) {
  8574. i14 = HEAP32[i4 >> 2] | 0;
  8575. i7 = i14 + 4 | 0;
  8576. i15 = HEAP32[i7 >> 2] | 0;
  8577. i8 = i14 + 8 | 0;
  8578. i6 = HEAP32[i8 >> 2] | 0;
  8579. do {
  8580. if ((i15 + 1 | 0) >>> 0 > i6 >>> 0) {
  8581. if (i6 >>> 0 > 2147483645) {
  8582. _lexerror(i2, 12368, 0);
  8583. }
  8584. i16 = i6 << 1;
  8585. i15 = HEAP32[i2 + 52 >> 2] | 0;
  8586. if ((i16 | 0) == -2) {
  8587. _luaM_toobig(i15);
  8588. } else {
  8589. i24 = _luaM_realloc_(i15, HEAP32[i14 >> 2] | 0, i6, i16) | 0;
  8590. HEAP32[i14 >> 2] = i24;
  8591. HEAP32[i8 >> 2] = i16;
  8592. i23 = HEAP32[i7 >> 2] | 0;
  8593. break;
  8594. }
  8595. } else {
  8596. i23 = i15;
  8597. i24 = HEAP32[i14 >> 2] | 0;
  8598. }
  8599. } while (0);
  8600. i6 = i13 & 255;
  8601. HEAP32[i7 >> 2] = i23 + 1;
  8602. HEAP8[i24 + i23 | 0] = i6;
  8603. i7 = HEAP32[i5 >> 2] | 0;
  8604. i27 = HEAP32[i7 >> 2] | 0;
  8605. HEAP32[i7 >> 2] = i27 + -1;
  8606. if ((i27 | 0) == 0) {
  8607. i14 = _luaZ_fill(i7) | 0;
  8608. } else {
  8609. i27 = i7 + 4 | 0;
  8610. i14 = HEAP32[i27 >> 2] | 0;
  8611. HEAP32[i27 >> 2] = i14 + 1;
  8612. i14 = HEAPU8[i14] | 0;
  8613. }
  8614. HEAP32[i2 >> 2] = i14;
  8615. L139 : do {
  8616. if ((i14 | 0) != (i13 | 0)) {
  8617. i7 = i2 + 52 | 0;
  8618. L141 : while (1) {
  8619. L143 : do {
  8620. if ((i14 | 0) == 92) {
  8621. i8 = HEAP32[i5 >> 2] | 0;
  8622. i27 = HEAP32[i8 >> 2] | 0;
  8623. HEAP32[i8 >> 2] = i27 + -1;
  8624. if ((i27 | 0) == 0) {
  8625. i8 = _luaZ_fill(i8) | 0;
  8626. } else {
  8627. i27 = i8 + 4 | 0;
  8628. i8 = HEAP32[i27 >> 2] | 0;
  8629. HEAP32[i27 >> 2] = i8 + 1;
  8630. i8 = HEAPU8[i8] | 0;
  8631. }
  8632. HEAP32[i2 >> 2] = i8;
  8633. switch (i8 | 0) {
  8634. case 13:
  8635. case 10:
  8636. {
  8637. _inclinenumber(i2);
  8638. i8 = 10;
  8639. break;
  8640. }
  8641. case 39:
  8642. case 34:
  8643. case 92:
  8644. {
  8645. i9 = 124;
  8646. break;
  8647. }
  8648. case 122:
  8649. {
  8650. i8 = HEAP32[i5 >> 2] | 0;
  8651. i27 = HEAP32[i8 >> 2] | 0;
  8652. HEAP32[i8 >> 2] = i27 + -1;
  8653. if ((i27 | 0) == 0) {
  8654. i14 = _luaZ_fill(i8) | 0;
  8655. } else {
  8656. i27 = i8 + 4 | 0;
  8657. i14 = HEAP32[i27 >> 2] | 0;
  8658. HEAP32[i27 >> 2] = i14 + 1;
  8659. i14 = HEAPU8[i14] | 0;
  8660. }
  8661. HEAP32[i2 >> 2] = i14;
  8662. if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
  8663. break L143;
  8664. }
  8665. while (1) {
  8666. if ((i14 | 0) == 13 | (i14 | 0) == 10) {
  8667. _inclinenumber(i2);
  8668. i14 = HEAP32[i2 >> 2] | 0;
  8669. } else {
  8670. i8 = HEAP32[i5 >> 2] | 0;
  8671. i27 = HEAP32[i8 >> 2] | 0;
  8672. HEAP32[i8 >> 2] = i27 + -1;
  8673. if ((i27 | 0) == 0) {
  8674. i14 = _luaZ_fill(i8) | 0;
  8675. } else {
  8676. i27 = i8 + 4 | 0;
  8677. i14 = HEAP32[i27 >> 2] | 0;
  8678. HEAP32[i27 >> 2] = i14 + 1;
  8679. i14 = HEAPU8[i14] | 0;
  8680. }
  8681. HEAP32[i2 >> 2] = i14;
  8682. }
  8683. if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
  8684. break L143;
  8685. }
  8686. }
  8687. }
  8688. case 118:
  8689. {
  8690. i8 = 11;
  8691. i9 = 124;
  8692. break;
  8693. }
  8694. case 120:
  8695. {
  8696. HEAP32[i12 >> 2] = 120;
  8697. i14 = 1;
  8698. i8 = 0;
  8699. while (1) {
  8700. i9 = HEAP32[i5 >> 2] | 0;
  8701. i27 = HEAP32[i9 >> 2] | 0;
  8702. HEAP32[i9 >> 2] = i27 + -1;
  8703. if ((i27 | 0) == 0) {
  8704. i9 = _luaZ_fill(i9) | 0;
  8705. } else {
  8706. i27 = i9 + 4 | 0;
  8707. i9 = HEAP32[i27 >> 2] | 0;
  8708. HEAP32[i27 >> 2] = i9 + 1;
  8709. i9 = HEAPU8[i9] | 0;
  8710. }
  8711. HEAP32[i2 >> 2] = i9;
  8712. HEAP32[i12 + (i14 << 2) >> 2] = i9;
  8713. if ((HEAP8[i9 + 10913 | 0] & 16) == 0) {
  8714. i9 = 100;
  8715. break L141;
  8716. }
  8717. i8 = (_luaO_hexavalue(i9) | 0) + (i8 << 4) | 0;
  8718. i14 = i14 + 1 | 0;
  8719. if ((i14 | 0) >= 3) {
  8720. i9 = 124;
  8721. break;
  8722. }
  8723. }
  8724. break;
  8725. }
  8726. case -1:
  8727. {
  8728. i14 = -1;
  8729. break L143;
  8730. }
  8731. case 98:
  8732. {
  8733. i8 = 8;
  8734. i9 = 124;
  8735. break;
  8736. }
  8737. case 102:
  8738. {
  8739. i8 = 12;
  8740. i9 = 124;
  8741. break;
  8742. }
  8743. case 110:
  8744. {
  8745. i8 = 10;
  8746. i9 = 124;
  8747. break;
  8748. }
  8749. case 114:
  8750. {
  8751. i8 = 13;
  8752. i9 = 124;
  8753. break;
  8754. }
  8755. case 116:
  8756. {
  8757. i8 = 9;
  8758. i9 = 124;
  8759. break;
  8760. }
  8761. case 97:
  8762. {
  8763. i8 = 7;
  8764. i9 = 124;
  8765. break;
  8766. }
  8767. default:
  8768. {
  8769. if ((HEAP8[i8 + 10913 | 0] & 2) == 0) {
  8770. i9 = 116;
  8771. break L141;
  8772. } else {
  8773. i15 = i8;
  8774. i14 = 0;
  8775. i8 = 0;
  8776. }
  8777. do {
  8778. if ((HEAP8[i15 + 10913 | 0] & 2) == 0) {
  8779. break;
  8780. }
  8781. HEAP32[i12 + (i14 << 2) >> 2] = i15;
  8782. i8 = i15 + -48 + (i8 * 10 | 0) | 0;
  8783. i15 = HEAP32[i5 >> 2] | 0;
  8784. i27 = HEAP32[i15 >> 2] | 0;
  8785. HEAP32[i15 >> 2] = i27 + -1;
  8786. if ((i27 | 0) == 0) {
  8787. i15 = _luaZ_fill(i15) | 0;
  8788. } else {
  8789. i27 = i15 + 4 | 0;
  8790. i15 = HEAP32[i27 >> 2] | 0;
  8791. HEAP32[i27 >> 2] = i15 + 1;
  8792. i15 = HEAPU8[i15] | 0;
  8793. }
  8794. HEAP32[i2 >> 2] = i15;
  8795. i14 = i14 + 1 | 0;
  8796. } while ((i14 | 0) < 3);
  8797. if ((i8 | 0) > 255) {
  8798. i9 = 123;
  8799. break L141;
  8800. }
  8801. }
  8802. }
  8803. if ((i9 | 0) == 124) {
  8804. i9 = 0;
  8805. i14 = HEAP32[i5 >> 2] | 0;
  8806. i27 = HEAP32[i14 >> 2] | 0;
  8807. HEAP32[i14 >> 2] = i27 + -1;
  8808. if ((i27 | 0) == 0) {
  8809. i14 = _luaZ_fill(i14) | 0;
  8810. } else {
  8811. i27 = i14 + 4 | 0;
  8812. i14 = HEAP32[i27 >> 2] | 0;
  8813. HEAP32[i27 >> 2] = i14 + 1;
  8814. i14 = HEAPU8[i14] | 0;
  8815. }
  8816. HEAP32[i2 >> 2] = i14;
  8817. }
  8818. i15 = HEAP32[i4 >> 2] | 0;
  8819. i14 = i15 + 4 | 0;
  8820. i18 = HEAP32[i14 >> 2] | 0;
  8821. i16 = i15 + 8 | 0;
  8822. i17 = HEAP32[i16 >> 2] | 0;
  8823. if ((i18 + 1 | 0) >>> 0 > i17 >>> 0) {
  8824. if (i17 >>> 0 > 2147483645) {
  8825. i9 = 131;
  8826. break L141;
  8827. }
  8828. i18 = i17 << 1;
  8829. i19 = HEAP32[i7 >> 2] | 0;
  8830. if ((i18 | 0) == -2) {
  8831. i9 = 133;
  8832. break L141;
  8833. }
  8834. i27 = _luaM_realloc_(i19, HEAP32[i15 >> 2] | 0, i17, i18) | 0;
  8835. HEAP32[i15 >> 2] = i27;
  8836. HEAP32[i16 >> 2] = i18;
  8837. i18 = HEAP32[i14 >> 2] | 0;
  8838. i15 = i27;
  8839. } else {
  8840. i15 = HEAP32[i15 >> 2] | 0;
  8841. }
  8842. HEAP32[i14 >> 2] = i18 + 1;
  8843. HEAP8[i15 + i18 | 0] = i8;
  8844. i14 = HEAP32[i2 >> 2] | 0;
  8845. } else if ((i14 | 0) == -1) {
  8846. i9 = 82;
  8847. break L141;
  8848. } else if ((i14 | 0) == 13 | (i14 | 0) == 10) {
  8849. i9 = 83;
  8850. break L141;
  8851. } else {
  8852. i15 = HEAP32[i4 >> 2] | 0;
  8853. i8 = i15 + 4 | 0;
  8854. i18 = HEAP32[i8 >> 2] | 0;
  8855. i17 = i15 + 8 | 0;
  8856. i16 = HEAP32[i17 >> 2] | 0;
  8857. if ((i18 + 1 | 0) >>> 0 > i16 >>> 0) {
  8858. if (i16 >>> 0 > 2147483645) {
  8859. i9 = 139;
  8860. break L141;
  8861. }
  8862. i19 = i16 << 1;
  8863. i18 = HEAP32[i7 >> 2] | 0;
  8864. if ((i19 | 0) == -2) {
  8865. i9 = 141;
  8866. break L141;
  8867. }
  8868. i27 = _luaM_realloc_(i18, HEAP32[i15 >> 2] | 0, i16, i19) | 0;
  8869. HEAP32[i15 >> 2] = i27;
  8870. HEAP32[i17 >> 2] = i19;
  8871. i18 = HEAP32[i8 >> 2] | 0;
  8872. i15 = i27;
  8873. } else {
  8874. i15 = HEAP32[i15 >> 2] | 0;
  8875. }
  8876. HEAP32[i8 >> 2] = i18 + 1;
  8877. HEAP8[i15 + i18 | 0] = i14;
  8878. i8 = HEAP32[i5 >> 2] | 0;
  8879. i27 = HEAP32[i8 >> 2] | 0;
  8880. HEAP32[i8 >> 2] = i27 + -1;
  8881. if ((i27 | 0) == 0) {
  8882. i14 = _luaZ_fill(i8) | 0;
  8883. } else {
  8884. i27 = i8 + 4 | 0;
  8885. i14 = HEAP32[i27 >> 2] | 0;
  8886. HEAP32[i27 >> 2] = i14 + 1;
  8887. i14 = HEAPU8[i14] | 0;
  8888. }
  8889. HEAP32[i2 >> 2] = i14;
  8890. }
  8891. } while (0);
  8892. if ((i14 | 0) == (i13 | 0)) {
  8893. break L139;
  8894. }
  8895. }
  8896. if ((i9 | 0) == 82) {
  8897. _lexerror(i2, 12400, 286);
  8898. } else if ((i9 | 0) == 83) {
  8899. _lexerror(i2, 12400, 289);
  8900. } else if ((i9 | 0) == 100) {
  8901. _escerror(i2, i12, i14 + 1 | 0, 12480);
  8902. } else if ((i9 | 0) == 116) {
  8903. _escerror(i2, i2, 1, 12424);
  8904. } else if ((i9 | 0) == 123) {
  8905. _escerror(i2, i12, i14, 12448);
  8906. } else if ((i9 | 0) == 131) {
  8907. _lexerror(i2, 12368, 0);
  8908. } else if ((i9 | 0) == 133) {
  8909. _luaM_toobig(i19);
  8910. } else if ((i9 | 0) == 139) {
  8911. _lexerror(i2, 12368, 0);
  8912. } else if ((i9 | 0) == 141) {
  8913. _luaM_toobig(i18);
  8914. }
  8915. }
  8916. } while (0);
  8917. i7 = HEAP32[i4 >> 2] | 0;
  8918. i8 = i7 + 4 | 0;
  8919. i13 = HEAP32[i8 >> 2] | 0;
  8920. i12 = i7 + 8 | 0;
  8921. i9 = HEAP32[i12 >> 2] | 0;
  8922. do {
  8923. if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
  8924. if (i9 >>> 0 > 2147483645) {
  8925. _lexerror(i2, 12368, 0);
  8926. }
  8927. i14 = i9 << 1;
  8928. i13 = HEAP32[i2 + 52 >> 2] | 0;
  8929. if ((i14 | 0) == -2) {
  8930. _luaM_toobig(i13);
  8931. } else {
  8932. i11 = _luaM_realloc_(i13, HEAP32[i7 >> 2] | 0, i9, i14) | 0;
  8933. HEAP32[i7 >> 2] = i11;
  8934. HEAP32[i12 >> 2] = i14;
  8935. i10 = HEAP32[i8 >> 2] | 0;
  8936. break;
  8937. }
  8938. } else {
  8939. i10 = i13;
  8940. i11 = HEAP32[i7 >> 2] | 0;
  8941. }
  8942. } while (0);
  8943. HEAP32[i8 >> 2] = i10 + 1;
  8944. HEAP8[i11 + i10 | 0] = i6;
  8945. i5 = HEAP32[i5 >> 2] | 0;
  8946. i27 = HEAP32[i5 >> 2] | 0;
  8947. HEAP32[i5 >> 2] = i27 + -1;
  8948. if ((i27 | 0) == 0) {
  8949. i5 = _luaZ_fill(i5) | 0;
  8950. } else {
  8951. i27 = i5 + 4 | 0;
  8952. i5 = HEAP32[i27 >> 2] | 0;
  8953. HEAP32[i27 >> 2] = i5 + 1;
  8954. i5 = HEAPU8[i5] | 0;
  8955. }
  8956. HEAP32[i2 >> 2] = i5;
  8957. i5 = HEAP32[i4 >> 2] | 0;
  8958. i4 = HEAP32[i2 + 52 >> 2] | 0;
  8959. i5 = _luaS_newlstr(i4, (HEAP32[i5 >> 2] | 0) + 1 | 0, (HEAP32[i5 + 4 >> 2] | 0) + -2 | 0) | 0;
  8960. i6 = i4 + 8 | 0;
  8961. i7 = HEAP32[i6 >> 2] | 0;
  8962. HEAP32[i6 >> 2] = i7 + 16;
  8963. HEAP32[i7 >> 2] = i5;
  8964. HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 64;
  8965. i7 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i6 >> 2] | 0) + -16 | 0) | 0;
  8966. i2 = i7 + 8 | 0;
  8967. if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
  8968. _luaC_step(i4);
  8969. }
  8970. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -16;
  8971. HEAP32[i3 >> 2] = i5;
  8972. i27 = 289;
  8973. STACKTOP = i1;
  8974. return i27 | 0;
  8975. } else if ((i9 | 0) == 161) {
  8976. i10 = HEAP32[i4 >> 2] | 0;
  8977. i9 = i10 + 4 | 0;
  8978. i13 = HEAP32[i9 >> 2] | 0;
  8979. i12 = i10 + 8 | 0;
  8980. i11 = HEAP32[i12 >> 2] | 0;
  8981. do {
  8982. if ((i13 + 1 | 0) >>> 0 > i11 >>> 0) {
  8983. if (i11 >>> 0 > 2147483645) {
  8984. _lexerror(i2, 12368, 0);
  8985. }
  8986. i13 = i11 << 1;
  8987. i20 = HEAP32[i2 + 52 >> 2] | 0;
  8988. if ((i13 | 0) == -2) {
  8989. _luaM_toobig(i20);
  8990. } else {
  8991. i25 = _luaM_realloc_(i20, HEAP32[i10 >> 2] | 0, i11, i13) | 0;
  8992. HEAP32[i10 >> 2] = i25;
  8993. HEAP32[i12 >> 2] = i13;
  8994. i26 = HEAP32[i9 >> 2] | 0;
  8995. break;
  8996. }
  8997. } else {
  8998. i26 = i13;
  8999. i25 = HEAP32[i10 >> 2] | 0;
  9000. }
  9001. } while (0);
  9002. HEAP32[i9 >> 2] = i26 + 1;
  9003. HEAP8[i25 + i26 | 0] = 46;
  9004. i9 = HEAP32[i5 >> 2] | 0;
  9005. i27 = HEAP32[i9 >> 2] | 0;
  9006. HEAP32[i9 >> 2] = i27 + -1;
  9007. if ((i27 | 0) == 0) {
  9008. i20 = _luaZ_fill(i9) | 0;
  9009. } else {
  9010. i27 = i9 + 4 | 0;
  9011. i20 = HEAP32[i27 >> 2] | 0;
  9012. HEAP32[i27 >> 2] = i20 + 1;
  9013. i20 = HEAPU8[i20] | 0;
  9014. }
  9015. HEAP32[i2 >> 2] = i20;
  9016. if ((i20 | 0) != 0 ? (_memchr(12304, i20, 2) | 0) != 0 : 0) {
  9017. i6 = HEAP32[i4 >> 2] | 0;
  9018. i3 = i6 + 4 | 0;
  9019. i9 = HEAP32[i3 >> 2] | 0;
  9020. i8 = i6 + 8 | 0;
  9021. i7 = HEAP32[i8 >> 2] | 0;
  9022. do {
  9023. if ((i9 + 1 | 0) >>> 0 > i7 >>> 0) {
  9024. if (i7 >>> 0 > 2147483645) {
  9025. _lexerror(i2, 12368, 0);
  9026. }
  9027. i9 = i7 << 1;
  9028. i10 = HEAP32[i2 + 52 >> 2] | 0;
  9029. if ((i9 | 0) == -2) {
  9030. _luaM_toobig(i10);
  9031. } else {
  9032. i21 = _luaM_realloc_(i10, HEAP32[i6 >> 2] | 0, i7, i9) | 0;
  9033. HEAP32[i6 >> 2] = i21;
  9034. HEAP32[i8 >> 2] = i9;
  9035. i22 = HEAP32[i3 >> 2] | 0;
  9036. break;
  9037. }
  9038. } else {
  9039. i22 = i9;
  9040. i21 = HEAP32[i6 >> 2] | 0;
  9041. }
  9042. } while (0);
  9043. HEAP32[i3 >> 2] = i22 + 1;
  9044. HEAP8[i21 + i22 | 0] = i20;
  9045. i3 = HEAP32[i5 >> 2] | 0;
  9046. i27 = HEAP32[i3 >> 2] | 0;
  9047. HEAP32[i3 >> 2] = i27 + -1;
  9048. if ((i27 | 0) == 0) {
  9049. i3 = _luaZ_fill(i3) | 0;
  9050. } else {
  9051. i27 = i3 + 4 | 0;
  9052. i3 = HEAP32[i27 >> 2] | 0;
  9053. HEAP32[i27 >> 2] = i3 + 1;
  9054. i3 = HEAPU8[i3] | 0;
  9055. }
  9056. HEAP32[i2 >> 2] = i3;
  9057. if ((i3 | 0) == 0) {
  9058. i27 = 279;
  9059. STACKTOP = i1;
  9060. return i27 | 0;
  9061. }
  9062. if ((_memchr(12304, i3, 2) | 0) == 0) {
  9063. i27 = 279;
  9064. STACKTOP = i1;
  9065. return i27 | 0;
  9066. }
  9067. i6 = HEAP32[i4 >> 2] | 0;
  9068. i7 = i6 + 4 | 0;
  9069. i9 = HEAP32[i7 >> 2] | 0;
  9070. i8 = i6 + 8 | 0;
  9071. i4 = HEAP32[i8 >> 2] | 0;
  9072. do {
  9073. if ((i9 + 1 | 0) >>> 0 > i4 >>> 0) {
  9074. if (i4 >>> 0 > 2147483645) {
  9075. _lexerror(i2, 12368, 0);
  9076. }
  9077. i10 = i4 << 1;
  9078. i9 = HEAP32[i2 + 52 >> 2] | 0;
  9079. if ((i10 | 0) == -2) {
  9080. _luaM_toobig(i9);
  9081. } else {
  9082. i18 = _luaM_realloc_(i9, HEAP32[i6 >> 2] | 0, i4, i10) | 0;
  9083. HEAP32[i6 >> 2] = i18;
  9084. HEAP32[i8 >> 2] = i10;
  9085. i19 = HEAP32[i7 >> 2] | 0;
  9086. break;
  9087. }
  9088. } else {
  9089. i19 = i9;
  9090. i18 = HEAP32[i6 >> 2] | 0;
  9091. }
  9092. } while (0);
  9093. HEAP32[i7 >> 2] = i19 + 1;
  9094. HEAP8[i18 + i19 | 0] = i3;
  9095. i3 = HEAP32[i5 >> 2] | 0;
  9096. i27 = HEAP32[i3 >> 2] | 0;
  9097. HEAP32[i3 >> 2] = i27 + -1;
  9098. if ((i27 | 0) == 0) {
  9099. i3 = _luaZ_fill(i3) | 0;
  9100. } else {
  9101. i27 = i3 + 4 | 0;
  9102. i3 = HEAP32[i27 >> 2] | 0;
  9103. HEAP32[i27 >> 2] = i3 + 1;
  9104. i3 = HEAPU8[i3] | 0;
  9105. }
  9106. HEAP32[i2 >> 2] = i3;
  9107. i27 = 280;
  9108. STACKTOP = i1;
  9109. return i27 | 0;
  9110. }
  9111. if ((HEAP8[i20 + 10913 | 0] & 2) == 0) {
  9112. i27 = 46;
  9113. STACKTOP = i1;
  9114. return i27 | 0;
  9115. }
  9116. } else if ((i9 | 0) == 283) {
  9117. if ((HEAP8[i13 + 10913 | 0] & 1) == 0) {
  9118. i3 = HEAP32[i5 >> 2] | 0;
  9119. i27 = HEAP32[i3 >> 2] | 0;
  9120. HEAP32[i3 >> 2] = i27 + -1;
  9121. if ((i27 | 0) == 0) {
  9122. i3 = _luaZ_fill(i3) | 0;
  9123. } else {
  9124. i27 = i3 + 4 | 0;
  9125. i3 = HEAP32[i27 >> 2] | 0;
  9126. HEAP32[i27 >> 2] = i3 + 1;
  9127. i3 = HEAPU8[i3] | 0;
  9128. }
  9129. HEAP32[i2 >> 2] = i3;
  9130. i27 = i13;
  9131. STACKTOP = i1;
  9132. return i27 | 0;
  9133. }
  9134. i10 = i2 + 52 | 0;
  9135. while (1) {
  9136. i11 = HEAP32[i4 >> 2] | 0;
  9137. i9 = i11 + 4 | 0;
  9138. i12 = HEAP32[i9 >> 2] | 0;
  9139. i19 = i11 + 8 | 0;
  9140. i18 = HEAP32[i19 >> 2] | 0;
  9141. if ((i12 + 1 | 0) >>> 0 > i18 >>> 0) {
  9142. if (i18 >>> 0 > 2147483645) {
  9143. i9 = 288;
  9144. break;
  9145. }
  9146. i21 = i18 << 1;
  9147. i12 = HEAP32[i10 >> 2] | 0;
  9148. if ((i21 | 0) == -2) {
  9149. i9 = 290;
  9150. break;
  9151. }
  9152. i27 = _luaM_realloc_(i12, HEAP32[i11 >> 2] | 0, i18, i21) | 0;
  9153. HEAP32[i11 >> 2] = i27;
  9154. HEAP32[i19 >> 2] = i21;
  9155. i12 = HEAP32[i9 >> 2] | 0;
  9156. i11 = i27;
  9157. } else {
  9158. i11 = HEAP32[i11 >> 2] | 0;
  9159. }
  9160. HEAP32[i9 >> 2] = i12 + 1;
  9161. HEAP8[i11 + i12 | 0] = i13;
  9162. i9 = HEAP32[i5 >> 2] | 0;
  9163. i27 = HEAP32[i9 >> 2] | 0;
  9164. HEAP32[i9 >> 2] = i27 + -1;
  9165. if ((i27 | 0) == 0) {
  9166. i13 = _luaZ_fill(i9) | 0;
  9167. } else {
  9168. i27 = i9 + 4 | 0;
  9169. i13 = HEAP32[i27 >> 2] | 0;
  9170. HEAP32[i27 >> 2] = i13 + 1;
  9171. i13 = HEAPU8[i13] | 0;
  9172. }
  9173. HEAP32[i2 >> 2] = i13;
  9174. if ((HEAP8[i13 + 10913 | 0] & 3) == 0) {
  9175. i9 = 296;
  9176. break;
  9177. }
  9178. }
  9179. if ((i9 | 0) == 288) {
  9180. _lexerror(i2, 12368, 0);
  9181. } else if ((i9 | 0) == 290) {
  9182. _luaM_toobig(i12);
  9183. } else if ((i9 | 0) == 296) {
  9184. i6 = HEAP32[i4 >> 2] | 0;
  9185. i4 = HEAP32[i10 >> 2] | 0;
  9186. i6 = _luaS_newlstr(i4, HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0) | 0;
  9187. i7 = i4 + 8 | 0;
  9188. i8 = HEAP32[i7 >> 2] | 0;
  9189. HEAP32[i7 >> 2] = i8 + 16;
  9190. HEAP32[i8 >> 2] = i6;
  9191. i5 = i6 + 4 | 0;
  9192. HEAP32[i8 + 8 >> 2] = HEAPU8[i5] | 64;
  9193. i8 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i7 >> 2] | 0) + -16 | 0) | 0;
  9194. i2 = i8 + 8 | 0;
  9195. if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i8 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
  9196. _luaC_step(i4);
  9197. }
  9198. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
  9199. HEAP32[i3 >> 2] = i6;
  9200. if ((HEAP8[i5] | 0) != 4) {
  9201. i27 = 288;
  9202. STACKTOP = i1;
  9203. return i27 | 0;
  9204. }
  9205. i2 = HEAP8[i6 + 6 | 0] | 0;
  9206. if (i2 << 24 >> 24 == 0) {
  9207. i27 = 288;
  9208. STACKTOP = i1;
  9209. return i27 | 0;
  9210. }
  9211. i27 = i2 & 255 | 256;
  9212. STACKTOP = i1;
  9213. return i27 | 0;
  9214. }
  9215. } else if ((i9 | 0) == 306) {
  9216. STACKTOP = i1;
  9217. return i2 | 0;
  9218. }
  9219. i9 = HEAP32[i4 >> 2] | 0;
  9220. i12 = i9 + 4 | 0;
  9221. i13 = HEAP32[i12 >> 2] | 0;
  9222. i11 = i9 + 8 | 0;
  9223. i10 = HEAP32[i11 >> 2] | 0;
  9224. do {
  9225. if ((i13 + 1 | 0) >>> 0 > i10 >>> 0) {
  9226. if (i10 >>> 0 > 2147483645) {
  9227. _lexerror(i2, 12368, 0);
  9228. }
  9229. i18 = i10 << 1;
  9230. i13 = HEAP32[i2 + 52 >> 2] | 0;
  9231. if ((i18 | 0) == -2) {
  9232. _luaM_toobig(i13);
  9233. } else {
  9234. i16 = _luaM_realloc_(i13, HEAP32[i9 >> 2] | 0, i10, i18) | 0;
  9235. HEAP32[i9 >> 2] = i16;
  9236. HEAP32[i11 >> 2] = i18;
  9237. i17 = HEAP32[i12 >> 2] | 0;
  9238. break;
  9239. }
  9240. } else {
  9241. i17 = i13;
  9242. i16 = HEAP32[i9 >> 2] | 0;
  9243. }
  9244. } while (0);
  9245. HEAP32[i12 >> 2] = i17 + 1;
  9246. HEAP8[i16 + i17 | 0] = i20;
  9247. i9 = HEAP32[i5 >> 2] | 0;
  9248. i27 = HEAP32[i9 >> 2] | 0;
  9249. HEAP32[i9 >> 2] = i27 + -1;
  9250. if ((i27 | 0) == 0) {
  9251. i9 = _luaZ_fill(i9) | 0;
  9252. } else {
  9253. i27 = i9 + 4 | 0;
  9254. i9 = HEAP32[i27 >> 2] | 0;
  9255. HEAP32[i27 >> 2] = i9 + 1;
  9256. i9 = HEAPU8[i9] | 0;
  9257. }
  9258. HEAP32[i2 >> 2] = i9;
  9259. if ((i20 | 0) == 48) {
  9260. if ((i9 | 0) != 0) {
  9261. if ((_memchr(12320, i9, 3) | 0) == 0) {
  9262. i15 = i9;
  9263. i9 = 12312;
  9264. } else {
  9265. i10 = HEAP32[i4 >> 2] | 0;
  9266. i13 = i10 + 4 | 0;
  9267. i16 = HEAP32[i13 >> 2] | 0;
  9268. i11 = i10 + 8 | 0;
  9269. i12 = HEAP32[i11 >> 2] | 0;
  9270. do {
  9271. if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
  9272. if (i12 >>> 0 > 2147483645) {
  9273. _lexerror(i2, 12368, 0);
  9274. }
  9275. i17 = i12 << 1;
  9276. i16 = HEAP32[i2 + 52 >> 2] | 0;
  9277. if ((i17 | 0) == -2) {
  9278. _luaM_toobig(i16);
  9279. } else {
  9280. i15 = _luaM_realloc_(i16, HEAP32[i10 >> 2] | 0, i12, i17) | 0;
  9281. HEAP32[i10 >> 2] = i15;
  9282. HEAP32[i11 >> 2] = i17;
  9283. i14 = HEAP32[i13 >> 2] | 0;
  9284. break;
  9285. }
  9286. } else {
  9287. i14 = i16;
  9288. i15 = HEAP32[i10 >> 2] | 0;
  9289. }
  9290. } while (0);
  9291. HEAP32[i13 >> 2] = i14 + 1;
  9292. HEAP8[i15 + i14 | 0] = i9;
  9293. i9 = HEAP32[i5 >> 2] | 0;
  9294. i27 = HEAP32[i9 >> 2] | 0;
  9295. HEAP32[i9 >> 2] = i27 + -1;
  9296. if ((i27 | 0) == 0) {
  9297. i15 = _luaZ_fill(i9) | 0;
  9298. } else {
  9299. i27 = i9 + 4 | 0;
  9300. i15 = HEAP32[i27 >> 2] | 0;
  9301. HEAP32[i27 >> 2] = i15 + 1;
  9302. i15 = HEAPU8[i15] | 0;
  9303. }
  9304. HEAP32[i2 >> 2] = i15;
  9305. i9 = 12328;
  9306. }
  9307. } else {
  9308. i15 = 0;
  9309. i9 = 12312;
  9310. }
  9311. } else {
  9312. i15 = i9;
  9313. i9 = 12312;
  9314. }
  9315. i10 = i2 + 52 | 0;
  9316. while (1) {
  9317. if ((i15 | 0) != 0) {
  9318. if ((_memchr(i9, i15, 3) | 0) != 0) {
  9319. i12 = HEAP32[i4 >> 2] | 0;
  9320. i11 = i12 + 4 | 0;
  9321. i16 = HEAP32[i11 >> 2] | 0;
  9322. i14 = i12 + 8 | 0;
  9323. i13 = HEAP32[i14 >> 2] | 0;
  9324. if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
  9325. if (i13 >>> 0 > 2147483645) {
  9326. i9 = 227;
  9327. break;
  9328. }
  9329. i17 = i13 << 1;
  9330. i16 = HEAP32[i10 >> 2] | 0;
  9331. if ((i17 | 0) == -2) {
  9332. i9 = 229;
  9333. break;
  9334. }
  9335. i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
  9336. HEAP32[i12 >> 2] = i27;
  9337. HEAP32[i14 >> 2] = i17;
  9338. i16 = HEAP32[i11 >> 2] | 0;
  9339. i12 = i27;
  9340. } else {
  9341. i12 = HEAP32[i12 >> 2] | 0;
  9342. }
  9343. HEAP32[i11 >> 2] = i16 + 1;
  9344. HEAP8[i12 + i16 | 0] = i15;
  9345. i11 = HEAP32[i5 >> 2] | 0;
  9346. i27 = HEAP32[i11 >> 2] | 0;
  9347. HEAP32[i11 >> 2] = i27 + -1;
  9348. if ((i27 | 0) == 0) {
  9349. i15 = _luaZ_fill(i11) | 0;
  9350. } else {
  9351. i27 = i11 + 4 | 0;
  9352. i15 = HEAP32[i27 >> 2] | 0;
  9353. HEAP32[i27 >> 2] = i15 + 1;
  9354. i15 = HEAPU8[i15] | 0;
  9355. }
  9356. HEAP32[i2 >> 2] = i15;
  9357. if ((i15 | 0) != 0) {
  9358. if ((_memchr(12336, i15, 3) | 0) != 0) {
  9359. i12 = HEAP32[i4 >> 2] | 0;
  9360. i11 = i12 + 4 | 0;
  9361. i16 = HEAP32[i11 >> 2] | 0;
  9362. i14 = i12 + 8 | 0;
  9363. i13 = HEAP32[i14 >> 2] | 0;
  9364. if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
  9365. if (i13 >>> 0 > 2147483645) {
  9366. i9 = 239;
  9367. break;
  9368. }
  9369. i17 = i13 << 1;
  9370. i16 = HEAP32[i10 >> 2] | 0;
  9371. if ((i17 | 0) == -2) {
  9372. i9 = 241;
  9373. break;
  9374. }
  9375. i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
  9376. HEAP32[i12 >> 2] = i27;
  9377. HEAP32[i14 >> 2] = i17;
  9378. i16 = HEAP32[i11 >> 2] | 0;
  9379. i12 = i27;
  9380. } else {
  9381. i12 = HEAP32[i12 >> 2] | 0;
  9382. }
  9383. HEAP32[i11 >> 2] = i16 + 1;
  9384. HEAP8[i12 + i16 | 0] = i15;
  9385. i11 = HEAP32[i5 >> 2] | 0;
  9386. i27 = HEAP32[i11 >> 2] | 0;
  9387. HEAP32[i11 >> 2] = i27 + -1;
  9388. if ((i27 | 0) == 0) {
  9389. i15 = _luaZ_fill(i11) | 0;
  9390. } else {
  9391. i27 = i11 + 4 | 0;
  9392. i15 = HEAP32[i27 >> 2] | 0;
  9393. HEAP32[i27 >> 2] = i15 + 1;
  9394. i15 = HEAPU8[i15] | 0;
  9395. }
  9396. HEAP32[i2 >> 2] = i15;
  9397. }
  9398. } else {
  9399. i15 = 0;
  9400. }
  9401. }
  9402. } else {
  9403. i15 = 0;
  9404. }
  9405. i12 = HEAP32[i4 >> 2] | 0;
  9406. i11 = i12 + 4 | 0;
  9407. i17 = HEAP32[i11 >> 2] | 0;
  9408. i14 = i12 + 8 | 0;
  9409. i13 = HEAP32[i14 >> 2] | 0;
  9410. i16 = (i17 + 1 | 0) >>> 0 > i13 >>> 0;
  9411. if (!((HEAP8[i15 + 10913 | 0] & 16) != 0 | (i15 | 0) == 46)) {
  9412. i9 = 259;
  9413. break;
  9414. }
  9415. if (i16) {
  9416. if (i13 >>> 0 > 2147483645) {
  9417. i9 = 251;
  9418. break;
  9419. }
  9420. i17 = i13 << 1;
  9421. i16 = HEAP32[i10 >> 2] | 0;
  9422. if ((i17 | 0) == -2) {
  9423. i9 = 253;
  9424. break;
  9425. }
  9426. i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
  9427. HEAP32[i12 >> 2] = i27;
  9428. HEAP32[i14 >> 2] = i17;
  9429. i17 = HEAP32[i11 >> 2] | 0;
  9430. i12 = i27;
  9431. } else {
  9432. i12 = HEAP32[i12 >> 2] | 0;
  9433. }
  9434. HEAP32[i11 >> 2] = i17 + 1;
  9435. HEAP8[i12 + i17 | 0] = i15;
  9436. i11 = HEAP32[i5 >> 2] | 0;
  9437. i27 = HEAP32[i11 >> 2] | 0;
  9438. HEAP32[i11 >> 2] = i27 + -1;
  9439. if ((i27 | 0) == 0) {
  9440. i15 = _luaZ_fill(i11) | 0;
  9441. } else {
  9442. i27 = i11 + 4 | 0;
  9443. i15 = HEAP32[i27 >> 2] | 0;
  9444. HEAP32[i27 >> 2] = i15 + 1;
  9445. i15 = HEAPU8[i15] | 0;
  9446. }
  9447. HEAP32[i2 >> 2] = i15;
  9448. }
  9449. if ((i9 | 0) == 227) {
  9450. _lexerror(i2, 12368, 0);
  9451. } else if ((i9 | 0) == 229) {
  9452. _luaM_toobig(i16);
  9453. } else if ((i9 | 0) == 239) {
  9454. _lexerror(i2, 12368, 0);
  9455. } else if ((i9 | 0) == 241) {
  9456. _luaM_toobig(i16);
  9457. } else if ((i9 | 0) == 251) {
  9458. _lexerror(i2, 12368, 0);
  9459. } else if ((i9 | 0) == 253) {
  9460. _luaM_toobig(i16);
  9461. } else if ((i9 | 0) == 259) {
  9462. do {
  9463. if (i16) {
  9464. if (i13 >>> 0 > 2147483645) {
  9465. _lexerror(i2, 12368, 0);
  9466. }
  9467. i5 = i13 << 1;
  9468. i9 = HEAP32[i10 >> 2] | 0;
  9469. if ((i5 | 0) == -2) {
  9470. _luaM_toobig(i9);
  9471. } else {
  9472. i7 = _luaM_realloc_(i9, HEAP32[i12 >> 2] | 0, i13, i5) | 0;
  9473. HEAP32[i12 >> 2] = i7;
  9474. HEAP32[i14 >> 2] = i5;
  9475. i8 = HEAP32[i11 >> 2] | 0;
  9476. break;
  9477. }
  9478. } else {
  9479. i8 = i17;
  9480. i7 = HEAP32[i12 >> 2] | 0;
  9481. }
  9482. } while (0);
  9483. HEAP32[i11 >> 2] = i8 + 1;
  9484. HEAP8[i7 + i8 | 0] = 0;
  9485. i5 = i2 + 76 | 0;
  9486. i7 = HEAP8[i5] | 0;
  9487. i10 = HEAP32[i4 >> 2] | 0;
  9488. i8 = HEAP32[i10 >> 2] | 0;
  9489. i10 = HEAP32[i10 + 4 >> 2] | 0;
  9490. if ((i10 | 0) == 0) {
  9491. i7 = -1;
  9492. } else {
  9493. do {
  9494. i10 = i10 + -1 | 0;
  9495. i9 = i8 + i10 | 0;
  9496. if ((HEAP8[i9] | 0) == 46) {
  9497. HEAP8[i9] = i7;
  9498. }
  9499. } while ((i10 | 0) != 0);
  9500. i7 = HEAP32[i4 >> 2] | 0;
  9501. i8 = HEAP32[i7 >> 2] | 0;
  9502. i7 = (HEAP32[i7 + 4 >> 2] | 0) + -1 | 0;
  9503. }
  9504. if ((_luaO_str2d(i8, i7, i3) | 0) != 0) {
  9505. i27 = 287;
  9506. STACKTOP = i1;
  9507. return i27 | 0;
  9508. }
  9509. i9 = HEAP8[i5] | 0;
  9510. i8 = HEAP8[HEAP32[(_localeconv() | 0) >> 2] | 0] | 0;
  9511. HEAP8[i5] = i8;
  9512. i10 = HEAP32[i4 >> 2] | 0;
  9513. i7 = HEAP32[i10 >> 2] | 0;
  9514. i10 = HEAP32[i10 + 4 >> 2] | 0;
  9515. if ((i10 | 0) == 0) {
  9516. i8 = -1;
  9517. } else {
  9518. do {
  9519. i10 = i10 + -1 | 0;
  9520. i11 = i7 + i10 | 0;
  9521. if ((HEAP8[i11] | 0) == i9 << 24 >> 24) {
  9522. HEAP8[i11] = i8;
  9523. }
  9524. } while ((i10 | 0) != 0);
  9525. i8 = HEAP32[i4 >> 2] | 0;
  9526. i7 = HEAP32[i8 >> 2] | 0;
  9527. i8 = (HEAP32[i8 + 4 >> 2] | 0) + -1 | 0;
  9528. }
  9529. if ((_luaO_str2d(i7, i8, i3) | 0) != 0) {
  9530. i27 = 287;
  9531. STACKTOP = i1;
  9532. return i27 | 0;
  9533. }
  9534. i1 = HEAP8[i5] | 0;
  9535. i4 = HEAP32[i4 >> 2] | 0;
  9536. i3 = HEAP32[i4 >> 2] | 0;
  9537. i4 = HEAP32[i4 + 4 >> 2] | 0;
  9538. if ((i4 | 0) == 0) {
  9539. _lexerror(i2, 12344, 287);
  9540. } else {
  9541. i6 = i4;
  9542. }
  9543. do {
  9544. i6 = i6 + -1 | 0;
  9545. i4 = i3 + i6 | 0;
  9546. if ((HEAP8[i4] | 0) == i1 << 24 >> 24) {
  9547. HEAP8[i4] = 46;
  9548. }
  9549. } while ((i6 | 0) != 0);
  9550. _lexerror(i2, 12344, 287);
  9551. }
  9552. return 0;
  9553. }
  9554. function _luaV_execute(i1) {
  9555. i1 = i1 | 0;
  9556. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0;
  9557. i12 = STACKTOP;
  9558. STACKTOP = STACKTOP + 32 | 0;
  9559. i13 = i12 + 24 | 0;
  9560. i10 = i12 + 16 | 0;
  9561. i9 = i12 + 8 | 0;
  9562. i8 = i12;
  9563. i3 = i1 + 16 | 0;
  9564. i4 = i1 + 40 | 0;
  9565. i6 = i1 + 12 | 0;
  9566. i5 = i1 + 8 | 0;
  9567. i11 = i1 + 24 | 0;
  9568. i17 = i1 + 48 | 0;
  9569. i2 = i1 + 20 | 0;
  9570. i16 = i1 + 6 | 0;
  9571. i7 = i1 + 44 | 0;
  9572. i19 = HEAP32[i3 >> 2] | 0;
  9573. L1 : while (1) {
  9574. i22 = HEAP32[HEAP32[i19 >> 2] >> 2] | 0;
  9575. i18 = i22 + 12 | 0;
  9576. i23 = HEAP32[(HEAP32[i18 >> 2] | 0) + 8 >> 2] | 0;
  9577. i20 = i19 + 24 | 0;
  9578. i21 = i19 + 28 | 0;
  9579. i22 = i22 + 16 | 0;
  9580. i24 = i19 + 4 | 0;
  9581. i25 = HEAP32[i20 >> 2] | 0;
  9582. L3 : while (1) {
  9583. i28 = HEAP32[i21 >> 2] | 0;
  9584. HEAP32[i21 >> 2] = i28 + 4;
  9585. i28 = HEAP32[i28 >> 2] | 0;
  9586. i27 = HEAP8[i4] | 0;
  9587. do {
  9588. if (!((i27 & 12) == 0)) {
  9589. i26 = (HEAP32[i17 >> 2] | 0) + -1 | 0;
  9590. HEAP32[i17 >> 2] = i26;
  9591. i26 = (i26 | 0) == 0;
  9592. if (!i26 ? (i27 & 4) == 0 : 0) {
  9593. break;
  9594. }
  9595. i25 = HEAP32[i3 >> 2] | 0;
  9596. i29 = i27 & 255;
  9597. if ((i29 & 8 | 0) == 0 | i26 ^ 1) {
  9598. i27 = 0;
  9599. } else {
  9600. HEAP32[i17 >> 2] = HEAP32[i7 >> 2];
  9601. i27 = 1;
  9602. }
  9603. i26 = i25 + 18 | 0;
  9604. i30 = HEAPU8[i26] | 0;
  9605. if ((i30 & 128 | 0) == 0) {
  9606. if (i27) {
  9607. _luaD_hook(i1, 3, -1);
  9608. }
  9609. do {
  9610. if ((i29 & 4 | 0) == 0) {
  9611. i29 = i25 + 28 | 0;
  9612. } else {
  9613. i34 = HEAP32[(HEAP32[HEAP32[i25 >> 2] >> 2] | 0) + 12 >> 2] | 0;
  9614. i29 = i25 + 28 | 0;
  9615. i32 = HEAP32[i29 >> 2] | 0;
  9616. i35 = HEAP32[i34 + 12 >> 2] | 0;
  9617. i33 = (i32 - i35 >> 2) + -1 | 0;
  9618. i34 = HEAP32[i34 + 20 >> 2] | 0;
  9619. i31 = (i34 | 0) == 0;
  9620. if (i31) {
  9621. i30 = 0;
  9622. } else {
  9623. i30 = HEAP32[i34 + (i33 << 2) >> 2] | 0;
  9624. }
  9625. if ((i33 | 0) != 0 ? (i14 = HEAP32[i2 >> 2] | 0, i32 >>> 0 > i14 >>> 0) : 0) {
  9626. if (i31) {
  9627. i31 = 0;
  9628. } else {
  9629. i31 = HEAP32[i34 + ((i14 - i35 >> 2) + -1 << 2) >> 2] | 0;
  9630. }
  9631. if ((i30 | 0) == (i31 | 0)) {
  9632. break;
  9633. }
  9634. }
  9635. _luaD_hook(i1, 2, i30);
  9636. }
  9637. } while (0);
  9638. HEAP32[i2 >> 2] = HEAP32[i29 >> 2];
  9639. if ((HEAP8[i16] | 0) == 1) {
  9640. i15 = 23;
  9641. break L1;
  9642. }
  9643. } else {
  9644. HEAP8[i26] = i30 & 127;
  9645. }
  9646. i25 = HEAP32[i20 >> 2] | 0;
  9647. }
  9648. } while (0);
  9649. i26 = i28 >>> 6 & 255;
  9650. i27 = i25 + (i26 << 4) | 0;
  9651. switch (i28 & 63 | 0) {
  9652. case 9:
  9653. {
  9654. i28 = HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0;
  9655. i35 = HEAP32[i28 + 8 >> 2] | 0;
  9656. i33 = i27;
  9657. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9658. i36 = i35;
  9659. HEAP32[i36 >> 2] = HEAP32[i33 >> 2];
  9660. HEAP32[i36 + 4 >> 2] = i34;
  9661. i36 = i25 + (i26 << 4) + 8 | 0;
  9662. HEAP32[i35 + 8 >> 2] = HEAP32[i36 >> 2];
  9663. if ((HEAP32[i36 >> 2] & 64 | 0) == 0) {
  9664. continue L3;
  9665. }
  9666. i26 = HEAP32[i27 >> 2] | 0;
  9667. if ((HEAP8[i26 + 5 | 0] & 3) == 0) {
  9668. continue L3;
  9669. }
  9670. if ((HEAP8[i28 + 5 | 0] & 4) == 0) {
  9671. continue L3;
  9672. }
  9673. _luaC_barrier_(i1, i28, i26);
  9674. continue L3;
  9675. }
  9676. case 10:
  9677. {
  9678. i26 = i28 >>> 23;
  9679. if ((i26 & 256 | 0) == 0) {
  9680. i26 = i25 + (i26 << 4) | 0;
  9681. } else {
  9682. i26 = i23 + ((i26 & 255) << 4) | 0;
  9683. }
  9684. i28 = i28 >>> 14;
  9685. if ((i28 & 256 | 0) == 0) {
  9686. i25 = i25 + ((i28 & 511) << 4) | 0;
  9687. } else {
  9688. i25 = i23 + ((i28 & 255) << 4) | 0;
  9689. }
  9690. _luaV_settable(i1, i27, i26, i25);
  9691. i25 = HEAP32[i20 >> 2] | 0;
  9692. continue L3;
  9693. }
  9694. case 17:
  9695. {
  9696. i29 = i28 >>> 23;
  9697. if ((i29 & 256 | 0) == 0) {
  9698. i29 = i25 + (i29 << 4) | 0;
  9699. } else {
  9700. i29 = i23 + ((i29 & 255) << 4) | 0;
  9701. }
  9702. i28 = i28 >>> 14;
  9703. if ((i28 & 256 | 0) == 0) {
  9704. i28 = i25 + ((i28 & 511) << 4) | 0;
  9705. } else {
  9706. i28 = i23 + ((i28 & 255) << 4) | 0;
  9707. }
  9708. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  9709. d37 = +HEAPF64[i29 >> 3];
  9710. d38 = +HEAPF64[i28 >> 3];
  9711. HEAPF64[i27 >> 3] = d37 - d38 * +Math_floor(+(d37 / d38));
  9712. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  9713. continue L3;
  9714. }
  9715. _luaV_arith(i1, i27, i29, i28, 10);
  9716. i25 = HEAP32[i20 >> 2] | 0;
  9717. continue L3;
  9718. }
  9719. case 23:
  9720. {
  9721. if ((i26 | 0) != 0) {
  9722. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i26 + -1 << 4) | 0);
  9723. }
  9724. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
  9725. continue L3;
  9726. }
  9727. case 24:
  9728. {
  9729. i27 = i28 >>> 23;
  9730. if ((i27 & 256 | 0) == 0) {
  9731. i27 = i25 + (i27 << 4) | 0;
  9732. } else {
  9733. i27 = i23 + ((i27 & 255) << 4) | 0;
  9734. }
  9735. i28 = i28 >>> 14;
  9736. if ((i28 & 256 | 0) == 0) {
  9737. i25 = i25 + ((i28 & 511) << 4) | 0;
  9738. } else {
  9739. i25 = i23 + ((i28 & 255) << 4) | 0;
  9740. }
  9741. if ((HEAP32[i27 + 8 >> 2] | 0) == (HEAP32[i25 + 8 >> 2] | 0)) {
  9742. i27 = (_luaV_equalobj_(i1, i27, i25) | 0) != 0;
  9743. } else {
  9744. i27 = 0;
  9745. }
  9746. i25 = HEAP32[i21 >> 2] | 0;
  9747. if ((i27 & 1 | 0) == (i26 | 0)) {
  9748. i26 = HEAP32[i25 >> 2] | 0;
  9749. i27 = i26 >>> 6 & 255;
  9750. if ((i27 | 0) != 0) {
  9751. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
  9752. i25 = HEAP32[i21 >> 2] | 0;
  9753. }
  9754. i25 = i25 + ((i26 >>> 14) + -131070 << 2) | 0;
  9755. } else {
  9756. i25 = i25 + 4 | 0;
  9757. }
  9758. HEAP32[i21 >> 2] = i25;
  9759. i25 = HEAP32[i20 >> 2] | 0;
  9760. continue L3;
  9761. }
  9762. case 18:
  9763. {
  9764. i29 = i28 >>> 23;
  9765. if ((i29 & 256 | 0) == 0) {
  9766. i29 = i25 + (i29 << 4) | 0;
  9767. } else {
  9768. i29 = i23 + ((i29 & 255) << 4) | 0;
  9769. }
  9770. i28 = i28 >>> 14;
  9771. if ((i28 & 256 | 0) == 0) {
  9772. i28 = i25 + ((i28 & 511) << 4) | 0;
  9773. } else {
  9774. i28 = i23 + ((i28 & 255) << 4) | 0;
  9775. }
  9776. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  9777. HEAPF64[i27 >> 3] = +Math_pow(+(+HEAPF64[i29 >> 3]), +(+HEAPF64[i28 >> 3]));
  9778. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  9779. continue L3;
  9780. }
  9781. _luaV_arith(i1, i27, i29, i28, 11);
  9782. i25 = HEAP32[i20 >> 2] | 0;
  9783. continue L3;
  9784. }
  9785. case 1:
  9786. {
  9787. i36 = i28 >>> 14;
  9788. i33 = i23 + (i36 << 4) | 0;
  9789. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9790. i35 = i27;
  9791. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  9792. HEAP32[i35 + 4 >> 2] = i34;
  9793. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
  9794. continue L3;
  9795. }
  9796. case 0:
  9797. {
  9798. i36 = i28 >>> 23;
  9799. i33 = i25 + (i36 << 4) | 0;
  9800. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9801. i35 = i27;
  9802. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  9803. HEAP32[i35 + 4 >> 2] = i34;
  9804. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
  9805. continue L3;
  9806. }
  9807. case 2:
  9808. {
  9809. i36 = HEAP32[i21 >> 2] | 0;
  9810. HEAP32[i21 >> 2] = i36 + 4;
  9811. i36 = (HEAP32[i36 >> 2] | 0) >>> 6;
  9812. i33 = i23 + (i36 << 4) | 0;
  9813. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9814. i35 = i27;
  9815. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  9816. HEAP32[i35 + 4 >> 2] = i34;
  9817. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
  9818. continue L3;
  9819. }
  9820. case 5:
  9821. {
  9822. i36 = HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0;
  9823. i33 = i36;
  9824. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9825. i35 = i27;
  9826. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  9827. HEAP32[i35 + 4 >> 2] = i34;
  9828. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i36 + 8 >> 2];
  9829. continue L3;
  9830. }
  9831. case 3:
  9832. {
  9833. HEAP32[i27 >> 2] = i28 >>> 23;
  9834. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
  9835. if ((i28 & 8372224 | 0) == 0) {
  9836. continue L3;
  9837. }
  9838. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
  9839. continue L3;
  9840. }
  9841. case 7:
  9842. {
  9843. i26 = i28 >>> 14;
  9844. if ((i26 & 256 | 0) == 0) {
  9845. i26 = i25 + ((i26 & 511) << 4) | 0;
  9846. } else {
  9847. i26 = i23 + ((i26 & 255) << 4) | 0;
  9848. }
  9849. _luaV_gettable(i1, i25 + (i28 >>> 23 << 4) | 0, i26, i27);
  9850. i25 = HEAP32[i20 >> 2] | 0;
  9851. continue L3;
  9852. }
  9853. case 12:
  9854. {
  9855. i36 = i28 >>> 23;
  9856. i29 = i25 + (i36 << 4) | 0;
  9857. i26 = i26 + 1 | 0;
  9858. i33 = i29;
  9859. i34 = HEAP32[i33 + 4 >> 2] | 0;
  9860. i35 = i25 + (i26 << 4) | 0;
  9861. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  9862. HEAP32[i35 + 4 >> 2] = i34;
  9863. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
  9864. i26 = i28 >>> 14;
  9865. if ((i26 & 256 | 0) == 0) {
  9866. i25 = i25 + ((i26 & 511) << 4) | 0;
  9867. } else {
  9868. i25 = i23 + ((i26 & 255) << 4) | 0;
  9869. }
  9870. _luaV_gettable(i1, i29, i25, i27);
  9871. i25 = HEAP32[i20 >> 2] | 0;
  9872. continue L3;
  9873. }
  9874. case 13:
  9875. {
  9876. i29 = i28 >>> 23;
  9877. if ((i29 & 256 | 0) == 0) {
  9878. i29 = i25 + (i29 << 4) | 0;
  9879. } else {
  9880. i29 = i23 + ((i29 & 255) << 4) | 0;
  9881. }
  9882. i28 = i28 >>> 14;
  9883. if ((i28 & 256 | 0) == 0) {
  9884. i28 = i25 + ((i28 & 511) << 4) | 0;
  9885. } else {
  9886. i28 = i23 + ((i28 & 255) << 4) | 0;
  9887. }
  9888. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  9889. HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] + +HEAPF64[i28 >> 3];
  9890. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  9891. continue L3;
  9892. }
  9893. _luaV_arith(i1, i27, i29, i28, 6);
  9894. i25 = HEAP32[i20 >> 2] | 0;
  9895. continue L3;
  9896. }
  9897. case 14:
  9898. {
  9899. i29 = i28 >>> 23;
  9900. if ((i29 & 256 | 0) == 0) {
  9901. i29 = i25 + (i29 << 4) | 0;
  9902. } else {
  9903. i29 = i23 + ((i29 & 255) << 4) | 0;
  9904. }
  9905. i28 = i28 >>> 14;
  9906. if ((i28 & 256 | 0) == 0) {
  9907. i28 = i25 + ((i28 & 511) << 4) | 0;
  9908. } else {
  9909. i28 = i23 + ((i28 & 255) << 4) | 0;
  9910. }
  9911. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  9912. HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] - +HEAPF64[i28 >> 3];
  9913. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  9914. continue L3;
  9915. }
  9916. _luaV_arith(i1, i27, i29, i28, 7);
  9917. i25 = HEAP32[i20 >> 2] | 0;
  9918. continue L3;
  9919. }
  9920. case 6:
  9921. {
  9922. i26 = i28 >>> 14;
  9923. if ((i26 & 256 | 0) == 0) {
  9924. i25 = i25 + ((i26 & 511) << 4) | 0;
  9925. } else {
  9926. i25 = i23 + ((i26 & 255) << 4) | 0;
  9927. }
  9928. _luaV_gettable(i1, HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0, i25, i27);
  9929. i25 = HEAP32[i20 >> 2] | 0;
  9930. continue L3;
  9931. }
  9932. case 4:
  9933. {
  9934. i26 = i28 >>> 23;
  9935. while (1) {
  9936. HEAP32[i27 + 8 >> 2] = 0;
  9937. if ((i26 | 0) == 0) {
  9938. continue L3;
  9939. } else {
  9940. i26 = i26 + -1 | 0;
  9941. i27 = i27 + 16 | 0;
  9942. }
  9943. }
  9944. }
  9945. case 8:
  9946. {
  9947. i27 = i28 >>> 23;
  9948. if ((i27 & 256 | 0) == 0) {
  9949. i27 = i25 + (i27 << 4) | 0;
  9950. } else {
  9951. i27 = i23 + ((i27 & 255) << 4) | 0;
  9952. }
  9953. i28 = i28 >>> 14;
  9954. if ((i28 & 256 | 0) == 0) {
  9955. i25 = i25 + ((i28 & 511) << 4) | 0;
  9956. } else {
  9957. i25 = i23 + ((i28 & 255) << 4) | 0;
  9958. }
  9959. _luaV_settable(i1, HEAP32[(HEAP32[i22 + (i26 << 2) >> 2] | 0) + 8 >> 2] | 0, i27, i25);
  9960. i25 = HEAP32[i20 >> 2] | 0;
  9961. continue L3;
  9962. }
  9963. case 11:
  9964. {
  9965. i29 = i28 >>> 23;
  9966. i28 = i28 >>> 14 & 511;
  9967. i30 = _luaH_new(i1) | 0;
  9968. HEAP32[i27 >> 2] = i30;
  9969. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 69;
  9970. if ((i28 | i29 | 0) != 0) {
  9971. i36 = _luaO_fb2int(i29) | 0;
  9972. _luaH_resize(i1, i30, i36, _luaO_fb2int(i28) | 0);
  9973. }
  9974. if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  9975. HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
  9976. _luaC_step(i1);
  9977. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  9978. }
  9979. i25 = HEAP32[i20 >> 2] | 0;
  9980. continue L3;
  9981. }
  9982. case 19:
  9983. {
  9984. i36 = i28 >>> 23;
  9985. i28 = i25 + (i36 << 4) | 0;
  9986. if ((HEAP32[i25 + (i36 << 4) + 8 >> 2] | 0) == 3) {
  9987. HEAPF64[i27 >> 3] = -+HEAPF64[i28 >> 3];
  9988. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  9989. continue L3;
  9990. } else {
  9991. _luaV_arith(i1, i27, i28, i28, 12);
  9992. i25 = HEAP32[i20 >> 2] | 0;
  9993. continue L3;
  9994. }
  9995. }
  9996. case 15:
  9997. {
  9998. i29 = i28 >>> 23;
  9999. if ((i29 & 256 | 0) == 0) {
  10000. i29 = i25 + (i29 << 4) | 0;
  10001. } else {
  10002. i29 = i23 + ((i29 & 255) << 4) | 0;
  10003. }
  10004. i28 = i28 >>> 14;
  10005. if ((i28 & 256 | 0) == 0) {
  10006. i28 = i25 + ((i28 & 511) << 4) | 0;
  10007. } else {
  10008. i28 = i23 + ((i28 & 255) << 4) | 0;
  10009. }
  10010. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  10011. HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] * +HEAPF64[i28 >> 3];
  10012. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  10013. continue L3;
  10014. }
  10015. _luaV_arith(i1, i27, i29, i28, 8);
  10016. i25 = HEAP32[i20 >> 2] | 0;
  10017. continue L3;
  10018. }
  10019. case 16:
  10020. {
  10021. i29 = i28 >>> 23;
  10022. if ((i29 & 256 | 0) == 0) {
  10023. i29 = i25 + (i29 << 4) | 0;
  10024. } else {
  10025. i29 = i23 + ((i29 & 255) << 4) | 0;
  10026. }
  10027. i28 = i28 >>> 14;
  10028. if ((i28 & 256 | 0) == 0) {
  10029. i28 = i25 + ((i28 & 511) << 4) | 0;
  10030. } else {
  10031. i28 = i23 + ((i28 & 255) << 4) | 0;
  10032. }
  10033. if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
  10034. HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] / +HEAPF64[i28 >> 3];
  10035. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  10036. continue L3;
  10037. }
  10038. _luaV_arith(i1, i27, i29, i28, 9);
  10039. i25 = HEAP32[i20 >> 2] | 0;
  10040. continue L3;
  10041. }
  10042. case 20:
  10043. {
  10044. i29 = i28 >>> 23;
  10045. i28 = HEAP32[i25 + (i29 << 4) + 8 >> 2] | 0;
  10046. if ((i28 | 0) != 0) {
  10047. if ((i28 | 0) == 1) {
  10048. i28 = (HEAP32[i25 + (i29 << 4) >> 2] | 0) == 0;
  10049. } else {
  10050. i28 = 0;
  10051. }
  10052. } else {
  10053. i28 = 1;
  10054. }
  10055. HEAP32[i27 >> 2] = i28 & 1;
  10056. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
  10057. continue L3;
  10058. }
  10059. case 21:
  10060. {
  10061. _luaV_objlen(i1, i27, i25 + (i28 >>> 23 << 4) | 0);
  10062. i25 = HEAP32[i20 >> 2] | 0;
  10063. continue L3;
  10064. }
  10065. case 22:
  10066. {
  10067. i27 = i28 >>> 23;
  10068. i28 = i28 >>> 14 & 511;
  10069. HEAP32[i5 >> 2] = i25 + (i28 + 1 << 4);
  10070. _luaV_concat(i1, 1 - i27 + i28 | 0);
  10071. i25 = HEAP32[i20 >> 2] | 0;
  10072. i28 = i25 + (i27 << 4) | 0;
  10073. i34 = i28;
  10074. i35 = HEAP32[i34 + 4 >> 2] | 0;
  10075. i36 = i25 + (i26 << 4) | 0;
  10076. HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
  10077. HEAP32[i36 + 4 >> 2] = i35;
  10078. HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i27 << 4) + 8 >> 2];
  10079. if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  10080. if (!(i26 >>> 0 < i27 >>> 0)) {
  10081. i28 = i25 + (i26 + 1 << 4) | 0;
  10082. }
  10083. HEAP32[i5 >> 2] = i28;
  10084. _luaC_step(i1);
  10085. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10086. }
  10087. i25 = HEAP32[i20 >> 2] | 0;
  10088. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10089. continue L3;
  10090. }
  10091. case 25:
  10092. {
  10093. i27 = i28 >>> 23;
  10094. if ((i27 & 256 | 0) == 0) {
  10095. i27 = i25 + (i27 << 4) | 0;
  10096. } else {
  10097. i27 = i23 + ((i27 & 255) << 4) | 0;
  10098. }
  10099. i28 = i28 >>> 14;
  10100. if ((i28 & 256 | 0) == 0) {
  10101. i25 = i25 + ((i28 & 511) << 4) | 0;
  10102. } else {
  10103. i25 = i23 + ((i28 & 255) << 4) | 0;
  10104. }
  10105. i36 = (_luaV_lessthan(i1, i27, i25) | 0) == (i26 | 0);
  10106. i26 = HEAP32[i21 >> 2] | 0;
  10107. if (i36) {
  10108. i25 = HEAP32[i26 >> 2] | 0;
  10109. i27 = i25 >>> 6 & 255;
  10110. if ((i27 | 0) != 0) {
  10111. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
  10112. i26 = HEAP32[i21 >> 2] | 0;
  10113. }
  10114. i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
  10115. } else {
  10116. i25 = i26 + 4 | 0;
  10117. }
  10118. HEAP32[i21 >> 2] = i25;
  10119. i25 = HEAP32[i20 >> 2] | 0;
  10120. continue L3;
  10121. }
  10122. case 27:
  10123. {
  10124. i29 = HEAP32[i25 + (i26 << 4) + 8 >> 2] | 0;
  10125. i26 = (i29 | 0) == 0;
  10126. if ((i28 & 8372224 | 0) == 0) {
  10127. if (!i26) {
  10128. if (!((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0)) {
  10129. i15 = 192;
  10130. }
  10131. }
  10132. } else {
  10133. if (!i26) {
  10134. if ((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0) {
  10135. i15 = 192;
  10136. }
  10137. } else {
  10138. i15 = 192;
  10139. }
  10140. }
  10141. if ((i15 | 0) == 192) {
  10142. i15 = 0;
  10143. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
  10144. continue L3;
  10145. }
  10146. i27 = HEAP32[i21 >> 2] | 0;
  10147. i26 = HEAP32[i27 >> 2] | 0;
  10148. i28 = i26 >>> 6 & 255;
  10149. if ((i28 | 0) != 0) {
  10150. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
  10151. i27 = HEAP32[i21 >> 2] | 0;
  10152. }
  10153. HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
  10154. continue L3;
  10155. }
  10156. case 26:
  10157. {
  10158. i27 = i28 >>> 23;
  10159. if ((i27 & 256 | 0) == 0) {
  10160. i27 = i25 + (i27 << 4) | 0;
  10161. } else {
  10162. i27 = i23 + ((i27 & 255) << 4) | 0;
  10163. }
  10164. i28 = i28 >>> 14;
  10165. if ((i28 & 256 | 0) == 0) {
  10166. i25 = i25 + ((i28 & 511) << 4) | 0;
  10167. } else {
  10168. i25 = i23 + ((i28 & 255) << 4) | 0;
  10169. }
  10170. i36 = (_luaV_lessequal(i1, i27, i25) | 0) == (i26 | 0);
  10171. i26 = HEAP32[i21 >> 2] | 0;
  10172. if (i36) {
  10173. i25 = HEAP32[i26 >> 2] | 0;
  10174. i27 = i25 >>> 6 & 255;
  10175. if ((i27 | 0) != 0) {
  10176. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
  10177. i26 = HEAP32[i21 >> 2] | 0;
  10178. }
  10179. i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
  10180. } else {
  10181. i25 = i26 + 4 | 0;
  10182. }
  10183. HEAP32[i21 >> 2] = i25;
  10184. i25 = HEAP32[i20 >> 2] | 0;
  10185. continue L3;
  10186. }
  10187. case 28:
  10188. {
  10189. i30 = i28 >>> 23;
  10190. i29 = i25 + (i30 << 4) | 0;
  10191. i30 = HEAP32[i25 + (i30 << 4) + 8 >> 2] | 0;
  10192. i31 = (i30 | 0) == 0;
  10193. if ((i28 & 8372224 | 0) == 0) {
  10194. if (!i31) {
  10195. if (!((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0)) {
  10196. i15 = 203;
  10197. }
  10198. }
  10199. } else {
  10200. if (!i31) {
  10201. if ((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0) {
  10202. i15 = 203;
  10203. }
  10204. } else {
  10205. i15 = 203;
  10206. }
  10207. }
  10208. if ((i15 | 0) == 203) {
  10209. i15 = 0;
  10210. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
  10211. continue L3;
  10212. }
  10213. i36 = i29;
  10214. i28 = HEAP32[i36 + 4 >> 2] | 0;
  10215. HEAP32[i27 >> 2] = HEAP32[i36 >> 2];
  10216. HEAP32[i27 + 4 >> 2] = i28;
  10217. HEAP32[i25 + (i26 << 4) + 8 >> 2] = i30;
  10218. i27 = HEAP32[i21 >> 2] | 0;
  10219. i26 = HEAP32[i27 >> 2] | 0;
  10220. i28 = i26 >>> 6 & 255;
  10221. if ((i28 | 0) != 0) {
  10222. _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
  10223. i27 = HEAP32[i21 >> 2] | 0;
  10224. }
  10225. HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
  10226. continue L3;
  10227. }
  10228. case 30:
  10229. {
  10230. i28 = i28 >>> 23;
  10231. if ((i28 | 0) != 0) {
  10232. HEAP32[i5 >> 2] = i25 + (i26 + i28 << 4);
  10233. }
  10234. if ((_luaD_precall(i1, i27, -1) | 0) == 0) {
  10235. i15 = 218;
  10236. break L3;
  10237. }
  10238. i25 = HEAP32[i20 >> 2] | 0;
  10239. continue L3;
  10240. }
  10241. case 29:
  10242. {
  10243. i29 = i28 >>> 23;
  10244. i28 = i28 >>> 14 & 511;
  10245. if ((i29 | 0) != 0) {
  10246. HEAP32[i5 >> 2] = i25 + (i26 + i29 << 4);
  10247. }
  10248. if ((_luaD_precall(i1, i27, i28 + -1 | 0) | 0) == 0) {
  10249. i15 = 213;
  10250. break L3;
  10251. }
  10252. if ((i28 | 0) != 0) {
  10253. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10254. }
  10255. i25 = HEAP32[i20 >> 2] | 0;
  10256. continue L3;
  10257. }
  10258. case 32:
  10259. {
  10260. d39 = +HEAPF64[i25 + (i26 + 2 << 4) >> 3];
  10261. d38 = d39 + +HEAPF64[i27 >> 3];
  10262. d37 = +HEAPF64[i25 + (i26 + 1 << 4) >> 3];
  10263. if (d39 > 0.0) {
  10264. if (!(d38 <= d37)) {
  10265. continue L3;
  10266. }
  10267. } else {
  10268. if (!(d37 <= d38)) {
  10269. continue L3;
  10270. }
  10271. }
  10272. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
  10273. HEAPF64[i27 >> 3] = d38;
  10274. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
  10275. i36 = i26 + 3 | 0;
  10276. HEAPF64[i25 + (i36 << 4) >> 3] = d38;
  10277. HEAP32[i25 + (i36 << 4) + 8 >> 2] = 3;
  10278. continue L3;
  10279. }
  10280. case 33:
  10281. {
  10282. i32 = i26 + 1 | 0;
  10283. i30 = i25 + (i32 << 4) | 0;
  10284. i31 = i26 + 2 | 0;
  10285. i29 = i25 + (i31 << 4) | 0;
  10286. i26 = i25 + (i26 << 4) + 8 | 0;
  10287. i33 = HEAP32[i26 >> 2] | 0;
  10288. if ((i33 | 0) != 3) {
  10289. if ((i33 & 15 | 0) != 4) {
  10290. i15 = 239;
  10291. break L1;
  10292. }
  10293. i36 = HEAP32[i27 >> 2] | 0;
  10294. if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i8) | 0) == 0) {
  10295. i15 = 239;
  10296. break L1;
  10297. }
  10298. HEAPF64[i27 >> 3] = +HEAPF64[i8 >> 3];
  10299. HEAP32[i26 >> 2] = 3;
  10300. if ((i27 | 0) == 0) {
  10301. i15 = 239;
  10302. break L1;
  10303. }
  10304. }
  10305. i33 = i25 + (i32 << 4) + 8 | 0;
  10306. i32 = HEAP32[i33 >> 2] | 0;
  10307. if ((i32 | 0) != 3) {
  10308. if ((i32 & 15 | 0) != 4) {
  10309. i15 = 244;
  10310. break L1;
  10311. }
  10312. i36 = HEAP32[i30 >> 2] | 0;
  10313. if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i9) | 0) == 0) {
  10314. i15 = 244;
  10315. break L1;
  10316. }
  10317. HEAPF64[i30 >> 3] = +HEAPF64[i9 >> 3];
  10318. HEAP32[i33 >> 2] = 3;
  10319. }
  10320. i31 = i25 + (i31 << 4) + 8 | 0;
  10321. i30 = HEAP32[i31 >> 2] | 0;
  10322. if ((i30 | 0) != 3) {
  10323. if ((i30 & 15 | 0) != 4) {
  10324. i15 = 249;
  10325. break L1;
  10326. }
  10327. i36 = HEAP32[i29 >> 2] | 0;
  10328. if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i10) | 0) == 0) {
  10329. i15 = 249;
  10330. break L1;
  10331. }
  10332. HEAPF64[i29 >> 3] = +HEAPF64[i10 >> 3];
  10333. HEAP32[i31 >> 2] = 3;
  10334. }
  10335. HEAPF64[i27 >> 3] = +HEAPF64[i27 >> 3] - +HEAPF64[i29 >> 3];
  10336. HEAP32[i26 >> 2] = 3;
  10337. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
  10338. continue L3;
  10339. }
  10340. case 31:
  10341. {
  10342. i15 = 223;
  10343. break L3;
  10344. }
  10345. case 34:
  10346. {
  10347. i35 = i26 + 3 | 0;
  10348. i36 = i25 + (i35 << 4) | 0;
  10349. i33 = i26 + 2 | 0;
  10350. i34 = i26 + 5 | 0;
  10351. i32 = i25 + (i33 << 4) | 0;
  10352. i31 = HEAP32[i32 + 4 >> 2] | 0;
  10353. i30 = i25 + (i34 << 4) | 0;
  10354. HEAP32[i30 >> 2] = HEAP32[i32 >> 2];
  10355. HEAP32[i30 + 4 >> 2] = i31;
  10356. HEAP32[i25 + (i34 << 4) + 8 >> 2] = HEAP32[i25 + (i33 << 4) + 8 >> 2];
  10357. i34 = i26 + 1 | 0;
  10358. i33 = i26 + 4 | 0;
  10359. i30 = i25 + (i34 << 4) | 0;
  10360. i31 = HEAP32[i30 + 4 >> 2] | 0;
  10361. i32 = i25 + (i33 << 4) | 0;
  10362. HEAP32[i32 >> 2] = HEAP32[i30 >> 2];
  10363. HEAP32[i32 + 4 >> 2] = i31;
  10364. HEAP32[i25 + (i33 << 4) + 8 >> 2] = HEAP32[i25 + (i34 << 4) + 8 >> 2];
  10365. i33 = i27;
  10366. i34 = HEAP32[i33 + 4 >> 2] | 0;
  10367. i27 = i36;
  10368. HEAP32[i27 >> 2] = HEAP32[i33 >> 2];
  10369. HEAP32[i27 + 4 >> 2] = i34;
  10370. HEAP32[i25 + (i35 << 4) + 8 >> 2] = HEAP32[i25 + (i26 << 4) + 8 >> 2];
  10371. HEAP32[i5 >> 2] = i25 + (i26 + 6 << 4);
  10372. _luaD_call(i1, i36, i28 >>> 14 & 511, 1);
  10373. i36 = HEAP32[i20 >> 2] | 0;
  10374. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10375. i27 = HEAP32[i21 >> 2] | 0;
  10376. HEAP32[i21 >> 2] = i27 + 4;
  10377. i27 = HEAP32[i27 >> 2] | 0;
  10378. i25 = i36;
  10379. i28 = i27;
  10380. i27 = i36 + ((i27 >>> 6 & 255) << 4) | 0;
  10381. break;
  10382. }
  10383. case 35:
  10384. {
  10385. break;
  10386. }
  10387. case 36:
  10388. {
  10389. i29 = i28 >>> 23;
  10390. i28 = i28 >>> 14 & 511;
  10391. if ((i29 | 0) == 0) {
  10392. i29 = ((HEAP32[i5 >> 2] | 0) - i27 >> 4) + -1 | 0;
  10393. }
  10394. if ((i28 | 0) == 0) {
  10395. i28 = HEAP32[i21 >> 2] | 0;
  10396. HEAP32[i21 >> 2] = i28 + 4;
  10397. i28 = (HEAP32[i28 >> 2] | 0) >>> 6;
  10398. }
  10399. i27 = HEAP32[i27 >> 2] | 0;
  10400. i30 = i29 + -50 + (i28 * 50 | 0) | 0;
  10401. if ((i30 | 0) > (HEAP32[i27 + 28 >> 2] | 0)) {
  10402. _luaH_resizearray(i1, i27, i30);
  10403. }
  10404. if ((i29 | 0) > 0) {
  10405. i28 = i27 + 5 | 0;
  10406. while (1) {
  10407. i36 = i29 + i26 | 0;
  10408. i32 = i25 + (i36 << 4) | 0;
  10409. i31 = i30 + -1 | 0;
  10410. _luaH_setint(i1, i27, i30, i32);
  10411. if (((HEAP32[i25 + (i36 << 4) + 8 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i32 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i28] & 4) == 0) : 0) {
  10412. _luaC_barrierback_(i1, i27);
  10413. }
  10414. i29 = i29 + -1 | 0;
  10415. if ((i29 | 0) > 0) {
  10416. i30 = i31;
  10417. } else {
  10418. break;
  10419. }
  10420. }
  10421. }
  10422. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10423. continue L3;
  10424. }
  10425. case 37:
  10426. {
  10427. i29 = HEAP32[(HEAP32[(HEAP32[i18 >> 2] | 0) + 16 >> 2] | 0) + (i28 >>> 14 << 2) >> 2] | 0;
  10428. i28 = i29 + 32 | 0;
  10429. i33 = HEAP32[i28 >> 2] | 0;
  10430. i30 = HEAP32[i29 + 40 >> 2] | 0;
  10431. i31 = HEAP32[i29 + 28 >> 2] | 0;
  10432. L323 : do {
  10433. if ((i33 | 0) == 0) {
  10434. i15 = 276;
  10435. } else {
  10436. if ((i30 | 0) > 0) {
  10437. i34 = i33 + 16 | 0;
  10438. i32 = 0;
  10439. while (1) {
  10440. i35 = HEAPU8[i31 + (i32 << 3) + 5 | 0] | 0;
  10441. if ((HEAP8[i31 + (i32 << 3) + 4 | 0] | 0) == 0) {
  10442. i36 = HEAP32[(HEAP32[i22 + (i35 << 2) >> 2] | 0) + 8 >> 2] | 0;
  10443. } else {
  10444. i36 = i25 + (i35 << 4) | 0;
  10445. }
  10446. i35 = i32 + 1 | 0;
  10447. if ((HEAP32[(HEAP32[i34 + (i32 << 2) >> 2] | 0) + 8 >> 2] | 0) != (i36 | 0)) {
  10448. i15 = 276;
  10449. break L323;
  10450. }
  10451. if ((i35 | 0) < (i30 | 0)) {
  10452. i32 = i35;
  10453. } else {
  10454. break;
  10455. }
  10456. }
  10457. }
  10458. HEAP32[i27 >> 2] = i33;
  10459. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
  10460. }
  10461. } while (0);
  10462. if ((i15 | 0) == 276) {
  10463. i15 = 0;
  10464. i32 = _luaF_newLclosure(i1, i30) | 0;
  10465. HEAP32[i32 + 12 >> 2] = i29;
  10466. HEAP32[i27 >> 2] = i32;
  10467. HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
  10468. if ((i30 | 0) > 0) {
  10469. i27 = i32 + 16 | 0;
  10470. i34 = 0;
  10471. do {
  10472. i33 = HEAPU8[i31 + (i34 << 3) + 5 | 0] | 0;
  10473. if ((HEAP8[i31 + (i34 << 3) + 4 | 0] | 0) == 0) {
  10474. HEAP32[i27 + (i34 << 2) >> 2] = HEAP32[i22 + (i33 << 2) >> 2];
  10475. } else {
  10476. HEAP32[i27 + (i34 << 2) >> 2] = _luaF_findupval(i1, i25 + (i33 << 4) | 0) | 0;
  10477. }
  10478. i34 = i34 + 1 | 0;
  10479. } while ((i34 | 0) != (i30 | 0));
  10480. }
  10481. if (!((HEAP8[i29 + 5 | 0] & 4) == 0)) {
  10482. _luaC_barrierproto_(i1, i29, i32);
  10483. }
  10484. HEAP32[i28 >> 2] = i32;
  10485. }
  10486. if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  10487. HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
  10488. _luaC_step(i1);
  10489. HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
  10490. }
  10491. i25 = HEAP32[i20 >> 2] | 0;
  10492. continue L3;
  10493. }
  10494. case 38:
  10495. {
  10496. i36 = i28 >>> 23;
  10497. i29 = i36 + -1 | 0;
  10498. i30 = (i25 - (HEAP32[i19 >> 2] | 0) >> 4) - (HEAPU8[(HEAP32[i18 >> 2] | 0) + 76 | 0] | 0) | 0;
  10499. i28 = i30 + -1 | 0;
  10500. if ((i36 | 0) == 0) {
  10501. if (((HEAP32[i11 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) >> 4 | 0) <= (i28 | 0)) {
  10502. _luaD_growstack(i1, i28);
  10503. }
  10504. i27 = HEAP32[i20 >> 2] | 0;
  10505. HEAP32[i5 >> 2] = i27 + (i28 + i26 << 4);
  10506. i29 = i28;
  10507. i25 = i27;
  10508. i27 = i27 + (i26 << 4) | 0;
  10509. }
  10510. if ((i29 | 0) <= 0) {
  10511. continue L3;
  10512. }
  10513. i26 = 1 - i30 | 0;
  10514. i30 = 0;
  10515. while (1) {
  10516. if ((i30 | 0) < (i28 | 0)) {
  10517. i36 = i30 + i26 | 0;
  10518. i33 = i25 + (i36 << 4) | 0;
  10519. i34 = HEAP32[i33 + 4 >> 2] | 0;
  10520. i35 = i27 + (i30 << 4) | 0;
  10521. HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
  10522. HEAP32[i35 + 4 >> 2] = i34;
  10523. HEAP32[i27 + (i30 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
  10524. } else {
  10525. HEAP32[i27 + (i30 << 4) + 8 >> 2] = 0;
  10526. }
  10527. i30 = i30 + 1 | 0;
  10528. if ((i30 | 0) == (i29 | 0)) {
  10529. continue L3;
  10530. }
  10531. }
  10532. }
  10533. default:
  10534. {
  10535. continue L3;
  10536. }
  10537. }
  10538. i26 = HEAP32[i27 + 24 >> 2] | 0;
  10539. if ((i26 | 0) == 0) {
  10540. continue;
  10541. }
  10542. i34 = i27 + 16 | 0;
  10543. i35 = HEAP32[i34 + 4 >> 2] | 0;
  10544. i36 = i27;
  10545. HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
  10546. HEAP32[i36 + 4 >> 2] = i35;
  10547. HEAP32[i27 + 8 >> 2] = i26;
  10548. HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
  10549. }
  10550. if ((i15 | 0) == 213) {
  10551. i15 = 0;
  10552. i19 = HEAP32[i3 >> 2] | 0;
  10553. i36 = i19 + 18 | 0;
  10554. HEAP8[i36] = HEAPU8[i36] | 4;
  10555. continue;
  10556. } else if ((i15 | 0) == 218) {
  10557. i15 = 0;
  10558. i22 = HEAP32[i3 >> 2] | 0;
  10559. i19 = HEAP32[i22 + 8 >> 2] | 0;
  10560. i23 = HEAP32[i22 >> 2] | 0;
  10561. i24 = HEAP32[i19 >> 2] | 0;
  10562. i20 = i22 + 24 | 0;
  10563. i21 = (HEAP32[i20 >> 2] | 0) + (HEAPU8[(HEAP32[(HEAP32[i23 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] << 4) | 0;
  10564. if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
  10565. _luaF_close(i1, HEAP32[i19 + 24 >> 2] | 0);
  10566. }
  10567. if (i23 >>> 0 < i21 >>> 0) {
  10568. i25 = i23;
  10569. i18 = 0;
  10570. do {
  10571. i34 = i25;
  10572. i35 = HEAP32[i34 + 4 >> 2] | 0;
  10573. i36 = i24 + (i18 << 4) | 0;
  10574. HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
  10575. HEAP32[i36 + 4 >> 2] = i35;
  10576. HEAP32[i24 + (i18 << 4) + 8 >> 2] = HEAP32[i23 + (i18 << 4) + 8 >> 2];
  10577. i18 = i18 + 1 | 0;
  10578. i25 = i23 + (i18 << 4) | 0;
  10579. } while (i25 >>> 0 < i21 >>> 0);
  10580. }
  10581. i36 = i23;
  10582. HEAP32[i19 + 24 >> 2] = i24 + ((HEAP32[i20 >> 2] | 0) - i36 >> 4 << 4);
  10583. i36 = i24 + ((HEAP32[i5 >> 2] | 0) - i36 >> 4 << 4) | 0;
  10584. HEAP32[i5 >> 2] = i36;
  10585. HEAP32[i19 + 4 >> 2] = i36;
  10586. HEAP32[i19 + 28 >> 2] = HEAP32[i22 + 28 >> 2];
  10587. i36 = i19 + 18 | 0;
  10588. HEAP8[i36] = HEAPU8[i36] | 64;
  10589. HEAP32[i3 >> 2] = i19;
  10590. continue;
  10591. } else if ((i15 | 0) == 223) {
  10592. i15 = 0;
  10593. i20 = i28 >>> 23;
  10594. if ((i20 | 0) != 0) {
  10595. HEAP32[i5 >> 2] = i25 + (i20 + -1 + i26 << 4);
  10596. }
  10597. if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
  10598. _luaF_close(i1, i25);
  10599. }
  10600. i18 = _luaD_poscall(i1, i27) | 0;
  10601. if ((HEAP8[i19 + 18 | 0] & 4) == 0) {
  10602. i15 = 228;
  10603. break;
  10604. }
  10605. i19 = HEAP32[i3 >> 2] | 0;
  10606. if ((i18 | 0) == 0) {
  10607. continue;
  10608. }
  10609. HEAP32[i5 >> 2] = HEAP32[i19 + 4 >> 2];
  10610. continue;
  10611. }
  10612. }
  10613. if ((i15 | 0) == 23) {
  10614. if (!i27) {
  10615. i36 = HEAP32[i29 >> 2] | 0;
  10616. i36 = i36 + -4 | 0;
  10617. HEAP32[i29 >> 2] = i36;
  10618. i36 = HEAP8[i26] | 0;
  10619. i36 = i36 & 255;
  10620. i36 = i36 | 128;
  10621. i36 = i36 & 255;
  10622. HEAP8[i26] = i36;
  10623. i36 = HEAP32[i5 >> 2] | 0;
  10624. i36 = i36 + -16 | 0;
  10625. HEAP32[i25 >> 2] = i36;
  10626. _luaD_throw(i1, 1);
  10627. }
  10628. HEAP32[i17 >> 2] = 1;
  10629. i36 = HEAP32[i29 >> 2] | 0;
  10630. i36 = i36 + -4 | 0;
  10631. HEAP32[i29 >> 2] = i36;
  10632. i36 = HEAP8[i26] | 0;
  10633. i36 = i36 & 255;
  10634. i36 = i36 | 128;
  10635. i36 = i36 & 255;
  10636. HEAP8[i26] = i36;
  10637. i36 = HEAP32[i5 >> 2] | 0;
  10638. i36 = i36 + -16 | 0;
  10639. HEAP32[i25 >> 2] = i36;
  10640. _luaD_throw(i1, 1);
  10641. } else if ((i15 | 0) == 228) {
  10642. STACKTOP = i12;
  10643. return;
  10644. } else if ((i15 | 0) == 239) {
  10645. _luaG_runerror(i1, 9040, i13);
  10646. } else if ((i15 | 0) == 244) {
  10647. _luaG_runerror(i1, 9080, i13);
  10648. } else if ((i15 | 0) == 249) {
  10649. _luaG_runerror(i1, 9112, i13);
  10650. }
  10651. }
  10652. function ___floatscan(i8, i2, i11) {
  10653. i8 = i8 | 0;
  10654. i2 = i2 | 0;
  10655. i11 = i11 | 0;
  10656. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0;
  10657. i1 = STACKTOP;
  10658. STACKTOP = STACKTOP + 512 | 0;
  10659. i5 = i1;
  10660. if ((i2 | 0) == 1) {
  10661. i2 = 53;
  10662. i3 = -1074;
  10663. } else if ((i2 | 0) == 2) {
  10664. i2 = 53;
  10665. i3 = -1074;
  10666. } else if ((i2 | 0) == 0) {
  10667. i2 = 24;
  10668. i3 = -149;
  10669. } else {
  10670. d31 = 0.0;
  10671. STACKTOP = i1;
  10672. return +d31;
  10673. }
  10674. i9 = i8 + 4 | 0;
  10675. i10 = i8 + 100 | 0;
  10676. do {
  10677. i4 = HEAP32[i9 >> 2] | 0;
  10678. if (i4 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10679. HEAP32[i9 >> 2] = i4 + 1;
  10680. i21 = HEAPU8[i4] | 0;
  10681. } else {
  10682. i21 = ___shgetc(i8) | 0;
  10683. }
  10684. } while ((_isspace(i21 | 0) | 0) != 0);
  10685. do {
  10686. if ((i21 | 0) == 43 | (i21 | 0) == 45) {
  10687. i4 = 1 - (((i21 | 0) == 45) << 1) | 0;
  10688. i7 = HEAP32[i9 >> 2] | 0;
  10689. if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10690. HEAP32[i9 >> 2] = i7 + 1;
  10691. i21 = HEAPU8[i7] | 0;
  10692. break;
  10693. } else {
  10694. i21 = ___shgetc(i8) | 0;
  10695. break;
  10696. }
  10697. } else {
  10698. i4 = 1;
  10699. }
  10700. } while (0);
  10701. i7 = 0;
  10702. do {
  10703. if ((i21 | 32 | 0) != (HEAP8[13408 + i7 | 0] | 0)) {
  10704. break;
  10705. }
  10706. do {
  10707. if (i7 >>> 0 < 7) {
  10708. i12 = HEAP32[i9 >> 2] | 0;
  10709. if (i12 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10710. HEAP32[i9 >> 2] = i12 + 1;
  10711. i21 = HEAPU8[i12] | 0;
  10712. break;
  10713. } else {
  10714. i21 = ___shgetc(i8) | 0;
  10715. break;
  10716. }
  10717. }
  10718. } while (0);
  10719. i7 = i7 + 1 | 0;
  10720. } while (i7 >>> 0 < 8);
  10721. do {
  10722. if ((i7 | 0) == 3) {
  10723. i13 = 23;
  10724. } else if ((i7 | 0) != 8) {
  10725. i12 = (i11 | 0) == 0;
  10726. if (!(i7 >>> 0 < 4 | i12)) {
  10727. if ((i7 | 0) == 8) {
  10728. break;
  10729. } else {
  10730. i13 = 23;
  10731. break;
  10732. }
  10733. }
  10734. L34 : do {
  10735. if ((i7 | 0) == 0) {
  10736. i7 = 0;
  10737. do {
  10738. if ((i21 | 32 | 0) != (HEAP8[13424 + i7 | 0] | 0)) {
  10739. break L34;
  10740. }
  10741. do {
  10742. if (i7 >>> 0 < 2) {
  10743. i15 = HEAP32[i9 >> 2] | 0;
  10744. if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10745. HEAP32[i9 >> 2] = i15 + 1;
  10746. i21 = HEAPU8[i15] | 0;
  10747. break;
  10748. } else {
  10749. i21 = ___shgetc(i8) | 0;
  10750. break;
  10751. }
  10752. }
  10753. } while (0);
  10754. i7 = i7 + 1 | 0;
  10755. } while (i7 >>> 0 < 3);
  10756. }
  10757. } while (0);
  10758. if ((i7 | 0) == 0) {
  10759. do {
  10760. if ((i21 | 0) == 48) {
  10761. i7 = HEAP32[i9 >> 2] | 0;
  10762. if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10763. HEAP32[i9 >> 2] = i7 + 1;
  10764. i7 = HEAPU8[i7] | 0;
  10765. } else {
  10766. i7 = ___shgetc(i8) | 0;
  10767. }
  10768. if ((i7 | 32 | 0) != 120) {
  10769. if ((HEAP32[i10 >> 2] | 0) == 0) {
  10770. i21 = 48;
  10771. break;
  10772. }
  10773. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  10774. i21 = 48;
  10775. break;
  10776. }
  10777. i5 = HEAP32[i9 >> 2] | 0;
  10778. if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10779. HEAP32[i9 >> 2] = i5 + 1;
  10780. i21 = HEAPU8[i5] | 0;
  10781. i19 = 0;
  10782. } else {
  10783. i21 = ___shgetc(i8) | 0;
  10784. i19 = 0;
  10785. }
  10786. while (1) {
  10787. if ((i21 | 0) == 46) {
  10788. i13 = 70;
  10789. break;
  10790. } else if ((i21 | 0) != 48) {
  10791. i5 = 0;
  10792. i7 = 0;
  10793. i15 = 0;
  10794. i16 = 0;
  10795. i18 = 0;
  10796. i20 = 0;
  10797. d28 = 1.0;
  10798. i17 = 0;
  10799. d14 = 0.0;
  10800. break;
  10801. }
  10802. i5 = HEAP32[i9 >> 2] | 0;
  10803. if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10804. HEAP32[i9 >> 2] = i5 + 1;
  10805. i21 = HEAPU8[i5] | 0;
  10806. i19 = 1;
  10807. continue;
  10808. } else {
  10809. i21 = ___shgetc(i8) | 0;
  10810. i19 = 1;
  10811. continue;
  10812. }
  10813. }
  10814. L66 : do {
  10815. if ((i13 | 0) == 70) {
  10816. i5 = HEAP32[i9 >> 2] | 0;
  10817. if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10818. HEAP32[i9 >> 2] = i5 + 1;
  10819. i21 = HEAPU8[i5] | 0;
  10820. } else {
  10821. i21 = ___shgetc(i8) | 0;
  10822. }
  10823. if ((i21 | 0) == 48) {
  10824. i15 = -1;
  10825. i16 = -1;
  10826. while (1) {
  10827. i5 = HEAP32[i9 >> 2] | 0;
  10828. if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10829. HEAP32[i9 >> 2] = i5 + 1;
  10830. i21 = HEAPU8[i5] | 0;
  10831. } else {
  10832. i21 = ___shgetc(i8) | 0;
  10833. }
  10834. if ((i21 | 0) != 48) {
  10835. i5 = 0;
  10836. i7 = 0;
  10837. i19 = 1;
  10838. i18 = 1;
  10839. i20 = 0;
  10840. d28 = 1.0;
  10841. i17 = 0;
  10842. d14 = 0.0;
  10843. break L66;
  10844. }
  10845. i29 = _i64Add(i15 | 0, i16 | 0, -1, -1) | 0;
  10846. i15 = i29;
  10847. i16 = tempRet0;
  10848. }
  10849. } else {
  10850. i5 = 0;
  10851. i7 = 0;
  10852. i15 = 0;
  10853. i16 = 0;
  10854. i18 = 1;
  10855. i20 = 0;
  10856. d28 = 1.0;
  10857. i17 = 0;
  10858. d14 = 0.0;
  10859. }
  10860. }
  10861. } while (0);
  10862. L79 : while (1) {
  10863. i24 = i21 + -48 | 0;
  10864. do {
  10865. if (!(i24 >>> 0 < 10)) {
  10866. i23 = i21 | 32;
  10867. i22 = (i21 | 0) == 46;
  10868. if (!((i23 + -97 | 0) >>> 0 < 6 | i22)) {
  10869. break L79;
  10870. }
  10871. if (i22) {
  10872. if ((i18 | 0) == 0) {
  10873. i15 = i7;
  10874. i16 = i5;
  10875. i18 = 1;
  10876. break;
  10877. } else {
  10878. i21 = 46;
  10879. break L79;
  10880. }
  10881. } else {
  10882. i24 = (i21 | 0) > 57 ? i23 + -87 | 0 : i24;
  10883. i13 = 84;
  10884. break;
  10885. }
  10886. } else {
  10887. i13 = 84;
  10888. }
  10889. } while (0);
  10890. if ((i13 | 0) == 84) {
  10891. i13 = 0;
  10892. do {
  10893. if (!((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8)) {
  10894. if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 14) {
  10895. d31 = d28 * .0625;
  10896. d30 = d31;
  10897. d14 = d14 + d31 * +(i24 | 0);
  10898. break;
  10899. }
  10900. if ((i24 | 0) != 0 & (i20 | 0) == 0) {
  10901. i20 = 1;
  10902. d30 = d28;
  10903. d14 = d14 + d28 * .5;
  10904. } else {
  10905. d30 = d28;
  10906. }
  10907. } else {
  10908. d30 = d28;
  10909. i17 = i24 + (i17 << 4) | 0;
  10910. }
  10911. } while (0);
  10912. i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
  10913. i5 = tempRet0;
  10914. i19 = 1;
  10915. d28 = d30;
  10916. }
  10917. i21 = HEAP32[i9 >> 2] | 0;
  10918. if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  10919. HEAP32[i9 >> 2] = i21 + 1;
  10920. i21 = HEAPU8[i21] | 0;
  10921. continue;
  10922. } else {
  10923. i21 = ___shgetc(i8) | 0;
  10924. continue;
  10925. }
  10926. }
  10927. if ((i19 | 0) == 0) {
  10928. i2 = (HEAP32[i10 >> 2] | 0) == 0;
  10929. if (!i2) {
  10930. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  10931. }
  10932. if (!i12) {
  10933. if (!i2 ? (i6 = HEAP32[i9 >> 2] | 0, HEAP32[i9 >> 2] = i6 + -1, (i18 | 0) != 0) : 0) {
  10934. HEAP32[i9 >> 2] = i6 + -2;
  10935. }
  10936. } else {
  10937. ___shlim(i8, 0);
  10938. }
  10939. d31 = +(i4 | 0) * 0.0;
  10940. STACKTOP = i1;
  10941. return +d31;
  10942. }
  10943. i13 = (i18 | 0) == 0;
  10944. i6 = i13 ? i7 : i15;
  10945. i13 = i13 ? i5 : i16;
  10946. if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8) {
  10947. do {
  10948. i17 = i17 << 4;
  10949. i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
  10950. i5 = tempRet0;
  10951. } while ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8);
  10952. }
  10953. do {
  10954. if ((i21 | 32 | 0) == 112) {
  10955. i7 = _scanexp(i8, i11) | 0;
  10956. i5 = tempRet0;
  10957. if ((i7 | 0) == 0 & (i5 | 0) == -2147483648) {
  10958. if (i12) {
  10959. ___shlim(i8, 0);
  10960. d31 = 0.0;
  10961. STACKTOP = i1;
  10962. return +d31;
  10963. } else {
  10964. if ((HEAP32[i10 >> 2] | 0) == 0) {
  10965. i7 = 0;
  10966. i5 = 0;
  10967. break;
  10968. }
  10969. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  10970. i7 = 0;
  10971. i5 = 0;
  10972. break;
  10973. }
  10974. }
  10975. } else {
  10976. if ((HEAP32[i10 >> 2] | 0) == 0) {
  10977. i7 = 0;
  10978. i5 = 0;
  10979. } else {
  10980. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  10981. i7 = 0;
  10982. i5 = 0;
  10983. }
  10984. }
  10985. } while (0);
  10986. i6 = _bitshift64Shl(i6 | 0, i13 | 0, 2) | 0;
  10987. i6 = _i64Add(i6 | 0, tempRet0 | 0, -32, -1) | 0;
  10988. i5 = _i64Add(i6 | 0, tempRet0 | 0, i7 | 0, i5 | 0) | 0;
  10989. i6 = tempRet0;
  10990. if ((i17 | 0) == 0) {
  10991. d31 = +(i4 | 0) * 0.0;
  10992. STACKTOP = i1;
  10993. return +d31;
  10994. }
  10995. if ((i6 | 0) > 0 | (i6 | 0) == 0 & i5 >>> 0 > (0 - i3 | 0) >>> 0) {
  10996. HEAP32[(___errno_location() | 0) >> 2] = 34;
  10997. d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
  10998. STACKTOP = i1;
  10999. return +d31;
  11000. }
  11001. i29 = i3 + -106 | 0;
  11002. i27 = ((i29 | 0) < 0) << 31 >> 31;
  11003. if ((i6 | 0) < (i27 | 0) | (i6 | 0) == (i27 | 0) & i5 >>> 0 < i29 >>> 0) {
  11004. HEAP32[(___errno_location() | 0) >> 2] = 34;
  11005. d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
  11006. STACKTOP = i1;
  11007. return +d31;
  11008. }
  11009. if ((i17 | 0) > -1) {
  11010. do {
  11011. i17 = i17 << 1;
  11012. if (!(d14 >= .5)) {
  11013. d28 = d14;
  11014. } else {
  11015. d28 = d14 + -1.0;
  11016. i17 = i17 | 1;
  11017. }
  11018. d14 = d14 + d28;
  11019. i5 = _i64Add(i5 | 0, i6 | 0, -1, -1) | 0;
  11020. i6 = tempRet0;
  11021. } while ((i17 | 0) > -1);
  11022. }
  11023. i3 = _i64Subtract(32, 0, i3 | 0, ((i3 | 0) < 0) << 31 >> 31 | 0) | 0;
  11024. i3 = _i64Add(i5 | 0, i6 | 0, i3 | 0, tempRet0 | 0) | 0;
  11025. i29 = tempRet0;
  11026. if (0 > (i29 | 0) | 0 == (i29 | 0) & i2 >>> 0 > i3 >>> 0) {
  11027. i2 = (i3 | 0) < 0 ? 0 : i3;
  11028. }
  11029. if ((i2 | 0) < 53) {
  11030. d28 = +(i4 | 0);
  11031. d30 = +_copysign(+(+_scalbn(1.0, 84 - i2 | 0)), +d28);
  11032. if ((i2 | 0) < 32 & d14 != 0.0) {
  11033. i29 = i17 & 1;
  11034. i17 = (i29 ^ 1) + i17 | 0;
  11035. d14 = (i29 | 0) == 0 ? 0.0 : d14;
  11036. }
  11037. } else {
  11038. d28 = +(i4 | 0);
  11039. d30 = 0.0;
  11040. }
  11041. d14 = d28 * d14 + (d30 + d28 * +(i17 >>> 0)) - d30;
  11042. if (!(d14 != 0.0)) {
  11043. HEAP32[(___errno_location() | 0) >> 2] = 34;
  11044. }
  11045. d31 = +_scalbnl(d14, i5);
  11046. STACKTOP = i1;
  11047. return +d31;
  11048. }
  11049. } while (0);
  11050. i7 = i3 + i2 | 0;
  11051. i6 = 0 - i7 | 0;
  11052. i20 = 0;
  11053. while (1) {
  11054. if ((i21 | 0) == 46) {
  11055. i13 = 139;
  11056. break;
  11057. } else if ((i21 | 0) != 48) {
  11058. i25 = 0;
  11059. i22 = 0;
  11060. i19 = 0;
  11061. break;
  11062. }
  11063. i15 = HEAP32[i9 >> 2] | 0;
  11064. if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11065. HEAP32[i9 >> 2] = i15 + 1;
  11066. i21 = HEAPU8[i15] | 0;
  11067. i20 = 1;
  11068. continue;
  11069. } else {
  11070. i21 = ___shgetc(i8) | 0;
  11071. i20 = 1;
  11072. continue;
  11073. }
  11074. }
  11075. L168 : do {
  11076. if ((i13 | 0) == 139) {
  11077. i15 = HEAP32[i9 >> 2] | 0;
  11078. if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11079. HEAP32[i9 >> 2] = i15 + 1;
  11080. i21 = HEAPU8[i15] | 0;
  11081. } else {
  11082. i21 = ___shgetc(i8) | 0;
  11083. }
  11084. if ((i21 | 0) == 48) {
  11085. i25 = -1;
  11086. i22 = -1;
  11087. while (1) {
  11088. i15 = HEAP32[i9 >> 2] | 0;
  11089. if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11090. HEAP32[i9 >> 2] = i15 + 1;
  11091. i21 = HEAPU8[i15] | 0;
  11092. } else {
  11093. i21 = ___shgetc(i8) | 0;
  11094. }
  11095. if ((i21 | 0) != 48) {
  11096. i20 = 1;
  11097. i19 = 1;
  11098. break L168;
  11099. }
  11100. i29 = _i64Add(i25 | 0, i22 | 0, -1, -1) | 0;
  11101. i25 = i29;
  11102. i22 = tempRet0;
  11103. }
  11104. } else {
  11105. i25 = 0;
  11106. i22 = 0;
  11107. i19 = 1;
  11108. }
  11109. }
  11110. } while (0);
  11111. HEAP32[i5 >> 2] = 0;
  11112. i26 = i21 + -48 | 0;
  11113. i27 = (i21 | 0) == 46;
  11114. L182 : do {
  11115. if (i26 >>> 0 < 10 | i27) {
  11116. i15 = i5 + 496 | 0;
  11117. i24 = 0;
  11118. i23 = 0;
  11119. i18 = 0;
  11120. i17 = 0;
  11121. i16 = 0;
  11122. while (1) {
  11123. do {
  11124. if (i27) {
  11125. if ((i19 | 0) == 0) {
  11126. i25 = i24;
  11127. i22 = i23;
  11128. i19 = 1;
  11129. } else {
  11130. break L182;
  11131. }
  11132. } else {
  11133. i27 = _i64Add(i24 | 0, i23 | 0, 1, 0) | 0;
  11134. i23 = tempRet0;
  11135. i29 = (i21 | 0) != 48;
  11136. if ((i17 | 0) >= 125) {
  11137. if (!i29) {
  11138. i24 = i27;
  11139. break;
  11140. }
  11141. HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
  11142. i24 = i27;
  11143. break;
  11144. }
  11145. i20 = i5 + (i17 << 2) | 0;
  11146. if ((i18 | 0) != 0) {
  11147. i26 = i21 + -48 + ((HEAP32[i20 >> 2] | 0) * 10 | 0) | 0;
  11148. }
  11149. HEAP32[i20 >> 2] = i26;
  11150. i18 = i18 + 1 | 0;
  11151. i21 = (i18 | 0) == 9;
  11152. i24 = i27;
  11153. i20 = 1;
  11154. i18 = i21 ? 0 : i18;
  11155. i17 = (i21 & 1) + i17 | 0;
  11156. i16 = i29 ? i27 : i16;
  11157. }
  11158. } while (0);
  11159. i21 = HEAP32[i9 >> 2] | 0;
  11160. if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11161. HEAP32[i9 >> 2] = i21 + 1;
  11162. i21 = HEAPU8[i21] | 0;
  11163. } else {
  11164. i21 = ___shgetc(i8) | 0;
  11165. }
  11166. i26 = i21 + -48 | 0;
  11167. i27 = (i21 | 0) == 46;
  11168. if (!(i26 >>> 0 < 10 | i27)) {
  11169. i13 = 162;
  11170. break;
  11171. }
  11172. }
  11173. } else {
  11174. i24 = 0;
  11175. i23 = 0;
  11176. i18 = 0;
  11177. i17 = 0;
  11178. i16 = 0;
  11179. i13 = 162;
  11180. }
  11181. } while (0);
  11182. if ((i13 | 0) == 162) {
  11183. i13 = (i19 | 0) == 0;
  11184. i25 = i13 ? i24 : i25;
  11185. i22 = i13 ? i23 : i22;
  11186. }
  11187. i13 = (i20 | 0) != 0;
  11188. if (i13 ? (i21 | 32 | 0) == 101 : 0) {
  11189. i15 = _scanexp(i8, i11) | 0;
  11190. i11 = tempRet0;
  11191. do {
  11192. if ((i15 | 0) == 0 & (i11 | 0) == -2147483648) {
  11193. if (i12) {
  11194. ___shlim(i8, 0);
  11195. d31 = 0.0;
  11196. STACKTOP = i1;
  11197. return +d31;
  11198. } else {
  11199. if ((HEAP32[i10 >> 2] | 0) == 0) {
  11200. i15 = 0;
  11201. i11 = 0;
  11202. break;
  11203. }
  11204. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11205. i15 = 0;
  11206. i11 = 0;
  11207. break;
  11208. }
  11209. }
  11210. } while (0);
  11211. i9 = _i64Add(i15 | 0, i11 | 0, i25 | 0, i22 | 0) | 0;
  11212. i22 = tempRet0;
  11213. } else {
  11214. if ((i21 | 0) > -1 ? (HEAP32[i10 >> 2] | 0) != 0 : 0) {
  11215. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11216. i9 = i25;
  11217. } else {
  11218. i9 = i25;
  11219. }
  11220. }
  11221. if (!i13) {
  11222. HEAP32[(___errno_location() | 0) >> 2] = 22;
  11223. ___shlim(i8, 0);
  11224. d31 = 0.0;
  11225. STACKTOP = i1;
  11226. return +d31;
  11227. }
  11228. i8 = HEAP32[i5 >> 2] | 0;
  11229. if ((i8 | 0) == 0) {
  11230. d31 = +(i4 | 0) * 0.0;
  11231. STACKTOP = i1;
  11232. return +d31;
  11233. }
  11234. do {
  11235. if ((i9 | 0) == (i24 | 0) & (i22 | 0) == (i23 | 0) & ((i23 | 0) < 0 | (i23 | 0) == 0 & i24 >>> 0 < 10)) {
  11236. if (!(i2 >>> 0 > 30) ? (i8 >>> i2 | 0) != 0 : 0) {
  11237. break;
  11238. }
  11239. d31 = +(i4 | 0) * +(i8 >>> 0);
  11240. STACKTOP = i1;
  11241. return +d31;
  11242. }
  11243. } while (0);
  11244. i29 = (i3 | 0) / -2 | 0;
  11245. i27 = ((i29 | 0) < 0) << 31 >> 31;
  11246. if ((i22 | 0) > (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 > i29 >>> 0) {
  11247. HEAP32[(___errno_location() | 0) >> 2] = 34;
  11248. d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
  11249. STACKTOP = i1;
  11250. return +d31;
  11251. }
  11252. i29 = i3 + -106 | 0;
  11253. i27 = ((i29 | 0) < 0) << 31 >> 31;
  11254. if ((i22 | 0) < (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 < i29 >>> 0) {
  11255. HEAP32[(___errno_location() | 0) >> 2] = 34;
  11256. d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
  11257. STACKTOP = i1;
  11258. return +d31;
  11259. }
  11260. if ((i18 | 0) != 0) {
  11261. if ((i18 | 0) < 9) {
  11262. i8 = i5 + (i17 << 2) | 0;
  11263. i10 = HEAP32[i8 >> 2] | 0;
  11264. do {
  11265. i10 = i10 * 10 | 0;
  11266. i18 = i18 + 1 | 0;
  11267. } while ((i18 | 0) != 9);
  11268. HEAP32[i8 >> 2] = i10;
  11269. }
  11270. i17 = i17 + 1 | 0;
  11271. }
  11272. do {
  11273. if ((i16 | 0) < 9 ? (i16 | 0) <= (i9 | 0) & (i9 | 0) < 18 : 0) {
  11274. if ((i9 | 0) == 9) {
  11275. d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0);
  11276. STACKTOP = i1;
  11277. return +d31;
  11278. }
  11279. if ((i9 | 0) < 9) {
  11280. d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0) / +(HEAP32[13440 + (8 - i9 << 2) >> 2] | 0);
  11281. STACKTOP = i1;
  11282. return +d31;
  11283. }
  11284. i10 = i2 + 27 + (Math_imul(i9, -3) | 0) | 0;
  11285. i8 = HEAP32[i5 >> 2] | 0;
  11286. if ((i10 | 0) <= 30 ? (i8 >>> i10 | 0) != 0 : 0) {
  11287. break;
  11288. }
  11289. d31 = +(i4 | 0) * +(i8 >>> 0) * +(HEAP32[13440 + (i9 + -10 << 2) >> 2] | 0);
  11290. STACKTOP = i1;
  11291. return +d31;
  11292. }
  11293. } while (0);
  11294. i8 = (i9 | 0) % 9 | 0;
  11295. if ((i8 | 0) == 0) {
  11296. i8 = 0;
  11297. i10 = 0;
  11298. } else {
  11299. i11 = (i9 | 0) > -1 ? i8 : i8 + 9 | 0;
  11300. i12 = HEAP32[13440 + (8 - i11 << 2) >> 2] | 0;
  11301. if ((i17 | 0) != 0) {
  11302. i10 = 1e9 / (i12 | 0) | 0;
  11303. i8 = 0;
  11304. i16 = 0;
  11305. i15 = 0;
  11306. while (1) {
  11307. i27 = i5 + (i15 << 2) | 0;
  11308. i13 = HEAP32[i27 >> 2] | 0;
  11309. i29 = ((i13 >>> 0) / (i12 >>> 0) | 0) + i16 | 0;
  11310. HEAP32[i27 >> 2] = i29;
  11311. i16 = Math_imul((i13 >>> 0) % (i12 >>> 0) | 0, i10) | 0;
  11312. i13 = i15 + 1 | 0;
  11313. if ((i15 | 0) == (i8 | 0) & (i29 | 0) == 0) {
  11314. i8 = i13 & 127;
  11315. i9 = i9 + -9 | 0;
  11316. }
  11317. if ((i13 | 0) == (i17 | 0)) {
  11318. break;
  11319. } else {
  11320. i15 = i13;
  11321. }
  11322. }
  11323. if ((i16 | 0) != 0) {
  11324. HEAP32[i5 + (i17 << 2) >> 2] = i16;
  11325. i17 = i17 + 1 | 0;
  11326. }
  11327. } else {
  11328. i8 = 0;
  11329. i17 = 0;
  11330. }
  11331. i10 = 0;
  11332. i9 = 9 - i11 + i9 | 0;
  11333. }
  11334. L280 : while (1) {
  11335. i11 = i5 + (i8 << 2) | 0;
  11336. if ((i9 | 0) < 18) {
  11337. do {
  11338. i13 = 0;
  11339. i11 = i17 + 127 | 0;
  11340. while (1) {
  11341. i11 = i11 & 127;
  11342. i12 = i5 + (i11 << 2) | 0;
  11343. i15 = _bitshift64Shl(HEAP32[i12 >> 2] | 0, 0, 29) | 0;
  11344. i15 = _i64Add(i15 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
  11345. i13 = tempRet0;
  11346. if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i15 >>> 0 > 1e9) {
  11347. i29 = ___udivdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
  11348. i15 = ___uremdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
  11349. i13 = i29;
  11350. } else {
  11351. i13 = 0;
  11352. }
  11353. HEAP32[i12 >> 2] = i15;
  11354. i12 = (i11 | 0) == (i8 | 0);
  11355. if (!((i11 | 0) != (i17 + 127 & 127 | 0) | i12)) {
  11356. i17 = (i15 | 0) == 0 ? i11 : i17;
  11357. }
  11358. if (i12) {
  11359. break;
  11360. } else {
  11361. i11 = i11 + -1 | 0;
  11362. }
  11363. }
  11364. i10 = i10 + -29 | 0;
  11365. } while ((i13 | 0) == 0);
  11366. } else {
  11367. if ((i9 | 0) != 18) {
  11368. break;
  11369. }
  11370. do {
  11371. if (!((HEAP32[i11 >> 2] | 0) >>> 0 < 9007199)) {
  11372. i9 = 18;
  11373. break L280;
  11374. }
  11375. i13 = 0;
  11376. i12 = i17 + 127 | 0;
  11377. while (1) {
  11378. i12 = i12 & 127;
  11379. i15 = i5 + (i12 << 2) | 0;
  11380. i16 = _bitshift64Shl(HEAP32[i15 >> 2] | 0, 0, 29) | 0;
  11381. i16 = _i64Add(i16 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
  11382. i13 = tempRet0;
  11383. if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i16 >>> 0 > 1e9) {
  11384. i29 = ___udivdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
  11385. i16 = ___uremdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
  11386. i13 = i29;
  11387. } else {
  11388. i13 = 0;
  11389. }
  11390. HEAP32[i15 >> 2] = i16;
  11391. i15 = (i12 | 0) == (i8 | 0);
  11392. if (!((i12 | 0) != (i17 + 127 & 127 | 0) | i15)) {
  11393. i17 = (i16 | 0) == 0 ? i12 : i17;
  11394. }
  11395. if (i15) {
  11396. break;
  11397. } else {
  11398. i12 = i12 + -1 | 0;
  11399. }
  11400. }
  11401. i10 = i10 + -29 | 0;
  11402. } while ((i13 | 0) == 0);
  11403. }
  11404. i8 = i8 + 127 & 127;
  11405. if ((i8 | 0) == (i17 | 0)) {
  11406. i29 = i17 + 127 & 127;
  11407. i17 = i5 + ((i17 + 126 & 127) << 2) | 0;
  11408. HEAP32[i17 >> 2] = HEAP32[i17 >> 2] | HEAP32[i5 + (i29 << 2) >> 2];
  11409. i17 = i29;
  11410. }
  11411. HEAP32[i5 + (i8 << 2) >> 2] = i13;
  11412. i9 = i9 + 9 | 0;
  11413. }
  11414. L311 : while (1) {
  11415. i11 = i17 + 1 & 127;
  11416. i12 = i5 + ((i17 + 127 & 127) << 2) | 0;
  11417. while (1) {
  11418. i15 = (i9 | 0) == 18;
  11419. i13 = (i9 | 0) > 27 ? 9 : 1;
  11420. while (1) {
  11421. i16 = 0;
  11422. while (1) {
  11423. i18 = i16 + i8 & 127;
  11424. if ((i18 | 0) == (i17 | 0)) {
  11425. i16 = 2;
  11426. break;
  11427. }
  11428. i18 = HEAP32[i5 + (i18 << 2) >> 2] | 0;
  11429. i19 = HEAP32[13432 + (i16 << 2) >> 2] | 0;
  11430. if (i18 >>> 0 < i19 >>> 0) {
  11431. i16 = 2;
  11432. break;
  11433. }
  11434. i20 = i16 + 1 | 0;
  11435. if (i18 >>> 0 > i19 >>> 0) {
  11436. break;
  11437. }
  11438. if ((i20 | 0) < 2) {
  11439. i16 = i20;
  11440. } else {
  11441. i16 = i20;
  11442. break;
  11443. }
  11444. }
  11445. if ((i16 | 0) == 2 & i15) {
  11446. break L311;
  11447. }
  11448. i10 = i13 + i10 | 0;
  11449. if ((i8 | 0) == (i17 | 0)) {
  11450. i8 = i17;
  11451. } else {
  11452. break;
  11453. }
  11454. }
  11455. i15 = (1 << i13) + -1 | 0;
  11456. i19 = 1e9 >>> i13;
  11457. i18 = i8;
  11458. i16 = 0;
  11459. do {
  11460. i27 = i5 + (i8 << 2) | 0;
  11461. i29 = HEAP32[i27 >> 2] | 0;
  11462. i20 = (i29 >>> i13) + i16 | 0;
  11463. HEAP32[i27 >> 2] = i20;
  11464. i16 = Math_imul(i29 & i15, i19) | 0;
  11465. i20 = (i8 | 0) == (i18 | 0) & (i20 | 0) == 0;
  11466. i8 = i8 + 1 & 127;
  11467. i9 = i20 ? i9 + -9 | 0 : i9;
  11468. i18 = i20 ? i8 : i18;
  11469. } while ((i8 | 0) != (i17 | 0));
  11470. if ((i16 | 0) == 0) {
  11471. i8 = i18;
  11472. continue;
  11473. }
  11474. if ((i11 | 0) != (i18 | 0)) {
  11475. break;
  11476. }
  11477. HEAP32[i12 >> 2] = HEAP32[i12 >> 2] | 1;
  11478. i8 = i18;
  11479. }
  11480. HEAP32[i5 + (i17 << 2) >> 2] = i16;
  11481. i8 = i18;
  11482. i17 = i11;
  11483. }
  11484. i9 = i8 & 127;
  11485. if ((i9 | 0) == (i17 | 0)) {
  11486. HEAP32[i5 + (i11 + -1 << 2) >> 2] = 0;
  11487. i17 = i11;
  11488. }
  11489. d28 = +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0);
  11490. i9 = i8 + 1 & 127;
  11491. if ((i9 | 0) == (i17 | 0)) {
  11492. i17 = i17 + 1 & 127;
  11493. HEAP32[i5 + (i17 + -1 << 2) >> 2] = 0;
  11494. }
  11495. d14 = +(i4 | 0);
  11496. d30 = d14 * (d28 * 1.0e9 + +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0));
  11497. i4 = i10 + 53 | 0;
  11498. i3 = i4 - i3 | 0;
  11499. if ((i3 | 0) < (i2 | 0)) {
  11500. i2 = (i3 | 0) < 0 ? 0 : i3;
  11501. i9 = 1;
  11502. } else {
  11503. i9 = 0;
  11504. }
  11505. if ((i2 | 0) < 53) {
  11506. d33 = +_copysign(+(+_scalbn(1.0, 105 - i2 | 0)), +d30);
  11507. d32 = +_fmod(+d30, +(+_scalbn(1.0, 53 - i2 | 0)));
  11508. d28 = d33;
  11509. d31 = d32;
  11510. d30 = d33 + (d30 - d32);
  11511. } else {
  11512. d28 = 0.0;
  11513. d31 = 0.0;
  11514. }
  11515. i11 = i8 + 2 & 127;
  11516. if ((i11 | 0) != (i17 | 0)) {
  11517. i5 = HEAP32[i5 + (i11 << 2) >> 2] | 0;
  11518. do {
  11519. if (!(i5 >>> 0 < 5e8)) {
  11520. if (i5 >>> 0 > 5e8) {
  11521. d31 = d14 * .75 + d31;
  11522. break;
  11523. }
  11524. if ((i8 + 3 & 127 | 0) == (i17 | 0)) {
  11525. d31 = d14 * .5 + d31;
  11526. break;
  11527. } else {
  11528. d31 = d14 * .75 + d31;
  11529. break;
  11530. }
  11531. } else {
  11532. if ((i5 | 0) == 0 ? (i8 + 3 & 127 | 0) == (i17 | 0) : 0) {
  11533. break;
  11534. }
  11535. d31 = d14 * .25 + d31;
  11536. }
  11537. } while (0);
  11538. if ((53 - i2 | 0) > 1 ? !(+_fmod(+d31, 1.0) != 0.0) : 0) {
  11539. d31 = d31 + 1.0;
  11540. }
  11541. }
  11542. d14 = d30 + d31 - d28;
  11543. do {
  11544. if ((i4 & 2147483647 | 0) > (-2 - i7 | 0)) {
  11545. if (+Math_abs(+d14) >= 9007199254740992.0) {
  11546. i9 = (i9 | 0) != 0 & (i2 | 0) == (i3 | 0) ? 0 : i9;
  11547. i10 = i10 + 1 | 0;
  11548. d14 = d14 * .5;
  11549. }
  11550. if ((i10 + 50 | 0) <= (i6 | 0) ? !((i9 | 0) != 0 & d31 != 0.0) : 0) {
  11551. break;
  11552. }
  11553. HEAP32[(___errno_location() | 0) >> 2] = 34;
  11554. }
  11555. } while (0);
  11556. d33 = +_scalbnl(d14, i10);
  11557. STACKTOP = i1;
  11558. return +d33;
  11559. } else if ((i7 | 0) == 3) {
  11560. i2 = HEAP32[i9 >> 2] | 0;
  11561. if (i2 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11562. HEAP32[i9 >> 2] = i2 + 1;
  11563. i2 = HEAPU8[i2] | 0;
  11564. } else {
  11565. i2 = ___shgetc(i8) | 0;
  11566. }
  11567. if ((i2 | 0) == 40) {
  11568. i2 = 1;
  11569. } else {
  11570. if ((HEAP32[i10 >> 2] | 0) == 0) {
  11571. d33 = nan;
  11572. STACKTOP = i1;
  11573. return +d33;
  11574. }
  11575. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11576. d33 = nan;
  11577. STACKTOP = i1;
  11578. return +d33;
  11579. }
  11580. while (1) {
  11581. i3 = HEAP32[i9 >> 2] | 0;
  11582. if (i3 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
  11583. HEAP32[i9 >> 2] = i3 + 1;
  11584. i3 = HEAPU8[i3] | 0;
  11585. } else {
  11586. i3 = ___shgetc(i8) | 0;
  11587. }
  11588. if (!((i3 + -48 | 0) >>> 0 < 10 | (i3 + -65 | 0) >>> 0 < 26) ? !((i3 + -97 | 0) >>> 0 < 26 | (i3 | 0) == 95) : 0) {
  11589. break;
  11590. }
  11591. i2 = i2 + 1 | 0;
  11592. }
  11593. if ((i3 | 0) == 41) {
  11594. d33 = nan;
  11595. STACKTOP = i1;
  11596. return +d33;
  11597. }
  11598. i3 = (HEAP32[i10 >> 2] | 0) == 0;
  11599. if (!i3) {
  11600. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11601. }
  11602. if (i12) {
  11603. HEAP32[(___errno_location() | 0) >> 2] = 22;
  11604. ___shlim(i8, 0);
  11605. d33 = 0.0;
  11606. STACKTOP = i1;
  11607. return +d33;
  11608. }
  11609. if ((i2 | 0) == 0 | i3) {
  11610. d33 = nan;
  11611. STACKTOP = i1;
  11612. return +d33;
  11613. }
  11614. while (1) {
  11615. i2 = i2 + -1 | 0;
  11616. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11617. if ((i2 | 0) == 0) {
  11618. d14 = nan;
  11619. break;
  11620. }
  11621. }
  11622. STACKTOP = i1;
  11623. return +d14;
  11624. } else {
  11625. if ((HEAP32[i10 >> 2] | 0) != 0) {
  11626. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11627. }
  11628. HEAP32[(___errno_location() | 0) >> 2] = 22;
  11629. ___shlim(i8, 0);
  11630. d33 = 0.0;
  11631. STACKTOP = i1;
  11632. return +d33;
  11633. }
  11634. }
  11635. } while (0);
  11636. if ((i13 | 0) == 23) {
  11637. i2 = (HEAP32[i10 >> 2] | 0) == 0;
  11638. if (!i2) {
  11639. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11640. }
  11641. if (!(i7 >>> 0 < 4 | (i11 | 0) == 0 | i2)) {
  11642. do {
  11643. HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
  11644. i7 = i7 + -1 | 0;
  11645. } while (i7 >>> 0 > 3);
  11646. }
  11647. }
  11648. d33 = +(i4 | 0) * inf;
  11649. STACKTOP = i1;
  11650. return +d33;
  11651. }
  11652. function _statement(i4) {
  11653. i4 = i4 | 0;
  11654. var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
  11655. i2 = STACKTOP;
  11656. STACKTOP = STACKTOP + 160 | 0;
  11657. i8 = i2 + 120 | 0;
  11658. i24 = i2 + 96 | 0;
  11659. i15 = i2 + 72 | 0;
  11660. i25 = i2 + 48 | 0;
  11661. i20 = i2 + 24 | 0;
  11662. i21 = i2;
  11663. i19 = i4 + 4 | 0;
  11664. i6 = HEAP32[i19 >> 2] | 0;
  11665. i3 = i4 + 48 | 0;
  11666. i9 = HEAP32[i3 >> 2] | 0;
  11667. i1 = i4 + 52 | 0;
  11668. i26 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
  11669. i27 = (HEAP16[i26 >> 1] | 0) + 1 << 16 >> 16;
  11670. HEAP16[i26 >> 1] = i27;
  11671. if ((i27 & 65535) > 200) {
  11672. i27 = i9 + 12 | 0;
  11673. i26 = HEAP32[(HEAP32[i27 >> 2] | 0) + 52 >> 2] | 0;
  11674. i5 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
  11675. if ((i5 | 0) == 0) {
  11676. i29 = 6552;
  11677. HEAP32[i8 >> 2] = 6360;
  11678. i28 = i8 + 4 | 0;
  11679. HEAP32[i28 >> 2] = 200;
  11680. i28 = i8 + 8 | 0;
  11681. HEAP32[i28 >> 2] = i29;
  11682. i28 = _luaO_pushfstring(i26, 6592, i8) | 0;
  11683. i29 = HEAP32[i27 >> 2] | 0;
  11684. _luaX_syntaxerror(i29, i28);
  11685. }
  11686. HEAP32[i8 >> 2] = i5;
  11687. i28 = _luaO_pushfstring(i26, 6568, i8) | 0;
  11688. HEAP32[i8 >> 2] = 6360;
  11689. i29 = i8 + 4 | 0;
  11690. HEAP32[i29 >> 2] = 200;
  11691. i29 = i8 + 8 | 0;
  11692. HEAP32[i29 >> 2] = i28;
  11693. i29 = _luaO_pushfstring(i26, 6592, i8) | 0;
  11694. i28 = HEAP32[i27 >> 2] | 0;
  11695. _luaX_syntaxerror(i28, i29);
  11696. }
  11697. i5 = i4 + 16 | 0;
  11698. L8 : do {
  11699. switch (HEAP32[i5 >> 2] | 0) {
  11700. case 59:
  11701. {
  11702. _luaX_next(i4);
  11703. break;
  11704. }
  11705. case 267:
  11706. {
  11707. HEAP32[i21 >> 2] = -1;
  11708. _test_then_block(i4, i21);
  11709. while (1) {
  11710. i8 = HEAP32[i5 >> 2] | 0;
  11711. if ((i8 | 0) == 260) {
  11712. i7 = 10;
  11713. break;
  11714. } else if ((i8 | 0) != 261) {
  11715. break;
  11716. }
  11717. _test_then_block(i4, i21);
  11718. }
  11719. if ((i7 | 0) == 10) {
  11720. _luaX_next(i4);
  11721. i7 = HEAP32[i3 >> 2] | 0;
  11722. HEAP8[i20 + 10 | 0] = 0;
  11723. HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
  11724. i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
  11725. HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  11726. HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  11727. HEAP8[i20 + 9 | 0] = 0;
  11728. i29 = i7 + 16 | 0;
  11729. HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
  11730. HEAP32[i29 >> 2] = i20;
  11731. L16 : do {
  11732. i8 = HEAP32[i5 >> 2] | 0;
  11733. switch (i8 | 0) {
  11734. case 277:
  11735. case 286:
  11736. case 262:
  11737. case 261:
  11738. case 260:
  11739. {
  11740. break L16;
  11741. }
  11742. default:
  11743. {}
  11744. }
  11745. _statement(i4);
  11746. } while ((i8 | 0) != 274);
  11747. _leaveblock(i7);
  11748. }
  11749. _check_match(i4, 262, 267, i6);
  11750. _luaK_patchtohere(i9, HEAP32[i21 >> 2] | 0);
  11751. break;
  11752. }
  11753. case 259:
  11754. {
  11755. _luaX_next(i4);
  11756. i7 = HEAP32[i3 >> 2] | 0;
  11757. HEAP8[i20 + 10 | 0] = 0;
  11758. HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
  11759. i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
  11760. HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  11761. HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  11762. HEAP8[i20 + 9 | 0] = 0;
  11763. i29 = i7 + 16 | 0;
  11764. HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
  11765. HEAP32[i29 >> 2] = i20;
  11766. L22 : do {
  11767. i8 = HEAP32[i5 >> 2] | 0;
  11768. switch (i8 | 0) {
  11769. case 277:
  11770. case 286:
  11771. case 262:
  11772. case 261:
  11773. case 260:
  11774. {
  11775. break L22;
  11776. }
  11777. default:
  11778. {}
  11779. }
  11780. _statement(i4);
  11781. } while ((i8 | 0) != 274);
  11782. _leaveblock(i7);
  11783. _check_match(i4, 262, 259, i6);
  11784. break;
  11785. }
  11786. case 269:
  11787. {
  11788. _luaX_next(i4);
  11789. i6 = HEAP32[i5 >> 2] | 0;
  11790. if ((i6 | 0) == 265) {
  11791. _luaX_next(i4);
  11792. i7 = HEAP32[i3 >> 2] | 0;
  11793. if ((HEAP32[i5 >> 2] | 0) == 288) {
  11794. i29 = HEAP32[i4 + 24 >> 2] | 0;
  11795. _luaX_next(i4);
  11796. _new_localvar(i4, i29);
  11797. i29 = HEAP32[i3 >> 2] | 0;
  11798. i27 = i29 + 46 | 0;
  11799. i28 = (HEAPU8[i27] | 0) + 1 | 0;
  11800. HEAP8[i27] = i28;
  11801. HEAP32[(HEAP32[(HEAP32[i29 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i29 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i28 & 255) + -1 + (HEAP32[i29 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i29 + 20 >> 2];
  11802. _body(i4, i25, 0, HEAP32[i19 >> 2] | 0);
  11803. HEAP32[(HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i7 + 40 >> 2] | 0) + (HEAP32[i25 + 8 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i7 + 20 >> 2];
  11804. break L8;
  11805. } else {
  11806. _error_expected(i4, 288);
  11807. }
  11808. }
  11809. if ((i6 | 0) != 288) {
  11810. _error_expected(i4, 288);
  11811. }
  11812. i7 = i4 + 24 | 0;
  11813. i6 = 1;
  11814. while (1) {
  11815. i8 = HEAP32[i7 >> 2] | 0;
  11816. _luaX_next(i4);
  11817. _new_localvar(i4, i8);
  11818. i8 = HEAP32[i5 >> 2] | 0;
  11819. if ((i8 | 0) == 61) {
  11820. i7 = 81;
  11821. break;
  11822. } else if ((i8 | 0) != 44) {
  11823. i7 = 83;
  11824. break;
  11825. }
  11826. _luaX_next(i4);
  11827. if ((HEAP32[i5 >> 2] | 0) == 288) {
  11828. i6 = i6 + 1 | 0;
  11829. } else {
  11830. i7 = 78;
  11831. break;
  11832. }
  11833. }
  11834. do {
  11835. if ((i7 | 0) == 78) {
  11836. _error_expected(i4, 288);
  11837. } else if ((i7 | 0) == 81) {
  11838. _luaX_next(i4);
  11839. _subexpr(i4, i15, 0) | 0;
  11840. if ((HEAP32[i5 >> 2] | 0) == 44) {
  11841. i8 = 1;
  11842. do {
  11843. _luaX_next(i4);
  11844. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i15);
  11845. _subexpr(i4, i15, 0) | 0;
  11846. i8 = i8 + 1 | 0;
  11847. } while ((HEAP32[i5 >> 2] | 0) == 44);
  11848. } else {
  11849. i8 = 1;
  11850. }
  11851. i5 = HEAP32[i15 >> 2] | 0;
  11852. i4 = HEAP32[i3 >> 2] | 0;
  11853. i8 = i6 - i8 | 0;
  11854. if ((i5 | 0) == 0) {
  11855. i17 = i8;
  11856. i18 = i4;
  11857. i7 = 88;
  11858. break;
  11859. } else if (!((i5 | 0) == 13 | (i5 | 0) == 12)) {
  11860. _luaK_exp2nextreg(i4, i15);
  11861. i17 = i8;
  11862. i18 = i4;
  11863. i7 = 88;
  11864. break;
  11865. }
  11866. i5 = i8 + 1 | 0;
  11867. i5 = (i5 | 0) < 0 ? 0 : i5;
  11868. _luaK_setreturns(i4, i15, i5);
  11869. if ((i5 | 0) > 1) {
  11870. _luaK_reserveregs(i4, i5 + -1 | 0);
  11871. }
  11872. } else if ((i7 | 0) == 83) {
  11873. HEAP32[i15 >> 2] = 0;
  11874. i17 = i6;
  11875. i18 = HEAP32[i3 >> 2] | 0;
  11876. i7 = 88;
  11877. }
  11878. } while (0);
  11879. if ((i7 | 0) == 88 ? (i17 | 0) > 0 : 0) {
  11880. i29 = HEAPU8[i18 + 48 | 0] | 0;
  11881. _luaK_reserveregs(i18, i17);
  11882. _luaK_nil(i18, i29, i17);
  11883. }
  11884. i5 = HEAP32[i3 >> 2] | 0;
  11885. i4 = i5 + 46 | 0;
  11886. i7 = (HEAPU8[i4] | 0) + i6 | 0;
  11887. HEAP8[i4] = i7;
  11888. if ((i6 | 0) != 0 ? (i11 = i5 + 20 | 0, i14 = i5 + 40 | 0, i12 = HEAP32[(HEAP32[i5 >> 2] | 0) + 24 >> 2] | 0, i13 = HEAP32[HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i12 + ((HEAP16[i13 + ((i7 & 255) - i6 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2], i16 = i6 + -1 | 0, (i16 | 0) != 0) : 0) {
  11889. do {
  11890. HEAP32[i12 + ((HEAP16[i13 + ((HEAPU8[i4] | 0) - i16 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2];
  11891. i16 = i16 + -1 | 0;
  11892. } while ((i16 | 0) != 0);
  11893. }
  11894. break;
  11895. }
  11896. case 264:
  11897. {
  11898. HEAP8[i24 + 10 | 0] = 1;
  11899. HEAP8[i24 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
  11900. i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
  11901. HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  11902. HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  11903. HEAP8[i24 + 9 | 0] = 0;
  11904. i29 = i9 + 16 | 0;
  11905. HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
  11906. HEAP32[i29 >> 2] = i24;
  11907. _luaX_next(i4);
  11908. if ((HEAP32[i5 >> 2] | 0) != 288) {
  11909. _error_expected(i4, 288);
  11910. }
  11911. i14 = i4 + 24 | 0;
  11912. i13 = HEAP32[i14 >> 2] | 0;
  11913. _luaX_next(i4);
  11914. i11 = HEAP32[i5 >> 2] | 0;
  11915. if ((i11 | 0) == 268 | (i11 | 0) == 44) {
  11916. i12 = HEAP32[i3 >> 2] | 0;
  11917. i11 = HEAPU8[i12 + 48 | 0] | 0;
  11918. _new_localvar(i4, _luaX_newstring(i4, 6744, 15) | 0);
  11919. _new_localvar(i4, _luaX_newstring(i4, 6760, 11) | 0);
  11920. _new_localvar(i4, _luaX_newstring(i4, 6776, 13) | 0);
  11921. _new_localvar(i4, i13);
  11922. i13 = HEAP32[i5 >> 2] | 0;
  11923. do {
  11924. if ((i13 | 0) == 44) {
  11925. i15 = 4;
  11926. while (1) {
  11927. _luaX_next(i4);
  11928. if ((HEAP32[i5 >> 2] | 0) != 288) {
  11929. i7 = 40;
  11930. break;
  11931. }
  11932. i13 = HEAP32[i14 >> 2] | 0;
  11933. _luaX_next(i4);
  11934. _new_localvar(i4, i13);
  11935. i13 = HEAP32[i5 >> 2] | 0;
  11936. if ((i13 | 0) == 44) {
  11937. i15 = i15 + 1 | 0;
  11938. } else {
  11939. i7 = 42;
  11940. break;
  11941. }
  11942. }
  11943. if ((i7 | 0) == 40) {
  11944. _error_expected(i4, 288);
  11945. } else if ((i7 | 0) == 42) {
  11946. i22 = i13;
  11947. i10 = i15 + -2 | 0;
  11948. break;
  11949. }
  11950. } else {
  11951. i22 = i13;
  11952. i10 = 1;
  11953. }
  11954. } while (0);
  11955. if ((i22 | 0) != 268) {
  11956. _error_expected(i4, 268);
  11957. }
  11958. _luaX_next(i4);
  11959. i13 = HEAP32[i19 >> 2] | 0;
  11960. _subexpr(i4, i8, 0) | 0;
  11961. if ((HEAP32[i5 >> 2] | 0) == 44) {
  11962. i14 = 1;
  11963. do {
  11964. _luaX_next(i4);
  11965. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
  11966. _subexpr(i4, i8, 0) | 0;
  11967. i14 = i14 + 1 | 0;
  11968. } while ((HEAP32[i5 >> 2] | 0) == 44);
  11969. } else {
  11970. i14 = 1;
  11971. }
  11972. i5 = HEAP32[i3 >> 2] | 0;
  11973. i14 = 3 - i14 | 0;
  11974. i15 = HEAP32[i8 >> 2] | 0;
  11975. if ((i15 | 0) == 0) {
  11976. i7 = 51;
  11977. } else if ((i15 | 0) == 13 | (i15 | 0) == 12) {
  11978. i15 = i14 + 1 | 0;
  11979. i15 = (i15 | 0) < 0 ? 0 : i15;
  11980. _luaK_setreturns(i5, i8, i15);
  11981. if ((i15 | 0) > 1) {
  11982. _luaK_reserveregs(i5, i15 + -1 | 0);
  11983. }
  11984. } else {
  11985. _luaK_exp2nextreg(i5, i8);
  11986. i7 = 51;
  11987. }
  11988. if ((i7 | 0) == 51 ? (i14 | 0) > 0 : 0) {
  11989. i29 = HEAPU8[i5 + 48 | 0] | 0;
  11990. _luaK_reserveregs(i5, i14);
  11991. _luaK_nil(i5, i29, i14);
  11992. }
  11993. _luaK_checkstack(i12, 3);
  11994. _forbody(i4, i11, i13, i10, 0);
  11995. } else if ((i11 | 0) == 61) {
  11996. i11 = HEAP32[i3 >> 2] | 0;
  11997. i7 = i11 + 48 | 0;
  11998. i10 = HEAPU8[i7] | 0;
  11999. _new_localvar(i4, _luaX_newstring(i4, 6792, 11) | 0);
  12000. _new_localvar(i4, _luaX_newstring(i4, 6808, 11) | 0);
  12001. _new_localvar(i4, _luaX_newstring(i4, 6824, 10) | 0);
  12002. _new_localvar(i4, i13);
  12003. if ((HEAP32[i5 >> 2] | 0) != 61) {
  12004. _error_expected(i4, 61);
  12005. }
  12006. _luaX_next(i4);
  12007. _subexpr(i4, i8, 0) | 0;
  12008. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
  12009. if ((HEAP32[i5 >> 2] | 0) != 44) {
  12010. _error_expected(i4, 44);
  12011. }
  12012. _luaX_next(i4);
  12013. _subexpr(i4, i8, 0) | 0;
  12014. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
  12015. if ((HEAP32[i5 >> 2] | 0) == 44) {
  12016. _luaX_next(i4);
  12017. _subexpr(i4, i8, 0) | 0;
  12018. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
  12019. } else {
  12020. i29 = HEAPU8[i7] | 0;
  12021. _luaK_codek(i11, i29, _luaK_numberK(i11, 1.0) | 0) | 0;
  12022. _luaK_reserveregs(i11, 1);
  12023. }
  12024. _forbody(i4, i10, i6, 1, 1);
  12025. } else {
  12026. _luaX_syntaxerror(i4, 6720);
  12027. }
  12028. _check_match(i4, 262, 264, i6);
  12029. _leaveblock(i9);
  12030. break;
  12031. }
  12032. case 265:
  12033. {
  12034. _luaX_next(i4);
  12035. if ((HEAP32[i5 >> 2] | 0) != 288) {
  12036. _error_expected(i4, 288);
  12037. }
  12038. i8 = HEAP32[i4 + 24 >> 2] | 0;
  12039. _luaX_next(i4);
  12040. i9 = HEAP32[i3 >> 2] | 0;
  12041. if ((_singlevaraux(i9, i8, i20, 1) | 0) == 0) {
  12042. _singlevaraux(i9, HEAP32[i4 + 72 >> 2] | 0, i20, 1) | 0;
  12043. i29 = _luaK_stringK(HEAP32[i3 >> 2] | 0, i8) | 0;
  12044. HEAP32[i25 + 16 >> 2] = -1;
  12045. HEAP32[i25 + 20 >> 2] = -1;
  12046. HEAP32[i25 >> 2] = 4;
  12047. HEAP32[i25 + 8 >> 2] = i29;
  12048. _luaK_indexed(i9, i20, i25);
  12049. }
  12050. while (1) {
  12051. i8 = HEAP32[i5 >> 2] | 0;
  12052. if ((i8 | 0) == 58) {
  12053. i7 = 70;
  12054. break;
  12055. } else if ((i8 | 0) != 46) {
  12056. i5 = 0;
  12057. break;
  12058. }
  12059. _fieldsel(i4, i20);
  12060. }
  12061. if ((i7 | 0) == 70) {
  12062. _fieldsel(i4, i20);
  12063. i5 = 1;
  12064. }
  12065. _body(i4, i21, i5, i6);
  12066. _luaK_storevar(HEAP32[i3 >> 2] | 0, i20, i21);
  12067. _luaK_fixline(HEAP32[i3 >> 2] | 0, i6);
  12068. break;
  12069. }
  12070. case 278:
  12071. {
  12072. _luaX_next(i4);
  12073. i7 = _luaK_getlabel(i9) | 0;
  12074. _subexpr(i4, i20, 0) | 0;
  12075. if ((HEAP32[i20 >> 2] | 0) == 1) {
  12076. HEAP32[i20 >> 2] = 3;
  12077. }
  12078. _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i20);
  12079. i8 = HEAP32[i20 + 20 >> 2] | 0;
  12080. HEAP8[i21 + 10 | 0] = 1;
  12081. HEAP8[i21 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
  12082. i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
  12083. HEAP16[i21 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  12084. HEAP16[i21 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  12085. HEAP8[i21 + 9 | 0] = 0;
  12086. i29 = i9 + 16 | 0;
  12087. HEAP32[i21 >> 2] = HEAP32[i29 >> 2];
  12088. HEAP32[i29 >> 2] = i21;
  12089. if ((HEAP32[i5 >> 2] | 0) != 259) {
  12090. _error_expected(i4, 259);
  12091. }
  12092. _luaX_next(i4);
  12093. i10 = HEAP32[i3 >> 2] | 0;
  12094. HEAP8[i20 + 10 | 0] = 0;
  12095. HEAP8[i20 + 8 | 0] = HEAP8[i10 + 46 | 0] | 0;
  12096. i29 = HEAP32[(HEAP32[i10 + 12 >> 2] | 0) + 64 >> 2] | 0;
  12097. HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  12098. HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  12099. HEAP8[i20 + 9 | 0] = 0;
  12100. i29 = i10 + 16 | 0;
  12101. HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
  12102. HEAP32[i29 >> 2] = i20;
  12103. L119 : do {
  12104. i11 = HEAP32[i5 >> 2] | 0;
  12105. switch (i11 | 0) {
  12106. case 277:
  12107. case 286:
  12108. case 262:
  12109. case 261:
  12110. case 260:
  12111. {
  12112. break L119;
  12113. }
  12114. default:
  12115. {}
  12116. }
  12117. _statement(i4);
  12118. } while ((i11 | 0) != 274);
  12119. _leaveblock(i10);
  12120. _luaK_patchlist(i9, _luaK_jump(i9) | 0, i7);
  12121. _check_match(i4, 262, 278, i6);
  12122. _leaveblock(i9);
  12123. _luaK_patchtohere(i9, i8);
  12124. break;
  12125. }
  12126. case 273:
  12127. {
  12128. i7 = _luaK_getlabel(i9) | 0;
  12129. HEAP8[i24 + 10 | 0] = 1;
  12130. i28 = i9 + 46 | 0;
  12131. HEAP8[i24 + 8 | 0] = HEAP8[i28] | 0;
  12132. i11 = i9 + 12 | 0;
  12133. i29 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
  12134. HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
  12135. HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
  12136. HEAP8[i24 + 9 | 0] = 0;
  12137. i29 = i9 + 16 | 0;
  12138. HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
  12139. HEAP32[i29 >> 2] = i24;
  12140. HEAP8[i15 + 10 | 0] = 0;
  12141. i10 = i15 + 8 | 0;
  12142. HEAP8[i10] = HEAP8[i28] | 0;
  12143. i11 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
  12144. HEAP16[i15 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
  12145. HEAP16[i15 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
  12146. i11 = i15 + 9 | 0;
  12147. HEAP8[i11] = 0;
  12148. HEAP32[i15 >> 2] = HEAP32[i29 >> 2];
  12149. HEAP32[i29 >> 2] = i15;
  12150. _luaX_next(i4);
  12151. L124 : do {
  12152. i12 = HEAP32[i5 >> 2] | 0;
  12153. switch (i12 | 0) {
  12154. case 277:
  12155. case 286:
  12156. case 262:
  12157. case 261:
  12158. case 260:
  12159. {
  12160. break L124;
  12161. }
  12162. default:
  12163. {}
  12164. }
  12165. _statement(i4);
  12166. } while ((i12 | 0) != 274);
  12167. _check_match(i4, 277, 273, i6);
  12168. _subexpr(i4, i8, 0) | 0;
  12169. if ((HEAP32[i8 >> 2] | 0) == 1) {
  12170. HEAP32[i8 >> 2] = 3;
  12171. }
  12172. _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i8);
  12173. i4 = HEAP32[i8 + 20 >> 2] | 0;
  12174. if ((HEAP8[i11] | 0) != 0) {
  12175. _luaK_patchclose(i9, i4, HEAPU8[i10] | 0);
  12176. }
  12177. _leaveblock(i9);
  12178. _luaK_patchlist(i9, i4, i7);
  12179. _leaveblock(i9);
  12180. break;
  12181. }
  12182. case 285:
  12183. {
  12184. _luaX_next(i4);
  12185. if ((HEAP32[i5 >> 2] | 0) != 288) {
  12186. _error_expected(i4, 288);
  12187. }
  12188. i10 = HEAP32[i4 + 24 >> 2] | 0;
  12189. _luaX_next(i4);
  12190. i15 = HEAP32[i3 >> 2] | 0;
  12191. i9 = i4 + 64 | 0;
  12192. i14 = HEAP32[i9 >> 2] | 0;
  12193. i12 = i14 + 24 | 0;
  12194. i11 = i15 + 16 | 0;
  12195. i16 = HEAP16[(HEAP32[i11 >> 2] | 0) + 4 >> 1] | 0;
  12196. i13 = i14 + 28 | 0;
  12197. L138 : do {
  12198. if ((i16 | 0) < (HEAP32[i13 >> 2] | 0)) {
  12199. while (1) {
  12200. i17 = i16 + 1 | 0;
  12201. if ((_luaS_eqstr(i10, HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) >> 2] | 0) | 0) != 0) {
  12202. break;
  12203. }
  12204. if ((i17 | 0) < (HEAP32[i13 >> 2] | 0)) {
  12205. i16 = i17;
  12206. } else {
  12207. break L138;
  12208. }
  12209. }
  12210. i28 = i15 + 12 | 0;
  12211. i29 = HEAP32[(HEAP32[i28 >> 2] | 0) + 52 >> 2] | 0;
  12212. i27 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) + 8 >> 2] | 0;
  12213. HEAP32[i8 >> 2] = i10 + 16;
  12214. HEAP32[i8 + 4 >> 2] = i27;
  12215. i29 = _luaO_pushfstring(i29, 6680, i8) | 0;
  12216. _semerror(HEAP32[i28 >> 2] | 0, i29);
  12217. }
  12218. } while (0);
  12219. if ((HEAP32[i5 >> 2] | 0) != 285) {
  12220. _error_expected(i4, 285);
  12221. }
  12222. _luaX_next(i4);
  12223. i8 = HEAP32[i15 + 20 >> 2] | 0;
  12224. i15 = HEAP32[i13 >> 2] | 0;
  12225. i14 = i14 + 32 | 0;
  12226. if ((i15 | 0) < (HEAP32[i14 >> 2] | 0)) {
  12227. i14 = HEAP32[i12 >> 2] | 0;
  12228. } else {
  12229. i14 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
  12230. HEAP32[i12 >> 2] = i14;
  12231. }
  12232. HEAP32[i14 + (i15 << 4) >> 2] = i10;
  12233. i29 = HEAP32[i12 >> 2] | 0;
  12234. HEAP32[i29 + (i15 << 4) + 8 >> 2] = i6;
  12235. HEAP8[i29 + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
  12236. HEAP32[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 4 >> 2] = i8;
  12237. HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
  12238. L152 : while (1) {
  12239. switch (HEAP32[i5 >> 2] | 0) {
  12240. case 285:
  12241. case 59:
  12242. {
  12243. break;
  12244. }
  12245. case 286:
  12246. case 262:
  12247. case 261:
  12248. case 260:
  12249. {
  12250. i7 = 108;
  12251. break L152;
  12252. }
  12253. default:
  12254. {
  12255. break L152;
  12256. }
  12257. }
  12258. _statement(i4);
  12259. }
  12260. if ((i7 | 0) == 108) {
  12261. HEAP8[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i11 >> 2] | 0) + 8 | 0] | 0;
  12262. }
  12263. i5 = (HEAP32[i12 >> 2] | 0) + (i15 << 4) | 0;
  12264. i8 = HEAP32[i9 >> 2] | 0;
  12265. i7 = HEAP16[(HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
  12266. i6 = i8 + 16 | 0;
  12267. if ((i7 | 0) < (HEAP32[i6 >> 2] | 0)) {
  12268. i8 = i8 + 12 | 0;
  12269. do {
  12270. while (1) {
  12271. if ((_luaS_eqstr(HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 4) >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0) == 0) {
  12272. break;
  12273. }
  12274. _closegoto(i4, i7, i5);
  12275. if ((i7 | 0) >= (HEAP32[i6 >> 2] | 0)) {
  12276. break L8;
  12277. }
  12278. }
  12279. i7 = i7 + 1 | 0;
  12280. } while ((i7 | 0) < (HEAP32[i6 >> 2] | 0));
  12281. }
  12282. break;
  12283. }
  12284. case 274:
  12285. {
  12286. _luaX_next(i4);
  12287. i6 = HEAP32[i3 >> 2] | 0;
  12288. L166 : do {
  12289. switch (HEAP32[i5 >> 2] | 0) {
  12290. case 59:
  12291. case 277:
  12292. case 286:
  12293. case 262:
  12294. case 261:
  12295. case 260:
  12296. {
  12297. i8 = 0;
  12298. i7 = 0;
  12299. break;
  12300. }
  12301. default:
  12302. {
  12303. _subexpr(i4, i24, 0) | 0;
  12304. if ((HEAP32[i5 >> 2] | 0) == 44) {
  12305. i7 = 1;
  12306. do {
  12307. _luaX_next(i4);
  12308. _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i24);
  12309. _subexpr(i4, i24, 0) | 0;
  12310. i7 = i7 + 1 | 0;
  12311. } while ((HEAP32[i5 >> 2] | 0) == 44);
  12312. } else {
  12313. i7 = 1;
  12314. }
  12315. if (!(((HEAP32[i24 >> 2] | 0) + -12 | 0) >>> 0 < 2)) {
  12316. if ((i7 | 0) == 1) {
  12317. i8 = _luaK_exp2anyreg(i6, i24) | 0;
  12318. i7 = 1;
  12319. break L166;
  12320. } else {
  12321. _luaK_exp2nextreg(i6, i24);
  12322. i8 = HEAPU8[i6 + 46 | 0] | 0;
  12323. break L166;
  12324. }
  12325. } else {
  12326. _luaK_setreturns(i6, i24, -1);
  12327. if ((HEAP32[i24 >> 2] | 0) == 12 & (i7 | 0) == 1) {
  12328. i29 = (HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i24 + 8 >> 2] << 2) | 0;
  12329. HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -64 | 30;
  12330. }
  12331. i8 = HEAPU8[i6 + 46 | 0] | 0;
  12332. i7 = -1;
  12333. break L166;
  12334. }
  12335. }
  12336. }
  12337. } while (0);
  12338. _luaK_ret(i6, i8, i7);
  12339. if ((HEAP32[i5 >> 2] | 0) == 59) {
  12340. _luaX_next(i4);
  12341. }
  12342. break;
  12343. }
  12344. case 266:
  12345. case 258:
  12346. {
  12347. i6 = _luaK_jump(i9) | 0;
  12348. i7 = HEAP32[i19 >> 2] | 0;
  12349. i29 = (HEAP32[i5 >> 2] | 0) == 266;
  12350. _luaX_next(i4);
  12351. do {
  12352. if (i29) {
  12353. if ((HEAP32[i5 >> 2] | 0) == 288) {
  12354. i23 = HEAP32[i4 + 24 >> 2] | 0;
  12355. _luaX_next(i4);
  12356. break;
  12357. } else {
  12358. _error_expected(i4, 288);
  12359. }
  12360. } else {
  12361. i23 = _luaS_new(HEAP32[i1 >> 2] | 0, 6304) | 0;
  12362. }
  12363. } while (0);
  12364. i10 = HEAP32[i4 + 64 >> 2] | 0;
  12365. i9 = i10 + 12 | 0;
  12366. i5 = i10 + 16 | 0;
  12367. i8 = HEAP32[i5 >> 2] | 0;
  12368. i10 = i10 + 20 | 0;
  12369. if ((i8 | 0) < (HEAP32[i10 >> 2] | 0)) {
  12370. i10 = HEAP32[i9 >> 2] | 0;
  12371. } else {
  12372. i10 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 16, 32767, 6312) | 0;
  12373. HEAP32[i9 >> 2] = i10;
  12374. }
  12375. HEAP32[i10 + (i8 << 4) >> 2] = i23;
  12376. i29 = HEAP32[i9 >> 2] | 0;
  12377. HEAP32[i29 + (i8 << 4) + 8 >> 2] = i7;
  12378. HEAP8[i29 + (i8 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
  12379. HEAP32[(HEAP32[i9 >> 2] | 0) + (i8 << 4) + 4 >> 2] = i6;
  12380. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
  12381. _findlabel(i4, i8) | 0;
  12382. break;
  12383. }
  12384. default:
  12385. {
  12386. i6 = i8 + 8 | 0;
  12387. _suffixedexp(i4, i6);
  12388. i29 = HEAP32[i5 >> 2] | 0;
  12389. if ((i29 | 0) == 44 | (i29 | 0) == 61) {
  12390. HEAP32[i8 >> 2] = 0;
  12391. _assignment(i4, i8, 1);
  12392. break L8;
  12393. }
  12394. if ((HEAP32[i6 >> 2] | 0) == 12) {
  12395. i29 = (HEAP32[(HEAP32[i9 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i8 + 16 >> 2] << 2) | 0;
  12396. HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -8372225 | 16384;
  12397. break L8;
  12398. } else {
  12399. _luaX_syntaxerror(i4, 6344);
  12400. }
  12401. }
  12402. }
  12403. } while (0);
  12404. i29 = HEAP32[i3 >> 2] | 0;
  12405. HEAP8[i29 + 48 | 0] = HEAP8[i29 + 46 | 0] | 0;
  12406. i29 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
  12407. HEAP16[i29 >> 1] = (HEAP16[i29 >> 1] | 0) + -1 << 16 >> 16;
  12408. STACKTOP = i2;
  12409. return;
  12410. }
  12411. function _match(i1, i12, i11) {
  12412. i1 = i1 | 0;
  12413. i12 = i12 | 0;
  12414. i11 = i11 | 0;
  12415. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
  12416. i2 = STACKTOP;
  12417. STACKTOP = STACKTOP + 16 | 0;
  12418. i8 = i2;
  12419. i32 = HEAP32[i1 >> 2] | 0;
  12420. HEAP32[i1 >> 2] = i32 + -1;
  12421. if ((i32 | 0) == 0) {
  12422. _luaL_error(HEAP32[i1 + 16 >> 2] | 0, 7272, i8) | 0;
  12423. }
  12424. i14 = i1 + 12 | 0;
  12425. i22 = HEAP32[i14 >> 2] | 0;
  12426. L4 : do {
  12427. if ((i22 | 0) != (i11 | 0)) {
  12428. i3 = i1 + 8 | 0;
  12429. i9 = i1 + 16 | 0;
  12430. i16 = i1 + 4 | 0;
  12431. i10 = i1 + 20 | 0;
  12432. L6 : while (1) {
  12433. i19 = i12 + 1 | 0;
  12434. i20 = i12 + -1 | 0;
  12435. L8 : while (1) {
  12436. i23 = HEAP8[i11] | 0;
  12437. i21 = i23 << 24 >> 24;
  12438. L10 : do {
  12439. if ((i21 | 0) == 36) {
  12440. i7 = i11 + 1 | 0;
  12441. if ((i7 | 0) == (i22 | 0)) {
  12442. i7 = 23;
  12443. break L6;
  12444. } else {
  12445. i22 = i7;
  12446. i21 = i7;
  12447. i7 = 89;
  12448. }
  12449. } else if ((i21 | 0) == 37) {
  12450. i21 = i11 + 1 | 0;
  12451. i23 = HEAP8[i21] | 0;
  12452. switch (i23 << 24 >> 24 | 0) {
  12453. case 57:
  12454. case 56:
  12455. case 55:
  12456. case 54:
  12457. case 53:
  12458. case 52:
  12459. case 51:
  12460. case 50:
  12461. case 49:
  12462. case 48:
  12463. {
  12464. i7 = 69;
  12465. break L8;
  12466. }
  12467. case 98:
  12468. {
  12469. i7 = 25;
  12470. break L8;
  12471. }
  12472. case 102:
  12473. {
  12474. break;
  12475. }
  12476. default:
  12477. {
  12478. if ((i21 | 0) == (i22 | 0)) {
  12479. _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
  12480. }
  12481. i22 = i11 + 2 | 0;
  12482. i7 = 89;
  12483. break L10;
  12484. }
  12485. }
  12486. i22 = i11 + 2 | 0;
  12487. if ((HEAP8[i22] | 0) == 91) {
  12488. i21 = 91;
  12489. } else {
  12490. _luaL_error(HEAP32[i9 >> 2] | 0, 7296, i8) | 0;
  12491. i21 = HEAP8[i22] | 0;
  12492. }
  12493. i23 = i11 + 3 | 0;
  12494. i21 = i21 << 24 >> 24;
  12495. if ((i21 | 0) == 91) {
  12496. i21 = (HEAP8[i23] | 0) == 94 ? i11 + 4 | 0 : i23;
  12497. while (1) {
  12498. if ((i21 | 0) == (HEAP32[i14 >> 2] | 0)) {
  12499. _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
  12500. }
  12501. i11 = i21 + 1 | 0;
  12502. if ((HEAP8[i21] | 0) == 37) {
  12503. i11 = i11 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i21 + 2 | 0 : i11;
  12504. }
  12505. if ((HEAP8[i11] | 0) == 93) {
  12506. break;
  12507. } else {
  12508. i21 = i11;
  12509. }
  12510. }
  12511. i11 = i11 + 1 | 0;
  12512. } else if ((i21 | 0) == 37) {
  12513. if ((i23 | 0) == (HEAP32[i14 >> 2] | 0)) {
  12514. _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
  12515. }
  12516. i11 = i11 + 4 | 0;
  12517. } else {
  12518. i11 = i23;
  12519. }
  12520. if ((i12 | 0) == (HEAP32[i16 >> 2] | 0)) {
  12521. i25 = 0;
  12522. } else {
  12523. i25 = HEAP8[i20] | 0;
  12524. }
  12525. i24 = i25 & 255;
  12526. i21 = i11 + -1 | 0;
  12527. i26 = (HEAP8[i23] | 0) == 94;
  12528. i28 = i26 ? i23 : i22;
  12529. i27 = i26 & 1;
  12530. i26 = i27 ^ 1;
  12531. i30 = i28 + 1 | 0;
  12532. L41 : do {
  12533. if (i30 >>> 0 < i21 >>> 0) {
  12534. while (1) {
  12535. i32 = HEAP8[i30] | 0;
  12536. i29 = i28 + 2 | 0;
  12537. i31 = HEAP8[i29] | 0;
  12538. do {
  12539. if (i32 << 24 >> 24 == 37) {
  12540. if ((_match_class(i24, i31 & 255) | 0) == 0) {
  12541. i28 = i29;
  12542. } else {
  12543. break L41;
  12544. }
  12545. } else {
  12546. if (i31 << 24 >> 24 == 45 ? (i18 = i28 + 3 | 0, i18 >>> 0 < i21 >>> 0) : 0) {
  12547. if ((i32 & 255) > (i25 & 255)) {
  12548. i28 = i18;
  12549. break;
  12550. }
  12551. if ((HEAPU8[i18] | 0) < (i25 & 255)) {
  12552. i28 = i18;
  12553. break;
  12554. } else {
  12555. break L41;
  12556. }
  12557. }
  12558. if (i32 << 24 >> 24 == i25 << 24 >> 24) {
  12559. break L41;
  12560. } else {
  12561. i28 = i30;
  12562. }
  12563. }
  12564. } while (0);
  12565. i30 = i28 + 1 | 0;
  12566. if (!(i30 >>> 0 < i21 >>> 0)) {
  12567. i26 = i27;
  12568. break;
  12569. }
  12570. }
  12571. } else {
  12572. i26 = i27;
  12573. }
  12574. } while (0);
  12575. if ((i26 | 0) != 0) {
  12576. i12 = 0;
  12577. break L4;
  12578. }
  12579. i24 = HEAP8[i12] | 0;
  12580. i25 = i24 & 255;
  12581. i27 = (HEAP8[i23] | 0) == 94;
  12582. i26 = i27 ? i23 : i22;
  12583. i22 = i27 & 1;
  12584. i23 = i22 ^ 1;
  12585. i30 = i26 + 1 | 0;
  12586. L55 : do {
  12587. if (i30 >>> 0 < i21 >>> 0) {
  12588. do {
  12589. i29 = HEAP8[i30] | 0;
  12590. i28 = i26 + 2 | 0;
  12591. i27 = HEAP8[i28] | 0;
  12592. do {
  12593. if (i29 << 24 >> 24 == 37) {
  12594. if ((_match_class(i25, i27 & 255) | 0) == 0) {
  12595. i26 = i28;
  12596. } else {
  12597. i22 = i23;
  12598. break L55;
  12599. }
  12600. } else {
  12601. if (i27 << 24 >> 24 == 45 ? (i17 = i26 + 3 | 0, i17 >>> 0 < i21 >>> 0) : 0) {
  12602. if ((i29 & 255) > (i24 & 255)) {
  12603. i26 = i17;
  12604. break;
  12605. }
  12606. if ((HEAPU8[i17] | 0) < (i24 & 255)) {
  12607. i26 = i17;
  12608. break;
  12609. } else {
  12610. i22 = i23;
  12611. break L55;
  12612. }
  12613. }
  12614. if (i29 << 24 >> 24 == i24 << 24 >> 24) {
  12615. i22 = i23;
  12616. break L55;
  12617. } else {
  12618. i26 = i30;
  12619. }
  12620. }
  12621. } while (0);
  12622. i30 = i26 + 1 | 0;
  12623. } while (i30 >>> 0 < i21 >>> 0);
  12624. }
  12625. } while (0);
  12626. if ((i22 | 0) == 0) {
  12627. i12 = 0;
  12628. break L4;
  12629. }
  12630. } else if ((i21 | 0) == 40) {
  12631. i7 = 7;
  12632. break L6;
  12633. } else if ((i21 | 0) != 41) {
  12634. i21 = i11 + 1 | 0;
  12635. if (i23 << 24 >> 24 == 91) {
  12636. i7 = (HEAP8[i21] | 0) == 94 ? i11 + 2 | 0 : i21;
  12637. while (1) {
  12638. if ((i7 | 0) == (i22 | 0)) {
  12639. _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
  12640. }
  12641. i22 = i7 + 1 | 0;
  12642. if ((HEAP8[i7] | 0) == 37) {
  12643. i7 = i22 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i7 + 2 | 0 : i22;
  12644. } else {
  12645. i7 = i22;
  12646. }
  12647. if ((HEAP8[i7] | 0) == 93) {
  12648. break;
  12649. }
  12650. i22 = HEAP32[i14 >> 2] | 0;
  12651. }
  12652. i22 = i7 + 1 | 0;
  12653. i7 = 89;
  12654. } else {
  12655. i22 = i21;
  12656. i7 = 89;
  12657. }
  12658. } else {
  12659. i7 = 16;
  12660. break L6;
  12661. }
  12662. } while (0);
  12663. L80 : do {
  12664. if ((i7 | 0) == 89) {
  12665. i7 = 0;
  12666. do {
  12667. if ((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0) {
  12668. i23 = HEAP8[i12] | 0;
  12669. i24 = i23 & 255;
  12670. i26 = HEAP8[i11] | 0;
  12671. i25 = i26 << 24 >> 24;
  12672. L85 : do {
  12673. if ((i25 | 0) == 46) {
  12674. i23 = HEAP8[i22] | 0;
  12675. } else if ((i25 | 0) == 37) {
  12676. i25 = _match_class(i24, HEAPU8[i21] | 0) | 0;
  12677. i7 = 104;
  12678. } else if ((i25 | 0) == 91) {
  12679. i7 = i22 + -1 | 0;
  12680. i25 = (HEAP8[i21] | 0) == 94;
  12681. i27 = i25 ? i21 : i11;
  12682. i26 = i25 & 1;
  12683. i25 = i26 ^ 1;
  12684. i30 = i27 + 1 | 0;
  12685. if (i30 >>> 0 < i7 >>> 0) {
  12686. while (1) {
  12687. i31 = HEAP8[i30] | 0;
  12688. i29 = i27 + 2 | 0;
  12689. i28 = HEAP8[i29] | 0;
  12690. do {
  12691. if (i31 << 24 >> 24 == 37) {
  12692. if ((_match_class(i24, i28 & 255) | 0) == 0) {
  12693. i27 = i29;
  12694. } else {
  12695. i7 = 104;
  12696. break L85;
  12697. }
  12698. } else {
  12699. if (i28 << 24 >> 24 == 45 ? (i13 = i27 + 3 | 0, i13 >>> 0 < i7 >>> 0) : 0) {
  12700. if ((i31 & 255) > (i23 & 255)) {
  12701. i27 = i13;
  12702. break;
  12703. }
  12704. if ((HEAPU8[i13] | 0) < (i23 & 255)) {
  12705. i27 = i13;
  12706. break;
  12707. } else {
  12708. i7 = 104;
  12709. break L85;
  12710. }
  12711. }
  12712. if (i31 << 24 >> 24 == i23 << 24 >> 24) {
  12713. i7 = 104;
  12714. break L85;
  12715. } else {
  12716. i27 = i30;
  12717. }
  12718. }
  12719. } while (0);
  12720. i30 = i27 + 1 | 0;
  12721. if (!(i30 >>> 0 < i7 >>> 0)) {
  12722. i25 = i26;
  12723. i7 = 104;
  12724. break;
  12725. }
  12726. }
  12727. } else {
  12728. i25 = i26;
  12729. i7 = 104;
  12730. }
  12731. } else {
  12732. i25 = i26 << 24 >> 24 == i23 << 24 >> 24 | 0;
  12733. i7 = 104;
  12734. }
  12735. } while (0);
  12736. if ((i7 | 0) == 104) {
  12737. i7 = 0;
  12738. i23 = HEAP8[i22] | 0;
  12739. if ((i25 | 0) == 0) {
  12740. break;
  12741. }
  12742. }
  12743. i23 = i23 << 24 >> 24;
  12744. if ((i23 | 0) == 45) {
  12745. i7 = 109;
  12746. break L6;
  12747. } else if ((i23 | 0) == 42) {
  12748. i7 = 112;
  12749. break L6;
  12750. } else if ((i23 | 0) == 43) {
  12751. break L6;
  12752. } else if ((i23 | 0) != 63) {
  12753. i12 = i19;
  12754. i11 = i22;
  12755. break L8;
  12756. }
  12757. i11 = i22 + 1 | 0;
  12758. i21 = _match(i1, i19, i11) | 0;
  12759. if ((i21 | 0) == 0) {
  12760. break L80;
  12761. } else {
  12762. i12 = i21;
  12763. break L4;
  12764. }
  12765. } else {
  12766. i23 = HEAP8[i22] | 0;
  12767. }
  12768. } while (0);
  12769. if (!(i23 << 24 >> 24 == 45 | i23 << 24 >> 24 == 63 | i23 << 24 >> 24 == 42)) {
  12770. i12 = 0;
  12771. break L4;
  12772. }
  12773. i11 = i22 + 1 | 0;
  12774. }
  12775. } while (0);
  12776. i22 = HEAP32[i14 >> 2] | 0;
  12777. if ((i11 | 0) == (i22 | 0)) {
  12778. break L4;
  12779. }
  12780. }
  12781. if ((i7 | 0) == 25) {
  12782. i7 = 0;
  12783. i21 = i11 + 2 | 0;
  12784. if (!((i22 + -1 | 0) >>> 0 > i21 >>> 0)) {
  12785. _luaL_error(HEAP32[i9 >> 2] | 0, 7440, i8) | 0;
  12786. }
  12787. i20 = HEAP8[i12] | 0;
  12788. if (!(i20 << 24 >> 24 == (HEAP8[i21] | 0))) {
  12789. i12 = 0;
  12790. break L4;
  12791. }
  12792. i21 = HEAP8[i11 + 3 | 0] | 0;
  12793. i22 = HEAP32[i3 >> 2] | 0;
  12794. if (i19 >>> 0 < i22 >>> 0) {
  12795. i24 = 1;
  12796. } else {
  12797. i12 = 0;
  12798. break L4;
  12799. }
  12800. while (1) {
  12801. i23 = HEAP8[i19] | 0;
  12802. if (i23 << 24 >> 24 == i21 << 24 >> 24) {
  12803. i24 = i24 + -1 | 0;
  12804. if ((i24 | 0) == 0) {
  12805. break;
  12806. }
  12807. } else {
  12808. i24 = (i23 << 24 >> 24 == i20 << 24 >> 24) + i24 | 0;
  12809. }
  12810. i12 = i19 + 1 | 0;
  12811. if (i12 >>> 0 < i22 >>> 0) {
  12812. i32 = i19;
  12813. i19 = i12;
  12814. i12 = i32;
  12815. } else {
  12816. i12 = 0;
  12817. break L4;
  12818. }
  12819. }
  12820. i12 = i12 + 2 | 0;
  12821. i11 = i11 + 4 | 0;
  12822. } else if ((i7 | 0) == 69) {
  12823. i7 = 0;
  12824. i20 = i23 & 255;
  12825. i19 = i20 + -49 | 0;
  12826. if (((i19 | 0) >= 0 ? (i19 | 0) < (HEAP32[i10 >> 2] | 0) : 0) ? (i15 = HEAP32[i1 + (i19 << 3) + 28 >> 2] | 0, !((i15 | 0) == -1)) : 0) {
  12827. i20 = i15;
  12828. } else {
  12829. i19 = HEAP32[i9 >> 2] | 0;
  12830. HEAP32[i8 >> 2] = i20 + -48;
  12831. i20 = _luaL_error(i19, 7336, i8) | 0;
  12832. i19 = i20;
  12833. i20 = HEAP32[i1 + (i20 << 3) + 28 >> 2] | 0;
  12834. }
  12835. if (((HEAP32[i3 >> 2] | 0) - i12 | 0) >>> 0 < i20 >>> 0) {
  12836. i12 = 0;
  12837. break L4;
  12838. }
  12839. if ((_memcmp(HEAP32[i1 + (i19 << 3) + 24 >> 2] | 0, i12, i20) | 0) != 0) {
  12840. i12 = 0;
  12841. break L4;
  12842. }
  12843. i12 = i12 + i20 | 0;
  12844. if ((i12 | 0) == 0) {
  12845. i12 = 0;
  12846. break L4;
  12847. }
  12848. i11 = i11 + 2 | 0;
  12849. }
  12850. i22 = HEAP32[i14 >> 2] | 0;
  12851. if ((i11 | 0) == (i22 | 0)) {
  12852. break L4;
  12853. }
  12854. }
  12855. if ((i7 | 0) == 7) {
  12856. i3 = i11 + 1 | 0;
  12857. if ((HEAP8[i3] | 0) == 41) {
  12858. i3 = HEAP32[i10 >> 2] | 0;
  12859. if ((i3 | 0) > 31) {
  12860. _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
  12861. }
  12862. HEAP32[i1 + (i3 << 3) + 24 >> 2] = i12;
  12863. HEAP32[i1 + (i3 << 3) + 28 >> 2] = -2;
  12864. HEAP32[i10 >> 2] = i3 + 1;
  12865. i12 = _match(i1, i12, i11 + 2 | 0) | 0;
  12866. if ((i12 | 0) != 0) {
  12867. break;
  12868. }
  12869. HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
  12870. i12 = 0;
  12871. break;
  12872. } else {
  12873. i4 = HEAP32[i10 >> 2] | 0;
  12874. if ((i4 | 0) > 31) {
  12875. _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
  12876. }
  12877. HEAP32[i1 + (i4 << 3) + 24 >> 2] = i12;
  12878. HEAP32[i1 + (i4 << 3) + 28 >> 2] = -1;
  12879. HEAP32[i10 >> 2] = i4 + 1;
  12880. i12 = _match(i1, i12, i3) | 0;
  12881. if ((i12 | 0) != 0) {
  12882. break;
  12883. }
  12884. HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
  12885. i12 = 0;
  12886. break;
  12887. }
  12888. } else if ((i7 | 0) == 16) {
  12889. i3 = i11 + 1 | 0;
  12890. i5 = HEAP32[i10 >> 2] | 0;
  12891. while (1) {
  12892. i4 = i5 + -1 | 0;
  12893. if ((i5 | 0) <= 0) {
  12894. i7 = 19;
  12895. break;
  12896. }
  12897. if ((HEAP32[i1 + (i4 << 3) + 28 >> 2] | 0) == -1) {
  12898. break;
  12899. } else {
  12900. i5 = i4;
  12901. }
  12902. }
  12903. if ((i7 | 0) == 19) {
  12904. i4 = _luaL_error(HEAP32[i9 >> 2] | 0, 7488, i8) | 0;
  12905. }
  12906. i5 = i1 + (i4 << 3) + 28 | 0;
  12907. HEAP32[i5 >> 2] = i12 - (HEAP32[i1 + (i4 << 3) + 24 >> 2] | 0);
  12908. i12 = _match(i1, i12, i3) | 0;
  12909. if ((i12 | 0) != 0) {
  12910. break;
  12911. }
  12912. HEAP32[i5 >> 2] = -1;
  12913. i12 = 0;
  12914. break;
  12915. } else if ((i7 | 0) == 23) {
  12916. i12 = (i12 | 0) == (HEAP32[i3 >> 2] | 0) ? i12 : 0;
  12917. break;
  12918. } else if ((i7 | 0) == 109) {
  12919. i4 = i22 + 1 | 0;
  12920. i8 = _match(i1, i12, i4) | 0;
  12921. if ((i8 | 0) != 0) {
  12922. i12 = i8;
  12923. break;
  12924. }
  12925. i8 = i22 + -1 | 0;
  12926. while (1) {
  12927. if (!((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0)) {
  12928. i12 = 0;
  12929. break L4;
  12930. }
  12931. i9 = HEAP8[i12] | 0;
  12932. i10 = i9 & 255;
  12933. i14 = HEAP8[i11] | 0;
  12934. i13 = i14 << 24 >> 24;
  12935. L139 : do {
  12936. if ((i13 | 0) == 91) {
  12937. i6 = (HEAP8[i21] | 0) == 94;
  12938. i13 = i6 ? i21 : i11;
  12939. i6 = i6 & 1;
  12940. i7 = i6 ^ 1;
  12941. i14 = i13 + 1 | 0;
  12942. if (i14 >>> 0 < i8 >>> 0) {
  12943. while (1) {
  12944. i17 = HEAP8[i14] | 0;
  12945. i15 = i13 + 2 | 0;
  12946. i16 = HEAP8[i15] | 0;
  12947. do {
  12948. if (i17 << 24 >> 24 == 37) {
  12949. if ((_match_class(i10, i16 & 255) | 0) == 0) {
  12950. i13 = i15;
  12951. } else {
  12952. i6 = i7;
  12953. i7 = 147;
  12954. break L139;
  12955. }
  12956. } else {
  12957. if (i16 << 24 >> 24 == 45 ? (i5 = i13 + 3 | 0, i5 >>> 0 < i8 >>> 0) : 0) {
  12958. if ((i17 & 255) > (i9 & 255)) {
  12959. i13 = i5;
  12960. break;
  12961. }
  12962. if ((HEAPU8[i5] | 0) < (i9 & 255)) {
  12963. i13 = i5;
  12964. break;
  12965. } else {
  12966. i6 = i7;
  12967. i7 = 147;
  12968. break L139;
  12969. }
  12970. }
  12971. if (i17 << 24 >> 24 == i9 << 24 >> 24) {
  12972. i6 = i7;
  12973. i7 = 147;
  12974. break L139;
  12975. } else {
  12976. i13 = i14;
  12977. }
  12978. }
  12979. } while (0);
  12980. i14 = i13 + 1 | 0;
  12981. if (!(i14 >>> 0 < i8 >>> 0)) {
  12982. i7 = 147;
  12983. break;
  12984. }
  12985. }
  12986. } else {
  12987. i7 = 147;
  12988. }
  12989. } else if ((i13 | 0) == 37) {
  12990. i6 = _match_class(i10, HEAPU8[i21] | 0) | 0;
  12991. i7 = 147;
  12992. } else if ((i13 | 0) != 46) {
  12993. i6 = i14 << 24 >> 24 == i9 << 24 >> 24 | 0;
  12994. i7 = 147;
  12995. }
  12996. } while (0);
  12997. if ((i7 | 0) == 147 ? (i7 = 0, (i6 | 0) == 0) : 0) {
  12998. i12 = 0;
  12999. break L4;
  13000. }
  13001. i9 = i12 + 1 | 0;
  13002. i12 = _match(i1, i9, i4) | 0;
  13003. if ((i12 | 0) == 0) {
  13004. i12 = i9;
  13005. } else {
  13006. break L4;
  13007. }
  13008. }
  13009. } else if ((i7 | 0) == 112) {
  13010. i19 = i12;
  13011. }
  13012. i10 = HEAP32[i3 >> 2] | 0;
  13013. if (i10 >>> 0 > i19 >>> 0) {
  13014. i5 = i22 + -1 | 0;
  13015. i8 = i19;
  13016. i6 = 0;
  13017. do {
  13018. i8 = HEAP8[i8] | 0;
  13019. i9 = i8 & 255;
  13020. i13 = HEAP8[i11] | 0;
  13021. i12 = i13 << 24 >> 24;
  13022. L183 : do {
  13023. if ((i12 | 0) == 37) {
  13024. i10 = _match_class(i9, HEAPU8[i21] | 0) | 0;
  13025. i7 = 129;
  13026. } else if ((i12 | 0) == 91) {
  13027. i7 = (HEAP8[i21] | 0) == 94;
  13028. i12 = i7 ? i21 : i11;
  13029. i10 = i7 & 1;
  13030. i7 = i10 ^ 1;
  13031. i13 = i12 + 1 | 0;
  13032. if (i13 >>> 0 < i5 >>> 0) {
  13033. while (1) {
  13034. i14 = HEAP8[i13] | 0;
  13035. i16 = i12 + 2 | 0;
  13036. i15 = HEAP8[i16] | 0;
  13037. do {
  13038. if (i14 << 24 >> 24 == 37) {
  13039. if ((_match_class(i9, i15 & 255) | 0) == 0) {
  13040. i12 = i16;
  13041. } else {
  13042. i10 = i7;
  13043. i7 = 129;
  13044. break L183;
  13045. }
  13046. } else {
  13047. if (i15 << 24 >> 24 == 45 ? (i4 = i12 + 3 | 0, i4 >>> 0 < i5 >>> 0) : 0) {
  13048. if ((i14 & 255) > (i8 & 255)) {
  13049. i12 = i4;
  13050. break;
  13051. }
  13052. if ((HEAPU8[i4] | 0) < (i8 & 255)) {
  13053. i12 = i4;
  13054. break;
  13055. } else {
  13056. i10 = i7;
  13057. i7 = 129;
  13058. break L183;
  13059. }
  13060. }
  13061. if (i14 << 24 >> 24 == i8 << 24 >> 24) {
  13062. i10 = i7;
  13063. i7 = 129;
  13064. break L183;
  13065. } else {
  13066. i12 = i13;
  13067. }
  13068. }
  13069. } while (0);
  13070. i13 = i12 + 1 | 0;
  13071. if (!(i13 >>> 0 < i5 >>> 0)) {
  13072. i7 = 129;
  13073. break;
  13074. }
  13075. }
  13076. } else {
  13077. i7 = 129;
  13078. }
  13079. } else if ((i12 | 0) != 46) {
  13080. i10 = i13 << 24 >> 24 == i8 << 24 >> 24 | 0;
  13081. i7 = 129;
  13082. }
  13083. } while (0);
  13084. if ((i7 | 0) == 129) {
  13085. i7 = 0;
  13086. if ((i10 | 0) == 0) {
  13087. break;
  13088. }
  13089. i10 = HEAP32[i3 >> 2] | 0;
  13090. }
  13091. i6 = i6 + 1 | 0;
  13092. i8 = i19 + i6 | 0;
  13093. } while (i10 >>> 0 > i8 >>> 0);
  13094. if (!((i6 | 0) > -1)) {
  13095. i12 = 0;
  13096. break;
  13097. }
  13098. } else {
  13099. i6 = 0;
  13100. }
  13101. i3 = i22 + 1 | 0;
  13102. while (1) {
  13103. i12 = _match(i1, i19 + i6 | 0, i3) | 0;
  13104. if ((i12 | 0) != 0) {
  13105. break L4;
  13106. }
  13107. if ((i6 | 0) > 0) {
  13108. i6 = i6 + -1 | 0;
  13109. } else {
  13110. i12 = 0;
  13111. break;
  13112. }
  13113. }
  13114. }
  13115. } while (0);
  13116. HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
  13117. STACKTOP = i2;
  13118. return i12 | 0;
  13119. }
  13120. function _free(i7) {
  13121. i7 = i7 | 0;
  13122. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
  13123. i1 = STACKTOP;
  13124. if ((i7 | 0) == 0) {
  13125. STACKTOP = i1;
  13126. return;
  13127. }
  13128. i15 = i7 + -8 | 0;
  13129. i16 = HEAP32[12928 >> 2] | 0;
  13130. if (i15 >>> 0 < i16 >>> 0) {
  13131. _abort();
  13132. }
  13133. i13 = HEAP32[i7 + -4 >> 2] | 0;
  13134. i12 = i13 & 3;
  13135. if ((i12 | 0) == 1) {
  13136. _abort();
  13137. }
  13138. i8 = i13 & -8;
  13139. i6 = i7 + (i8 + -8) | 0;
  13140. do {
  13141. if ((i13 & 1 | 0) == 0) {
  13142. i19 = HEAP32[i15 >> 2] | 0;
  13143. if ((i12 | 0) == 0) {
  13144. STACKTOP = i1;
  13145. return;
  13146. }
  13147. i15 = -8 - i19 | 0;
  13148. i13 = i7 + i15 | 0;
  13149. i12 = i19 + i8 | 0;
  13150. if (i13 >>> 0 < i16 >>> 0) {
  13151. _abort();
  13152. }
  13153. if ((i13 | 0) == (HEAP32[12932 >> 2] | 0)) {
  13154. i2 = i7 + (i8 + -4) | 0;
  13155. if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
  13156. i2 = i13;
  13157. i11 = i12;
  13158. break;
  13159. }
  13160. HEAP32[12920 >> 2] = i12;
  13161. HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
  13162. HEAP32[i7 + (i15 + 4) >> 2] = i12 | 1;
  13163. HEAP32[i6 >> 2] = i12;
  13164. STACKTOP = i1;
  13165. return;
  13166. }
  13167. i18 = i19 >>> 3;
  13168. if (i19 >>> 0 < 256) {
  13169. i2 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
  13170. i11 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
  13171. i14 = 12952 + (i18 << 1 << 2) | 0;
  13172. if ((i2 | 0) != (i14 | 0)) {
  13173. if (i2 >>> 0 < i16 >>> 0) {
  13174. _abort();
  13175. }
  13176. if ((HEAP32[i2 + 12 >> 2] | 0) != (i13 | 0)) {
  13177. _abort();
  13178. }
  13179. }
  13180. if ((i11 | 0) == (i2 | 0)) {
  13181. HEAP32[3228] = HEAP32[3228] & ~(1 << i18);
  13182. i2 = i13;
  13183. i11 = i12;
  13184. break;
  13185. }
  13186. if ((i11 | 0) != (i14 | 0)) {
  13187. if (i11 >>> 0 < i16 >>> 0) {
  13188. _abort();
  13189. }
  13190. i14 = i11 + 8 | 0;
  13191. if ((HEAP32[i14 >> 2] | 0) == (i13 | 0)) {
  13192. i17 = i14;
  13193. } else {
  13194. _abort();
  13195. }
  13196. } else {
  13197. i17 = i11 + 8 | 0;
  13198. }
  13199. HEAP32[i2 + 12 >> 2] = i11;
  13200. HEAP32[i17 >> 2] = i2;
  13201. i2 = i13;
  13202. i11 = i12;
  13203. break;
  13204. }
  13205. i17 = HEAP32[i7 + (i15 + 24) >> 2] | 0;
  13206. i18 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
  13207. do {
  13208. if ((i18 | 0) == (i13 | 0)) {
  13209. i19 = i7 + (i15 + 20) | 0;
  13210. i18 = HEAP32[i19 >> 2] | 0;
  13211. if ((i18 | 0) == 0) {
  13212. i19 = i7 + (i15 + 16) | 0;
  13213. i18 = HEAP32[i19 >> 2] | 0;
  13214. if ((i18 | 0) == 0) {
  13215. i14 = 0;
  13216. break;
  13217. }
  13218. }
  13219. while (1) {
  13220. i21 = i18 + 20 | 0;
  13221. i20 = HEAP32[i21 >> 2] | 0;
  13222. if ((i20 | 0) != 0) {
  13223. i18 = i20;
  13224. i19 = i21;
  13225. continue;
  13226. }
  13227. i20 = i18 + 16 | 0;
  13228. i21 = HEAP32[i20 >> 2] | 0;
  13229. if ((i21 | 0) == 0) {
  13230. break;
  13231. } else {
  13232. i18 = i21;
  13233. i19 = i20;
  13234. }
  13235. }
  13236. if (i19 >>> 0 < i16 >>> 0) {
  13237. _abort();
  13238. } else {
  13239. HEAP32[i19 >> 2] = 0;
  13240. i14 = i18;
  13241. break;
  13242. }
  13243. } else {
  13244. i19 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
  13245. if (i19 >>> 0 < i16 >>> 0) {
  13246. _abort();
  13247. }
  13248. i16 = i19 + 12 | 0;
  13249. if ((HEAP32[i16 >> 2] | 0) != (i13 | 0)) {
  13250. _abort();
  13251. }
  13252. i20 = i18 + 8 | 0;
  13253. if ((HEAP32[i20 >> 2] | 0) == (i13 | 0)) {
  13254. HEAP32[i16 >> 2] = i18;
  13255. HEAP32[i20 >> 2] = i19;
  13256. i14 = i18;
  13257. break;
  13258. } else {
  13259. _abort();
  13260. }
  13261. }
  13262. } while (0);
  13263. if ((i17 | 0) != 0) {
  13264. i18 = HEAP32[i7 + (i15 + 28) >> 2] | 0;
  13265. i16 = 13216 + (i18 << 2) | 0;
  13266. if ((i13 | 0) == (HEAP32[i16 >> 2] | 0)) {
  13267. HEAP32[i16 >> 2] = i14;
  13268. if ((i14 | 0) == 0) {
  13269. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i18);
  13270. i2 = i13;
  13271. i11 = i12;
  13272. break;
  13273. }
  13274. } else {
  13275. if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13276. _abort();
  13277. }
  13278. i16 = i17 + 16 | 0;
  13279. if ((HEAP32[i16 >> 2] | 0) == (i13 | 0)) {
  13280. HEAP32[i16 >> 2] = i14;
  13281. } else {
  13282. HEAP32[i17 + 20 >> 2] = i14;
  13283. }
  13284. if ((i14 | 0) == 0) {
  13285. i2 = i13;
  13286. i11 = i12;
  13287. break;
  13288. }
  13289. }
  13290. if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13291. _abort();
  13292. }
  13293. HEAP32[i14 + 24 >> 2] = i17;
  13294. i16 = HEAP32[i7 + (i15 + 16) >> 2] | 0;
  13295. do {
  13296. if ((i16 | 0) != 0) {
  13297. if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13298. _abort();
  13299. } else {
  13300. HEAP32[i14 + 16 >> 2] = i16;
  13301. HEAP32[i16 + 24 >> 2] = i14;
  13302. break;
  13303. }
  13304. }
  13305. } while (0);
  13306. i15 = HEAP32[i7 + (i15 + 20) >> 2] | 0;
  13307. if ((i15 | 0) != 0) {
  13308. if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13309. _abort();
  13310. } else {
  13311. HEAP32[i14 + 20 >> 2] = i15;
  13312. HEAP32[i15 + 24 >> 2] = i14;
  13313. i2 = i13;
  13314. i11 = i12;
  13315. break;
  13316. }
  13317. } else {
  13318. i2 = i13;
  13319. i11 = i12;
  13320. }
  13321. } else {
  13322. i2 = i13;
  13323. i11 = i12;
  13324. }
  13325. } else {
  13326. i2 = i15;
  13327. i11 = i8;
  13328. }
  13329. } while (0);
  13330. if (!(i2 >>> 0 < i6 >>> 0)) {
  13331. _abort();
  13332. }
  13333. i12 = i7 + (i8 + -4) | 0;
  13334. i13 = HEAP32[i12 >> 2] | 0;
  13335. if ((i13 & 1 | 0) == 0) {
  13336. _abort();
  13337. }
  13338. if ((i13 & 2 | 0) == 0) {
  13339. if ((i6 | 0) == (HEAP32[12936 >> 2] | 0)) {
  13340. i21 = (HEAP32[12924 >> 2] | 0) + i11 | 0;
  13341. HEAP32[12924 >> 2] = i21;
  13342. HEAP32[12936 >> 2] = i2;
  13343. HEAP32[i2 + 4 >> 2] = i21 | 1;
  13344. if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
  13345. STACKTOP = i1;
  13346. return;
  13347. }
  13348. HEAP32[12932 >> 2] = 0;
  13349. HEAP32[12920 >> 2] = 0;
  13350. STACKTOP = i1;
  13351. return;
  13352. }
  13353. if ((i6 | 0) == (HEAP32[12932 >> 2] | 0)) {
  13354. i21 = (HEAP32[12920 >> 2] | 0) + i11 | 0;
  13355. HEAP32[12920 >> 2] = i21;
  13356. HEAP32[12932 >> 2] = i2;
  13357. HEAP32[i2 + 4 >> 2] = i21 | 1;
  13358. HEAP32[i2 + i21 >> 2] = i21;
  13359. STACKTOP = i1;
  13360. return;
  13361. }
  13362. i11 = (i13 & -8) + i11 | 0;
  13363. i12 = i13 >>> 3;
  13364. do {
  13365. if (!(i13 >>> 0 < 256)) {
  13366. i10 = HEAP32[i7 + (i8 + 16) >> 2] | 0;
  13367. i15 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
  13368. do {
  13369. if ((i15 | 0) == (i6 | 0)) {
  13370. i13 = i7 + (i8 + 12) | 0;
  13371. i12 = HEAP32[i13 >> 2] | 0;
  13372. if ((i12 | 0) == 0) {
  13373. i13 = i7 + (i8 + 8) | 0;
  13374. i12 = HEAP32[i13 >> 2] | 0;
  13375. if ((i12 | 0) == 0) {
  13376. i9 = 0;
  13377. break;
  13378. }
  13379. }
  13380. while (1) {
  13381. i14 = i12 + 20 | 0;
  13382. i15 = HEAP32[i14 >> 2] | 0;
  13383. if ((i15 | 0) != 0) {
  13384. i12 = i15;
  13385. i13 = i14;
  13386. continue;
  13387. }
  13388. i14 = i12 + 16 | 0;
  13389. i15 = HEAP32[i14 >> 2] | 0;
  13390. if ((i15 | 0) == 0) {
  13391. break;
  13392. } else {
  13393. i12 = i15;
  13394. i13 = i14;
  13395. }
  13396. }
  13397. if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13398. _abort();
  13399. } else {
  13400. HEAP32[i13 >> 2] = 0;
  13401. i9 = i12;
  13402. break;
  13403. }
  13404. } else {
  13405. i13 = HEAP32[i7 + i8 >> 2] | 0;
  13406. if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13407. _abort();
  13408. }
  13409. i14 = i13 + 12 | 0;
  13410. if ((HEAP32[i14 >> 2] | 0) != (i6 | 0)) {
  13411. _abort();
  13412. }
  13413. i12 = i15 + 8 | 0;
  13414. if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
  13415. HEAP32[i14 >> 2] = i15;
  13416. HEAP32[i12 >> 2] = i13;
  13417. i9 = i15;
  13418. break;
  13419. } else {
  13420. _abort();
  13421. }
  13422. }
  13423. } while (0);
  13424. if ((i10 | 0) != 0) {
  13425. i12 = HEAP32[i7 + (i8 + 20) >> 2] | 0;
  13426. i13 = 13216 + (i12 << 2) | 0;
  13427. if ((i6 | 0) == (HEAP32[i13 >> 2] | 0)) {
  13428. HEAP32[i13 >> 2] = i9;
  13429. if ((i9 | 0) == 0) {
  13430. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i12);
  13431. break;
  13432. }
  13433. } else {
  13434. if (i10 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13435. _abort();
  13436. }
  13437. i12 = i10 + 16 | 0;
  13438. if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
  13439. HEAP32[i12 >> 2] = i9;
  13440. } else {
  13441. HEAP32[i10 + 20 >> 2] = i9;
  13442. }
  13443. if ((i9 | 0) == 0) {
  13444. break;
  13445. }
  13446. }
  13447. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13448. _abort();
  13449. }
  13450. HEAP32[i9 + 24 >> 2] = i10;
  13451. i6 = HEAP32[i7 + (i8 + 8) >> 2] | 0;
  13452. do {
  13453. if ((i6 | 0) != 0) {
  13454. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13455. _abort();
  13456. } else {
  13457. HEAP32[i9 + 16 >> 2] = i6;
  13458. HEAP32[i6 + 24 >> 2] = i9;
  13459. break;
  13460. }
  13461. }
  13462. } while (0);
  13463. i6 = HEAP32[i7 + (i8 + 12) >> 2] | 0;
  13464. if ((i6 | 0) != 0) {
  13465. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13466. _abort();
  13467. } else {
  13468. HEAP32[i9 + 20 >> 2] = i6;
  13469. HEAP32[i6 + 24 >> 2] = i9;
  13470. break;
  13471. }
  13472. }
  13473. }
  13474. } else {
  13475. i9 = HEAP32[i7 + i8 >> 2] | 0;
  13476. i7 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
  13477. i8 = 12952 + (i12 << 1 << 2) | 0;
  13478. if ((i9 | 0) != (i8 | 0)) {
  13479. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13480. _abort();
  13481. }
  13482. if ((HEAP32[i9 + 12 >> 2] | 0) != (i6 | 0)) {
  13483. _abort();
  13484. }
  13485. }
  13486. if ((i7 | 0) == (i9 | 0)) {
  13487. HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
  13488. break;
  13489. }
  13490. if ((i7 | 0) != (i8 | 0)) {
  13491. if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13492. _abort();
  13493. }
  13494. i8 = i7 + 8 | 0;
  13495. if ((HEAP32[i8 >> 2] | 0) == (i6 | 0)) {
  13496. i10 = i8;
  13497. } else {
  13498. _abort();
  13499. }
  13500. } else {
  13501. i10 = i7 + 8 | 0;
  13502. }
  13503. HEAP32[i9 + 12 >> 2] = i7;
  13504. HEAP32[i10 >> 2] = i9;
  13505. }
  13506. } while (0);
  13507. HEAP32[i2 + 4 >> 2] = i11 | 1;
  13508. HEAP32[i2 + i11 >> 2] = i11;
  13509. if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
  13510. HEAP32[12920 >> 2] = i11;
  13511. STACKTOP = i1;
  13512. return;
  13513. }
  13514. } else {
  13515. HEAP32[i12 >> 2] = i13 & -2;
  13516. HEAP32[i2 + 4 >> 2] = i11 | 1;
  13517. HEAP32[i2 + i11 >> 2] = i11;
  13518. }
  13519. i6 = i11 >>> 3;
  13520. if (i11 >>> 0 < 256) {
  13521. i7 = i6 << 1;
  13522. i3 = 12952 + (i7 << 2) | 0;
  13523. i8 = HEAP32[3228] | 0;
  13524. i6 = 1 << i6;
  13525. if ((i8 & i6 | 0) != 0) {
  13526. i6 = 12952 + (i7 + 2 << 2) | 0;
  13527. i7 = HEAP32[i6 >> 2] | 0;
  13528. if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13529. _abort();
  13530. } else {
  13531. i4 = i6;
  13532. i5 = i7;
  13533. }
  13534. } else {
  13535. HEAP32[3228] = i8 | i6;
  13536. i4 = 12952 + (i7 + 2 << 2) | 0;
  13537. i5 = i3;
  13538. }
  13539. HEAP32[i4 >> 2] = i2;
  13540. HEAP32[i5 + 12 >> 2] = i2;
  13541. HEAP32[i2 + 8 >> 2] = i5;
  13542. HEAP32[i2 + 12 >> 2] = i3;
  13543. STACKTOP = i1;
  13544. return;
  13545. }
  13546. i4 = i11 >>> 8;
  13547. if ((i4 | 0) != 0) {
  13548. if (i11 >>> 0 > 16777215) {
  13549. i4 = 31;
  13550. } else {
  13551. i20 = (i4 + 1048320 | 0) >>> 16 & 8;
  13552. i21 = i4 << i20;
  13553. i19 = (i21 + 520192 | 0) >>> 16 & 4;
  13554. i21 = i21 << i19;
  13555. i4 = (i21 + 245760 | 0) >>> 16 & 2;
  13556. i4 = 14 - (i19 | i20 | i4) + (i21 << i4 >>> 15) | 0;
  13557. i4 = i11 >>> (i4 + 7 | 0) & 1 | i4 << 1;
  13558. }
  13559. } else {
  13560. i4 = 0;
  13561. }
  13562. i5 = 13216 + (i4 << 2) | 0;
  13563. HEAP32[i2 + 28 >> 2] = i4;
  13564. HEAP32[i2 + 20 >> 2] = 0;
  13565. HEAP32[i2 + 16 >> 2] = 0;
  13566. i7 = HEAP32[12916 >> 2] | 0;
  13567. i6 = 1 << i4;
  13568. L199 : do {
  13569. if ((i7 & i6 | 0) != 0) {
  13570. i5 = HEAP32[i5 >> 2] | 0;
  13571. if ((i4 | 0) == 31) {
  13572. i4 = 0;
  13573. } else {
  13574. i4 = 25 - (i4 >>> 1) | 0;
  13575. }
  13576. L204 : do {
  13577. if ((HEAP32[i5 + 4 >> 2] & -8 | 0) != (i11 | 0)) {
  13578. i4 = i11 << i4;
  13579. i7 = i5;
  13580. while (1) {
  13581. i6 = i7 + (i4 >>> 31 << 2) + 16 | 0;
  13582. i5 = HEAP32[i6 >> 2] | 0;
  13583. if ((i5 | 0) == 0) {
  13584. break;
  13585. }
  13586. if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i11 | 0)) {
  13587. i3 = i5;
  13588. break L204;
  13589. } else {
  13590. i4 = i4 << 1;
  13591. i7 = i5;
  13592. }
  13593. }
  13594. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13595. _abort();
  13596. } else {
  13597. HEAP32[i6 >> 2] = i2;
  13598. HEAP32[i2 + 24 >> 2] = i7;
  13599. HEAP32[i2 + 12 >> 2] = i2;
  13600. HEAP32[i2 + 8 >> 2] = i2;
  13601. break L199;
  13602. }
  13603. } else {
  13604. i3 = i5;
  13605. }
  13606. } while (0);
  13607. i5 = i3 + 8 | 0;
  13608. i4 = HEAP32[i5 >> 2] | 0;
  13609. i6 = HEAP32[12928 >> 2] | 0;
  13610. if (i3 >>> 0 < i6 >>> 0) {
  13611. _abort();
  13612. }
  13613. if (i4 >>> 0 < i6 >>> 0) {
  13614. _abort();
  13615. } else {
  13616. HEAP32[i4 + 12 >> 2] = i2;
  13617. HEAP32[i5 >> 2] = i2;
  13618. HEAP32[i2 + 8 >> 2] = i4;
  13619. HEAP32[i2 + 12 >> 2] = i3;
  13620. HEAP32[i2 + 24 >> 2] = 0;
  13621. break;
  13622. }
  13623. } else {
  13624. HEAP32[12916 >> 2] = i7 | i6;
  13625. HEAP32[i5 >> 2] = i2;
  13626. HEAP32[i2 + 24 >> 2] = i5;
  13627. HEAP32[i2 + 12 >> 2] = i2;
  13628. HEAP32[i2 + 8 >> 2] = i2;
  13629. }
  13630. } while (0);
  13631. i21 = (HEAP32[12944 >> 2] | 0) + -1 | 0;
  13632. HEAP32[12944 >> 2] = i21;
  13633. if ((i21 | 0) == 0) {
  13634. i2 = 13368 | 0;
  13635. } else {
  13636. STACKTOP = i1;
  13637. return;
  13638. }
  13639. while (1) {
  13640. i2 = HEAP32[i2 >> 2] | 0;
  13641. if ((i2 | 0) == 0) {
  13642. break;
  13643. } else {
  13644. i2 = i2 + 8 | 0;
  13645. }
  13646. }
  13647. HEAP32[12944 >> 2] = -1;
  13648. STACKTOP = i1;
  13649. return;
  13650. }
  13651. function _dispose_chunk(i6, i7) {
  13652. i6 = i6 | 0;
  13653. i7 = i7 | 0;
  13654. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
  13655. i1 = STACKTOP;
  13656. i5 = i6 + i7 | 0;
  13657. i10 = HEAP32[i6 + 4 >> 2] | 0;
  13658. do {
  13659. if ((i10 & 1 | 0) == 0) {
  13660. i14 = HEAP32[i6 >> 2] | 0;
  13661. if ((i10 & 3 | 0) == 0) {
  13662. STACKTOP = i1;
  13663. return;
  13664. }
  13665. i10 = i6 + (0 - i14) | 0;
  13666. i11 = i14 + i7 | 0;
  13667. i15 = HEAP32[12928 >> 2] | 0;
  13668. if (i10 >>> 0 < i15 >>> 0) {
  13669. _abort();
  13670. }
  13671. if ((i10 | 0) == (HEAP32[12932 >> 2] | 0)) {
  13672. i2 = i6 + (i7 + 4) | 0;
  13673. if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
  13674. i2 = i10;
  13675. i12 = i11;
  13676. break;
  13677. }
  13678. HEAP32[12920 >> 2] = i11;
  13679. HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
  13680. HEAP32[i6 + (4 - i14) >> 2] = i11 | 1;
  13681. HEAP32[i5 >> 2] = i11;
  13682. STACKTOP = i1;
  13683. return;
  13684. }
  13685. i17 = i14 >>> 3;
  13686. if (i14 >>> 0 < 256) {
  13687. i2 = HEAP32[i6 + (8 - i14) >> 2] | 0;
  13688. i12 = HEAP32[i6 + (12 - i14) >> 2] | 0;
  13689. i13 = 12952 + (i17 << 1 << 2) | 0;
  13690. if ((i2 | 0) != (i13 | 0)) {
  13691. if (i2 >>> 0 < i15 >>> 0) {
  13692. _abort();
  13693. }
  13694. if ((HEAP32[i2 + 12 >> 2] | 0) != (i10 | 0)) {
  13695. _abort();
  13696. }
  13697. }
  13698. if ((i12 | 0) == (i2 | 0)) {
  13699. HEAP32[3228] = HEAP32[3228] & ~(1 << i17);
  13700. i2 = i10;
  13701. i12 = i11;
  13702. break;
  13703. }
  13704. if ((i12 | 0) != (i13 | 0)) {
  13705. if (i12 >>> 0 < i15 >>> 0) {
  13706. _abort();
  13707. }
  13708. i13 = i12 + 8 | 0;
  13709. if ((HEAP32[i13 >> 2] | 0) == (i10 | 0)) {
  13710. i16 = i13;
  13711. } else {
  13712. _abort();
  13713. }
  13714. } else {
  13715. i16 = i12 + 8 | 0;
  13716. }
  13717. HEAP32[i2 + 12 >> 2] = i12;
  13718. HEAP32[i16 >> 2] = i2;
  13719. i2 = i10;
  13720. i12 = i11;
  13721. break;
  13722. }
  13723. i16 = HEAP32[i6 + (24 - i14) >> 2] | 0;
  13724. i18 = HEAP32[i6 + (12 - i14) >> 2] | 0;
  13725. do {
  13726. if ((i18 | 0) == (i10 | 0)) {
  13727. i19 = 16 - i14 | 0;
  13728. i18 = i6 + (i19 + 4) | 0;
  13729. i17 = HEAP32[i18 >> 2] | 0;
  13730. if ((i17 | 0) == 0) {
  13731. i18 = i6 + i19 | 0;
  13732. i17 = HEAP32[i18 >> 2] | 0;
  13733. if ((i17 | 0) == 0) {
  13734. i13 = 0;
  13735. break;
  13736. }
  13737. }
  13738. while (1) {
  13739. i19 = i17 + 20 | 0;
  13740. i20 = HEAP32[i19 >> 2] | 0;
  13741. if ((i20 | 0) != 0) {
  13742. i17 = i20;
  13743. i18 = i19;
  13744. continue;
  13745. }
  13746. i20 = i17 + 16 | 0;
  13747. i19 = HEAP32[i20 >> 2] | 0;
  13748. if ((i19 | 0) == 0) {
  13749. break;
  13750. } else {
  13751. i17 = i19;
  13752. i18 = i20;
  13753. }
  13754. }
  13755. if (i18 >>> 0 < i15 >>> 0) {
  13756. _abort();
  13757. } else {
  13758. HEAP32[i18 >> 2] = 0;
  13759. i13 = i17;
  13760. break;
  13761. }
  13762. } else {
  13763. i17 = HEAP32[i6 + (8 - i14) >> 2] | 0;
  13764. if (i17 >>> 0 < i15 >>> 0) {
  13765. _abort();
  13766. }
  13767. i19 = i17 + 12 | 0;
  13768. if ((HEAP32[i19 >> 2] | 0) != (i10 | 0)) {
  13769. _abort();
  13770. }
  13771. i15 = i18 + 8 | 0;
  13772. if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
  13773. HEAP32[i19 >> 2] = i18;
  13774. HEAP32[i15 >> 2] = i17;
  13775. i13 = i18;
  13776. break;
  13777. } else {
  13778. _abort();
  13779. }
  13780. }
  13781. } while (0);
  13782. if ((i16 | 0) != 0) {
  13783. i15 = HEAP32[i6 + (28 - i14) >> 2] | 0;
  13784. i17 = 13216 + (i15 << 2) | 0;
  13785. if ((i10 | 0) == (HEAP32[i17 >> 2] | 0)) {
  13786. HEAP32[i17 >> 2] = i13;
  13787. if ((i13 | 0) == 0) {
  13788. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i15);
  13789. i2 = i10;
  13790. i12 = i11;
  13791. break;
  13792. }
  13793. } else {
  13794. if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13795. _abort();
  13796. }
  13797. i15 = i16 + 16 | 0;
  13798. if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
  13799. HEAP32[i15 >> 2] = i13;
  13800. } else {
  13801. HEAP32[i16 + 20 >> 2] = i13;
  13802. }
  13803. if ((i13 | 0) == 0) {
  13804. i2 = i10;
  13805. i12 = i11;
  13806. break;
  13807. }
  13808. }
  13809. if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13810. _abort();
  13811. }
  13812. HEAP32[i13 + 24 >> 2] = i16;
  13813. i14 = 16 - i14 | 0;
  13814. i15 = HEAP32[i6 + i14 >> 2] | 0;
  13815. do {
  13816. if ((i15 | 0) != 0) {
  13817. if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13818. _abort();
  13819. } else {
  13820. HEAP32[i13 + 16 >> 2] = i15;
  13821. HEAP32[i15 + 24 >> 2] = i13;
  13822. break;
  13823. }
  13824. }
  13825. } while (0);
  13826. i14 = HEAP32[i6 + (i14 + 4) >> 2] | 0;
  13827. if ((i14 | 0) != 0) {
  13828. if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13829. _abort();
  13830. } else {
  13831. HEAP32[i13 + 20 >> 2] = i14;
  13832. HEAP32[i14 + 24 >> 2] = i13;
  13833. i2 = i10;
  13834. i12 = i11;
  13835. break;
  13836. }
  13837. } else {
  13838. i2 = i10;
  13839. i12 = i11;
  13840. }
  13841. } else {
  13842. i2 = i10;
  13843. i12 = i11;
  13844. }
  13845. } else {
  13846. i2 = i6;
  13847. i12 = i7;
  13848. }
  13849. } while (0);
  13850. i10 = HEAP32[12928 >> 2] | 0;
  13851. if (i5 >>> 0 < i10 >>> 0) {
  13852. _abort();
  13853. }
  13854. i11 = i6 + (i7 + 4) | 0;
  13855. i13 = HEAP32[i11 >> 2] | 0;
  13856. if ((i13 & 2 | 0) == 0) {
  13857. if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
  13858. i20 = (HEAP32[12924 >> 2] | 0) + i12 | 0;
  13859. HEAP32[12924 >> 2] = i20;
  13860. HEAP32[12936 >> 2] = i2;
  13861. HEAP32[i2 + 4 >> 2] = i20 | 1;
  13862. if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
  13863. STACKTOP = i1;
  13864. return;
  13865. }
  13866. HEAP32[12932 >> 2] = 0;
  13867. HEAP32[12920 >> 2] = 0;
  13868. STACKTOP = i1;
  13869. return;
  13870. }
  13871. if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
  13872. i20 = (HEAP32[12920 >> 2] | 0) + i12 | 0;
  13873. HEAP32[12920 >> 2] = i20;
  13874. HEAP32[12932 >> 2] = i2;
  13875. HEAP32[i2 + 4 >> 2] = i20 | 1;
  13876. HEAP32[i2 + i20 >> 2] = i20;
  13877. STACKTOP = i1;
  13878. return;
  13879. }
  13880. i12 = (i13 & -8) + i12 | 0;
  13881. i11 = i13 >>> 3;
  13882. do {
  13883. if (!(i13 >>> 0 < 256)) {
  13884. i9 = HEAP32[i6 + (i7 + 24) >> 2] | 0;
  13885. i11 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
  13886. do {
  13887. if ((i11 | 0) == (i5 | 0)) {
  13888. i13 = i6 + (i7 + 20) | 0;
  13889. i11 = HEAP32[i13 >> 2] | 0;
  13890. if ((i11 | 0) == 0) {
  13891. i13 = i6 + (i7 + 16) | 0;
  13892. i11 = HEAP32[i13 >> 2] | 0;
  13893. if ((i11 | 0) == 0) {
  13894. i8 = 0;
  13895. break;
  13896. }
  13897. }
  13898. while (1) {
  13899. i15 = i11 + 20 | 0;
  13900. i14 = HEAP32[i15 >> 2] | 0;
  13901. if ((i14 | 0) != 0) {
  13902. i11 = i14;
  13903. i13 = i15;
  13904. continue;
  13905. }
  13906. i14 = i11 + 16 | 0;
  13907. i15 = HEAP32[i14 >> 2] | 0;
  13908. if ((i15 | 0) == 0) {
  13909. break;
  13910. } else {
  13911. i11 = i15;
  13912. i13 = i14;
  13913. }
  13914. }
  13915. if (i13 >>> 0 < i10 >>> 0) {
  13916. _abort();
  13917. } else {
  13918. HEAP32[i13 >> 2] = 0;
  13919. i8 = i11;
  13920. break;
  13921. }
  13922. } else {
  13923. i13 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
  13924. if (i13 >>> 0 < i10 >>> 0) {
  13925. _abort();
  13926. }
  13927. i10 = i13 + 12 | 0;
  13928. if ((HEAP32[i10 >> 2] | 0) != (i5 | 0)) {
  13929. _abort();
  13930. }
  13931. i14 = i11 + 8 | 0;
  13932. if ((HEAP32[i14 >> 2] | 0) == (i5 | 0)) {
  13933. HEAP32[i10 >> 2] = i11;
  13934. HEAP32[i14 >> 2] = i13;
  13935. i8 = i11;
  13936. break;
  13937. } else {
  13938. _abort();
  13939. }
  13940. }
  13941. } while (0);
  13942. if ((i9 | 0) != 0) {
  13943. i10 = HEAP32[i6 + (i7 + 28) >> 2] | 0;
  13944. i11 = 13216 + (i10 << 2) | 0;
  13945. if ((i5 | 0) == (HEAP32[i11 >> 2] | 0)) {
  13946. HEAP32[i11 >> 2] = i8;
  13947. if ((i8 | 0) == 0) {
  13948. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
  13949. break;
  13950. }
  13951. } else {
  13952. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13953. _abort();
  13954. }
  13955. i10 = i9 + 16 | 0;
  13956. if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
  13957. HEAP32[i10 >> 2] = i8;
  13958. } else {
  13959. HEAP32[i9 + 20 >> 2] = i8;
  13960. }
  13961. if ((i8 | 0) == 0) {
  13962. break;
  13963. }
  13964. }
  13965. if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13966. _abort();
  13967. }
  13968. HEAP32[i8 + 24 >> 2] = i9;
  13969. i5 = HEAP32[i6 + (i7 + 16) >> 2] | 0;
  13970. do {
  13971. if ((i5 | 0) != 0) {
  13972. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13973. _abort();
  13974. } else {
  13975. HEAP32[i8 + 16 >> 2] = i5;
  13976. HEAP32[i5 + 24 >> 2] = i8;
  13977. break;
  13978. }
  13979. }
  13980. } while (0);
  13981. i5 = HEAP32[i6 + (i7 + 20) >> 2] | 0;
  13982. if ((i5 | 0) != 0) {
  13983. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  13984. _abort();
  13985. } else {
  13986. HEAP32[i8 + 20 >> 2] = i5;
  13987. HEAP32[i5 + 24 >> 2] = i8;
  13988. break;
  13989. }
  13990. }
  13991. }
  13992. } else {
  13993. i8 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
  13994. i6 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
  13995. i7 = 12952 + (i11 << 1 << 2) | 0;
  13996. if ((i8 | 0) != (i7 | 0)) {
  13997. if (i8 >>> 0 < i10 >>> 0) {
  13998. _abort();
  13999. }
  14000. if ((HEAP32[i8 + 12 >> 2] | 0) != (i5 | 0)) {
  14001. _abort();
  14002. }
  14003. }
  14004. if ((i6 | 0) == (i8 | 0)) {
  14005. HEAP32[3228] = HEAP32[3228] & ~(1 << i11);
  14006. break;
  14007. }
  14008. if ((i6 | 0) != (i7 | 0)) {
  14009. if (i6 >>> 0 < i10 >>> 0) {
  14010. _abort();
  14011. }
  14012. i7 = i6 + 8 | 0;
  14013. if ((HEAP32[i7 >> 2] | 0) == (i5 | 0)) {
  14014. i9 = i7;
  14015. } else {
  14016. _abort();
  14017. }
  14018. } else {
  14019. i9 = i6 + 8 | 0;
  14020. }
  14021. HEAP32[i8 + 12 >> 2] = i6;
  14022. HEAP32[i9 >> 2] = i8;
  14023. }
  14024. } while (0);
  14025. HEAP32[i2 + 4 >> 2] = i12 | 1;
  14026. HEAP32[i2 + i12 >> 2] = i12;
  14027. if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
  14028. HEAP32[12920 >> 2] = i12;
  14029. STACKTOP = i1;
  14030. return;
  14031. }
  14032. } else {
  14033. HEAP32[i11 >> 2] = i13 & -2;
  14034. HEAP32[i2 + 4 >> 2] = i12 | 1;
  14035. HEAP32[i2 + i12 >> 2] = i12;
  14036. }
  14037. i6 = i12 >>> 3;
  14038. if (i12 >>> 0 < 256) {
  14039. i7 = i6 << 1;
  14040. i5 = 12952 + (i7 << 2) | 0;
  14041. i8 = HEAP32[3228] | 0;
  14042. i6 = 1 << i6;
  14043. if ((i8 & i6 | 0) != 0) {
  14044. i7 = 12952 + (i7 + 2 << 2) | 0;
  14045. i6 = HEAP32[i7 >> 2] | 0;
  14046. if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  14047. _abort();
  14048. } else {
  14049. i4 = i7;
  14050. i3 = i6;
  14051. }
  14052. } else {
  14053. HEAP32[3228] = i8 | i6;
  14054. i4 = 12952 + (i7 + 2 << 2) | 0;
  14055. i3 = i5;
  14056. }
  14057. HEAP32[i4 >> 2] = i2;
  14058. HEAP32[i3 + 12 >> 2] = i2;
  14059. HEAP32[i2 + 8 >> 2] = i3;
  14060. HEAP32[i2 + 12 >> 2] = i5;
  14061. STACKTOP = i1;
  14062. return;
  14063. }
  14064. i3 = i12 >>> 8;
  14065. if ((i3 | 0) != 0) {
  14066. if (i12 >>> 0 > 16777215) {
  14067. i3 = 31;
  14068. } else {
  14069. i19 = (i3 + 1048320 | 0) >>> 16 & 8;
  14070. i20 = i3 << i19;
  14071. i18 = (i20 + 520192 | 0) >>> 16 & 4;
  14072. i20 = i20 << i18;
  14073. i3 = (i20 + 245760 | 0) >>> 16 & 2;
  14074. i3 = 14 - (i18 | i19 | i3) + (i20 << i3 >>> 15) | 0;
  14075. i3 = i12 >>> (i3 + 7 | 0) & 1 | i3 << 1;
  14076. }
  14077. } else {
  14078. i3 = 0;
  14079. }
  14080. i6 = 13216 + (i3 << 2) | 0;
  14081. HEAP32[i2 + 28 >> 2] = i3;
  14082. HEAP32[i2 + 20 >> 2] = 0;
  14083. HEAP32[i2 + 16 >> 2] = 0;
  14084. i5 = HEAP32[12916 >> 2] | 0;
  14085. i4 = 1 << i3;
  14086. if ((i5 & i4 | 0) == 0) {
  14087. HEAP32[12916 >> 2] = i5 | i4;
  14088. HEAP32[i6 >> 2] = i2;
  14089. HEAP32[i2 + 24 >> 2] = i6;
  14090. HEAP32[i2 + 12 >> 2] = i2;
  14091. HEAP32[i2 + 8 >> 2] = i2;
  14092. STACKTOP = i1;
  14093. return;
  14094. }
  14095. i4 = HEAP32[i6 >> 2] | 0;
  14096. if ((i3 | 0) == 31) {
  14097. i3 = 0;
  14098. } else {
  14099. i3 = 25 - (i3 >>> 1) | 0;
  14100. }
  14101. L194 : do {
  14102. if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i12 | 0)) {
  14103. i3 = i12 << i3;
  14104. i6 = i4;
  14105. while (1) {
  14106. i5 = i6 + (i3 >>> 31 << 2) + 16 | 0;
  14107. i4 = HEAP32[i5 >> 2] | 0;
  14108. if ((i4 | 0) == 0) {
  14109. break;
  14110. }
  14111. if ((HEAP32[i4 + 4 >> 2] & -8 | 0) == (i12 | 0)) {
  14112. break L194;
  14113. } else {
  14114. i3 = i3 << 1;
  14115. i6 = i4;
  14116. }
  14117. }
  14118. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  14119. _abort();
  14120. }
  14121. HEAP32[i5 >> 2] = i2;
  14122. HEAP32[i2 + 24 >> 2] = i6;
  14123. HEAP32[i2 + 12 >> 2] = i2;
  14124. HEAP32[i2 + 8 >> 2] = i2;
  14125. STACKTOP = i1;
  14126. return;
  14127. }
  14128. } while (0);
  14129. i3 = i4 + 8 | 0;
  14130. i6 = HEAP32[i3 >> 2] | 0;
  14131. i5 = HEAP32[12928 >> 2] | 0;
  14132. if (i4 >>> 0 < i5 >>> 0) {
  14133. _abort();
  14134. }
  14135. if (i6 >>> 0 < i5 >>> 0) {
  14136. _abort();
  14137. }
  14138. HEAP32[i6 + 12 >> 2] = i2;
  14139. HEAP32[i3 >> 2] = i2;
  14140. HEAP32[i2 + 8 >> 2] = i6;
  14141. HEAP32[i2 + 12 >> 2] = i4;
  14142. HEAP32[i2 + 24 >> 2] = 0;
  14143. STACKTOP = i1;
  14144. return;
  14145. }
  14146. function _singlestep(i2) {
  14147. i2 = i2 | 0;
  14148. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
  14149. i1 = STACKTOP;
  14150. STACKTOP = STACKTOP + 16 | 0;
  14151. i14 = i1;
  14152. i3 = i2 + 12 | 0;
  14153. i8 = HEAP32[i3 >> 2] | 0;
  14154. i6 = i8 + 61 | 0;
  14155. switch (HEAPU8[i6] | 0) {
  14156. case 0:
  14157. {
  14158. if ((HEAP32[i8 + 84 >> 2] | 0) != 0) {
  14159. i21 = i8 + 16 | 0;
  14160. i22 = HEAP32[i21 >> 2] | 0;
  14161. _propagatemark(i8);
  14162. i22 = (HEAP32[i21 >> 2] | 0) - i22 | 0;
  14163. STACKTOP = i1;
  14164. return i22 | 0;
  14165. }
  14166. HEAP8[i6] = 1;
  14167. i6 = i8 + 20 | 0;
  14168. HEAP32[i6 >> 2] = HEAP32[i8 + 16 >> 2];
  14169. i8 = HEAP32[i3 >> 2] | 0;
  14170. i7 = i8 + 16 | 0;
  14171. i14 = HEAP32[i7 >> 2] | 0;
  14172. if ((i2 | 0) != 0 ? !((HEAP8[i2 + 5 | 0] & 3) == 0) : 0) {
  14173. _reallymarkobject(i8, i2);
  14174. }
  14175. if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i13 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i13 + 5 | 0] & 3) == 0)) : 0) {
  14176. _reallymarkobject(i8, i13);
  14177. }
  14178. _markmt(i8);
  14179. i13 = i8 + 112 | 0;
  14180. i15 = HEAP32[i8 + 132 >> 2] | 0;
  14181. if ((i15 | 0) != (i13 | 0)) {
  14182. do {
  14183. if (((HEAP8[i15 + 5 | 0] & 7) == 0 ? (i12 = HEAP32[i15 + 8 >> 2] | 0, (HEAP32[i12 + 8 >> 2] & 64 | 0) != 0) : 0) ? (i11 = HEAP32[i12 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
  14184. _reallymarkobject(i8, i11);
  14185. }
  14186. i15 = HEAP32[i15 + 20 >> 2] | 0;
  14187. } while ((i15 | 0) != (i13 | 0));
  14188. }
  14189. i16 = i8 + 84 | 0;
  14190. if ((HEAP32[i16 >> 2] | 0) != 0) {
  14191. do {
  14192. _propagatemark(i8);
  14193. } while ((HEAP32[i16 >> 2] | 0) != 0);
  14194. }
  14195. i17 = (HEAP32[i7 >> 2] | 0) - i14 | 0;
  14196. i11 = i8 + 92 | 0;
  14197. i12 = HEAP32[i11 >> 2] | 0;
  14198. i21 = i8 + 88 | 0;
  14199. i22 = HEAP32[i21 >> 2] | 0;
  14200. i15 = i8 + 96 | 0;
  14201. i13 = HEAP32[i15 >> 2] | 0;
  14202. HEAP32[i15 >> 2] = 0;
  14203. HEAP32[i21 >> 2] = 0;
  14204. HEAP32[i11 >> 2] = 0;
  14205. HEAP32[i16 >> 2] = i22;
  14206. if ((i22 | 0) != 0) {
  14207. do {
  14208. _propagatemark(i8);
  14209. } while ((HEAP32[i16 >> 2] | 0) != 0);
  14210. }
  14211. HEAP32[i16 >> 2] = i12;
  14212. if ((i12 | 0) != 0) {
  14213. do {
  14214. _propagatemark(i8);
  14215. } while ((HEAP32[i16 >> 2] | 0) != 0);
  14216. }
  14217. HEAP32[i16 >> 2] = i13;
  14218. if ((i13 | 0) != 0) {
  14219. do {
  14220. _propagatemark(i8);
  14221. } while ((HEAP32[i16 >> 2] | 0) != 0);
  14222. }
  14223. i18 = HEAP32[i7 >> 2] | 0;
  14224. while (1) {
  14225. i13 = HEAP32[i15 >> 2] | 0;
  14226. HEAP32[i15 >> 2] = 0;
  14227. i12 = 0;
  14228. L42 : while (1) {
  14229. i14 = i13;
  14230. while (1) {
  14231. if ((i14 | 0) == 0) {
  14232. break L42;
  14233. }
  14234. i13 = HEAP32[i14 + 24 >> 2] | 0;
  14235. if ((_traverseephemeron(i8, i14) | 0) == 0) {
  14236. i14 = i13;
  14237. } else {
  14238. break;
  14239. }
  14240. }
  14241. if ((HEAP32[i16 >> 2] | 0) == 0) {
  14242. i12 = 1;
  14243. continue;
  14244. }
  14245. while (1) {
  14246. _propagatemark(i8);
  14247. if ((HEAP32[i16 >> 2] | 0) == 0) {
  14248. i12 = 1;
  14249. continue L42;
  14250. }
  14251. }
  14252. }
  14253. if ((i12 | 0) == 0) {
  14254. break;
  14255. }
  14256. }
  14257. _clearvalues(i8, HEAP32[i11 >> 2] | 0, 0);
  14258. i14 = i8 + 100 | 0;
  14259. _clearvalues(i8, HEAP32[i14 >> 2] | 0, 0);
  14260. i13 = HEAP32[i11 >> 2] | 0;
  14261. i12 = HEAP32[i14 >> 2] | 0;
  14262. i21 = HEAP32[i7 >> 2] | 0;
  14263. i20 = HEAP32[i3 >> 2] | 0;
  14264. i19 = i20 + 104 | 0;
  14265. while (1) {
  14266. i22 = HEAP32[i19 >> 2] | 0;
  14267. if ((i22 | 0) == 0) {
  14268. break;
  14269. } else {
  14270. i19 = i22;
  14271. }
  14272. }
  14273. i17 = i17 - i18 + i21 | 0;
  14274. i20 = i20 + 72 | 0;
  14275. i21 = HEAP32[i20 >> 2] | 0;
  14276. L55 : do {
  14277. if ((i21 | 0) != 0) {
  14278. while (1) {
  14279. i18 = i21;
  14280. while (1) {
  14281. i22 = i18 + 5 | 0;
  14282. i21 = HEAP8[i22] | 0;
  14283. if ((i21 & 3) == 0) {
  14284. break;
  14285. }
  14286. HEAP8[i22] = i21 & 255 | 8;
  14287. HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
  14288. HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
  14289. HEAP32[i19 >> 2] = i18;
  14290. i19 = HEAP32[i20 >> 2] | 0;
  14291. if ((i19 | 0) == 0) {
  14292. break L55;
  14293. } else {
  14294. i22 = i18;
  14295. i18 = i19;
  14296. i19 = i22;
  14297. }
  14298. }
  14299. i21 = HEAP32[i18 >> 2] | 0;
  14300. if ((i21 | 0) == 0) {
  14301. break;
  14302. } else {
  14303. i20 = i18;
  14304. }
  14305. }
  14306. }
  14307. } while (0);
  14308. i19 = HEAP32[i8 + 104 >> 2] | 0;
  14309. if ((i19 | 0) != 0) {
  14310. i18 = i8 + 60 | 0;
  14311. do {
  14312. i22 = i19 + 5 | 0;
  14313. HEAP8[i22] = HEAP8[i18] & 3 | HEAP8[i22] & 184;
  14314. _reallymarkobject(i8, i19);
  14315. i19 = HEAP32[i19 >> 2] | 0;
  14316. } while ((i19 | 0) != 0);
  14317. }
  14318. if ((HEAP32[i16 >> 2] | 0) != 0) {
  14319. do {
  14320. _propagatemark(i8);
  14321. } while ((HEAP32[i16 >> 2] | 0) != 0);
  14322. }
  14323. i18 = HEAP32[i7 >> 2] | 0;
  14324. while (1) {
  14325. i20 = HEAP32[i15 >> 2] | 0;
  14326. HEAP32[i15 >> 2] = 0;
  14327. i19 = 0;
  14328. L74 : while (1) {
  14329. i21 = i20;
  14330. while (1) {
  14331. if ((i21 | 0) == 0) {
  14332. break L74;
  14333. }
  14334. i20 = HEAP32[i21 + 24 >> 2] | 0;
  14335. if ((_traverseephemeron(i8, i21) | 0) == 0) {
  14336. i21 = i20;
  14337. } else {
  14338. break;
  14339. }
  14340. }
  14341. if ((HEAP32[i16 >> 2] | 0) == 0) {
  14342. i19 = 1;
  14343. continue;
  14344. }
  14345. while (1) {
  14346. _propagatemark(i8);
  14347. if ((HEAP32[i16 >> 2] | 0) == 0) {
  14348. i19 = 1;
  14349. continue L74;
  14350. }
  14351. }
  14352. }
  14353. if ((i19 | 0) == 0) {
  14354. break;
  14355. }
  14356. }
  14357. i16 = i17 - i18 | 0;
  14358. i15 = HEAP32[i15 >> 2] | 0;
  14359. if ((i15 | 0) != 0) {
  14360. do {
  14361. i22 = 1 << HEAPU8[i15 + 7 | 0];
  14362. i19 = HEAP32[i15 + 16 >> 2] | 0;
  14363. i17 = i19 + (i22 << 5) | 0;
  14364. if ((i22 | 0) > 0) {
  14365. do {
  14366. i18 = i19 + 8 | 0;
  14367. do {
  14368. if ((HEAP32[i18 >> 2] | 0) != 0 ? (i9 = i19 + 24 | 0, i10 = HEAP32[i9 >> 2] | 0, (i10 & 64 | 0) != 0) : 0) {
  14369. i20 = HEAP32[i19 + 16 >> 2] | 0;
  14370. if ((i10 & 15 | 0) == 4) {
  14371. if ((i20 | 0) == 0) {
  14372. break;
  14373. }
  14374. if ((HEAP8[i20 + 5 | 0] & 3) == 0) {
  14375. break;
  14376. }
  14377. _reallymarkobject(i8, i20);
  14378. break;
  14379. } else {
  14380. i20 = i20 + 5 | 0;
  14381. if ((HEAP8[i20] & 3) == 0) {
  14382. break;
  14383. }
  14384. HEAP32[i18 >> 2] = 0;
  14385. if ((HEAP8[i20] & 3) == 0) {
  14386. break;
  14387. }
  14388. HEAP32[i9 >> 2] = 11;
  14389. break;
  14390. }
  14391. }
  14392. } while (0);
  14393. i19 = i19 + 32 | 0;
  14394. } while (i19 >>> 0 < i17 >>> 0);
  14395. }
  14396. i15 = HEAP32[i15 + 24 >> 2] | 0;
  14397. } while ((i15 | 0) != 0);
  14398. }
  14399. i10 = HEAP32[i14 >> 2] | 0;
  14400. if ((i10 | 0) != 0) {
  14401. do {
  14402. i22 = 1 << HEAPU8[i10 + 7 | 0];
  14403. i17 = HEAP32[i10 + 16 >> 2] | 0;
  14404. i9 = i17 + (i22 << 5) | 0;
  14405. if ((i22 | 0) > 0) {
  14406. do {
  14407. i15 = i17 + 8 | 0;
  14408. do {
  14409. if ((HEAP32[i15 >> 2] | 0) != 0 ? (i5 = i17 + 24 | 0, i4 = HEAP32[i5 >> 2] | 0, (i4 & 64 | 0) != 0) : 0) {
  14410. i18 = HEAP32[i17 + 16 >> 2] | 0;
  14411. if ((i4 & 15 | 0) == 4) {
  14412. if ((i18 | 0) == 0) {
  14413. break;
  14414. }
  14415. if ((HEAP8[i18 + 5 | 0] & 3) == 0) {
  14416. break;
  14417. }
  14418. _reallymarkobject(i8, i18);
  14419. break;
  14420. } else {
  14421. i18 = i18 + 5 | 0;
  14422. if ((HEAP8[i18] & 3) == 0) {
  14423. break;
  14424. }
  14425. HEAP32[i15 >> 2] = 0;
  14426. if ((HEAP8[i18] & 3) == 0) {
  14427. break;
  14428. }
  14429. HEAP32[i5 >> 2] = 11;
  14430. break;
  14431. }
  14432. }
  14433. } while (0);
  14434. i17 = i17 + 32 | 0;
  14435. } while (i17 >>> 0 < i9 >>> 0);
  14436. }
  14437. i10 = HEAP32[i10 + 24 >> 2] | 0;
  14438. } while ((i10 | 0) != 0);
  14439. }
  14440. _clearvalues(i8, HEAP32[i11 >> 2] | 0, i13);
  14441. _clearvalues(i8, HEAP32[i14 >> 2] | 0, i12);
  14442. i4 = i8 + 60 | 0;
  14443. HEAP8[i4] = HEAPU8[i4] ^ 3;
  14444. i4 = i16 + (HEAP32[i7 >> 2] | 0) | 0;
  14445. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i4;
  14446. i3 = HEAP32[i3 >> 2] | 0;
  14447. HEAP8[i3 + 61 | 0] = 2;
  14448. HEAP32[i3 + 64 >> 2] = 0;
  14449. i7 = i3 + 72 | 0;
  14450. i5 = 0;
  14451. do {
  14452. i5 = i5 + 1 | 0;
  14453. i6 = _sweeplist(i2, i7, 1) | 0;
  14454. } while ((i6 | 0) == (i7 | 0));
  14455. HEAP32[i3 + 80 >> 2] = i6;
  14456. i6 = i3 + 68 | 0;
  14457. i7 = 0;
  14458. do {
  14459. i7 = i7 + 1 | 0;
  14460. i8 = _sweeplist(i2, i6, 1) | 0;
  14461. } while ((i8 | 0) == (i6 | 0));
  14462. HEAP32[i3 + 76 >> 2] = i8;
  14463. i22 = ((i7 + i5 | 0) * 5 | 0) + i4 | 0;
  14464. STACKTOP = i1;
  14465. return i22 | 0;
  14466. }
  14467. case 2:
  14468. {
  14469. i3 = i8 + 64 | 0;
  14470. i4 = i8 + 32 | 0;
  14471. i8 = i8 + 24 | 0;
  14472. i5 = 0;
  14473. while (1) {
  14474. i10 = HEAP32[i3 >> 2] | 0;
  14475. i11 = i10 + i5 | 0;
  14476. i9 = HEAP32[i4 >> 2] | 0;
  14477. if ((i11 | 0) >= (i9 | 0)) {
  14478. i2 = i10;
  14479. break;
  14480. }
  14481. _sweeplist(i2, (HEAP32[i8 >> 2] | 0) + (i11 << 2) | 0, -3) | 0;
  14482. i5 = i5 + 1 | 0;
  14483. if ((i5 | 0) >= 80) {
  14484. i7 = 96;
  14485. break;
  14486. }
  14487. }
  14488. if ((i7 | 0) == 96) {
  14489. i2 = HEAP32[i3 >> 2] | 0;
  14490. i9 = HEAP32[i4 >> 2] | 0;
  14491. }
  14492. i22 = i2 + i5 | 0;
  14493. HEAP32[i3 >> 2] = i22;
  14494. if ((i22 | 0) >= (i9 | 0)) {
  14495. HEAP8[i6] = 3;
  14496. }
  14497. i22 = i5 * 5 | 0;
  14498. STACKTOP = i1;
  14499. return i22 | 0;
  14500. }
  14501. case 5:
  14502. {
  14503. i2 = i8 + 16 | 0;
  14504. HEAP32[i2 >> 2] = HEAP32[i8 + 32 >> 2] << 2;
  14505. i22 = i8 + 84 | 0;
  14506. i3 = i8 + 172 | 0;
  14507. HEAP32[i22 + 0 >> 2] = 0;
  14508. HEAP32[i22 + 4 >> 2] = 0;
  14509. HEAP32[i22 + 8 >> 2] = 0;
  14510. HEAP32[i22 + 12 >> 2] = 0;
  14511. HEAP32[i22 + 16 >> 2] = 0;
  14512. i3 = HEAP32[i3 >> 2] | 0;
  14513. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  14514. _reallymarkobject(i8, i3);
  14515. }
  14516. if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i15 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i15 + 5 | 0] & 3) == 0)) : 0) {
  14517. _reallymarkobject(i8, i15);
  14518. }
  14519. _markmt(i8);
  14520. i4 = HEAP32[i8 + 104 >> 2] | 0;
  14521. if ((i4 | 0) != 0) {
  14522. i3 = i8 + 60 | 0;
  14523. do {
  14524. i22 = i4 + 5 | 0;
  14525. HEAP8[i22] = HEAP8[i3] & 3 | HEAP8[i22] & 184;
  14526. _reallymarkobject(i8, i4);
  14527. i4 = HEAP32[i4 >> 2] | 0;
  14528. } while ((i4 | 0) != 0);
  14529. }
  14530. HEAP8[i6] = 0;
  14531. i22 = HEAP32[i2 >> 2] | 0;
  14532. STACKTOP = i1;
  14533. return i22 | 0;
  14534. }
  14535. case 3:
  14536. {
  14537. i3 = i8 + 80 | 0;
  14538. i4 = HEAP32[i3 >> 2] | 0;
  14539. if ((i4 | 0) == 0) {
  14540. HEAP8[i6] = 4;
  14541. i22 = 0;
  14542. STACKTOP = i1;
  14543. return i22 | 0;
  14544. } else {
  14545. HEAP32[i3 >> 2] = _sweeplist(i2, i4, 80) | 0;
  14546. i22 = 400;
  14547. STACKTOP = i1;
  14548. return i22 | 0;
  14549. }
  14550. }
  14551. case 4:
  14552. {
  14553. i4 = i8 + 76 | 0;
  14554. i5 = HEAP32[i4 >> 2] | 0;
  14555. if ((i5 | 0) != 0) {
  14556. HEAP32[i4 >> 2] = _sweeplist(i2, i5, 80) | 0;
  14557. i22 = 400;
  14558. STACKTOP = i1;
  14559. return i22 | 0;
  14560. }
  14561. HEAP32[i14 >> 2] = HEAP32[i8 + 172 >> 2];
  14562. _sweeplist(i2, i14, 1) | 0;
  14563. i3 = HEAP32[i3 >> 2] | 0;
  14564. if ((HEAP8[i3 + 62 | 0] | 0) != 1) {
  14565. i4 = (HEAP32[i3 + 32 >> 2] | 0) / 2 | 0;
  14566. if ((HEAP32[i3 + 28 >> 2] | 0) >>> 0 < i4 >>> 0) {
  14567. _luaS_resize(i2, i4);
  14568. }
  14569. i21 = i3 + 144 | 0;
  14570. i22 = i3 + 152 | 0;
  14571. HEAP32[i21 >> 2] = _luaM_realloc_(i2, HEAP32[i21 >> 2] | 0, HEAP32[i22 >> 2] | 0, 0) | 0;
  14572. HEAP32[i22 >> 2] = 0;
  14573. }
  14574. HEAP8[i6] = 5;
  14575. i22 = 5;
  14576. STACKTOP = i1;
  14577. return i22 | 0;
  14578. }
  14579. default:
  14580. {
  14581. i22 = 0;
  14582. STACKTOP = i1;
  14583. return i22 | 0;
  14584. }
  14585. }
  14586. return 0;
  14587. }
  14588. function _pmain(i3) {
  14589. i3 = i3 | 0;
  14590. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  14591. i1 = STACKTOP;
  14592. STACKTOP = STACKTOP + 16 | 0;
  14593. i2 = i1;
  14594. i7 = _lua_tointegerx(i3, 1, 0) | 0;
  14595. i4 = _lua_touserdata(i3, 2) | 0;
  14596. i5 = HEAP32[i4 >> 2] | 0;
  14597. if ((i5 | 0) != 0 ? (HEAP8[i5] | 0) != 0 : 0) {
  14598. HEAP32[20] = i5;
  14599. }
  14600. i12 = HEAP32[i4 + 4 >> 2] | 0;
  14601. do {
  14602. if ((i12 | 0) == 0) {
  14603. i5 = 0;
  14604. i6 = 0;
  14605. i8 = 0;
  14606. i9 = 1;
  14607. i10 = 1;
  14608. } else {
  14609. i9 = 0;
  14610. i8 = 0;
  14611. i11 = 0;
  14612. i6 = 0;
  14613. i5 = 1;
  14614. L6 : while (1) {
  14615. if ((HEAP8[i12] | 0) != 45) {
  14616. i10 = 18;
  14617. break;
  14618. }
  14619. switch (HEAP8[i12 + 1 | 0] | 0) {
  14620. case 108:
  14621. {
  14622. i10 = 12;
  14623. break;
  14624. }
  14625. case 69:
  14626. {
  14627. i9 = 1;
  14628. break;
  14629. }
  14630. case 45:
  14631. {
  14632. i10 = 7;
  14633. break L6;
  14634. }
  14635. case 105:
  14636. {
  14637. if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
  14638. i11 = 1;
  14639. i6 = 1;
  14640. } else {
  14641. i5 = -1;
  14642. break L6;
  14643. }
  14644. break;
  14645. }
  14646. case 101:
  14647. {
  14648. i8 = 1;
  14649. i10 = 12;
  14650. break;
  14651. }
  14652. case 118:
  14653. {
  14654. if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
  14655. i11 = 1;
  14656. } else {
  14657. i5 = -1;
  14658. break L6;
  14659. }
  14660. break;
  14661. }
  14662. case 0:
  14663. {
  14664. i10 = 18;
  14665. break L6;
  14666. }
  14667. default:
  14668. {
  14669. i10 = 16;
  14670. break L6;
  14671. }
  14672. }
  14673. if ((i10 | 0) == 12) {
  14674. i10 = 0;
  14675. if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
  14676. i12 = i5 + 1 | 0;
  14677. i13 = HEAP32[i4 + (i12 << 2) >> 2] | 0;
  14678. if ((i13 | 0) == 0) {
  14679. i10 = 15;
  14680. break;
  14681. }
  14682. if ((HEAP8[i13] | 0) == 45) {
  14683. i10 = 15;
  14684. break;
  14685. } else {
  14686. i5 = i12;
  14687. }
  14688. }
  14689. }
  14690. i5 = i5 + 1 | 0;
  14691. i12 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
  14692. if ((i12 | 0) == 0) {
  14693. i5 = 0;
  14694. i12 = i9;
  14695. i10 = 23;
  14696. break;
  14697. }
  14698. }
  14699. if ((i10 | 0) == 7) {
  14700. if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
  14701. i5 = i5 + 1 | 0;
  14702. i5 = (HEAP32[i4 + (i5 << 2) >> 2] | 0) == 0 ? 0 : i5;
  14703. i10 = 18;
  14704. } else {
  14705. i5 = -1;
  14706. }
  14707. } else if ((i10 | 0) == 15) {
  14708. i5 = 0 - i5 | 0;
  14709. i10 = 18;
  14710. } else if ((i10 | 0) == 16) {
  14711. i5 = 0 - i5 | 0;
  14712. i10 = 18;
  14713. }
  14714. if ((i10 | 0) == 18) {
  14715. if ((i5 | 0) >= 0) {
  14716. i12 = i9;
  14717. i10 = 23;
  14718. }
  14719. }
  14720. if ((i10 | 0) == 23) {
  14721. if ((i11 | 0) == 0) {
  14722. i9 = 1;
  14723. } else {
  14724. i9 = HEAP32[_stdout >> 2] | 0;
  14725. _fwrite(440, 1, 51, i9 | 0) | 0;
  14726. _fputc(10, i9 | 0) | 0;
  14727. _fflush(i9 | 0) | 0;
  14728. i9 = 0;
  14729. }
  14730. if ((i12 | 0) == 0) {
  14731. i10 = 1;
  14732. break;
  14733. }
  14734. _lua_pushboolean(i3, 1);
  14735. _lua_setfield(i3, -1001e3, 96);
  14736. i10 = 0;
  14737. break;
  14738. }
  14739. i3 = HEAP32[i4 + (0 - i5 << 2) >> 2] | 0;
  14740. i4 = HEAP32[_stderr >> 2] | 0;
  14741. HEAP32[i2 >> 2] = HEAP32[20];
  14742. _fprintf(i4 | 0, 496, i2 | 0) | 0;
  14743. _fflush(i4 | 0) | 0;
  14744. i13 = HEAP8[i3 + 1 | 0] | 0;
  14745. if (i13 << 24 >> 24 == 108 | i13 << 24 >> 24 == 101) {
  14746. HEAP32[i2 >> 2] = i3;
  14747. _fprintf(i4 | 0, 504, i2 | 0) | 0;
  14748. _fflush(i4 | 0) | 0;
  14749. } else {
  14750. HEAP32[i2 >> 2] = i3;
  14751. _fprintf(i4 | 0, 528, i2 | 0) | 0;
  14752. _fflush(i4 | 0) | 0;
  14753. }
  14754. HEAP32[i2 >> 2] = HEAP32[20];
  14755. _fprintf(i4 | 0, 560, i2 | 0) | 0;
  14756. _fflush(i4 | 0) | 0;
  14757. i13 = 0;
  14758. STACKTOP = i1;
  14759. return i13 | 0;
  14760. }
  14761. } while (0);
  14762. _luaL_checkversion_(i3, 502.0);
  14763. _lua_gc(i3, 0, 0) | 0;
  14764. _luaL_openlibs(i3);
  14765. _lua_gc(i3, 1, 0) | 0;
  14766. do {
  14767. if (i10) {
  14768. i10 = _getenv(409 | 0) | 0;
  14769. if ((i10 | 0) == 0) {
  14770. i10 = _getenv(425 | 0) | 0;
  14771. if ((i10 | 0) == 0) {
  14772. break;
  14773. } else {
  14774. i11 = 424;
  14775. }
  14776. } else {
  14777. i11 = 408;
  14778. }
  14779. if ((HEAP8[i10] | 0) == 64) {
  14780. i13 = _luaL_loadfilex(i3, i10 + 1 | 0, 0) | 0;
  14781. if ((i13 | 0) == 0) {
  14782. i12 = _lua_gettop(i3) | 0;
  14783. _lua_pushcclosure(i3, 142, 0);
  14784. _lua_insert(i3, i12);
  14785. HEAP32[48] = i3;
  14786. _signal(2, 1) | 0;
  14787. i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
  14788. _signal(2, 0) | 0;
  14789. _lua_remove(i3, i12);
  14790. if ((i13 | 0) == 0) {
  14791. break;
  14792. }
  14793. }
  14794. if ((_lua_type(i3, -1) | 0) == 0) {
  14795. i13 = 0;
  14796. STACKTOP = i1;
  14797. return i13 | 0;
  14798. }
  14799. i11 = _lua_tolstring(i3, -1, 0) | 0;
  14800. i12 = HEAP32[20] | 0;
  14801. i10 = HEAP32[_stderr >> 2] | 0;
  14802. if ((i12 | 0) != 0) {
  14803. HEAP32[i2 >> 2] = i12;
  14804. _fprintf(i10 | 0, 496, i2 | 0) | 0;
  14805. _fflush(i10 | 0) | 0;
  14806. }
  14807. HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
  14808. _fprintf(i10 | 0, 912, i2 | 0) | 0;
  14809. _fflush(i10 | 0) | 0;
  14810. _lua_settop(i3, -2);
  14811. _lua_gc(i3, 2, 0) | 0;
  14812. } else {
  14813. i13 = _luaL_loadbufferx(i3, i10, _strlen(i10 | 0) | 0, i11, 0) | 0;
  14814. if ((i13 | 0) == 0) {
  14815. i12 = _lua_gettop(i3) | 0;
  14816. _lua_pushcclosure(i3, 142, 0);
  14817. _lua_insert(i3, i12);
  14818. HEAP32[48] = i3;
  14819. _signal(2, 1) | 0;
  14820. i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
  14821. _signal(2, 0) | 0;
  14822. _lua_remove(i3, i12);
  14823. if ((i13 | 0) == 0) {
  14824. break;
  14825. }
  14826. }
  14827. if ((_lua_type(i3, -1) | 0) == 0) {
  14828. i13 = 0;
  14829. STACKTOP = i1;
  14830. return i13 | 0;
  14831. }
  14832. i11 = _lua_tolstring(i3, -1, 0) | 0;
  14833. i10 = HEAP32[20] | 0;
  14834. i12 = HEAP32[_stderr >> 2] | 0;
  14835. if ((i10 | 0) != 0) {
  14836. HEAP32[i2 >> 2] = i10;
  14837. _fprintf(i12 | 0, 496, i2 | 0) | 0;
  14838. _fflush(i12 | 0) | 0;
  14839. }
  14840. HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
  14841. _fprintf(i12 | 0, 912, i2 | 0) | 0;
  14842. _fflush(i12 | 0) | 0;
  14843. _lua_settop(i3, -2);
  14844. _lua_gc(i3, 2, 0) | 0;
  14845. }
  14846. if ((i13 | 0) != 0) {
  14847. i13 = 0;
  14848. STACKTOP = i1;
  14849. return i13 | 0;
  14850. }
  14851. }
  14852. } while (0);
  14853. i7 = (i5 | 0) > 0 ? i5 : i7;
  14854. L67 : do {
  14855. if ((i7 | 0) > 1) {
  14856. i10 = 1;
  14857. while (1) {
  14858. i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
  14859. i12 = HEAP8[i11 + 1 | 0] | 0;
  14860. if ((i12 | 0) == 108) {
  14861. i11 = i11 + 2 | 0;
  14862. if ((HEAP8[i11] | 0) == 0) {
  14863. i10 = i10 + 1 | 0;
  14864. i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
  14865. }
  14866. _lua_getglobal(i3, 400);
  14867. _lua_pushstring(i3, i11) | 0;
  14868. i12 = (_lua_gettop(i3) | 0) + -1 | 0;
  14869. _lua_pushcclosure(i3, 142, 0);
  14870. _lua_insert(i3, i12);
  14871. HEAP32[48] = i3;
  14872. _signal(2, 1) | 0;
  14873. i13 = _lua_pcallk(i3, 1, 1, i12, 0, 0) | 0;
  14874. _signal(2, 0) | 0;
  14875. _lua_remove(i3, i12);
  14876. if ((i13 | 0) != 0) {
  14877. i10 = 58;
  14878. break;
  14879. }
  14880. _lua_setglobal(i3, i11);
  14881. } else if ((i12 | 0) == 101) {
  14882. i11 = i11 + 2 | 0;
  14883. if ((HEAP8[i11] | 0) == 0) {
  14884. i10 = i10 + 1 | 0;
  14885. i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
  14886. }
  14887. if ((_luaL_loadbufferx(i3, i11, _strlen(i11 | 0) | 0, 384, 0) | 0) != 0) {
  14888. i10 = 50;
  14889. break;
  14890. }
  14891. i12 = _lua_gettop(i3) | 0;
  14892. _lua_pushcclosure(i3, 142, 0);
  14893. _lua_insert(i3, i12);
  14894. HEAP32[48] = i3;
  14895. _signal(2, 1) | 0;
  14896. i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
  14897. _signal(2, 0) | 0;
  14898. _lua_remove(i3, i12);
  14899. if ((i13 | 0) != 0) {
  14900. i10 = 50;
  14901. break;
  14902. }
  14903. }
  14904. i10 = i10 + 1 | 0;
  14905. if ((i10 | 0) >= (i7 | 0)) {
  14906. break L67;
  14907. }
  14908. }
  14909. if ((i10 | 0) == 50) {
  14910. if ((_lua_type(i3, -1) | 0) == 0) {
  14911. i13 = 0;
  14912. STACKTOP = i1;
  14913. return i13 | 0;
  14914. }
  14915. i5 = _lua_tolstring(i3, -1, 0) | 0;
  14916. i6 = HEAP32[20] | 0;
  14917. i4 = HEAP32[_stderr >> 2] | 0;
  14918. if ((i6 | 0) != 0) {
  14919. HEAP32[i2 >> 2] = i6;
  14920. _fprintf(i4 | 0, 496, i2 | 0) | 0;
  14921. _fflush(i4 | 0) | 0;
  14922. }
  14923. HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
  14924. _fprintf(i4 | 0, 912, i2 | 0) | 0;
  14925. _fflush(i4 | 0) | 0;
  14926. _lua_settop(i3, -2);
  14927. _lua_gc(i3, 2, 0) | 0;
  14928. i13 = 0;
  14929. STACKTOP = i1;
  14930. return i13 | 0;
  14931. } else if ((i10 | 0) == 58) {
  14932. if ((_lua_type(i3, -1) | 0) == 0) {
  14933. i13 = 0;
  14934. STACKTOP = i1;
  14935. return i13 | 0;
  14936. }
  14937. i5 = _lua_tolstring(i3, -1, 0) | 0;
  14938. i6 = HEAP32[20] | 0;
  14939. i4 = HEAP32[_stderr >> 2] | 0;
  14940. if ((i6 | 0) != 0) {
  14941. HEAP32[i2 >> 2] = i6;
  14942. _fprintf(i4 | 0, 496, i2 | 0) | 0;
  14943. _fflush(i4 | 0) | 0;
  14944. }
  14945. HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
  14946. _fprintf(i4 | 0, 912, i2 | 0) | 0;
  14947. _fflush(i4 | 0) | 0;
  14948. _lua_settop(i3, -2);
  14949. _lua_gc(i3, 2, 0) | 0;
  14950. i13 = 0;
  14951. STACKTOP = i1;
  14952. return i13 | 0;
  14953. }
  14954. }
  14955. } while (0);
  14956. do {
  14957. if ((i5 | 0) != 0) {
  14958. i10 = 0;
  14959. while (1) {
  14960. if ((HEAP32[i4 + (i10 << 2) >> 2] | 0) == 0) {
  14961. break;
  14962. } else {
  14963. i10 = i10 + 1 | 0;
  14964. }
  14965. }
  14966. i11 = i5 + 1 | 0;
  14967. i7 = i10 - i11 | 0;
  14968. _luaL_checkstack(i3, i7 + 3 | 0, 352);
  14969. if ((i11 | 0) < (i10 | 0)) {
  14970. i12 = i11;
  14971. do {
  14972. _lua_pushstring(i3, HEAP32[i4 + (i12 << 2) >> 2] | 0) | 0;
  14973. i12 = i12 + 1 | 0;
  14974. } while ((i12 | 0) != (i10 | 0));
  14975. }
  14976. _lua_createtable(i3, i7, i11);
  14977. if ((i10 | 0) > 0) {
  14978. i11 = 0;
  14979. do {
  14980. _lua_pushstring(i3, HEAP32[i4 + (i11 << 2) >> 2] | 0) | 0;
  14981. _lua_rawseti(i3, -2, i11 - i5 | 0);
  14982. i11 = i11 + 1 | 0;
  14983. } while ((i11 | 0) != (i10 | 0));
  14984. }
  14985. _lua_setglobal(i3, 328);
  14986. i10 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
  14987. if ((_strcmp(i10, 336) | 0) == 0) {
  14988. i13 = (_strcmp(HEAP32[i4 + (i5 + -1 << 2) >> 2] | 0, 344) | 0) == 0;
  14989. i10 = i13 ? i10 : 0;
  14990. }
  14991. i10 = _luaL_loadfilex(i3, i10, 0) | 0;
  14992. i4 = ~i7;
  14993. _lua_insert(i3, i4);
  14994. if ((i10 | 0) == 0) {
  14995. i13 = (_lua_gettop(i3) | 0) - i7 | 0;
  14996. _lua_pushcclosure(i3, 142, 0);
  14997. _lua_insert(i3, i13);
  14998. HEAP32[48] = i3;
  14999. _signal(2, 1) | 0;
  15000. i10 = _lua_pcallk(i3, i7, -1, i13, 0, 0) | 0;
  15001. _signal(2, 0) | 0;
  15002. _lua_remove(i3, i13);
  15003. if ((i10 | 0) == 0) {
  15004. break;
  15005. }
  15006. } else {
  15007. _lua_settop(i3, i4);
  15008. }
  15009. if ((_lua_type(i3, -1) | 0) != 0) {
  15010. i7 = _lua_tolstring(i3, -1, 0) | 0;
  15011. i11 = HEAP32[20] | 0;
  15012. i4 = HEAP32[_stderr >> 2] | 0;
  15013. if ((i11 | 0) != 0) {
  15014. HEAP32[i2 >> 2] = i11;
  15015. _fprintf(i4 | 0, 496, i2 | 0) | 0;
  15016. _fflush(i4 | 0) | 0;
  15017. }
  15018. HEAP32[i2 >> 2] = (i7 | 0) == 0 ? 48 : i7;
  15019. _fprintf(i4 | 0, 912, i2 | 0) | 0;
  15020. _fflush(i4 | 0) | 0;
  15021. _lua_settop(i3, -2);
  15022. _lua_gc(i3, 2, 0) | 0;
  15023. }
  15024. if ((i10 | 0) != 0) {
  15025. i13 = 0;
  15026. STACKTOP = i1;
  15027. return i13 | 0;
  15028. }
  15029. }
  15030. } while (0);
  15031. if ((i6 | 0) == 0) {
  15032. if (!((i8 | i5 | 0) != 0 | i9 ^ 1)) {
  15033. i13 = HEAP32[_stdout >> 2] | 0;
  15034. _fwrite(440, 1, 51, i13 | 0) | 0;
  15035. _fputc(10, i13 | 0) | 0;
  15036. _fflush(i13 | 0) | 0;
  15037. _dotty(i3);
  15038. }
  15039. } else {
  15040. _dotty(i3);
  15041. }
  15042. _lua_pushboolean(i3, 1);
  15043. i13 = 1;
  15044. STACKTOP = i1;
  15045. return i13 | 0;
  15046. }
  15047. function _DumpFunction(i6, i2) {
  15048. i6 = i6 | 0;
  15049. i2 = i2 | 0;
  15050. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0;
  15051. i5 = STACKTOP;
  15052. STACKTOP = STACKTOP + 64 | 0;
  15053. i17 = i5 + 56 | 0;
  15054. i19 = i5 + 52 | 0;
  15055. i20 = i5 + 48 | 0;
  15056. i18 = i5;
  15057. i21 = i5 + 60 | 0;
  15058. i22 = i5 + 44 | 0;
  15059. i1 = i5 + 40 | 0;
  15060. i16 = i5 + 36 | 0;
  15061. i23 = i5 + 32 | 0;
  15062. i3 = i5 + 28 | 0;
  15063. i7 = i5 + 24 | 0;
  15064. i8 = i5 + 20 | 0;
  15065. i9 = i5 + 16 | 0;
  15066. i10 = i5 + 12 | 0;
  15067. i12 = i5 + 8 | 0;
  15068. HEAP32[i17 >> 2] = HEAP32[i6 + 64 >> 2];
  15069. i4 = i2 + 16 | 0;
  15070. i28 = HEAP32[i4 >> 2] | 0;
  15071. if ((i28 | 0) == 0) {
  15072. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15073. HEAP32[i4 >> 2] = i28;
  15074. }
  15075. HEAP32[i17 >> 2] = HEAP32[i6 + 68 >> 2];
  15076. if ((i28 | 0) == 0) {
  15077. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15078. HEAP32[i4 >> 2] = i28;
  15079. }
  15080. HEAP8[i17] = HEAP8[i6 + 76 | 0] | 0;
  15081. if ((i28 | 0) == 0) {
  15082. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15083. HEAP32[i4 >> 2] = i28;
  15084. }
  15085. HEAP8[i17] = HEAP8[i6 + 77 | 0] | 0;
  15086. if ((i28 | 0) == 0) {
  15087. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15088. HEAP32[i4 >> 2] = i28;
  15089. }
  15090. HEAP8[i17] = HEAP8[i6 + 78 | 0] | 0;
  15091. if ((i28 | 0) == 0) {
  15092. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15093. HEAP32[i4 >> 2] = i28;
  15094. }
  15095. i25 = HEAP32[i6 + 12 >> 2] | 0;
  15096. i24 = HEAP32[i6 + 48 >> 2] | 0;
  15097. HEAP32[i23 >> 2] = i24;
  15098. if ((i28 | 0) == 0) {
  15099. i26 = i2 + 4 | 0;
  15100. i27 = i2 + 8 | 0;
  15101. i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i23, 4, HEAP32[i27 >> 2] | 0) | 0;
  15102. HEAP32[i4 >> 2] = i28;
  15103. if ((i28 | 0) == 0) {
  15104. i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i25, i24 << 2, HEAP32[i27 >> 2] | 0) | 0;
  15105. HEAP32[i4 >> 2] = i28;
  15106. i25 = HEAP32[i6 + 44 >> 2] | 0;
  15107. HEAP32[i22 >> 2] = i25;
  15108. if ((i28 | 0) == 0) {
  15109. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i22, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15110. HEAP32[i4 >> 2] = i28;
  15111. }
  15112. } else {
  15113. i11 = 13;
  15114. }
  15115. } else {
  15116. i11 = 13;
  15117. }
  15118. if ((i11 | 0) == 13) {
  15119. i25 = HEAP32[i6 + 44 >> 2] | 0;
  15120. HEAP32[i22 >> 2] = i25;
  15121. }
  15122. if ((i25 | 0) > 0) {
  15123. i24 = i6 + 8 | 0;
  15124. i23 = i2 + 4 | 0;
  15125. i22 = i2 + 8 | 0;
  15126. i26 = 0;
  15127. do {
  15128. i30 = HEAP32[i24 >> 2] | 0;
  15129. i27 = i30 + (i26 << 4) | 0;
  15130. i30 = i30 + (i26 << 4) + 8 | 0;
  15131. i29 = HEAP32[i30 >> 2] | 0;
  15132. HEAP8[i17] = i29 & 15;
  15133. if ((i28 | 0) == 0) {
  15134. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i22 >> 2] | 0) | 0;
  15135. HEAP32[i4 >> 2] = i28;
  15136. i29 = HEAP32[i30 >> 2] | 0;
  15137. }
  15138. i29 = i29 & 15;
  15139. do {
  15140. if ((i29 | 0) == 3) {
  15141. HEAPF64[i18 >> 3] = +HEAPF64[i27 >> 3];
  15142. if ((i28 | 0) == 0) {
  15143. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i18, 8, HEAP32[i22 >> 2] | 0) | 0;
  15144. HEAP32[i4 >> 2] = i28;
  15145. }
  15146. } else if ((i29 | 0) == 1) {
  15147. HEAP8[i21] = HEAP32[i27 >> 2];
  15148. if ((i28 | 0) == 0) {
  15149. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i21, 1, HEAP32[i22 >> 2] | 0) | 0;
  15150. HEAP32[i4 >> 2] = i28;
  15151. }
  15152. } else if ((i29 | 0) == 4) {
  15153. i27 = HEAP32[i27 >> 2] | 0;
  15154. if ((i27 | 0) == 0) {
  15155. HEAP32[i19 >> 2] = 0;
  15156. if ((i28 | 0) != 0) {
  15157. break;
  15158. }
  15159. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i19, 4, HEAP32[i22 >> 2] | 0) | 0;
  15160. HEAP32[i4 >> 2] = i28;
  15161. break;
  15162. }
  15163. HEAP32[i20 >> 2] = (HEAP32[i27 + 12 >> 2] | 0) + 1;
  15164. if ((i28 | 0) == 0) {
  15165. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i20, 4, HEAP32[i22 >> 2] | 0) | 0;
  15166. HEAP32[i4 >> 2] = i28;
  15167. if ((i28 | 0) == 0) {
  15168. i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i27 + 16 | 0, HEAP32[i20 >> 2] | 0, HEAP32[i22 >> 2] | 0) | 0;
  15169. HEAP32[i4 >> 2] = i28;
  15170. }
  15171. }
  15172. }
  15173. } while (0);
  15174. i26 = i26 + 1 | 0;
  15175. } while ((i26 | 0) != (i25 | 0));
  15176. }
  15177. i18 = HEAP32[i6 + 56 >> 2] | 0;
  15178. HEAP32[i17 >> 2] = i18;
  15179. if ((i28 | 0) == 0) {
  15180. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15181. HEAP32[i4 >> 2] = i28;
  15182. }
  15183. if ((i18 | 0) > 0) {
  15184. i17 = i6 + 16 | 0;
  15185. i19 = 0;
  15186. do {
  15187. _DumpFunction(HEAP32[(HEAP32[i17 >> 2] | 0) + (i19 << 2) >> 2] | 0, i2);
  15188. i19 = i19 + 1 | 0;
  15189. } while ((i19 | 0) != (i18 | 0));
  15190. i28 = HEAP32[i4 >> 2] | 0;
  15191. }
  15192. i17 = i6 + 40 | 0;
  15193. i18 = HEAP32[i17 >> 2] | 0;
  15194. HEAP32[i16 >> 2] = i18;
  15195. if ((i28 | 0) == 0) {
  15196. i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i16, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15197. HEAP32[i4 >> 2] = i28;
  15198. }
  15199. if ((i18 | 0) > 0) {
  15200. i19 = i6 + 28 | 0;
  15201. i16 = i2 + 4 | 0;
  15202. i20 = i2 + 8 | 0;
  15203. i21 = 0;
  15204. do {
  15205. i22 = HEAP32[i19 >> 2] | 0;
  15206. HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 4 | 0] | 0;
  15207. if ((i28 | 0) == 0) {
  15208. i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
  15209. HEAP32[i4 >> 2] = i28;
  15210. i22 = HEAP32[i19 >> 2] | 0;
  15211. }
  15212. HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 5 | 0] | 0;
  15213. if ((i28 | 0) == 0) {
  15214. i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
  15215. HEAP32[i4 >> 2] = i28;
  15216. }
  15217. i21 = i21 + 1 | 0;
  15218. } while ((i21 | 0) != (i18 | 0));
  15219. }
  15220. i16 = i2 + 12 | 0;
  15221. if ((HEAP32[i16 >> 2] | 0) == 0 ? (i13 = HEAP32[i6 + 36 >> 2] | 0, (i13 | 0) != 0) : 0) {
  15222. HEAP32[i12 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
  15223. if ((i28 | 0) == 0 ? (i14 = i2 + 4 | 0, i15 = i2 + 8 | 0, i30 = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i15 >> 2] | 0) | 0, HEAP32[i4 >> 2] = i30, (i30 | 0) == 0) : 0) {
  15224. HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0) | 0;
  15225. }
  15226. } else {
  15227. i12 = i10;
  15228. i11 = 50;
  15229. }
  15230. if ((i11 | 0) == 50) {
  15231. HEAP32[i10 >> 2] = 0;
  15232. if ((i28 | 0) == 0) {
  15233. HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15234. }
  15235. }
  15236. if ((HEAP32[i16 >> 2] | 0) == 0) {
  15237. i11 = HEAP32[i6 + 52 >> 2] | 0;
  15238. } else {
  15239. i11 = 0;
  15240. }
  15241. i10 = HEAP32[i6 + 20 >> 2] | 0;
  15242. HEAP32[i9 >> 2] = i11;
  15243. i14 = HEAP32[i4 >> 2] | 0;
  15244. if ((i14 | 0) == 0) {
  15245. i12 = i2 + 4 | 0;
  15246. i13 = i2 + 8 | 0;
  15247. i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i9, 4, HEAP32[i13 >> 2] | 0) | 0;
  15248. HEAP32[i4 >> 2] = i14;
  15249. if ((i14 | 0) == 0) {
  15250. i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i10, i11 << 2, HEAP32[i13 >> 2] | 0) | 0;
  15251. HEAP32[i4 >> 2] = i14;
  15252. }
  15253. }
  15254. if ((HEAP32[i16 >> 2] | 0) == 0) {
  15255. i9 = HEAP32[i6 + 60 >> 2] | 0;
  15256. } else {
  15257. i9 = 0;
  15258. }
  15259. HEAP32[i8 >> 2] = i9;
  15260. if ((i14 | 0) == 0) {
  15261. i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i8, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15262. HEAP32[i4 >> 2] = i14;
  15263. }
  15264. if ((i9 | 0) > 0) {
  15265. i10 = i6 + 24 | 0;
  15266. i11 = i2 + 4 | 0;
  15267. i8 = i2 + 8 | 0;
  15268. i12 = 0;
  15269. do {
  15270. i13 = HEAP32[(HEAP32[i10 >> 2] | 0) + (i12 * 12 | 0) >> 2] | 0;
  15271. if ((i13 | 0) == 0) {
  15272. HEAP32[i1 >> 2] = 0;
  15273. if ((i14 | 0) == 0) {
  15274. i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
  15275. HEAP32[i4 >> 2] = i14;
  15276. }
  15277. } else {
  15278. HEAP32[i3 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
  15279. if ((i14 | 0) == 0) {
  15280. i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i8 >> 2] | 0) | 0;
  15281. HEAP32[i4 >> 2] = i14;
  15282. if ((i14 | 0) == 0) {
  15283. i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i8 >> 2] | 0) | 0;
  15284. HEAP32[i4 >> 2] = i14;
  15285. }
  15286. }
  15287. }
  15288. i13 = HEAP32[i10 >> 2] | 0;
  15289. HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 4 >> 2];
  15290. if ((i14 | 0) == 0) {
  15291. i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
  15292. HEAP32[i4 >> 2] = i14;
  15293. i13 = HEAP32[i10 >> 2] | 0;
  15294. }
  15295. HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 8 >> 2];
  15296. if ((i14 | 0) == 0) {
  15297. i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
  15298. HEAP32[i4 >> 2] = i14;
  15299. }
  15300. i12 = i12 + 1 | 0;
  15301. } while ((i12 | 0) != (i9 | 0));
  15302. }
  15303. if ((HEAP32[i16 >> 2] | 0) == 0) {
  15304. i8 = HEAP32[i17 >> 2] | 0;
  15305. } else {
  15306. i8 = 0;
  15307. }
  15308. HEAP32[i7 >> 2] = i8;
  15309. if ((i14 | 0) == 0) {
  15310. i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i7, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
  15311. HEAP32[i4 >> 2] = i14;
  15312. }
  15313. if ((i8 | 0) <= 0) {
  15314. STACKTOP = i5;
  15315. return;
  15316. }
  15317. i7 = i6 + 28 | 0;
  15318. i6 = i2 + 4 | 0;
  15319. i9 = i2 + 8 | 0;
  15320. i10 = 0;
  15321. do {
  15322. i11 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i10 << 3) >> 2] | 0;
  15323. if ((i11 | 0) == 0) {
  15324. HEAP32[i1 >> 2] = 0;
  15325. if ((i14 | 0) == 0) {
  15326. i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i9 >> 2] | 0) | 0;
  15327. HEAP32[i4 >> 2] = i14;
  15328. }
  15329. } else {
  15330. HEAP32[i3 >> 2] = (HEAP32[i11 + 12 >> 2] | 0) + 1;
  15331. if ((i14 | 0) == 0) {
  15332. i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i9 >> 2] | 0) | 0;
  15333. HEAP32[i4 >> 2] = i14;
  15334. if ((i14 | 0) == 0) {
  15335. i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i11 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0;
  15336. HEAP32[i4 >> 2] = i14;
  15337. }
  15338. }
  15339. }
  15340. i10 = i10 + 1 | 0;
  15341. } while ((i10 | 0) != (i8 | 0));
  15342. STACKTOP = i5;
  15343. return;
  15344. }
  15345. function _LoadFunction(i2, i6) {
  15346. i2 = i2 | 0;
  15347. i6 = i6 | 0;
  15348. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
  15349. i1 = STACKTOP;
  15350. STACKTOP = STACKTOP + 16 | 0;
  15351. i3 = i1;
  15352. i5 = i1 + 8 | 0;
  15353. i4 = i2 + 4 | 0;
  15354. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15355. _error(i2, 8824);
  15356. }
  15357. i8 = HEAP32[i3 >> 2] | 0;
  15358. if ((i8 | 0) < 0) {
  15359. _error(i2, 8872);
  15360. }
  15361. HEAP32[i6 + 64 >> 2] = i8;
  15362. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15363. _error(i2, 8824);
  15364. }
  15365. i8 = HEAP32[i3 >> 2] | 0;
  15366. if ((i8 | 0) < 0) {
  15367. _error(i2, 8872);
  15368. }
  15369. HEAP32[i6 + 68 >> 2] = i8;
  15370. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15371. _error(i2, 8824);
  15372. }
  15373. HEAP8[i6 + 76 | 0] = HEAP8[i3] | 0;
  15374. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15375. _error(i2, 8824);
  15376. }
  15377. HEAP8[i6 + 77 | 0] = HEAP8[i3] | 0;
  15378. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15379. _error(i2, 8824);
  15380. }
  15381. HEAP8[i6 + 78 | 0] = HEAP8[i3] | 0;
  15382. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15383. _error(i2, 8824);
  15384. }
  15385. i9 = HEAP32[i3 >> 2] | 0;
  15386. if ((i9 | 0) < 0) {
  15387. _error(i2, 8872);
  15388. }
  15389. i8 = HEAP32[i2 >> 2] | 0;
  15390. if ((i9 + 1 | 0) >>> 0 > 1073741823) {
  15391. _luaM_toobig(i8);
  15392. }
  15393. i14 = i9 << 2;
  15394. i13 = _luaM_realloc_(i8, 0, 0, i14) | 0;
  15395. HEAP32[i6 + 12 >> 2] = i13;
  15396. HEAP32[i6 + 48 >> 2] = i9;
  15397. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
  15398. _error(i2, 8824);
  15399. }
  15400. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15401. _error(i2, 8824);
  15402. }
  15403. i8 = HEAP32[i3 >> 2] | 0;
  15404. if ((i8 | 0) < 0) {
  15405. _error(i2, 8872);
  15406. }
  15407. i9 = HEAP32[i2 >> 2] | 0;
  15408. if ((i8 + 1 | 0) >>> 0 > 268435455) {
  15409. _luaM_toobig(i9);
  15410. }
  15411. i11 = _luaM_realloc_(i9, 0, 0, i8 << 4) | 0;
  15412. i9 = i6 + 8 | 0;
  15413. HEAP32[i9 >> 2] = i11;
  15414. HEAP32[i6 + 44 >> 2] = i8;
  15415. i12 = (i8 | 0) > 0;
  15416. L43 : do {
  15417. if (i12) {
  15418. i10 = 0;
  15419. do {
  15420. HEAP32[i11 + (i10 << 4) + 8 >> 2] = 0;
  15421. i10 = i10 + 1 | 0;
  15422. } while ((i10 | 0) != (i8 | 0));
  15423. if (i12) {
  15424. i10 = i2 + 8 | 0;
  15425. i13 = 0;
  15426. while (1) {
  15427. i12 = i11 + (i13 << 4) | 0;
  15428. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15429. i9 = 34;
  15430. break;
  15431. }
  15432. i14 = HEAP8[i3] | 0;
  15433. if ((i14 | 0) == 4) {
  15434. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15435. i9 = 44;
  15436. break;
  15437. }
  15438. i14 = HEAP32[i3 >> 2] | 0;
  15439. if ((i14 | 0) == 0) {
  15440. i14 = 0;
  15441. } else {
  15442. i14 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i10 >> 2] | 0, i14) | 0;
  15443. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i14, HEAP32[i3 >> 2] | 0) | 0) != 0) {
  15444. i9 = 47;
  15445. break;
  15446. }
  15447. i14 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i14, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
  15448. }
  15449. HEAP32[i12 >> 2] = i14;
  15450. HEAP32[i11 + (i13 << 4) + 8 >> 2] = HEAPU8[i14 + 4 | 0] | 64;
  15451. } else if ((i14 | 0) == 1) {
  15452. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15453. i9 = 38;
  15454. break;
  15455. }
  15456. HEAP32[i12 >> 2] = HEAP8[i3] | 0;
  15457. HEAP32[i11 + (i13 << 4) + 8 >> 2] = 1;
  15458. } else if ((i14 | 0) == 3) {
  15459. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 8) | 0) != 0) {
  15460. i9 = 41;
  15461. break;
  15462. }
  15463. HEAPF64[i12 >> 3] = +HEAPF64[i3 >> 3];
  15464. HEAP32[i11 + (i13 << 4) + 8 >> 2] = 3;
  15465. } else if ((i14 | 0) == 0) {
  15466. HEAP32[i11 + (i13 << 4) + 8 >> 2] = 0;
  15467. }
  15468. i13 = i13 + 1 | 0;
  15469. if ((i13 | 0) >= (i8 | 0)) {
  15470. break L43;
  15471. }
  15472. i11 = HEAP32[i9 >> 2] | 0;
  15473. }
  15474. if ((i9 | 0) == 34) {
  15475. _error(i2, 8824);
  15476. } else if ((i9 | 0) == 38) {
  15477. _error(i2, 8824);
  15478. } else if ((i9 | 0) == 41) {
  15479. _error(i2, 8824);
  15480. } else if ((i9 | 0) == 44) {
  15481. _error(i2, 8824);
  15482. } else if ((i9 | 0) == 47) {
  15483. _error(i2, 8824);
  15484. }
  15485. }
  15486. }
  15487. } while (0);
  15488. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15489. _error(i2, 8824);
  15490. }
  15491. i8 = HEAP32[i3 >> 2] | 0;
  15492. if ((i8 | 0) < 0) {
  15493. _error(i2, 8872);
  15494. }
  15495. i9 = HEAP32[i2 >> 2] | 0;
  15496. if ((i8 + 1 | 0) >>> 0 > 1073741823) {
  15497. _luaM_toobig(i9);
  15498. }
  15499. i11 = _luaM_realloc_(i9, 0, 0, i8 << 2) | 0;
  15500. i9 = i6 + 16 | 0;
  15501. HEAP32[i9 >> 2] = i11;
  15502. HEAP32[i6 + 56 >> 2] = i8;
  15503. i10 = (i8 | 0) > 0;
  15504. if (i10) {
  15505. i12 = 0;
  15506. while (1) {
  15507. HEAP32[i11 + (i12 << 2) >> 2] = 0;
  15508. i12 = i12 + 1 | 0;
  15509. if ((i12 | 0) == (i8 | 0)) {
  15510. break;
  15511. }
  15512. i11 = HEAP32[i9 >> 2] | 0;
  15513. }
  15514. if (i10) {
  15515. i10 = 0;
  15516. do {
  15517. i14 = _luaF_newproto(HEAP32[i2 >> 2] | 0) | 0;
  15518. HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] = i14;
  15519. _LoadFunction(i2, HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0);
  15520. i10 = i10 + 1 | 0;
  15521. } while ((i10 | 0) != (i8 | 0));
  15522. }
  15523. }
  15524. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15525. _error(i2, 8824);
  15526. }
  15527. i9 = HEAP32[i3 >> 2] | 0;
  15528. if ((i9 | 0) < 0) {
  15529. _error(i2, 8872);
  15530. }
  15531. i8 = HEAP32[i2 >> 2] | 0;
  15532. if ((i9 + 1 | 0) >>> 0 > 536870911) {
  15533. _luaM_toobig(i8);
  15534. }
  15535. i10 = _luaM_realloc_(i8, 0, 0, i9 << 3) | 0;
  15536. i8 = i6 + 28 | 0;
  15537. HEAP32[i8 >> 2] = i10;
  15538. HEAP32[i6 + 40 >> 2] = i9;
  15539. L98 : do {
  15540. if ((i9 | 0) > 0) {
  15541. HEAP32[i10 >> 2] = 0;
  15542. if ((i9 | 0) == 1) {
  15543. i10 = 0;
  15544. } else {
  15545. i10 = 1;
  15546. while (1) {
  15547. HEAP32[(HEAP32[i8 >> 2] | 0) + (i10 << 3) >> 2] = 0;
  15548. i10 = i10 + 1 | 0;
  15549. if ((i10 | 0) == (i9 | 0)) {
  15550. i10 = 0;
  15551. break;
  15552. }
  15553. }
  15554. }
  15555. while (1) {
  15556. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15557. i9 = 73;
  15558. break;
  15559. }
  15560. HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 4 | 0] = HEAP8[i3] | 0;
  15561. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
  15562. i9 = 75;
  15563. break;
  15564. }
  15565. HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 5 | 0] = HEAP8[i3] | 0;
  15566. i10 = i10 + 1 | 0;
  15567. if ((i10 | 0) >= (i9 | 0)) {
  15568. break L98;
  15569. }
  15570. }
  15571. if ((i9 | 0) == 73) {
  15572. _error(i2, 8824);
  15573. } else if ((i9 | 0) == 75) {
  15574. _error(i2, 8824);
  15575. }
  15576. }
  15577. } while (0);
  15578. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15579. _error(i2, 8824);
  15580. }
  15581. i9 = HEAP32[i3 >> 2] | 0;
  15582. do {
  15583. if ((i9 | 0) != 0) {
  15584. i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i2 + 8 >> 2] | 0, i9) | 0;
  15585. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) == 0) {
  15586. i7 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
  15587. break;
  15588. } else {
  15589. _error(i2, 8824);
  15590. }
  15591. } else {
  15592. i7 = 0;
  15593. }
  15594. } while (0);
  15595. HEAP32[i6 + 36 >> 2] = i7;
  15596. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15597. _error(i2, 8824);
  15598. }
  15599. i7 = HEAP32[i3 >> 2] | 0;
  15600. if ((i7 | 0) < 0) {
  15601. _error(i2, 8872);
  15602. }
  15603. i9 = HEAP32[i2 >> 2] | 0;
  15604. if ((i7 + 1 | 0) >>> 0 > 1073741823) {
  15605. _luaM_toobig(i9);
  15606. }
  15607. i14 = i7 << 2;
  15608. i13 = _luaM_realloc_(i9, 0, 0, i14) | 0;
  15609. HEAP32[i6 + 20 >> 2] = i13;
  15610. HEAP32[i6 + 52 >> 2] = i7;
  15611. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
  15612. _error(i2, 8824);
  15613. }
  15614. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15615. _error(i2, 8824);
  15616. }
  15617. i7 = HEAP32[i3 >> 2] | 0;
  15618. if ((i7 | 0) < 0) {
  15619. _error(i2, 8872);
  15620. }
  15621. i9 = HEAP32[i2 >> 2] | 0;
  15622. if ((i7 + 1 | 0) >>> 0 > 357913941) {
  15623. _luaM_toobig(i9);
  15624. }
  15625. i10 = _luaM_realloc_(i9, 0, 0, i7 * 12 | 0) | 0;
  15626. i9 = i6 + 24 | 0;
  15627. HEAP32[i9 >> 2] = i10;
  15628. HEAP32[i6 + 60 >> 2] = i7;
  15629. L141 : do {
  15630. if ((i7 | 0) > 0) {
  15631. HEAP32[i10 >> 2] = 0;
  15632. if ((i7 | 0) != 1) {
  15633. i6 = 1;
  15634. do {
  15635. HEAP32[(HEAP32[i9 >> 2] | 0) + (i6 * 12 | 0) >> 2] = 0;
  15636. i6 = i6 + 1 | 0;
  15637. } while ((i6 | 0) != (i7 | 0));
  15638. }
  15639. i6 = i2 + 8 | 0;
  15640. i10 = 0;
  15641. while (1) {
  15642. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15643. i9 = 102;
  15644. break;
  15645. }
  15646. i11 = HEAP32[i3 >> 2] | 0;
  15647. if ((i11 | 0) == 0) {
  15648. i11 = 0;
  15649. } else {
  15650. i11 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i6 >> 2] | 0, i11) | 0;
  15651. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i11, HEAP32[i3 >> 2] | 0) | 0) != 0) {
  15652. i9 = 105;
  15653. break;
  15654. }
  15655. i11 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i11, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
  15656. }
  15657. HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) >> 2] = i11;
  15658. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15659. i9 = 108;
  15660. break;
  15661. }
  15662. i11 = HEAP32[i3 >> 2] | 0;
  15663. if ((i11 | 0) < 0) {
  15664. i9 = 110;
  15665. break;
  15666. }
  15667. HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 4 >> 2] = i11;
  15668. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15669. i9 = 112;
  15670. break;
  15671. }
  15672. i11 = HEAP32[i3 >> 2] | 0;
  15673. if ((i11 | 0) < 0) {
  15674. i9 = 114;
  15675. break;
  15676. }
  15677. HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 8 >> 2] = i11;
  15678. i10 = i10 + 1 | 0;
  15679. if ((i10 | 0) >= (i7 | 0)) {
  15680. break L141;
  15681. }
  15682. }
  15683. if ((i9 | 0) == 102) {
  15684. _error(i2, 8824);
  15685. } else if ((i9 | 0) == 105) {
  15686. _error(i2, 8824);
  15687. } else if ((i9 | 0) == 108) {
  15688. _error(i2, 8824);
  15689. } else if ((i9 | 0) == 110) {
  15690. _error(i2, 8872);
  15691. } else if ((i9 | 0) == 112) {
  15692. _error(i2, 8824);
  15693. } else if ((i9 | 0) == 114) {
  15694. _error(i2, 8872);
  15695. }
  15696. }
  15697. } while (0);
  15698. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i5, 4) | 0) != 0) {
  15699. _error(i2, 8824);
  15700. }
  15701. i6 = HEAP32[i5 >> 2] | 0;
  15702. if ((i6 | 0) < 0) {
  15703. _error(i2, 8872);
  15704. }
  15705. if ((i6 | 0) <= 0) {
  15706. STACKTOP = i1;
  15707. return;
  15708. }
  15709. i5 = i2 + 8 | 0;
  15710. i7 = 0;
  15711. while (1) {
  15712. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
  15713. i9 = 123;
  15714. break;
  15715. }
  15716. i9 = HEAP32[i3 >> 2] | 0;
  15717. if ((i9 | 0) == 0) {
  15718. i9 = 0;
  15719. } else {
  15720. i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0, i9) | 0;
  15721. if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) != 0) {
  15722. i9 = 126;
  15723. break;
  15724. }
  15725. i9 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
  15726. }
  15727. HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 3) >> 2] = i9;
  15728. i7 = i7 + 1 | 0;
  15729. if ((i7 | 0) >= (i6 | 0)) {
  15730. i9 = 129;
  15731. break;
  15732. }
  15733. }
  15734. if ((i9 | 0) == 123) {
  15735. _error(i2, 8824);
  15736. } else if ((i9 | 0) == 126) {
  15737. _error(i2, 8824);
  15738. } else if ((i9 | 0) == 129) {
  15739. STACKTOP = i1;
  15740. return;
  15741. }
  15742. }
  15743. function _exp2reg(i4, i1, i7) {
  15744. i4 = i4 | 0;
  15745. i1 = i1 | 0;
  15746. i7 = i7 | 0;
  15747. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
  15748. i5 = STACKTOP;
  15749. _discharge2reg(i4, i1, i7);
  15750. i6 = i1 + 16 | 0;
  15751. do {
  15752. if ((HEAP32[i1 >> 2] | 0) == 10 ? (i10 = HEAP32[i1 + 8 >> 2] | 0, !((i10 | 0) == -1)) : 0) {
  15753. i22 = HEAP32[i6 >> 2] | 0;
  15754. if ((i22 | 0) == -1) {
  15755. HEAP32[i6 >> 2] = i10;
  15756. break;
  15757. }
  15758. i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15759. while (1) {
  15760. i19 = i20 + (i22 << 2) | 0;
  15761. i21 = HEAP32[i19 >> 2] | 0;
  15762. i23 = (i21 >>> 14) + -131071 | 0;
  15763. if ((i23 | 0) == -1) {
  15764. break;
  15765. }
  15766. i23 = i22 + 1 + i23 | 0;
  15767. if ((i23 | 0) == -1) {
  15768. break;
  15769. } else {
  15770. i22 = i23;
  15771. }
  15772. }
  15773. i10 = i10 + ~i22 | 0;
  15774. if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
  15775. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  15776. } else {
  15777. HEAP32[i19 >> 2] = (i10 << 14) + 2147467264 | i21 & 16383;
  15778. break;
  15779. }
  15780. }
  15781. } while (0);
  15782. i21 = HEAP32[i6 >> 2] | 0;
  15783. i10 = i1 + 20 | 0;
  15784. i19 = HEAP32[i10 >> 2] | 0;
  15785. if ((i21 | 0) == (i19 | 0)) {
  15786. HEAP32[i6 >> 2] = -1;
  15787. HEAP32[i10 >> 2] = -1;
  15788. i25 = i1 + 8 | 0;
  15789. HEAP32[i25 >> 2] = i7;
  15790. HEAP32[i1 >> 2] = 6;
  15791. STACKTOP = i5;
  15792. return;
  15793. }
  15794. L18 : do {
  15795. if ((i21 | 0) == -1) {
  15796. i18 = 20;
  15797. } else {
  15798. i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15799. while (1) {
  15800. i23 = i20 + (i21 << 2) | 0;
  15801. if ((i21 | 0) > 0 ? (i18 = HEAP32[i20 + (i21 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i18 & 63) | 0] | 0) < 0) : 0) {
  15802. i22 = i18;
  15803. } else {
  15804. i22 = HEAP32[i23 >> 2] | 0;
  15805. }
  15806. if ((i22 & 63 | 0) != 28) {
  15807. i18 = 28;
  15808. break L18;
  15809. }
  15810. i22 = ((HEAP32[i23 >> 2] | 0) >>> 14) + -131071 | 0;
  15811. if ((i22 | 0) == -1) {
  15812. i18 = 20;
  15813. break L18;
  15814. }
  15815. i21 = i21 + 1 + i22 | 0;
  15816. if ((i21 | 0) == -1) {
  15817. i18 = 20;
  15818. break;
  15819. }
  15820. }
  15821. }
  15822. } while (0);
  15823. L29 : do {
  15824. if ((i18 | 0) == 20) {
  15825. if ((i19 | 0) == -1) {
  15826. i15 = -1;
  15827. i8 = -1;
  15828. } else {
  15829. i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15830. while (1) {
  15831. i21 = i20 + (i19 << 2) | 0;
  15832. if ((i19 | 0) > 0 ? (i17 = HEAP32[i20 + (i19 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i17 & 63) | 0] | 0) < 0) : 0) {
  15833. i22 = i17;
  15834. } else {
  15835. i22 = HEAP32[i21 >> 2] | 0;
  15836. }
  15837. if ((i22 & 63 | 0) != 28) {
  15838. i18 = 28;
  15839. break L29;
  15840. }
  15841. i21 = ((HEAP32[i21 >> 2] | 0) >>> 14) + -131071 | 0;
  15842. if ((i21 | 0) == -1) {
  15843. i15 = -1;
  15844. i8 = -1;
  15845. break L29;
  15846. }
  15847. i19 = i19 + 1 + i21 | 0;
  15848. if ((i19 | 0) == -1) {
  15849. i15 = -1;
  15850. i8 = -1;
  15851. break;
  15852. }
  15853. }
  15854. }
  15855. }
  15856. } while (0);
  15857. do {
  15858. if ((i18 | 0) == 28) {
  15859. i17 = i4 + 28 | 0;
  15860. do {
  15861. if ((HEAP32[i1 >> 2] | 0) != 10) {
  15862. i21 = HEAP32[i17 >> 2] | 0;
  15863. HEAP32[i17 >> 2] = -1;
  15864. i18 = _luaK_code(i4, 2147450903) | 0;
  15865. if (!((i21 | 0) == -1)) {
  15866. if (!((i18 | 0) == -1)) {
  15867. i23 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15868. i22 = i18;
  15869. while (1) {
  15870. i20 = i23 + (i22 << 2) | 0;
  15871. i19 = HEAP32[i20 >> 2] | 0;
  15872. i24 = (i19 >>> 14) + -131071 | 0;
  15873. if ((i24 | 0) == -1) {
  15874. break;
  15875. }
  15876. i24 = i22 + 1 + i24 | 0;
  15877. if ((i24 | 0) == -1) {
  15878. break;
  15879. } else {
  15880. i22 = i24;
  15881. }
  15882. }
  15883. i21 = i21 + ~i22 | 0;
  15884. if ((((i21 | 0) > -1 ? i21 : 0 - i21 | 0) | 0) > 131071) {
  15885. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  15886. } else {
  15887. HEAP32[i20 >> 2] = (i21 << 14) + 2147467264 | i19 & 16383;
  15888. i16 = i18;
  15889. break;
  15890. }
  15891. } else {
  15892. i16 = i21;
  15893. }
  15894. } else {
  15895. i16 = i18;
  15896. }
  15897. } else {
  15898. i16 = -1;
  15899. }
  15900. } while (0);
  15901. i24 = i4 + 20 | 0;
  15902. i25 = i4 + 24 | 0;
  15903. HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
  15904. i19 = i7 << 6;
  15905. i18 = _luaK_code(i4, i19 | 16387) | 0;
  15906. HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
  15907. i19 = _luaK_code(i4, i19 | 8388611) | 0;
  15908. HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
  15909. if (!((i16 | 0) == -1)) {
  15910. i22 = HEAP32[i17 >> 2] | 0;
  15911. if ((i22 | 0) == -1) {
  15912. HEAP32[i17 >> 2] = i16;
  15913. i15 = i18;
  15914. i8 = i19;
  15915. break;
  15916. }
  15917. i17 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15918. while (1) {
  15919. i21 = i17 + (i22 << 2) | 0;
  15920. i20 = HEAP32[i21 >> 2] | 0;
  15921. i23 = (i20 >>> 14) + -131071 | 0;
  15922. if ((i23 | 0) == -1) {
  15923. break;
  15924. }
  15925. i23 = i22 + 1 + i23 | 0;
  15926. if ((i23 | 0) == -1) {
  15927. break;
  15928. } else {
  15929. i22 = i23;
  15930. }
  15931. }
  15932. i16 = i16 + ~i22 | 0;
  15933. if ((((i16 | 0) > -1 ? i16 : 0 - i16 | 0) | 0) > 131071) {
  15934. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  15935. } else {
  15936. HEAP32[i21 >> 2] = (i16 << 14) + 2147467264 | i20 & 16383;
  15937. i15 = i18;
  15938. i8 = i19;
  15939. break;
  15940. }
  15941. } else {
  15942. i15 = i18;
  15943. i8 = i19;
  15944. }
  15945. }
  15946. } while (0);
  15947. i16 = HEAP32[i4 + 20 >> 2] | 0;
  15948. HEAP32[i4 + 24 >> 2] = i16;
  15949. i22 = HEAP32[i10 >> 2] | 0;
  15950. L67 : do {
  15951. if (!((i22 | 0) == -1)) {
  15952. i19 = (i7 | 0) == 255;
  15953. i17 = i7 << 6 & 16320;
  15954. i18 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  15955. while (1) {
  15956. i20 = i18 + (i22 << 2) | 0;
  15957. i23 = HEAP32[i20 >> 2] | 0;
  15958. i21 = (i23 >>> 14) + -131071 | 0;
  15959. if ((i21 | 0) == -1) {
  15960. i21 = -1;
  15961. } else {
  15962. i21 = i22 + 1 + i21 | 0;
  15963. }
  15964. if ((i22 | 0) > 0 ? (i14 = i18 + (i22 + -1 << 2) | 0, i13 = HEAP32[i14 >> 2] | 0, (HEAP8[5584 + (i13 & 63) | 0] | 0) < 0) : 0) {
  15965. i24 = i14;
  15966. i25 = i13;
  15967. } else {
  15968. i24 = i20;
  15969. i25 = i23;
  15970. }
  15971. if ((i25 & 63 | 0) == 28) {
  15972. i23 = i25 >>> 23;
  15973. if (i19 | (i23 | 0) == (i7 | 0)) {
  15974. i23 = i25 & 8372224 | i23 << 6 | 27;
  15975. } else {
  15976. i23 = i25 & -16321 | i17;
  15977. }
  15978. HEAP32[i24 >> 2] = i23;
  15979. i22 = i16 + ~i22 | 0;
  15980. if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
  15981. i18 = 58;
  15982. break;
  15983. }
  15984. i22 = HEAP32[i20 >> 2] & 16383 | (i22 << 14) + 2147467264;
  15985. } else {
  15986. i22 = i15 + ~i22 | 0;
  15987. if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
  15988. i18 = 61;
  15989. break;
  15990. }
  15991. i22 = i23 & 16383 | (i22 << 14) + 2147467264;
  15992. }
  15993. HEAP32[i20 >> 2] = i22;
  15994. if ((i21 | 0) == -1) {
  15995. break L67;
  15996. } else {
  15997. i22 = i21;
  15998. }
  15999. }
  16000. if ((i18 | 0) == 58) {
  16001. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  16002. } else if ((i18 | 0) == 61) {
  16003. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  16004. }
  16005. }
  16006. } while (0);
  16007. i20 = HEAP32[i6 >> 2] | 0;
  16008. if ((i20 | 0) == -1) {
  16009. HEAP32[i6 >> 2] = -1;
  16010. HEAP32[i10 >> 2] = -1;
  16011. i25 = i1 + 8 | 0;
  16012. HEAP32[i25 >> 2] = i7;
  16013. HEAP32[i1 >> 2] = 6;
  16014. STACKTOP = i5;
  16015. return;
  16016. }
  16017. i13 = i7 << 6;
  16018. i15 = i13 & 16320;
  16019. i14 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  16020. if ((i7 | 0) == 255) {
  16021. while (1) {
  16022. i17 = i14 + (i20 << 2) | 0;
  16023. i19 = HEAP32[i17 >> 2] | 0;
  16024. i18 = (i19 >>> 14) + -131071 | 0;
  16025. if ((i18 | 0) == -1) {
  16026. i18 = -1;
  16027. } else {
  16028. i18 = i20 + 1 + i18 | 0;
  16029. }
  16030. if ((i20 | 0) > 0 ? (i12 = i14 + (i20 + -1 << 2) | 0, i11 = HEAP32[i12 >> 2] | 0, (HEAP8[5584 + (i11 & 63) | 0] | 0) < 0) : 0) {
  16031. i22 = i12;
  16032. i21 = i11;
  16033. } else {
  16034. i22 = i17;
  16035. i21 = i19;
  16036. }
  16037. if ((i21 & 63 | 0) == 28) {
  16038. HEAP32[i22 >> 2] = i21 & 8372224 | i21 >>> 23 << 6 | 27;
  16039. i19 = i16 + ~i20 | 0;
  16040. if ((((i19 | 0) > -1 ? i19 : 0 - i19 | 0) | 0) > 131071) {
  16041. i18 = 87;
  16042. break;
  16043. }
  16044. i19 = HEAP32[i17 >> 2] & 16383 | (i19 << 14) + 2147467264;
  16045. } else {
  16046. i20 = i8 + ~i20 | 0;
  16047. if ((((i20 | 0) > -1 ? i20 : 0 - i20 | 0) | 0) > 131071) {
  16048. i18 = 90;
  16049. break;
  16050. }
  16051. i19 = i19 & 16383 | (i20 << 14) + 2147467264;
  16052. }
  16053. HEAP32[i17 >> 2] = i19;
  16054. if ((i18 | 0) == -1) {
  16055. i18 = 93;
  16056. break;
  16057. } else {
  16058. i20 = i18;
  16059. }
  16060. }
  16061. if ((i18 | 0) == 87) {
  16062. i25 = i4 + 12 | 0;
  16063. i25 = HEAP32[i25 >> 2] | 0;
  16064. _luaX_syntaxerror(i25, 10624);
  16065. } else if ((i18 | 0) == 90) {
  16066. i25 = i4 + 12 | 0;
  16067. i25 = HEAP32[i25 >> 2] | 0;
  16068. _luaX_syntaxerror(i25, 10624);
  16069. } else if ((i18 | 0) == 93) {
  16070. HEAP32[i6 >> 2] = -1;
  16071. HEAP32[i10 >> 2] = -1;
  16072. i25 = i1 + 8 | 0;
  16073. HEAP32[i25 >> 2] = i7;
  16074. HEAP32[i1 >> 2] = 6;
  16075. STACKTOP = i5;
  16076. return;
  16077. }
  16078. } else {
  16079. i9 = i20;
  16080. }
  16081. while (1) {
  16082. i11 = i14 + (i9 << 2) | 0;
  16083. i17 = HEAP32[i11 >> 2] | 0;
  16084. i12 = (i17 >>> 14) + -131071 | 0;
  16085. if ((i12 | 0) == -1) {
  16086. i12 = -1;
  16087. } else {
  16088. i12 = i9 + 1 + i12 | 0;
  16089. }
  16090. if ((i9 | 0) > 0 ? (i3 = i14 + (i9 + -1 << 2) | 0, i2 = HEAP32[i3 >> 2] | 0, (HEAP8[5584 + (i2 & 63) | 0] | 0) < 0) : 0) {
  16091. i18 = i3;
  16092. i19 = i2;
  16093. } else {
  16094. i18 = i11;
  16095. i19 = i17;
  16096. }
  16097. if ((i19 & 63 | 0) == 28) {
  16098. if ((i19 >>> 23 | 0) == (i7 | 0)) {
  16099. i17 = i19 & 8372224 | i13 | 27;
  16100. } else {
  16101. i17 = i19 & -16321 | i15;
  16102. }
  16103. HEAP32[i18 >> 2] = i17;
  16104. i9 = i16 + ~i9 | 0;
  16105. if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
  16106. i18 = 87;
  16107. break;
  16108. }
  16109. i9 = HEAP32[i11 >> 2] & 16383 | (i9 << 14) + 2147467264;
  16110. } else {
  16111. i9 = i8 + ~i9 | 0;
  16112. if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
  16113. i18 = 90;
  16114. break;
  16115. }
  16116. i9 = i17 & 16383 | (i9 << 14) + 2147467264;
  16117. }
  16118. HEAP32[i11 >> 2] = i9;
  16119. if ((i12 | 0) == -1) {
  16120. i18 = 93;
  16121. break;
  16122. } else {
  16123. i9 = i12;
  16124. }
  16125. }
  16126. if ((i18 | 0) == 87) {
  16127. i25 = i4 + 12 | 0;
  16128. i25 = HEAP32[i25 >> 2] | 0;
  16129. _luaX_syntaxerror(i25, 10624);
  16130. } else if ((i18 | 0) == 90) {
  16131. i25 = i4 + 12 | 0;
  16132. i25 = HEAP32[i25 >> 2] | 0;
  16133. _luaX_syntaxerror(i25, 10624);
  16134. } else if ((i18 | 0) == 93) {
  16135. HEAP32[i6 >> 2] = -1;
  16136. HEAP32[i10 >> 2] = -1;
  16137. i25 = i1 + 8 | 0;
  16138. HEAP32[i25 >> 2] = i7;
  16139. HEAP32[i1 >> 2] = 6;
  16140. STACKTOP = i5;
  16141. return;
  16142. }
  16143. }
  16144. function _propagatemark(i2) {
  16145. i2 = i2 | 0;
  16146. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  16147. i1 = STACKTOP;
  16148. i15 = i2 + 84 | 0;
  16149. i3 = HEAP32[i15 >> 2] | 0;
  16150. i10 = i3 + 5 | 0;
  16151. HEAP8[i10] = HEAPU8[i10] | 4;
  16152. switch (HEAPU8[i3 + 4 | 0] | 0) {
  16153. case 5:
  16154. {
  16155. i9 = i3 + 24 | 0;
  16156. HEAP32[i15 >> 2] = HEAP32[i9 >> 2];
  16157. i15 = i3 + 8 | 0;
  16158. i14 = HEAP32[i15 >> 2] | 0;
  16159. do {
  16160. if ((i14 | 0) != 0) {
  16161. if ((HEAP8[i14 + 6 | 0] & 8) == 0) {
  16162. i11 = _luaT_gettm(i14, 3, HEAP32[i2 + 196 >> 2] | 0) | 0;
  16163. i14 = HEAP32[i15 >> 2] | 0;
  16164. if ((i14 | 0) != 0) {
  16165. i6 = 5;
  16166. }
  16167. } else {
  16168. i11 = 0;
  16169. i6 = 5;
  16170. }
  16171. if ((i6 | 0) == 5) {
  16172. if (!((HEAP8[i14 + 5 | 0] & 3) == 0)) {
  16173. _reallymarkobject(i2, i14);
  16174. }
  16175. }
  16176. if (((i11 | 0) != 0 ? (HEAP32[i11 + 8 >> 2] & 15 | 0) == 4 : 0) ? (i13 = (HEAP32[i11 >> 2] | 0) + 16 | 0, i12 = _strchr(i13, 107) | 0, i12 = (i12 | 0) != 0, i13 = (_strchr(i13, 118) | 0) == 0, !(i13 & (i12 ^ 1))) : 0) {
  16177. HEAP8[i10] = HEAP8[i10] & 251;
  16178. if (i12) {
  16179. if (i13) {
  16180. _traverseephemeron(i2, i3) | 0;
  16181. break;
  16182. } else {
  16183. i15 = i2 + 100 | 0;
  16184. HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
  16185. HEAP32[i15 >> 2] = i3;
  16186. break;
  16187. }
  16188. }
  16189. i15 = 1 << HEAPU8[i3 + 7 | 0];
  16190. i5 = HEAP32[i3 + 16 >> 2] | 0;
  16191. i4 = i5 + (i15 << 5) | 0;
  16192. i8 = (HEAP32[i3 + 28 >> 2] | 0) > 0 | 0;
  16193. if ((i15 | 0) > 0) {
  16194. do {
  16195. i12 = i5 + 8 | 0;
  16196. i10 = i5 + 24 | 0;
  16197. i11 = (HEAP32[i10 >> 2] & 64 | 0) == 0;
  16198. do {
  16199. if ((HEAP32[i12 >> 2] | 0) == 0) {
  16200. if (!i11 ? !((HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
  16201. HEAP32[i10 >> 2] = 11;
  16202. }
  16203. } else {
  16204. if (!i11 ? (i7 = HEAP32[i5 + 16 >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
  16205. _reallymarkobject(i2, i7);
  16206. }
  16207. if ((i8 | 0) == 0) {
  16208. i10 = HEAP32[i12 >> 2] | 0;
  16209. if ((i10 & 64 | 0) != 0) {
  16210. i8 = HEAP32[i5 >> 2] | 0;
  16211. if ((i10 & 15 | 0) != 4) {
  16212. i8 = (HEAP8[i8 + 5 | 0] & 3) != 0 | 0;
  16213. break;
  16214. }
  16215. if ((i8 | 0) != 0 ? !((HEAP8[i8 + 5 | 0] & 3) == 0) : 0) {
  16216. _reallymarkobject(i2, i8);
  16217. i8 = 0;
  16218. } else {
  16219. i8 = 0;
  16220. }
  16221. } else {
  16222. i8 = 0;
  16223. }
  16224. }
  16225. }
  16226. } while (0);
  16227. i5 = i5 + 32 | 0;
  16228. } while (i5 >>> 0 < i4 >>> 0);
  16229. }
  16230. if ((i8 | 0) == 0) {
  16231. i15 = i2 + 88 | 0;
  16232. HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
  16233. HEAP32[i15 >> 2] = i3;
  16234. break;
  16235. } else {
  16236. i15 = i2 + 92 | 0;
  16237. HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
  16238. HEAP32[i15 >> 2] = i3;
  16239. break;
  16240. }
  16241. } else {
  16242. i6 = 33;
  16243. }
  16244. } else {
  16245. i6 = 33;
  16246. }
  16247. } while (0);
  16248. if ((i6 | 0) == 33) {
  16249. i7 = i3 + 16 | 0;
  16250. i10 = HEAP32[i7 >> 2] | 0;
  16251. i6 = i10 + (1 << HEAPU8[i3 + 7 | 0] << 5) | 0;
  16252. i9 = i3 + 28 | 0;
  16253. i13 = HEAP32[i9 >> 2] | 0;
  16254. if ((i13 | 0) > 0) {
  16255. i10 = i3 + 12 | 0;
  16256. i11 = 0;
  16257. do {
  16258. i12 = HEAP32[i10 >> 2] | 0;
  16259. if ((HEAP32[i12 + (i11 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i8 = HEAP32[i12 + (i11 << 4) >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 3) == 0)) : 0) {
  16260. _reallymarkobject(i2, i8);
  16261. i13 = HEAP32[i9 >> 2] | 0;
  16262. }
  16263. i11 = i11 + 1 | 0;
  16264. } while ((i11 | 0) < (i13 | 0));
  16265. i7 = HEAP32[i7 >> 2] | 0;
  16266. } else {
  16267. i7 = i10;
  16268. }
  16269. if (i7 >>> 0 < i6 >>> 0) {
  16270. do {
  16271. i10 = i7 + 8 | 0;
  16272. i11 = HEAP32[i10 >> 2] | 0;
  16273. i9 = i7 + 24 | 0;
  16274. i8 = (HEAP32[i9 >> 2] & 64 | 0) == 0;
  16275. if ((i11 | 0) == 0) {
  16276. if (!i8 ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
  16277. HEAP32[i9 >> 2] = 11;
  16278. }
  16279. } else {
  16280. if (!i8 ? (i5 = HEAP32[i7 + 16 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
  16281. _reallymarkobject(i2, i5);
  16282. i11 = HEAP32[i10 >> 2] | 0;
  16283. }
  16284. if ((i11 & 64 | 0) != 0 ? (i4 = HEAP32[i7 >> 2] | 0, !((HEAP8[i4 + 5 | 0] & 3) == 0)) : 0) {
  16285. _reallymarkobject(i2, i4);
  16286. }
  16287. }
  16288. i7 = i7 + 32 | 0;
  16289. } while (i7 >>> 0 < i6 >>> 0);
  16290. }
  16291. }
  16292. i3 = (HEAP32[i3 + 28 >> 2] << 4) + 32 + (32 << HEAPU8[i3 + 7 | 0]) | 0;
  16293. break;
  16294. }
  16295. case 8:
  16296. {
  16297. i7 = i3 + 60 | 0;
  16298. HEAP32[i15 >> 2] = HEAP32[i7 >> 2];
  16299. i4 = i2 + 88 | 0;
  16300. HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
  16301. HEAP32[i4 >> 2] = i3;
  16302. HEAP8[i10] = HEAP8[i10] & 251;
  16303. i4 = i3 + 28 | 0;
  16304. i7 = HEAP32[i4 >> 2] | 0;
  16305. if ((i7 | 0) == 0) {
  16306. i3 = 1;
  16307. } else {
  16308. i5 = i3 + 8 | 0;
  16309. i6 = HEAP32[i5 >> 2] | 0;
  16310. if (i7 >>> 0 < i6 >>> 0) {
  16311. do {
  16312. if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i11 = HEAP32[i7 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
  16313. _reallymarkobject(i2, i11);
  16314. i6 = HEAP32[i5 >> 2] | 0;
  16315. }
  16316. i7 = i7 + 16 | 0;
  16317. } while (i7 >>> 0 < i6 >>> 0);
  16318. }
  16319. if ((HEAP8[i2 + 61 | 0] | 0) == 1) {
  16320. i3 = i3 + 32 | 0;
  16321. i4 = (HEAP32[i4 >> 2] | 0) + (HEAP32[i3 >> 2] << 4) | 0;
  16322. if (i7 >>> 0 < i4 >>> 0) {
  16323. do {
  16324. HEAP32[i7 + 8 >> 2] = 0;
  16325. i7 = i7 + 16 | 0;
  16326. } while (i7 >>> 0 < i4 >>> 0);
  16327. }
  16328. } else {
  16329. i3 = i3 + 32 | 0;
  16330. }
  16331. i3 = (HEAP32[i3 >> 2] << 4) + 112 | 0;
  16332. }
  16333. break;
  16334. }
  16335. case 9:
  16336. {
  16337. HEAP32[i15 >> 2] = HEAP32[i3 + 72 >> 2];
  16338. i5 = i3 + 32 | 0;
  16339. i4 = HEAP32[i5 >> 2] | 0;
  16340. if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
  16341. HEAP32[i5 >> 2] = 0;
  16342. }
  16343. i4 = HEAP32[i3 + 36 >> 2] | 0;
  16344. if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
  16345. _reallymarkobject(i2, i4);
  16346. }
  16347. i4 = i3 + 44 | 0;
  16348. i8 = HEAP32[i4 >> 2] | 0;
  16349. if ((i8 | 0) > 0) {
  16350. i5 = i3 + 8 | 0;
  16351. i6 = 0;
  16352. do {
  16353. i7 = HEAP32[i5 >> 2] | 0;
  16354. if ((HEAP32[i7 + (i6 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i9 = HEAP32[i7 + (i6 << 4) >> 2] | 0, !((HEAP8[i9 + 5 | 0] & 3) == 0)) : 0) {
  16355. _reallymarkobject(i2, i9);
  16356. i8 = HEAP32[i4 >> 2] | 0;
  16357. }
  16358. i6 = i6 + 1 | 0;
  16359. } while ((i6 | 0) < (i8 | 0));
  16360. }
  16361. i5 = i3 + 40 | 0;
  16362. i8 = HEAP32[i5 >> 2] | 0;
  16363. if ((i8 | 0) > 0) {
  16364. i6 = i3 + 28 | 0;
  16365. i7 = 0;
  16366. do {
  16367. i9 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 3) >> 2] | 0;
  16368. if ((i9 | 0) != 0 ? !((HEAP8[i9 + 5 | 0] & 3) == 0) : 0) {
  16369. _reallymarkobject(i2, i9);
  16370. i8 = HEAP32[i5 >> 2] | 0;
  16371. }
  16372. i7 = i7 + 1 | 0;
  16373. } while ((i7 | 0) < (i8 | 0));
  16374. }
  16375. i6 = i3 + 56 | 0;
  16376. i8 = HEAP32[i6 >> 2] | 0;
  16377. if ((i8 | 0) > 0) {
  16378. i7 = i3 + 16 | 0;
  16379. i9 = 0;
  16380. do {
  16381. i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0;
  16382. if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
  16383. _reallymarkobject(i2, i10);
  16384. i8 = HEAP32[i6 >> 2] | 0;
  16385. }
  16386. i9 = i9 + 1 | 0;
  16387. } while ((i9 | 0) < (i8 | 0));
  16388. }
  16389. i7 = i3 + 60 | 0;
  16390. i11 = HEAP32[i7 >> 2] | 0;
  16391. if ((i11 | 0) > 0) {
  16392. i8 = i3 + 24 | 0;
  16393. i9 = 0;
  16394. do {
  16395. i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 * 12 | 0) >> 2] | 0;
  16396. if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
  16397. _reallymarkobject(i2, i10);
  16398. i11 = HEAP32[i7 >> 2] | 0;
  16399. }
  16400. i9 = i9 + 1 | 0;
  16401. } while ((i9 | 0) < (i11 | 0));
  16402. i8 = HEAP32[i6 >> 2] | 0;
  16403. }
  16404. i3 = (i11 * 12 | 0) + 80 + (HEAP32[i4 >> 2] << 4) + (HEAP32[i5 >> 2] << 3) + ((HEAP32[i3 + 48 >> 2] | 0) + i8 + (HEAP32[i3 + 52 >> 2] | 0) << 2) | 0;
  16405. break;
  16406. }
  16407. case 38:
  16408. {
  16409. HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
  16410. i4 = i3 + 6 | 0;
  16411. i5 = HEAP8[i4] | 0;
  16412. if (i5 << 24 >> 24 == 0) {
  16413. i7 = i5 & 255;
  16414. } else {
  16415. i6 = 0;
  16416. do {
  16417. if ((HEAP32[i3 + (i6 << 4) + 24 >> 2] & 64 | 0) != 0 ? (i14 = HEAP32[i3 + (i6 << 4) + 16 >> 2] | 0, !((HEAP8[i14 + 5 | 0] & 3) == 0)) : 0) {
  16418. _reallymarkobject(i2, i14);
  16419. i5 = HEAP8[i4] | 0;
  16420. }
  16421. i6 = i6 + 1 | 0;
  16422. i7 = i5 & 255;
  16423. } while ((i6 | 0) < (i7 | 0));
  16424. }
  16425. i3 = (i7 << 4) + 16 | 0;
  16426. break;
  16427. }
  16428. case 6:
  16429. {
  16430. HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
  16431. i4 = HEAP32[i3 + 12 >> 2] | 0;
  16432. if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
  16433. _reallymarkobject(i2, i4);
  16434. }
  16435. i4 = i3 + 6 | 0;
  16436. i6 = HEAP8[i4] | 0;
  16437. if (i6 << 24 >> 24 == 0) {
  16438. i7 = i6 & 255;
  16439. } else {
  16440. i5 = 0;
  16441. do {
  16442. i7 = HEAP32[i3 + (i5 << 2) + 16 >> 2] | 0;
  16443. if ((i7 | 0) != 0 ? !((HEAP8[i7 + 5 | 0] & 3) == 0) : 0) {
  16444. _reallymarkobject(i2, i7);
  16445. i6 = HEAP8[i4] | 0;
  16446. }
  16447. i5 = i5 + 1 | 0;
  16448. i7 = i6 & 255;
  16449. } while ((i5 | 0) < (i7 | 0));
  16450. }
  16451. i3 = (i7 << 2) + 16 | 0;
  16452. break;
  16453. }
  16454. default:
  16455. {
  16456. STACKTOP = i1;
  16457. return;
  16458. }
  16459. }
  16460. i15 = i2 + 16 | 0;
  16461. HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) + i3;
  16462. STACKTOP = i1;
  16463. return;
  16464. }
  16465. function _strstr(i8, i4) {
  16466. i8 = i8 | 0;
  16467. i4 = i4 | 0;
  16468. var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
  16469. i1 = STACKTOP;
  16470. STACKTOP = STACKTOP + 1056 | 0;
  16471. i6 = i1 + 1024 | 0;
  16472. i2 = i1;
  16473. i10 = HEAP8[i4] | 0;
  16474. if (i10 << 24 >> 24 == 0) {
  16475. i20 = i8;
  16476. STACKTOP = i1;
  16477. return i20 | 0;
  16478. }
  16479. i8 = _strchr(i8, i10 << 24 >> 24) | 0;
  16480. if ((i8 | 0) == 0) {
  16481. i20 = 0;
  16482. STACKTOP = i1;
  16483. return i20 | 0;
  16484. }
  16485. i13 = HEAP8[i4 + 1 | 0] | 0;
  16486. if (i13 << 24 >> 24 == 0) {
  16487. i20 = i8;
  16488. STACKTOP = i1;
  16489. return i20 | 0;
  16490. }
  16491. i11 = i8 + 1 | 0;
  16492. i9 = HEAP8[i11] | 0;
  16493. if (i9 << 24 >> 24 == 0) {
  16494. i20 = 0;
  16495. STACKTOP = i1;
  16496. return i20 | 0;
  16497. }
  16498. i15 = HEAP8[i4 + 2 | 0] | 0;
  16499. if (i15 << 24 >> 24 == 0) {
  16500. i2 = i13 & 255 | (i10 & 255) << 8;
  16501. i3 = i9;
  16502. i4 = HEAPU8[i8] << 8 | i9 & 255;
  16503. while (1) {
  16504. i5 = i4 & 65535;
  16505. if ((i5 | 0) == (i2 | 0)) {
  16506. break;
  16507. }
  16508. i11 = i11 + 1 | 0;
  16509. i4 = HEAP8[i11] | 0;
  16510. if (i4 << 24 >> 24 == 0) {
  16511. i3 = 0;
  16512. break;
  16513. } else {
  16514. i3 = i4;
  16515. i4 = i4 & 255 | i5 << 8;
  16516. }
  16517. }
  16518. i20 = i3 << 24 >> 24 == 0 ? 0 : i11 + -1 | 0;
  16519. STACKTOP = i1;
  16520. return i20 | 0;
  16521. }
  16522. i16 = i8 + 2 | 0;
  16523. i11 = HEAP8[i16] | 0;
  16524. if (i11 << 24 >> 24 == 0) {
  16525. i20 = 0;
  16526. STACKTOP = i1;
  16527. return i20 | 0;
  16528. }
  16529. i18 = HEAP8[i4 + 3 | 0] | 0;
  16530. if (i18 << 24 >> 24 == 0) {
  16531. i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8;
  16532. i4 = (i11 & 255) << 8 | (i9 & 255) << 16 | HEAPU8[i8] << 24;
  16533. if ((i4 | 0) == (i2 | 0)) {
  16534. i3 = 0;
  16535. } else {
  16536. do {
  16537. i16 = i16 + 1 | 0;
  16538. i3 = HEAP8[i16] | 0;
  16539. i4 = (i3 & 255 | i4) << 8;
  16540. i3 = i3 << 24 >> 24 == 0;
  16541. } while (!(i3 | (i4 | 0) == (i2 | 0)));
  16542. }
  16543. i20 = i3 ? 0 : i16 + -2 | 0;
  16544. STACKTOP = i1;
  16545. return i20 | 0;
  16546. }
  16547. i16 = i8 + 3 | 0;
  16548. i17 = HEAP8[i16] | 0;
  16549. if (i17 << 24 >> 24 == 0) {
  16550. i20 = 0;
  16551. STACKTOP = i1;
  16552. return i20 | 0;
  16553. }
  16554. if ((HEAP8[i4 + 4 | 0] | 0) == 0) {
  16555. i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8 | i18 & 255;
  16556. i3 = (i11 & 255) << 8 | (i9 & 255) << 16 | i17 & 255 | HEAPU8[i8] << 24;
  16557. if ((i3 | 0) == (i2 | 0)) {
  16558. i4 = 0;
  16559. } else {
  16560. do {
  16561. i16 = i16 + 1 | 0;
  16562. i4 = HEAP8[i16] | 0;
  16563. i3 = i4 & 255 | i3 << 8;
  16564. i4 = i4 << 24 >> 24 == 0;
  16565. } while (!(i4 | (i3 | 0) == (i2 | 0)));
  16566. }
  16567. i20 = i4 ? 0 : i16 + -3 | 0;
  16568. STACKTOP = i1;
  16569. return i20 | 0;
  16570. }
  16571. HEAP32[i6 + 0 >> 2] = 0;
  16572. HEAP32[i6 + 4 >> 2] = 0;
  16573. HEAP32[i6 + 8 >> 2] = 0;
  16574. HEAP32[i6 + 12 >> 2] = 0;
  16575. HEAP32[i6 + 16 >> 2] = 0;
  16576. HEAP32[i6 + 20 >> 2] = 0;
  16577. HEAP32[i6 + 24 >> 2] = 0;
  16578. HEAP32[i6 + 28 >> 2] = 0;
  16579. i9 = 0;
  16580. while (1) {
  16581. if ((HEAP8[i8 + i9 | 0] | 0) == 0) {
  16582. i14 = 0;
  16583. i12 = 80;
  16584. break;
  16585. }
  16586. i20 = i10 & 255;
  16587. i3 = i6 + (i20 >>> 5 << 2) | 0;
  16588. HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1 << (i20 & 31);
  16589. i3 = i9 + 1 | 0;
  16590. HEAP32[i2 + (i20 << 2) >> 2] = i3;
  16591. i10 = HEAP8[i4 + i3 | 0] | 0;
  16592. if (i10 << 24 >> 24 == 0) {
  16593. break;
  16594. } else {
  16595. i9 = i3;
  16596. }
  16597. }
  16598. if ((i12 | 0) == 80) {
  16599. STACKTOP = i1;
  16600. return i14 | 0;
  16601. }
  16602. L49 : do {
  16603. if (i3 >>> 0 > 1) {
  16604. i14 = 1;
  16605. i11 = -1;
  16606. i12 = 0;
  16607. L50 : while (1) {
  16608. i10 = 1;
  16609. while (1) {
  16610. i13 = i14;
  16611. L54 : while (1) {
  16612. i14 = 1;
  16613. while (1) {
  16614. i15 = HEAP8[i4 + (i14 + i11) | 0] | 0;
  16615. i16 = HEAP8[i4 + i13 | 0] | 0;
  16616. if (!(i15 << 24 >> 24 == i16 << 24 >> 24)) {
  16617. break L54;
  16618. }
  16619. i15 = i14 + 1 | 0;
  16620. if ((i14 | 0) == (i10 | 0)) {
  16621. break;
  16622. }
  16623. i13 = i15 + i12 | 0;
  16624. if (i13 >>> 0 < i3 >>> 0) {
  16625. i14 = i15;
  16626. } else {
  16627. break L50;
  16628. }
  16629. }
  16630. i12 = i12 + i10 | 0;
  16631. i13 = i12 + 1 | 0;
  16632. if (!(i13 >>> 0 < i3 >>> 0)) {
  16633. break L50;
  16634. }
  16635. }
  16636. i10 = i13 - i11 | 0;
  16637. if (!((i15 & 255) > (i16 & 255))) {
  16638. break;
  16639. }
  16640. i14 = i13 + 1 | 0;
  16641. if (i14 >>> 0 < i3 >>> 0) {
  16642. i12 = i13;
  16643. } else {
  16644. break L50;
  16645. }
  16646. }
  16647. i14 = i12 + 2 | 0;
  16648. if (i14 >>> 0 < i3 >>> 0) {
  16649. i11 = i12;
  16650. i12 = i12 + 1 | 0;
  16651. } else {
  16652. i11 = i12;
  16653. i10 = 1;
  16654. break;
  16655. }
  16656. }
  16657. i16 = 1;
  16658. i12 = -1;
  16659. i14 = 0;
  16660. while (1) {
  16661. i13 = 1;
  16662. while (1) {
  16663. i15 = i16;
  16664. L69 : while (1) {
  16665. i18 = 1;
  16666. while (1) {
  16667. i17 = HEAP8[i4 + (i18 + i12) | 0] | 0;
  16668. i16 = HEAP8[i4 + i15 | 0] | 0;
  16669. if (!(i17 << 24 >> 24 == i16 << 24 >> 24)) {
  16670. break L69;
  16671. }
  16672. i16 = i18 + 1 | 0;
  16673. if ((i18 | 0) == (i13 | 0)) {
  16674. break;
  16675. }
  16676. i15 = i16 + i14 | 0;
  16677. if (i15 >>> 0 < i3 >>> 0) {
  16678. i18 = i16;
  16679. } else {
  16680. i14 = i12;
  16681. break L49;
  16682. }
  16683. }
  16684. i14 = i14 + i13 | 0;
  16685. i15 = i14 + 1 | 0;
  16686. if (!(i15 >>> 0 < i3 >>> 0)) {
  16687. i14 = i12;
  16688. break L49;
  16689. }
  16690. }
  16691. i13 = i15 - i12 | 0;
  16692. if (!((i17 & 255) < (i16 & 255))) {
  16693. break;
  16694. }
  16695. i16 = i15 + 1 | 0;
  16696. if (i16 >>> 0 < i3 >>> 0) {
  16697. i14 = i15;
  16698. } else {
  16699. i14 = i12;
  16700. break L49;
  16701. }
  16702. }
  16703. i16 = i14 + 2 | 0;
  16704. if (i16 >>> 0 < i3 >>> 0) {
  16705. i12 = i14;
  16706. i14 = i14 + 1 | 0;
  16707. } else {
  16708. i13 = 1;
  16709. break;
  16710. }
  16711. }
  16712. } else {
  16713. i11 = -1;
  16714. i14 = -1;
  16715. i10 = 1;
  16716. i13 = 1;
  16717. }
  16718. } while (0);
  16719. i15 = (i14 + 1 | 0) >>> 0 > (i11 + 1 | 0) >>> 0;
  16720. i12 = i15 ? i13 : i10;
  16721. i11 = i15 ? i14 : i11;
  16722. i10 = i11 + 1 | 0;
  16723. if ((_memcmp(i4, i4 + i12 | 0, i10) | 0) == 0) {
  16724. i15 = i3 - i12 | 0;
  16725. i16 = i3 | 63;
  16726. if ((i3 | 0) != (i12 | 0)) {
  16727. i14 = i8;
  16728. i13 = 0;
  16729. i17 = i8;
  16730. L82 : while (1) {
  16731. i18 = i14;
  16732. do {
  16733. if ((i17 - i18 | 0) >>> 0 < i3 >>> 0) {
  16734. i19 = _memchr(i17, 0, i16) | 0;
  16735. if ((i19 | 0) != 0) {
  16736. if ((i19 - i18 | 0) >>> 0 < i3 >>> 0) {
  16737. i14 = 0;
  16738. i12 = 80;
  16739. break L82;
  16740. } else {
  16741. i17 = i19;
  16742. break;
  16743. }
  16744. } else {
  16745. i17 = i17 + i16 | 0;
  16746. break;
  16747. }
  16748. }
  16749. } while (0);
  16750. i18 = HEAPU8[i14 + i9 | 0] | 0;
  16751. if ((1 << (i18 & 31) & HEAP32[i6 + (i18 >>> 5 << 2) >> 2] | 0) == 0) {
  16752. i14 = i14 + i3 | 0;
  16753. i13 = 0;
  16754. continue;
  16755. }
  16756. i20 = HEAP32[i2 + (i18 << 2) >> 2] | 0;
  16757. i18 = i3 - i20 | 0;
  16758. if ((i3 | 0) != (i20 | 0)) {
  16759. i14 = i14 + ((i13 | 0) != 0 & i18 >>> 0 < i12 >>> 0 ? i15 : i18) | 0;
  16760. i13 = 0;
  16761. continue;
  16762. }
  16763. i20 = i10 >>> 0 > i13 >>> 0 ? i10 : i13;
  16764. i18 = HEAP8[i4 + i20 | 0] | 0;
  16765. L96 : do {
  16766. if (i18 << 24 >> 24 == 0) {
  16767. i19 = i10;
  16768. } else {
  16769. while (1) {
  16770. i19 = i20 + 1 | 0;
  16771. if (!(i18 << 24 >> 24 == (HEAP8[i14 + i20 | 0] | 0))) {
  16772. break;
  16773. }
  16774. i18 = HEAP8[i4 + i19 | 0] | 0;
  16775. if (i18 << 24 >> 24 == 0) {
  16776. i19 = i10;
  16777. break L96;
  16778. } else {
  16779. i20 = i19;
  16780. }
  16781. }
  16782. i14 = i14 + (i20 - i11) | 0;
  16783. i13 = 0;
  16784. continue L82;
  16785. }
  16786. } while (0);
  16787. while (1) {
  16788. if (!(i19 >>> 0 > i13 >>> 0)) {
  16789. break;
  16790. }
  16791. i18 = i19 + -1 | 0;
  16792. if ((HEAP8[i4 + i18 | 0] | 0) == (HEAP8[i14 + i18 | 0] | 0)) {
  16793. i19 = i18;
  16794. } else {
  16795. break;
  16796. }
  16797. }
  16798. if ((i19 | 0) == (i13 | 0)) {
  16799. i12 = 80;
  16800. break;
  16801. }
  16802. i14 = i14 + i12 | 0;
  16803. i13 = i15;
  16804. }
  16805. if ((i12 | 0) == 80) {
  16806. STACKTOP = i1;
  16807. return i14 | 0;
  16808. }
  16809. } else {
  16810. i5 = i16;
  16811. i7 = i3;
  16812. }
  16813. } else {
  16814. i7 = i3 - i11 + -1 | 0;
  16815. i5 = i3 | 63;
  16816. i7 = (i11 >>> 0 > i7 >>> 0 ? i11 : i7) + 1 | 0;
  16817. }
  16818. i12 = i4 + i10 | 0;
  16819. i14 = i8;
  16820. L111 : while (1) {
  16821. i13 = i14;
  16822. do {
  16823. if ((i8 - i13 | 0) >>> 0 < i3 >>> 0) {
  16824. i15 = _memchr(i8, 0, i5) | 0;
  16825. if ((i15 | 0) != 0) {
  16826. if ((i15 - i13 | 0) >>> 0 < i3 >>> 0) {
  16827. i14 = 0;
  16828. i12 = 80;
  16829. break L111;
  16830. } else {
  16831. i8 = i15;
  16832. break;
  16833. }
  16834. } else {
  16835. i8 = i8 + i5 | 0;
  16836. break;
  16837. }
  16838. }
  16839. } while (0);
  16840. i13 = HEAPU8[i14 + i9 | 0] | 0;
  16841. if ((1 << (i13 & 31) & HEAP32[i6 + (i13 >>> 5 << 2) >> 2] | 0) == 0) {
  16842. i14 = i14 + i3 | 0;
  16843. continue;
  16844. }
  16845. i13 = HEAP32[i2 + (i13 << 2) >> 2] | 0;
  16846. if ((i3 | 0) != (i13 | 0)) {
  16847. i14 = i14 + (i3 - i13) | 0;
  16848. continue;
  16849. }
  16850. i15 = HEAP8[i12] | 0;
  16851. L125 : do {
  16852. if (i15 << 24 >> 24 == 0) {
  16853. i13 = i10;
  16854. } else {
  16855. i16 = i10;
  16856. while (1) {
  16857. i13 = i16 + 1 | 0;
  16858. if (!(i15 << 24 >> 24 == (HEAP8[i14 + i16 | 0] | 0))) {
  16859. break;
  16860. }
  16861. i15 = HEAP8[i4 + i13 | 0] | 0;
  16862. if (i15 << 24 >> 24 == 0) {
  16863. i13 = i10;
  16864. break L125;
  16865. } else {
  16866. i16 = i13;
  16867. }
  16868. }
  16869. i14 = i14 + (i16 - i11) | 0;
  16870. continue L111;
  16871. }
  16872. } while (0);
  16873. do {
  16874. if ((i13 | 0) == 0) {
  16875. i12 = 80;
  16876. break L111;
  16877. }
  16878. i13 = i13 + -1 | 0;
  16879. } while ((HEAP8[i4 + i13 | 0] | 0) == (HEAP8[i14 + i13 | 0] | 0));
  16880. i14 = i14 + i7 | 0;
  16881. }
  16882. if ((i12 | 0) == 80) {
  16883. STACKTOP = i1;
  16884. return i14 | 0;
  16885. }
  16886. return 0;
  16887. }
  16888. function _str_format(i2) {
  16889. i2 = i2 | 0;
  16890. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, i22 = 0;
  16891. i12 = STACKTOP;
  16892. STACKTOP = STACKTOP + 1104 | 0;
  16893. i4 = i12;
  16894. i7 = i12 + 1060 | 0;
  16895. i9 = i12 + 1082 | 0;
  16896. i20 = i12 + 1056 | 0;
  16897. i10 = i12 + 16 | 0;
  16898. i5 = i12 + 1064 | 0;
  16899. i6 = i12 + 8 | 0;
  16900. i8 = _lua_gettop(i2) | 0;
  16901. i16 = _luaL_checklstring(i2, 1, i20) | 0;
  16902. i20 = HEAP32[i20 >> 2] | 0;
  16903. i3 = i16 + i20 | 0;
  16904. _luaL_buffinit(i2, i10);
  16905. L1 : do {
  16906. if ((i20 | 0) > 0) {
  16907. i1 = i10 + 8 | 0;
  16908. i13 = i10 + 4 | 0;
  16909. i14 = i5 + 1 | 0;
  16910. i19 = 1;
  16911. L3 : while (1) {
  16912. while (1) {
  16913. i15 = HEAP8[i16] | 0;
  16914. if (i15 << 24 >> 24 == 37) {
  16915. i18 = i16 + 1 | 0;
  16916. if ((HEAP8[i18] | 0) != 37) {
  16917. break;
  16918. }
  16919. i15 = HEAP32[i1 >> 2] | 0;
  16920. if (i15 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) {
  16921. i17 = 37;
  16922. } else {
  16923. _luaL_prepbuffsize(i10, 1) | 0;
  16924. i15 = HEAP32[i1 >> 2] | 0;
  16925. i17 = HEAP8[i18] | 0;
  16926. }
  16927. HEAP32[i1 >> 2] = i15 + 1;
  16928. HEAP8[(HEAP32[i10 >> 2] | 0) + i15 | 0] = i17;
  16929. i16 = i16 + 2 | 0;
  16930. } else {
  16931. i17 = HEAP32[i1 >> 2] | 0;
  16932. if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  16933. _luaL_prepbuffsize(i10, 1) | 0;
  16934. i17 = HEAP32[i1 >> 2] | 0;
  16935. i15 = HEAP8[i16] | 0;
  16936. }
  16937. HEAP32[i1 >> 2] = i17 + 1;
  16938. HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = i15;
  16939. i16 = i16 + 1 | 0;
  16940. }
  16941. if (!(i16 >>> 0 < i3 >>> 0)) {
  16942. break L1;
  16943. }
  16944. }
  16945. i17 = _luaL_prepbuffsize(i10, 512) | 0;
  16946. i15 = i19 + 1 | 0;
  16947. if ((i19 | 0) >= (i8 | 0)) {
  16948. _luaL_argerror(i2, i15, 7648) | 0;
  16949. }
  16950. i19 = HEAP8[i18] | 0;
  16951. L22 : do {
  16952. if (i19 << 24 >> 24 == 0) {
  16953. i19 = 0;
  16954. i20 = i18;
  16955. } else {
  16956. i20 = i18;
  16957. while (1) {
  16958. i16 = i20 + 1 | 0;
  16959. if ((_memchr(7800, i19 << 24 >> 24, 6) | 0) == 0) {
  16960. break L22;
  16961. }
  16962. i19 = HEAP8[i16] | 0;
  16963. if (i19 << 24 >> 24 == 0) {
  16964. i19 = 0;
  16965. i20 = i16;
  16966. break;
  16967. } else {
  16968. i20 = i16;
  16969. }
  16970. }
  16971. }
  16972. } while (0);
  16973. i16 = i18;
  16974. if ((i20 - i16 | 0) >>> 0 > 5) {
  16975. _luaL_error(i2, 7808, i4) | 0;
  16976. i19 = HEAP8[i20] | 0;
  16977. }
  16978. i19 = ((i19 & 255) + -48 | 0) >>> 0 < 10 ? i20 + 1 | 0 : i20;
  16979. i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
  16980. i20 = HEAP8[i19] | 0;
  16981. if (i20 << 24 >> 24 == 46) {
  16982. i20 = i19 + 1 | 0;
  16983. i19 = ((HEAPU8[i20] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 2 | 0 : i20;
  16984. i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
  16985. i20 = HEAP8[i19] | 0;
  16986. }
  16987. if (((i20 & 255) + -48 | 0) >>> 0 < 10) {
  16988. _luaL_error(i2, 7840, i4) | 0;
  16989. }
  16990. HEAP8[i5] = 37;
  16991. i16 = i19 - i16 | 0;
  16992. _memcpy(i14 | 0, i18 | 0, i16 + 1 | 0) | 0;
  16993. HEAP8[i5 + (i16 + 2) | 0] = 0;
  16994. i16 = i19 + 1 | 0;
  16995. i18 = HEAP8[i19] | 0;
  16996. L36 : do {
  16997. switch (i18 | 0) {
  16998. case 115:
  16999. {
  17000. i18 = _luaL_tolstring(i2, i15, i6) | 0;
  17001. if ((_strchr(i5, 46) | 0) == 0 ? (HEAP32[i6 >> 2] | 0) >>> 0 > 99 : 0) {
  17002. _luaL_addvalue(i10);
  17003. i17 = 0;
  17004. break L36;
  17005. }
  17006. HEAP32[i4 >> 2] = i18;
  17007. i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
  17008. _lua_settop(i2, -2);
  17009. break;
  17010. }
  17011. case 88:
  17012. case 120:
  17013. case 117:
  17014. case 111:
  17015. {
  17016. d21 = +_luaL_checknumber(i2, i15);
  17017. i18 = ~~d21 >>> 0;
  17018. d21 = d21 - +(i18 >>> 0);
  17019. if (!(d21 > -1.0 & d21 < 1.0)) {
  17020. _luaL_argerror(i2, i15, 7696) | 0;
  17021. }
  17022. i20 = _strlen(i5 | 0) | 0;
  17023. i22 = i5 + (i20 + -1) | 0;
  17024. i19 = HEAP8[i22] | 0;
  17025. HEAP8[i22] = 108;
  17026. HEAP8[i22 + 1 | 0] = 0;
  17027. HEAP8[i5 + i20 | 0] = i19;
  17028. HEAP8[i5 + (i20 + 1) | 0] = 0;
  17029. HEAP32[i4 >> 2] = i18;
  17030. i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
  17031. break;
  17032. }
  17033. case 99:
  17034. {
  17035. HEAP32[i4 >> 2] = _luaL_checkinteger(i2, i15) | 0;
  17036. i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
  17037. break;
  17038. }
  17039. case 113:
  17040. {
  17041. i17 = _luaL_checklstring(i2, i15, i7) | 0;
  17042. i18 = HEAP32[i1 >> 2] | 0;
  17043. if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  17044. _luaL_prepbuffsize(i10, 1) | 0;
  17045. i18 = HEAP32[i1 >> 2] | 0;
  17046. }
  17047. HEAP32[i1 >> 2] = i18 + 1;
  17048. HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 34;
  17049. i22 = HEAP32[i7 >> 2] | 0;
  17050. HEAP32[i7 >> 2] = i22 + -1;
  17051. if ((i22 | 0) != 0) {
  17052. while (1) {
  17053. i18 = HEAP8[i17] | 0;
  17054. do {
  17055. if (i18 << 24 >> 24 == 10 | i18 << 24 >> 24 == 92 | i18 << 24 >> 24 == 34) {
  17056. i18 = HEAP32[i1 >> 2] | 0;
  17057. if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  17058. _luaL_prepbuffsize(i10, 1) | 0;
  17059. i18 = HEAP32[i1 >> 2] | 0;
  17060. }
  17061. HEAP32[i1 >> 2] = i18 + 1;
  17062. HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 92;
  17063. i18 = HEAP32[i1 >> 2] | 0;
  17064. if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  17065. _luaL_prepbuffsize(i10, 1) | 0;
  17066. i18 = HEAP32[i1 >> 2] | 0;
  17067. }
  17068. i22 = HEAP8[i17] | 0;
  17069. HEAP32[i1 >> 2] = i18 + 1;
  17070. HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
  17071. } else if (i18 << 24 >> 24 == 0) {
  17072. i18 = 0;
  17073. i11 = 44;
  17074. } else {
  17075. if ((_iscntrl(i18 & 255 | 0) | 0) != 0) {
  17076. i18 = HEAP8[i17] | 0;
  17077. i11 = 44;
  17078. break;
  17079. }
  17080. i18 = HEAP32[i1 >> 2] | 0;
  17081. if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  17082. _luaL_prepbuffsize(i10, 1) | 0;
  17083. i18 = HEAP32[i1 >> 2] | 0;
  17084. }
  17085. i22 = HEAP8[i17] | 0;
  17086. HEAP32[i1 >> 2] = i18 + 1;
  17087. HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
  17088. }
  17089. } while (0);
  17090. if ((i11 | 0) == 44) {
  17091. i11 = 0;
  17092. i18 = i18 & 255;
  17093. if (((HEAPU8[i17 + 1 | 0] | 0) + -48 | 0) >>> 0 < 10) {
  17094. HEAP32[i4 >> 2] = i18;
  17095. _sprintf(i9 | 0, 7792, i4 | 0) | 0;
  17096. } else {
  17097. HEAP32[i4 >> 2] = i18;
  17098. _sprintf(i9 | 0, 7784, i4 | 0) | 0;
  17099. }
  17100. _luaL_addstring(i10, i9);
  17101. }
  17102. i22 = HEAP32[i7 >> 2] | 0;
  17103. HEAP32[i7 >> 2] = i22 + -1;
  17104. if ((i22 | 0) == 0) {
  17105. break;
  17106. } else {
  17107. i17 = i17 + 1 | 0;
  17108. }
  17109. }
  17110. }
  17111. i17 = HEAP32[i1 >> 2] | 0;
  17112. if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
  17113. _luaL_prepbuffsize(i10, 1) | 0;
  17114. i17 = HEAP32[i1 >> 2] | 0;
  17115. }
  17116. HEAP32[i1 >> 2] = i17 + 1;
  17117. HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = 34;
  17118. i17 = 0;
  17119. break;
  17120. }
  17121. case 71:
  17122. case 103:
  17123. case 102:
  17124. case 69:
  17125. case 101:
  17126. {
  17127. HEAP8[i5 + (_strlen(i5 | 0) | 0) | 0] = 0;
  17128. d21 = +_luaL_checknumber(i2, i15);
  17129. HEAPF64[tempDoublePtr >> 3] = d21;
  17130. HEAP32[i4 >> 2] = HEAP32[tempDoublePtr >> 2];
  17131. HEAP32[i4 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  17132. i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
  17133. break;
  17134. }
  17135. case 105:
  17136. case 100:
  17137. {
  17138. d21 = +_luaL_checknumber(i2, i15);
  17139. i18 = ~~d21;
  17140. d21 = d21 - +(i18 | 0);
  17141. if (!(d21 > -1.0 & d21 < 1.0)) {
  17142. _luaL_argerror(i2, i15, 7664) | 0;
  17143. }
  17144. i22 = _strlen(i5 | 0) | 0;
  17145. i19 = i5 + (i22 + -1) | 0;
  17146. i20 = HEAP8[i19] | 0;
  17147. HEAP8[i19] = 108;
  17148. HEAP8[i19 + 1 | 0] = 0;
  17149. HEAP8[i5 + i22 | 0] = i20;
  17150. HEAP8[i5 + (i22 + 1) | 0] = 0;
  17151. HEAP32[i4 >> 2] = i18;
  17152. i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
  17153. break;
  17154. }
  17155. default:
  17156. {
  17157. break L3;
  17158. }
  17159. }
  17160. } while (0);
  17161. HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + i17;
  17162. if (i16 >>> 0 < i3 >>> 0) {
  17163. i19 = i15;
  17164. } else {
  17165. break L1;
  17166. }
  17167. }
  17168. HEAP32[i4 >> 2] = i18;
  17169. i22 = _luaL_error(i2, 7744, i4) | 0;
  17170. STACKTOP = i12;
  17171. return i22 | 0;
  17172. }
  17173. } while (0);
  17174. _luaL_pushresult(i10);
  17175. i22 = 1;
  17176. STACKTOP = i12;
  17177. return i22 | 0;
  17178. }
  17179. function _luaD_precall(i3, i17, i4) {
  17180. i3 = i3 | 0;
  17181. i17 = i17 | 0;
  17182. i4 = i4 | 0;
  17183. var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
  17184. i1 = STACKTOP;
  17185. STACKTOP = STACKTOP + 16 | 0;
  17186. i8 = i1;
  17187. i6 = i3 + 28 | 0;
  17188. i2 = i3 + 8 | 0;
  17189. i13 = i3 + 24 | 0;
  17190. i14 = i3 + 32 | 0;
  17191. while (1) {
  17192. i15 = HEAP32[i6 >> 2] | 0;
  17193. i16 = i17;
  17194. i12 = i15;
  17195. i5 = i16 - i12 | 0;
  17196. i11 = HEAP32[i17 + 8 >> 2] & 63;
  17197. if ((i11 | 0) == 38) {
  17198. i11 = 4;
  17199. break;
  17200. } else if ((i11 | 0) == 22) {
  17201. i11 = 3;
  17202. break;
  17203. } else if ((i11 | 0) == 6) {
  17204. i11 = 31;
  17205. break;
  17206. }
  17207. i11 = _luaT_gettmbyobj(i3, i17, 16) | 0;
  17208. i15 = i16 - (HEAP32[i6 >> 2] | 0) | 0;
  17209. i16 = i11 + 8 | 0;
  17210. if ((HEAP32[i16 >> 2] & 15 | 0) != 6) {
  17211. i11 = 54;
  17212. break;
  17213. }
  17214. i19 = HEAP32[i2 >> 2] | 0;
  17215. if (i19 >>> 0 > i17 >>> 0) {
  17216. while (1) {
  17217. i18 = i19 + -16 | 0;
  17218. i22 = i18;
  17219. i21 = HEAP32[i22 + 4 >> 2] | 0;
  17220. i20 = i19;
  17221. HEAP32[i20 >> 2] = HEAP32[i22 >> 2];
  17222. HEAP32[i20 + 4 >> 2] = i21;
  17223. HEAP32[i19 + 8 >> 2] = HEAP32[i19 + -8 >> 2];
  17224. if (i18 >>> 0 > i17 >>> 0) {
  17225. i19 = i18;
  17226. } else {
  17227. break;
  17228. }
  17229. }
  17230. i19 = HEAP32[i2 >> 2] | 0;
  17231. }
  17232. i17 = i19 + 16 | 0;
  17233. HEAP32[i2 >> 2] = i17;
  17234. if (((HEAP32[i13 >> 2] | 0) - i17 | 0) < 16) {
  17235. i18 = HEAP32[i14 >> 2] | 0;
  17236. if ((i18 | 0) > 1e6) {
  17237. i11 = 60;
  17238. break;
  17239. }
  17240. i17 = (i17 - (HEAP32[i6 >> 2] | 0) >> 4) + 5 | 0;
  17241. i18 = i18 << 1;
  17242. i18 = (i18 | 0) > 1e6 ? 1e6 : i18;
  17243. i17 = (i18 | 0) < (i17 | 0) ? i17 : i18;
  17244. if ((i17 | 0) > 1e6) {
  17245. i11 = 62;
  17246. break;
  17247. }
  17248. _luaD_reallocstack(i3, i17);
  17249. }
  17250. i22 = HEAP32[i6 >> 2] | 0;
  17251. i17 = i22 + i15 | 0;
  17252. i19 = i11;
  17253. i20 = HEAP32[i19 + 4 >> 2] | 0;
  17254. i21 = i17;
  17255. HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
  17256. HEAP32[i21 + 4 >> 2] = i20;
  17257. HEAP32[i22 + (i15 + 8) >> 2] = HEAP32[i16 >> 2];
  17258. }
  17259. if ((i11 | 0) == 3) {
  17260. i10 = i17;
  17261. } else if ((i11 | 0) == 4) {
  17262. i10 = (HEAP32[i17 >> 2] | 0) + 12 | 0;
  17263. } else if ((i11 | 0) == 31) {
  17264. i10 = HEAP32[(HEAP32[i17 >> 2] | 0) + 12 >> 2] | 0;
  17265. i18 = HEAP32[i2 >> 2] | 0;
  17266. i16 = i18;
  17267. i11 = i10 + 78 | 0;
  17268. i17 = HEAPU8[i11] | 0;
  17269. do {
  17270. if (((HEAP32[i13 >> 2] | 0) - i16 >> 4 | 0) <= (i17 | 0)) {
  17271. i13 = HEAP32[i14 >> 2] | 0;
  17272. if ((i13 | 0) > 1e6) {
  17273. _luaD_throw(i3, 6);
  17274. }
  17275. i12 = i17 + 5 + (i16 - i12 >> 4) | 0;
  17276. i13 = i13 << 1;
  17277. i13 = (i13 | 0) > 1e6 ? 1e6 : i13;
  17278. i12 = (i13 | 0) < (i12 | 0) ? i12 : i13;
  17279. if ((i12 | 0) > 1e6) {
  17280. _luaD_reallocstack(i3, 1000200);
  17281. _luaG_runerror(i3, 2224, i8);
  17282. } else {
  17283. _luaD_reallocstack(i3, i12);
  17284. i7 = HEAP32[i6 >> 2] | 0;
  17285. i9 = HEAP32[i2 >> 2] | 0;
  17286. break;
  17287. }
  17288. } else {
  17289. i7 = i15;
  17290. i9 = i18;
  17291. }
  17292. } while (0);
  17293. i6 = i7 + i5 | 0;
  17294. i22 = i9 - i6 >> 4;
  17295. i12 = i22 + -1 | 0;
  17296. i8 = i10 + 76 | 0;
  17297. i13 = HEAP8[i8] | 0;
  17298. if ((i22 | 0) > (i13 & 255 | 0)) {
  17299. i8 = i13;
  17300. } else {
  17301. i13 = i9;
  17302. while (1) {
  17303. i9 = i13 + 16 | 0;
  17304. HEAP32[i2 >> 2] = i9;
  17305. HEAP32[i13 + 8 >> 2] = 0;
  17306. i12 = i12 + 1 | 0;
  17307. i13 = HEAP8[i8] | 0;
  17308. if ((i12 | 0) < (i13 & 255 | 0)) {
  17309. i13 = i9;
  17310. } else {
  17311. i8 = i13;
  17312. break;
  17313. }
  17314. }
  17315. }
  17316. if ((HEAP8[i10 + 77 | 0] | 0) != 0) {
  17317. i5 = i8 & 255;
  17318. if (!(i8 << 24 >> 24 == 0) ? (i22 = 0 - i12 | 0, HEAP32[i2 >> 2] = i9 + 16, i19 = i9 + (i22 << 4) | 0, i20 = HEAP32[i19 + 4 >> 2] | 0, i21 = i9, HEAP32[i21 >> 2] = HEAP32[i19 >> 2], HEAP32[i21 + 4 >> 2] = i20, i22 = i9 + (i22 << 4) + 8 | 0, HEAP32[i9 + 8 >> 2] = HEAP32[i22 >> 2], HEAP32[i22 >> 2] = 0, (i8 & 255) > 1) : 0) {
  17319. i7 = 1;
  17320. do {
  17321. i21 = HEAP32[i2 >> 2] | 0;
  17322. i22 = i7 - i12 | 0;
  17323. HEAP32[i2 >> 2] = i21 + 16;
  17324. i18 = i9 + (i22 << 4) | 0;
  17325. i19 = HEAP32[i18 + 4 >> 2] | 0;
  17326. i20 = i21;
  17327. HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
  17328. HEAP32[i20 + 4 >> 2] = i19;
  17329. i22 = i9 + (i22 << 4) + 8 | 0;
  17330. HEAP32[i21 + 8 >> 2] = HEAP32[i22 >> 2];
  17331. HEAP32[i22 >> 2] = 0;
  17332. i7 = i7 + 1 | 0;
  17333. } while ((i7 | 0) < (i5 | 0));
  17334. }
  17335. } else {
  17336. i9 = i7 + (i5 + 16) | 0;
  17337. }
  17338. i7 = i3 + 16 | 0;
  17339. i5 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
  17340. if ((i5 | 0) == 0) {
  17341. i5 = _luaE_extendCI(i3) | 0;
  17342. }
  17343. HEAP32[i7 >> 2] = i5;
  17344. HEAP16[i5 + 16 >> 1] = i4;
  17345. HEAP32[i5 >> 2] = i6;
  17346. HEAP32[i5 + 24 >> 2] = i9;
  17347. i22 = i9 + (HEAPU8[i11] << 4) | 0;
  17348. HEAP32[i5 + 4 >> 2] = i22;
  17349. i4 = i5 + 28 | 0;
  17350. HEAP32[i4 >> 2] = HEAP32[i10 + 12 >> 2];
  17351. i6 = i5 + 18 | 0;
  17352. HEAP8[i6] = 1;
  17353. HEAP32[i2 >> 2] = i22;
  17354. if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  17355. _luaC_step(i3);
  17356. }
  17357. if ((HEAP8[i3 + 40 | 0] & 1) == 0) {
  17358. i22 = 0;
  17359. STACKTOP = i1;
  17360. return i22 | 0;
  17361. }
  17362. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 4;
  17363. i2 = HEAP32[i5 + 8 >> 2] | 0;
  17364. if (!((HEAP8[i2 + 18 | 0] & 1) == 0) ? (HEAP32[(HEAP32[i2 + 28 >> 2] | 0) + -4 >> 2] & 63 | 0) == 30 : 0) {
  17365. HEAP8[i6] = HEAPU8[i6] | 64;
  17366. i2 = 4;
  17367. } else {
  17368. i2 = 0;
  17369. }
  17370. _luaD_hook(i3, i2, -1);
  17371. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -4;
  17372. i22 = 0;
  17373. STACKTOP = i1;
  17374. return i22 | 0;
  17375. } else if ((i11 | 0) == 54) {
  17376. _luaG_typeerror(i3, i17, 2520);
  17377. } else if ((i11 | 0) == 60) {
  17378. _luaD_throw(i3, 6);
  17379. } else if ((i11 | 0) == 62) {
  17380. _luaD_reallocstack(i3, 1000200);
  17381. _luaG_runerror(i3, 2224, i8);
  17382. }
  17383. i7 = HEAP32[i10 >> 2] | 0;
  17384. i9 = HEAP32[i2 >> 2] | 0;
  17385. do {
  17386. if (((HEAP32[i13 >> 2] | 0) - i9 | 0) < 336) {
  17387. i10 = HEAP32[i14 >> 2] | 0;
  17388. if ((i10 | 0) > 1e6) {
  17389. _luaD_throw(i3, 6);
  17390. }
  17391. i9 = (i9 - i12 >> 4) + 25 | 0;
  17392. i10 = i10 << 1;
  17393. i10 = (i10 | 0) > 1e6 ? 1e6 : i10;
  17394. i9 = (i10 | 0) < (i9 | 0) ? i9 : i10;
  17395. if ((i9 | 0) > 1e6) {
  17396. _luaD_reallocstack(i3, 1000200);
  17397. _luaG_runerror(i3, 2224, i8);
  17398. } else {
  17399. _luaD_reallocstack(i3, i9);
  17400. break;
  17401. }
  17402. }
  17403. } while (0);
  17404. i8 = i3 + 16 | 0;
  17405. i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0;
  17406. if ((i9 | 0) == 0) {
  17407. i9 = _luaE_extendCI(i3) | 0;
  17408. }
  17409. HEAP32[i8 >> 2] = i9;
  17410. HEAP16[i9 + 16 >> 1] = i4;
  17411. HEAP32[i9 >> 2] = (HEAP32[i6 >> 2] | 0) + i5;
  17412. HEAP32[i9 + 4 >> 2] = (HEAP32[i2 >> 2] | 0) + 320;
  17413. HEAP8[i9 + 18 | 0] = 0;
  17414. if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  17415. _luaC_step(i3);
  17416. }
  17417. i5 = i3 + 40 | 0;
  17418. if (!((HEAP8[i5] & 1) == 0)) {
  17419. _luaD_hook(i3, 0, -1);
  17420. }
  17421. i7 = FUNCTION_TABLE_ii[i7 & 255](i3) | 0;
  17422. i7 = (HEAP32[i2 >> 2] | 0) + (0 - i7 << 4) | 0;
  17423. i4 = HEAP32[i8 >> 2] | 0;
  17424. i5 = HEAPU8[i5] | 0;
  17425. if ((i5 & 6 | 0) == 0) {
  17426. i5 = i7;
  17427. i6 = i4 + 8 | 0;
  17428. } else {
  17429. if ((i5 & 2 | 0) == 0) {
  17430. i5 = i7;
  17431. } else {
  17432. i5 = i7 - (HEAP32[i6 >> 2] | 0) | 0;
  17433. _luaD_hook(i3, 1, -1);
  17434. i5 = (HEAP32[i6 >> 2] | 0) + i5 | 0;
  17435. }
  17436. i6 = i4 + 8 | 0;
  17437. HEAP32[i3 + 20 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + 28 >> 2];
  17438. }
  17439. i3 = HEAP32[i4 >> 2] | 0;
  17440. i4 = HEAP16[i4 + 16 >> 1] | 0;
  17441. HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
  17442. L82 : do {
  17443. if (!(i4 << 16 >> 16 == 0)) {
  17444. i4 = i4 << 16 >> 16;
  17445. while (1) {
  17446. if (!(i5 >>> 0 < (HEAP32[i2 >> 2] | 0) >>> 0)) {
  17447. break;
  17448. }
  17449. i6 = i3 + 16 | 0;
  17450. i20 = i5;
  17451. i21 = HEAP32[i20 + 4 >> 2] | 0;
  17452. i22 = i3;
  17453. HEAP32[i22 >> 2] = HEAP32[i20 >> 2];
  17454. HEAP32[i22 + 4 >> 2] = i21;
  17455. HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
  17456. i4 = i4 + -1 | 0;
  17457. if ((i4 | 0) == 0) {
  17458. i3 = i6;
  17459. break L82;
  17460. }
  17461. i5 = i5 + 16 | 0;
  17462. i3 = i6;
  17463. }
  17464. if ((i4 | 0) > 0) {
  17465. i5 = i4;
  17466. i6 = i3;
  17467. while (1) {
  17468. i5 = i5 + -1 | 0;
  17469. HEAP32[i6 + 8 >> 2] = 0;
  17470. if ((i5 | 0) <= 0) {
  17471. break;
  17472. } else {
  17473. i6 = i6 + 16 | 0;
  17474. }
  17475. }
  17476. i3 = i3 + (i4 << 4) | 0;
  17477. }
  17478. }
  17479. } while (0);
  17480. HEAP32[i2 >> 2] = i3;
  17481. i22 = 1;
  17482. STACKTOP = i1;
  17483. return i22 | 0;
  17484. }
  17485. function _lua_getinfo(i1, i6, i29) {
  17486. i1 = i1 | 0;
  17487. i6 = i6 | 0;
  17488. i29 = i29 | 0;
  17489. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0;
  17490. i3 = STACKTOP;
  17491. STACKTOP = STACKTOP + 16 | 0;
  17492. i2 = i3;
  17493. if ((HEAP8[i6] | 0) == 62) {
  17494. i10 = i1 + 8 | 0;
  17495. i7 = (HEAP32[i10 >> 2] | 0) + -16 | 0;
  17496. HEAP32[i10 >> 2] = i7;
  17497. i6 = i6 + 1 | 0;
  17498. i10 = 0;
  17499. } else {
  17500. i7 = HEAP32[i29 + 96 >> 2] | 0;
  17501. i10 = i7;
  17502. i7 = HEAP32[i7 >> 2] | 0;
  17503. }
  17504. i8 = i7 + 8 | 0;
  17505. if ((HEAP32[i8 >> 2] & 31 | 0) == 6) {
  17506. i9 = HEAP32[i7 >> 2] | 0;
  17507. } else {
  17508. i9 = 0;
  17509. }
  17510. i34 = HEAP8[i6] | 0;
  17511. L8 : do {
  17512. if (i34 << 24 >> 24 == 0) {
  17513. i33 = 1;
  17514. } else {
  17515. i12 = (i9 | 0) == 0;
  17516. i27 = i29 + 16 | 0;
  17517. i28 = i29 + 24 | 0;
  17518. i21 = i29 + 28 | 0;
  17519. i25 = i29 + 12 | 0;
  17520. i26 = i29 + 36 | 0;
  17521. i19 = i9 + 4 | 0;
  17522. i24 = i9 + 12 | 0;
  17523. i18 = (i10 | 0) == 0;
  17524. i23 = i29 + 20 | 0;
  17525. i17 = i10 + 18 | 0;
  17526. i22 = i10 + 28 | 0;
  17527. i15 = i29 + 32 | 0;
  17528. i14 = i29 + 34 | 0;
  17529. i13 = i29 + 33 | 0;
  17530. i11 = i9 + 6 | 0;
  17531. i16 = i29 + 35 | 0;
  17532. i20 = i29 + 8 | 0;
  17533. i30 = i29 + 4 | 0;
  17534. i29 = i10 + 8 | 0;
  17535. i31 = i1 + 12 | 0;
  17536. i32 = i6;
  17537. i33 = 1;
  17538. while (1) {
  17539. L12 : do {
  17540. switch (i34 << 24 >> 24 | 0) {
  17541. case 116:
  17542. {
  17543. if (i18) {
  17544. i34 = 0;
  17545. } else {
  17546. i34 = HEAPU8[i17] & 64;
  17547. }
  17548. HEAP8[i16] = i34;
  17549. break;
  17550. }
  17551. case 110:
  17552. {
  17553. L18 : do {
  17554. if ((!i18 ? (HEAP8[i17] & 64) == 0 : 0) ? (i5 = HEAP32[i29 >> 2] | 0, !((HEAP8[i5 + 18 | 0] & 1) == 0)) : 0) {
  17555. i36 = HEAP32[(HEAP32[HEAP32[i5 >> 2] >> 2] | 0) + 12 >> 2] | 0;
  17556. i35 = HEAP32[i36 + 12 >> 2] | 0;
  17557. i34 = ((HEAP32[i5 + 28 >> 2] | 0) - i35 >> 2) + -1 | 0;
  17558. i35 = HEAP32[i35 + (i34 << 2) >> 2] | 0;
  17559. switch (i35 & 63 | 0) {
  17560. case 10:
  17561. case 8:
  17562. {
  17563. i34 = 1;
  17564. i4 = 46;
  17565. break;
  17566. }
  17567. case 24:
  17568. {
  17569. i34 = 5;
  17570. i4 = 46;
  17571. break;
  17572. }
  17573. case 13:
  17574. {
  17575. i34 = 6;
  17576. i4 = 46;
  17577. break;
  17578. }
  17579. case 14:
  17580. {
  17581. i34 = 7;
  17582. i4 = 46;
  17583. break;
  17584. }
  17585. case 15:
  17586. {
  17587. i34 = 8;
  17588. i4 = 46;
  17589. break;
  17590. }
  17591. case 16:
  17592. {
  17593. i34 = 9;
  17594. i4 = 46;
  17595. break;
  17596. }
  17597. case 17:
  17598. {
  17599. i34 = 10;
  17600. i4 = 46;
  17601. break;
  17602. }
  17603. case 18:
  17604. {
  17605. i34 = 11;
  17606. i4 = 46;
  17607. break;
  17608. }
  17609. case 19:
  17610. {
  17611. i34 = 12;
  17612. i4 = 46;
  17613. break;
  17614. }
  17615. case 21:
  17616. {
  17617. i34 = 4;
  17618. i4 = 46;
  17619. break;
  17620. }
  17621. case 25:
  17622. {
  17623. i34 = 13;
  17624. i4 = 46;
  17625. break;
  17626. }
  17627. case 26:
  17628. {
  17629. i34 = 14;
  17630. i4 = 46;
  17631. break;
  17632. }
  17633. case 22:
  17634. {
  17635. i34 = 15;
  17636. i4 = 46;
  17637. break;
  17638. }
  17639. case 7:
  17640. case 6:
  17641. case 12:
  17642. {
  17643. i34 = 0;
  17644. i4 = 46;
  17645. break;
  17646. }
  17647. case 34:
  17648. {
  17649. i34 = 2120;
  17650. i35 = 2120;
  17651. break;
  17652. }
  17653. case 30:
  17654. case 29:
  17655. {
  17656. i36 = _getobjname(i36, i34, i35 >>> 6 & 255, i30) | 0;
  17657. HEAP32[i20 >> 2] = i36;
  17658. if ((i36 | 0) == 0) {
  17659. break L18;
  17660. } else {
  17661. break L12;
  17662. }
  17663. }
  17664. default:
  17665. {
  17666. i4 = 47;
  17667. break L18;
  17668. }
  17669. }
  17670. if ((i4 | 0) == 46) {
  17671. i4 = 0;
  17672. i34 = (HEAP32[(HEAP32[i31 >> 2] | 0) + (i34 << 2) + 184 >> 2] | 0) + 16 | 0;
  17673. i35 = 2136;
  17674. }
  17675. HEAP32[i30 >> 2] = i34;
  17676. HEAP32[i20 >> 2] = i35;
  17677. break L12;
  17678. } else {
  17679. i4 = 47;
  17680. }
  17681. } while (0);
  17682. if ((i4 | 0) == 47) {
  17683. i4 = 0;
  17684. HEAP32[i20 >> 2] = 0;
  17685. }
  17686. HEAP32[i20 >> 2] = 2112;
  17687. HEAP32[i30 >> 2] = 0;
  17688. break;
  17689. }
  17690. case 108:
  17691. {
  17692. if (!i18 ? !((HEAP8[i17] & 1) == 0) : 0) {
  17693. i35 = HEAP32[(HEAP32[HEAP32[i10 >> 2] >> 2] | 0) + 12 >> 2] | 0;
  17694. i34 = HEAP32[i35 + 20 >> 2] | 0;
  17695. if ((i34 | 0) == 0) {
  17696. i34 = 0;
  17697. } else {
  17698. i34 = HEAP32[i34 + (((HEAP32[i22 >> 2] | 0) - (HEAP32[i35 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
  17699. }
  17700. } else {
  17701. i34 = -1;
  17702. }
  17703. HEAP32[i23 >> 2] = i34;
  17704. break;
  17705. }
  17706. case 83:
  17707. {
  17708. if (!i12 ? (HEAP8[i19] | 0) != 38 : 0) {
  17709. i34 = HEAP32[i24 >> 2] | 0;
  17710. i35 = HEAP32[i34 + 36 >> 2] | 0;
  17711. if ((i35 | 0) == 0) {
  17712. i35 = 2168;
  17713. } else {
  17714. i35 = i35 + 16 | 0;
  17715. }
  17716. HEAP32[i27 >> 2] = i35;
  17717. i36 = HEAP32[i34 + 64 >> 2] | 0;
  17718. HEAP32[i28 >> 2] = i36;
  17719. HEAP32[i21 >> 2] = HEAP32[i34 + 68 >> 2];
  17720. i34 = (i36 | 0) == 0 ? 2176 : 2184;
  17721. } else {
  17722. HEAP32[i27 >> 2] = 2152;
  17723. HEAP32[i28 >> 2] = -1;
  17724. HEAP32[i21 >> 2] = -1;
  17725. i35 = 2152;
  17726. i34 = 2160;
  17727. }
  17728. HEAP32[i25 >> 2] = i34;
  17729. _luaO_chunkid(i26, i35, 60);
  17730. break;
  17731. }
  17732. case 117:
  17733. {
  17734. if (!i12) {
  17735. HEAP8[i15] = HEAP8[i11] | 0;
  17736. if ((HEAP8[i19] | 0) != 38) {
  17737. HEAP8[i14] = HEAP8[(HEAP32[i24 >> 2] | 0) + 77 | 0] | 0;
  17738. HEAP8[i13] = HEAP8[(HEAP32[i24 >> 2] | 0) + 76 | 0] | 0;
  17739. break L12;
  17740. }
  17741. } else {
  17742. HEAP8[i15] = 0;
  17743. }
  17744. HEAP8[i14] = 1;
  17745. HEAP8[i13] = 0;
  17746. break;
  17747. }
  17748. case 102:
  17749. case 76:
  17750. {
  17751. break;
  17752. }
  17753. default:
  17754. {
  17755. i33 = 0;
  17756. }
  17757. }
  17758. } while (0);
  17759. i32 = i32 + 1 | 0;
  17760. i34 = HEAP8[i32] | 0;
  17761. if (i34 << 24 >> 24 == 0) {
  17762. break L8;
  17763. }
  17764. }
  17765. }
  17766. } while (0);
  17767. if ((_strchr(i6, 102) | 0) != 0) {
  17768. i36 = i1 + 8 | 0;
  17769. i35 = HEAP32[i36 >> 2] | 0;
  17770. i31 = i7;
  17771. i32 = HEAP32[i31 + 4 >> 2] | 0;
  17772. i34 = i35;
  17773. HEAP32[i34 >> 2] = HEAP32[i31 >> 2];
  17774. HEAP32[i34 + 4 >> 2] = i32;
  17775. HEAP32[i35 + 8 >> 2] = HEAP32[i8 >> 2];
  17776. HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
  17777. }
  17778. if ((_strchr(i6, 76) | 0) == 0) {
  17779. STACKTOP = i3;
  17780. return i33 | 0;
  17781. }
  17782. if ((i9 | 0) != 0 ? (HEAP8[i9 + 4 | 0] | 0) != 38 : 0) {
  17783. i6 = i9 + 12 | 0;
  17784. i5 = HEAP32[(HEAP32[i6 >> 2] | 0) + 20 >> 2] | 0;
  17785. i4 = _luaH_new(i1) | 0;
  17786. i36 = i1 + 8 | 0;
  17787. i35 = HEAP32[i36 >> 2] | 0;
  17788. HEAP32[i35 >> 2] = i4;
  17789. HEAP32[i35 + 8 >> 2] = 69;
  17790. HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
  17791. HEAP32[i2 >> 2] = 1;
  17792. HEAP32[i2 + 8 >> 2] = 1;
  17793. if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0) > 0) {
  17794. i7 = 0;
  17795. } else {
  17796. STACKTOP = i3;
  17797. return i33 | 0;
  17798. }
  17799. do {
  17800. _luaH_setint(i1, i4, HEAP32[i5 + (i7 << 2) >> 2] | 0, i2);
  17801. i7 = i7 + 1 | 0;
  17802. } while ((i7 | 0) < (HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0));
  17803. STACKTOP = i3;
  17804. return i33 | 0;
  17805. }
  17806. i36 = i1 + 8 | 0;
  17807. i35 = HEAP32[i36 >> 2] | 0;
  17808. HEAP32[i35 + 8 >> 2] = 0;
  17809. HEAP32[i36 >> 2] = i35 + 16;
  17810. STACKTOP = i3;
  17811. return i33 | 0;
  17812. }
  17813. function _read_long_string(i3, i1, i5) {
  17814. i3 = i3 | 0;
  17815. i1 = i1 | 0;
  17816. i5 = i5 | 0;
  17817. var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
  17818. i2 = STACKTOP;
  17819. i14 = HEAP32[i3 >> 2] | 0;
  17820. i4 = i3 + 60 | 0;
  17821. i13 = HEAP32[i4 >> 2] | 0;
  17822. i15 = i13 + 4 | 0;
  17823. i16 = HEAP32[i15 >> 2] | 0;
  17824. i10 = i13 + 8 | 0;
  17825. i12 = HEAP32[i10 >> 2] | 0;
  17826. do {
  17827. if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
  17828. if (i12 >>> 0 > 2147483645) {
  17829. _lexerror(i3, 12368, 0);
  17830. }
  17831. i16 = i12 << 1;
  17832. i17 = HEAP32[i3 + 52 >> 2] | 0;
  17833. if ((i16 | 0) == -2) {
  17834. _luaM_toobig(i17);
  17835. } else {
  17836. i8 = _luaM_realloc_(i17, HEAP32[i13 >> 2] | 0, i12, i16) | 0;
  17837. HEAP32[i13 >> 2] = i8;
  17838. HEAP32[i10 >> 2] = i16;
  17839. i9 = HEAP32[i15 >> 2] | 0;
  17840. break;
  17841. }
  17842. } else {
  17843. i9 = i16;
  17844. i8 = HEAP32[i13 >> 2] | 0;
  17845. }
  17846. } while (0);
  17847. HEAP32[i15 >> 2] = i9 + 1;
  17848. HEAP8[i8 + i9 | 0] = i14;
  17849. i9 = i3 + 56 | 0;
  17850. i8 = HEAP32[i9 >> 2] | 0;
  17851. i18 = HEAP32[i8 >> 2] | 0;
  17852. HEAP32[i8 >> 2] = i18 + -1;
  17853. if ((i18 | 0) == 0) {
  17854. i12 = _luaZ_fill(i8) | 0;
  17855. } else {
  17856. i18 = i8 + 4 | 0;
  17857. i12 = HEAP32[i18 >> 2] | 0;
  17858. HEAP32[i18 >> 2] = i12 + 1;
  17859. i12 = HEAPU8[i12] | 0;
  17860. }
  17861. HEAP32[i3 >> 2] = i12;
  17862. if ((i12 | 0) == 13 | (i12 | 0) == 10) {
  17863. _inclinenumber(i3);
  17864. i11 = 13;
  17865. }
  17866. L17 : while (1) {
  17867. if ((i11 | 0) == 13) {
  17868. i11 = 0;
  17869. i12 = HEAP32[i3 >> 2] | 0;
  17870. }
  17871. i8 = (i1 | 0) == 0;
  17872. i10 = i3 + 52 | 0;
  17873. L21 : do {
  17874. if (i8) {
  17875. while (1) {
  17876. if ((i12 | 0) == 13 | (i12 | 0) == 10) {
  17877. break L21;
  17878. } else if ((i12 | 0) == 93) {
  17879. i11 = 22;
  17880. break L21;
  17881. } else if ((i12 | 0) == -1) {
  17882. i11 = 21;
  17883. break L17;
  17884. }
  17885. i12 = HEAP32[i9 >> 2] | 0;
  17886. i18 = HEAP32[i12 >> 2] | 0;
  17887. HEAP32[i12 >> 2] = i18 + -1;
  17888. if ((i18 | 0) == 0) {
  17889. i12 = _luaZ_fill(i12) | 0;
  17890. } else {
  17891. i18 = i12 + 4 | 0;
  17892. i12 = HEAP32[i18 >> 2] | 0;
  17893. HEAP32[i18 >> 2] = i12 + 1;
  17894. i12 = HEAPU8[i12] | 0;
  17895. }
  17896. HEAP32[i3 >> 2] = i12;
  17897. }
  17898. } else {
  17899. while (1) {
  17900. if ((i12 | 0) == 13 | (i12 | 0) == 10) {
  17901. break L21;
  17902. } else if ((i12 | 0) == 93) {
  17903. i11 = 22;
  17904. break L21;
  17905. } else if ((i12 | 0) == -1) {
  17906. i11 = 21;
  17907. break L17;
  17908. }
  17909. i14 = HEAP32[i4 >> 2] | 0;
  17910. i13 = i14 + 4 | 0;
  17911. i17 = HEAP32[i13 >> 2] | 0;
  17912. i16 = i14 + 8 | 0;
  17913. i15 = HEAP32[i16 >> 2] | 0;
  17914. if ((i17 + 1 | 0) >>> 0 > i15 >>> 0) {
  17915. if (i15 >>> 0 > 2147483645) {
  17916. i11 = 46;
  17917. break L17;
  17918. }
  17919. i17 = i15 << 1;
  17920. i18 = HEAP32[i10 >> 2] | 0;
  17921. if ((i17 | 0) == -2) {
  17922. i11 = 48;
  17923. break L17;
  17924. }
  17925. i18 = _luaM_realloc_(i18, HEAP32[i14 >> 2] | 0, i15, i17) | 0;
  17926. HEAP32[i14 >> 2] = i18;
  17927. HEAP32[i16 >> 2] = i17;
  17928. i17 = HEAP32[i13 >> 2] | 0;
  17929. i14 = i18;
  17930. } else {
  17931. i14 = HEAP32[i14 >> 2] | 0;
  17932. }
  17933. HEAP32[i13 >> 2] = i17 + 1;
  17934. HEAP8[i14 + i17 | 0] = i12;
  17935. i12 = HEAP32[i9 >> 2] | 0;
  17936. i18 = HEAP32[i12 >> 2] | 0;
  17937. HEAP32[i12 >> 2] = i18 + -1;
  17938. if ((i18 | 0) == 0) {
  17939. i12 = _luaZ_fill(i12) | 0;
  17940. } else {
  17941. i18 = i12 + 4 | 0;
  17942. i12 = HEAP32[i18 >> 2] | 0;
  17943. HEAP32[i18 >> 2] = i12 + 1;
  17944. i12 = HEAPU8[i12] | 0;
  17945. }
  17946. HEAP32[i3 >> 2] = i12;
  17947. }
  17948. }
  17949. } while (0);
  17950. if ((i11 | 0) == 22) {
  17951. if ((_skip_sep(i3) | 0) == (i5 | 0)) {
  17952. i11 = 23;
  17953. break;
  17954. } else {
  17955. i11 = 13;
  17956. continue;
  17957. }
  17958. }
  17959. i12 = HEAP32[i4 >> 2] | 0;
  17960. i11 = i12 + 4 | 0;
  17961. i15 = HEAP32[i11 >> 2] | 0;
  17962. i14 = i12 + 8 | 0;
  17963. i13 = HEAP32[i14 >> 2] | 0;
  17964. if ((i15 + 1 | 0) >>> 0 > i13 >>> 0) {
  17965. if (i13 >>> 0 > 2147483645) {
  17966. i11 = 37;
  17967. break;
  17968. }
  17969. i15 = i13 << 1;
  17970. i10 = HEAP32[i10 >> 2] | 0;
  17971. if ((i15 | 0) == -2) {
  17972. i11 = 39;
  17973. break;
  17974. }
  17975. i10 = _luaM_realloc_(i10, HEAP32[i12 >> 2] | 0, i13, i15) | 0;
  17976. HEAP32[i12 >> 2] = i10;
  17977. HEAP32[i14 >> 2] = i15;
  17978. i15 = HEAP32[i11 >> 2] | 0;
  17979. } else {
  17980. i10 = HEAP32[i12 >> 2] | 0;
  17981. }
  17982. HEAP32[i11 >> 2] = i15 + 1;
  17983. HEAP8[i10 + i15 | 0] = 10;
  17984. _inclinenumber(i3);
  17985. if (!i8) {
  17986. i11 = 13;
  17987. continue;
  17988. }
  17989. HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
  17990. i11 = 13;
  17991. }
  17992. if ((i11 | 0) == 21) {
  17993. _lexerror(i3, (i1 | 0) != 0 ? 12512 : 12536, 286);
  17994. } else if ((i11 | 0) == 23) {
  17995. i15 = HEAP32[i3 >> 2] | 0;
  17996. i13 = HEAP32[i4 >> 2] | 0;
  17997. i14 = i13 + 4 | 0;
  17998. i16 = HEAP32[i14 >> 2] | 0;
  17999. i11 = i13 + 8 | 0;
  18000. i12 = HEAP32[i11 >> 2] | 0;
  18001. do {
  18002. if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
  18003. if (i12 >>> 0 > 2147483645) {
  18004. _lexerror(i3, 12368, 0);
  18005. }
  18006. i17 = i12 << 1;
  18007. i16 = HEAP32[i10 >> 2] | 0;
  18008. if ((i17 | 0) == -2) {
  18009. _luaM_toobig(i16);
  18010. } else {
  18011. i6 = _luaM_realloc_(i16, HEAP32[i13 >> 2] | 0, i12, i17) | 0;
  18012. HEAP32[i13 >> 2] = i6;
  18013. HEAP32[i11 >> 2] = i17;
  18014. i7 = HEAP32[i14 >> 2] | 0;
  18015. break;
  18016. }
  18017. } else {
  18018. i7 = i16;
  18019. i6 = HEAP32[i13 >> 2] | 0;
  18020. }
  18021. } while (0);
  18022. HEAP32[i14 >> 2] = i7 + 1;
  18023. HEAP8[i6 + i7 | 0] = i15;
  18024. i6 = HEAP32[i9 >> 2] | 0;
  18025. i18 = HEAP32[i6 >> 2] | 0;
  18026. HEAP32[i6 >> 2] = i18 + -1;
  18027. if ((i18 | 0) == 0) {
  18028. i6 = _luaZ_fill(i6) | 0;
  18029. } else {
  18030. i18 = i6 + 4 | 0;
  18031. i6 = HEAP32[i18 >> 2] | 0;
  18032. HEAP32[i18 >> 2] = i6 + 1;
  18033. i6 = HEAPU8[i6] | 0;
  18034. }
  18035. HEAP32[i3 >> 2] = i6;
  18036. if (i8) {
  18037. STACKTOP = i2;
  18038. return;
  18039. }
  18040. i4 = HEAP32[i4 >> 2] | 0;
  18041. i5 = i5 + 2 | 0;
  18042. i6 = HEAP32[i10 >> 2] | 0;
  18043. i5 = _luaS_newlstr(i6, (HEAP32[i4 >> 2] | 0) + i5 | 0, (HEAP32[i4 + 4 >> 2] | 0) - (i5 << 1) | 0) | 0;
  18044. i4 = i6 + 8 | 0;
  18045. i7 = HEAP32[i4 >> 2] | 0;
  18046. HEAP32[i4 >> 2] = i7 + 16;
  18047. HEAP32[i7 >> 2] = i5;
  18048. HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
  18049. i7 = _luaH_set(i6, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
  18050. i3 = i7 + 8 | 0;
  18051. if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
  18052. _luaC_step(i6);
  18053. }
  18054. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
  18055. HEAP32[i1 >> 2] = i5;
  18056. STACKTOP = i2;
  18057. return;
  18058. } else if ((i11 | 0) == 37) {
  18059. _lexerror(i3, 12368, 0);
  18060. } else if ((i11 | 0) == 39) {
  18061. _luaM_toobig(i10);
  18062. } else if ((i11 | 0) == 46) {
  18063. _lexerror(i3, 12368, 0);
  18064. } else if ((i11 | 0) == 48) {
  18065. _luaM_toobig(i18);
  18066. }
  18067. }
  18068. function _try_realloc_chunk(i1, i3) {
  18069. i1 = i1 | 0;
  18070. i3 = i3 | 0;
  18071. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  18072. i2 = STACKTOP;
  18073. i4 = i1 + 4 | 0;
  18074. i6 = HEAP32[i4 >> 2] | 0;
  18075. i8 = i6 & -8;
  18076. i5 = i1 + i8 | 0;
  18077. i10 = HEAP32[12928 >> 2] | 0;
  18078. if (i1 >>> 0 < i10 >>> 0) {
  18079. _abort();
  18080. }
  18081. i12 = i6 & 3;
  18082. if (!((i12 | 0) != 1 & i1 >>> 0 < i5 >>> 0)) {
  18083. _abort();
  18084. }
  18085. i7 = i1 + (i8 | 4) | 0;
  18086. i13 = HEAP32[i7 >> 2] | 0;
  18087. if ((i13 & 1 | 0) == 0) {
  18088. _abort();
  18089. }
  18090. if ((i12 | 0) == 0) {
  18091. if (i3 >>> 0 < 256) {
  18092. i15 = 0;
  18093. STACKTOP = i2;
  18094. return i15 | 0;
  18095. }
  18096. if (!(i8 >>> 0 < (i3 + 4 | 0) >>> 0) ? !((i8 - i3 | 0) >>> 0 > HEAP32[13392 >> 2] << 1 >>> 0) : 0) {
  18097. i15 = i1;
  18098. STACKTOP = i2;
  18099. return i15 | 0;
  18100. }
  18101. i15 = 0;
  18102. STACKTOP = i2;
  18103. return i15 | 0;
  18104. }
  18105. if (!(i8 >>> 0 < i3 >>> 0)) {
  18106. i5 = i8 - i3 | 0;
  18107. if (!(i5 >>> 0 > 15)) {
  18108. i15 = i1;
  18109. STACKTOP = i2;
  18110. return i15 | 0;
  18111. }
  18112. HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
  18113. HEAP32[i1 + (i3 + 4) >> 2] = i5 | 3;
  18114. HEAP32[i7 >> 2] = HEAP32[i7 >> 2] | 1;
  18115. _dispose_chunk(i1 + i3 | 0, i5);
  18116. i15 = i1;
  18117. STACKTOP = i2;
  18118. return i15 | 0;
  18119. }
  18120. if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
  18121. i5 = (HEAP32[12924 >> 2] | 0) + i8 | 0;
  18122. if (!(i5 >>> 0 > i3 >>> 0)) {
  18123. i15 = 0;
  18124. STACKTOP = i2;
  18125. return i15 | 0;
  18126. }
  18127. i15 = i5 - i3 | 0;
  18128. HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
  18129. HEAP32[i1 + (i3 + 4) >> 2] = i15 | 1;
  18130. HEAP32[12936 >> 2] = i1 + i3;
  18131. HEAP32[12924 >> 2] = i15;
  18132. i15 = i1;
  18133. STACKTOP = i2;
  18134. return i15 | 0;
  18135. }
  18136. if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
  18137. i7 = (HEAP32[12920 >> 2] | 0) + i8 | 0;
  18138. if (i7 >>> 0 < i3 >>> 0) {
  18139. i15 = 0;
  18140. STACKTOP = i2;
  18141. return i15 | 0;
  18142. }
  18143. i5 = i7 - i3 | 0;
  18144. if (i5 >>> 0 > 15) {
  18145. HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
  18146. HEAP32[i1 + (i3 + 4) >> 2] = i5 | 1;
  18147. HEAP32[i1 + i7 >> 2] = i5;
  18148. i15 = i1 + (i7 + 4) | 0;
  18149. HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2;
  18150. i3 = i1 + i3 | 0;
  18151. } else {
  18152. HEAP32[i4 >> 2] = i6 & 1 | i7 | 2;
  18153. i3 = i1 + (i7 + 4) | 0;
  18154. HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1;
  18155. i3 = 0;
  18156. i5 = 0;
  18157. }
  18158. HEAP32[12920 >> 2] = i5;
  18159. HEAP32[12932 >> 2] = i3;
  18160. i15 = i1;
  18161. STACKTOP = i2;
  18162. return i15 | 0;
  18163. }
  18164. if ((i13 & 2 | 0) != 0) {
  18165. i15 = 0;
  18166. STACKTOP = i2;
  18167. return i15 | 0;
  18168. }
  18169. i7 = (i13 & -8) + i8 | 0;
  18170. if (i7 >>> 0 < i3 >>> 0) {
  18171. i15 = 0;
  18172. STACKTOP = i2;
  18173. return i15 | 0;
  18174. }
  18175. i6 = i7 - i3 | 0;
  18176. i12 = i13 >>> 3;
  18177. do {
  18178. if (!(i13 >>> 0 < 256)) {
  18179. i11 = HEAP32[i1 + (i8 + 24) >> 2] | 0;
  18180. i13 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
  18181. do {
  18182. if ((i13 | 0) == (i5 | 0)) {
  18183. i13 = i1 + (i8 + 20) | 0;
  18184. i12 = HEAP32[i13 >> 2] | 0;
  18185. if ((i12 | 0) == 0) {
  18186. i13 = i1 + (i8 + 16) | 0;
  18187. i12 = HEAP32[i13 >> 2] | 0;
  18188. if ((i12 | 0) == 0) {
  18189. i9 = 0;
  18190. break;
  18191. }
  18192. }
  18193. while (1) {
  18194. i15 = i12 + 20 | 0;
  18195. i14 = HEAP32[i15 >> 2] | 0;
  18196. if ((i14 | 0) != 0) {
  18197. i12 = i14;
  18198. i13 = i15;
  18199. continue;
  18200. }
  18201. i15 = i12 + 16 | 0;
  18202. i14 = HEAP32[i15 >> 2] | 0;
  18203. if ((i14 | 0) == 0) {
  18204. break;
  18205. } else {
  18206. i12 = i14;
  18207. i13 = i15;
  18208. }
  18209. }
  18210. if (i13 >>> 0 < i10 >>> 0) {
  18211. _abort();
  18212. } else {
  18213. HEAP32[i13 >> 2] = 0;
  18214. i9 = i12;
  18215. break;
  18216. }
  18217. } else {
  18218. i12 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
  18219. if (i12 >>> 0 < i10 >>> 0) {
  18220. _abort();
  18221. }
  18222. i14 = i12 + 12 | 0;
  18223. if ((HEAP32[i14 >> 2] | 0) != (i5 | 0)) {
  18224. _abort();
  18225. }
  18226. i10 = i13 + 8 | 0;
  18227. if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
  18228. HEAP32[i14 >> 2] = i13;
  18229. HEAP32[i10 >> 2] = i12;
  18230. i9 = i13;
  18231. break;
  18232. } else {
  18233. _abort();
  18234. }
  18235. }
  18236. } while (0);
  18237. if ((i11 | 0) != 0) {
  18238. i10 = HEAP32[i1 + (i8 + 28) >> 2] | 0;
  18239. i12 = 13216 + (i10 << 2) | 0;
  18240. if ((i5 | 0) == (HEAP32[i12 >> 2] | 0)) {
  18241. HEAP32[i12 >> 2] = i9;
  18242. if ((i9 | 0) == 0) {
  18243. HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
  18244. break;
  18245. }
  18246. } else {
  18247. if (i11 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  18248. _abort();
  18249. }
  18250. i10 = i11 + 16 | 0;
  18251. if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
  18252. HEAP32[i10 >> 2] = i9;
  18253. } else {
  18254. HEAP32[i11 + 20 >> 2] = i9;
  18255. }
  18256. if ((i9 | 0) == 0) {
  18257. break;
  18258. }
  18259. }
  18260. if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  18261. _abort();
  18262. }
  18263. HEAP32[i9 + 24 >> 2] = i11;
  18264. i5 = HEAP32[i1 + (i8 + 16) >> 2] | 0;
  18265. do {
  18266. if ((i5 | 0) != 0) {
  18267. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  18268. _abort();
  18269. } else {
  18270. HEAP32[i9 + 16 >> 2] = i5;
  18271. HEAP32[i5 + 24 >> 2] = i9;
  18272. break;
  18273. }
  18274. }
  18275. } while (0);
  18276. i5 = HEAP32[i1 + (i8 + 20) >> 2] | 0;
  18277. if ((i5 | 0) != 0) {
  18278. if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
  18279. _abort();
  18280. } else {
  18281. HEAP32[i9 + 20 >> 2] = i5;
  18282. HEAP32[i5 + 24 >> 2] = i9;
  18283. break;
  18284. }
  18285. }
  18286. }
  18287. } else {
  18288. i9 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
  18289. i8 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
  18290. i13 = 12952 + (i12 << 1 << 2) | 0;
  18291. if ((i9 | 0) != (i13 | 0)) {
  18292. if (i9 >>> 0 < i10 >>> 0) {
  18293. _abort();
  18294. }
  18295. if ((HEAP32[i9 + 12 >> 2] | 0) != (i5 | 0)) {
  18296. _abort();
  18297. }
  18298. }
  18299. if ((i8 | 0) == (i9 | 0)) {
  18300. HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
  18301. break;
  18302. }
  18303. if ((i8 | 0) != (i13 | 0)) {
  18304. if (i8 >>> 0 < i10 >>> 0) {
  18305. _abort();
  18306. }
  18307. i10 = i8 + 8 | 0;
  18308. if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
  18309. i11 = i10;
  18310. } else {
  18311. _abort();
  18312. }
  18313. } else {
  18314. i11 = i8 + 8 | 0;
  18315. }
  18316. HEAP32[i9 + 12 >> 2] = i8;
  18317. HEAP32[i11 >> 2] = i9;
  18318. }
  18319. } while (0);
  18320. if (i6 >>> 0 < 16) {
  18321. HEAP32[i4 >> 2] = i7 | HEAP32[i4 >> 2] & 1 | 2;
  18322. i15 = i1 + (i7 | 4) | 0;
  18323. HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
  18324. i15 = i1;
  18325. STACKTOP = i2;
  18326. return i15 | 0;
  18327. } else {
  18328. HEAP32[i4 >> 2] = HEAP32[i4 >> 2] & 1 | i3 | 2;
  18329. HEAP32[i1 + (i3 + 4) >> 2] = i6 | 3;
  18330. i15 = i1 + (i7 | 4) | 0;
  18331. HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
  18332. _dispose_chunk(i1 + i3 | 0, i6);
  18333. i15 = i1;
  18334. STACKTOP = i2;
  18335. return i15 | 0;
  18336. }
  18337. return 0;
  18338. }
  18339. function _luaK_posfix(i3, i16, i1, i4, i14) {
  18340. i3 = i3 | 0;
  18341. i16 = i16 | 0;
  18342. i1 = i1 | 0;
  18343. i4 = i4 | 0;
  18344. i14 = i14 | 0;
  18345. var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i15 = 0;
  18346. i2 = STACKTOP;
  18347. switch (i16 | 0) {
  18348. case 14:
  18349. {
  18350. _luaK_dischargevars(i3, i4);
  18351. i6 = i4 + 16 | 0;
  18352. i5 = HEAP32[i1 + 16 >> 2] | 0;
  18353. do {
  18354. if (!((i5 | 0) == -1)) {
  18355. i9 = HEAP32[i6 >> 2] | 0;
  18356. if ((i9 | 0) == -1) {
  18357. HEAP32[i6 >> 2] = i5;
  18358. break;
  18359. }
  18360. i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
  18361. while (1) {
  18362. i6 = i7 + (i9 << 2) | 0;
  18363. i8 = HEAP32[i6 >> 2] | 0;
  18364. i10 = (i8 >>> 14) + -131071 | 0;
  18365. if ((i10 | 0) == -1) {
  18366. break;
  18367. }
  18368. i10 = i9 + 1 + i10 | 0;
  18369. if ((i10 | 0) == -1) {
  18370. break;
  18371. } else {
  18372. i9 = i10;
  18373. }
  18374. }
  18375. i5 = i5 + ~i9 | 0;
  18376. if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
  18377. _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
  18378. } else {
  18379. HEAP32[i6 >> 2] = (i5 << 14) + 2147467264 | i8 & 16383;
  18380. break;
  18381. }
  18382. }
  18383. } while (0);
  18384. HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
  18385. HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
  18386. HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
  18387. HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
  18388. HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
  18389. HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
  18390. STACKTOP = i2;
  18391. return;
  18392. }
  18393. case 13:
  18394. {
  18395. _luaK_dischargevars(i3, i4);
  18396. i6 = i4 + 20 | 0;
  18397. i5 = HEAP32[i1 + 20 >> 2] | 0;
  18398. do {
  18399. if (!((i5 | 0) == -1)) {
  18400. i9 = HEAP32[i6 >> 2] | 0;
  18401. if ((i9 | 0) == -1) {
  18402. HEAP32[i6 >> 2] = i5;
  18403. break;
  18404. }
  18405. i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
  18406. while (1) {
  18407. i8 = i7 + (i9 << 2) | 0;
  18408. i6 = HEAP32[i8 >> 2] | 0;
  18409. i10 = (i6 >>> 14) + -131071 | 0;
  18410. if ((i10 | 0) == -1) {
  18411. break;
  18412. }
  18413. i10 = i9 + 1 + i10 | 0;
  18414. if ((i10 | 0) == -1) {
  18415. break;
  18416. } else {
  18417. i9 = i10;
  18418. }
  18419. }
  18420. i5 = i5 + ~i9 | 0;
  18421. if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
  18422. _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
  18423. } else {
  18424. HEAP32[i8 >> 2] = (i5 << 14) + 2147467264 | i6 & 16383;
  18425. break;
  18426. }
  18427. }
  18428. } while (0);
  18429. HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
  18430. HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
  18431. HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
  18432. HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
  18433. HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
  18434. HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
  18435. STACKTOP = i2;
  18436. return;
  18437. }
  18438. case 6:
  18439. {
  18440. i12 = i4 + 16 | 0;
  18441. i13 = i4 + 20 | 0;
  18442. i16 = (HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0);
  18443. _luaK_dischargevars(i3, i4);
  18444. do {
  18445. if (!i16) {
  18446. if ((HEAP32[i4 >> 2] | 0) == 6) {
  18447. i10 = HEAP32[i4 + 8 >> 2] | 0;
  18448. if ((HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0)) {
  18449. break;
  18450. }
  18451. if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
  18452. _exp2reg(i3, i4, i10);
  18453. break;
  18454. }
  18455. }
  18456. _luaK_exp2nextreg(i3, i4);
  18457. }
  18458. } while (0);
  18459. if ((HEAP32[i4 >> 2] | 0) == 11 ? (i5 = i4 + 8 | 0, i7 = HEAP32[i5 >> 2] | 0, i8 = (HEAP32[i3 >> 2] | 0) + 12 | 0, i9 = HEAP32[i8 >> 2] | 0, i6 = HEAP32[i9 + (i7 << 2) >> 2] | 0, (i6 & 63 | 0) == 22) : 0) {
  18460. i4 = i1 + 8 | 0;
  18461. if (((HEAP32[i1 >> 2] | 0) == 6 ? (i11 = HEAP32[i4 >> 2] | 0, (i11 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i11 | 0) : 0) {
  18462. i6 = i3 + 48 | 0;
  18463. HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
  18464. i6 = HEAP32[i5 >> 2] | 0;
  18465. i16 = HEAP32[i8 >> 2] | 0;
  18466. i9 = i16;
  18467. i7 = i6;
  18468. i6 = HEAP32[i16 + (i6 << 2) >> 2] | 0;
  18469. }
  18470. HEAP32[i9 + (i7 << 2) >> 2] = HEAP32[i4 >> 2] << 23 | i6 & 8388607;
  18471. HEAP32[i1 >> 2] = 11;
  18472. HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
  18473. STACKTOP = i2;
  18474. return;
  18475. }
  18476. _luaK_exp2nextreg(i3, i4);
  18477. _codearith(i3, 22, i1, i4, i14);
  18478. STACKTOP = i2;
  18479. return;
  18480. }
  18481. case 9:
  18482. case 8:
  18483. case 7:
  18484. {
  18485. i7 = i16 + 17 | 0;
  18486. i6 = _luaK_exp2RK(i3, i1) | 0;
  18487. i5 = _luaK_exp2RK(i3, i4) | 0;
  18488. if (((HEAP32[i4 >> 2] | 0) == 6 ? (i15 = HEAP32[i4 + 8 >> 2] | 0, (i15 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i15 | 0) : 0) {
  18489. i16 = i3 + 48 | 0;
  18490. HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
  18491. }
  18492. i4 = i1 + 8 | 0;
  18493. if (((HEAP32[i1 >> 2] | 0) == 6 ? (i10 = HEAP32[i4 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
  18494. i16 = i3 + 48 | 0;
  18495. HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
  18496. }
  18497. HEAP32[i4 >> 2] = _condjump(i3, i7, 1, i6, i5) | 0;
  18498. HEAP32[i1 >> 2] = 10;
  18499. STACKTOP = i2;
  18500. return;
  18501. }
  18502. case 12:
  18503. case 11:
  18504. case 10:
  18505. {
  18506. i7 = i16 + 14 | 0;
  18507. i6 = _luaK_exp2RK(i3, i1) | 0;
  18508. i5 = _luaK_exp2RK(i3, i4) | 0;
  18509. if (((HEAP32[i4 >> 2] | 0) == 6 ? (i13 = HEAP32[i4 + 8 >> 2] | 0, (i13 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i13 | 0) : 0) {
  18510. i16 = i3 + 48 | 0;
  18511. HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
  18512. }
  18513. i4 = i1 + 8 | 0;
  18514. if (((HEAP32[i1 >> 2] | 0) == 6 ? (i12 = HEAP32[i4 >> 2] | 0, (i12 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i12 | 0) : 0) {
  18515. i16 = i3 + 48 | 0;
  18516. HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
  18517. }
  18518. i8 = (i7 | 0) == 24;
  18519. HEAP32[i4 >> 2] = _condjump(i3, i7, i8 & 1 ^ 1, i8 ? i6 : i5, i8 ? i5 : i6) | 0;
  18520. HEAP32[i1 >> 2] = 10;
  18521. STACKTOP = i2;
  18522. return;
  18523. }
  18524. case 5:
  18525. case 4:
  18526. case 3:
  18527. case 2:
  18528. case 1:
  18529. case 0:
  18530. {
  18531. _codearith(i3, i16 + 13 | 0, i1, i4, i14);
  18532. STACKTOP = i2;
  18533. return;
  18534. }
  18535. default:
  18536. {
  18537. STACKTOP = i2;
  18538. return;
  18539. }
  18540. }
  18541. }
  18542. function _body(i1, i4, i13, i5) {
  18543. i1 = i1 | 0;
  18544. i4 = i4 | 0;
  18545. i13 = i13 | 0;
  18546. i5 = i5 | 0;
  18547. var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
  18548. i6 = STACKTOP;
  18549. STACKTOP = STACKTOP + 64 | 0;
  18550. i3 = i6 + 12 | 0;
  18551. i14 = i6;
  18552. i2 = i1 + 48 | 0;
  18553. i19 = HEAP32[i2 >> 2] | 0;
  18554. i18 = i1 + 52 | 0;
  18555. i17 = HEAP32[i18 >> 2] | 0;
  18556. i16 = HEAP32[i19 >> 2] | 0;
  18557. i19 = i19 + 36 | 0;
  18558. i23 = i16 + 56 | 0;
  18559. i24 = HEAP32[i23 >> 2] | 0;
  18560. i15 = i16 + 16 | 0;
  18561. if (((HEAP32[i19 >> 2] | 0) >= (i24 | 0) ? (i21 = _luaM_growaux_(i17, HEAP32[i15 >> 2] | 0, i23, 4, 262143, 6512) | 0, HEAP32[i15 >> 2] = i21, i20 = HEAP32[i23 >> 2] | 0, (i24 | 0) < (i20 | 0)) : 0) ? (i22 = i24 + 1 | 0, HEAP32[i21 + (i24 << 2) >> 2] = 0, (i22 | 0) < (i20 | 0)) : 0) {
  18562. while (1) {
  18563. i21 = i22 + 1 | 0;
  18564. HEAP32[(HEAP32[i15 >> 2] | 0) + (i22 << 2) >> 2] = 0;
  18565. if ((i21 | 0) == (i20 | 0)) {
  18566. break;
  18567. } else {
  18568. i22 = i21;
  18569. }
  18570. }
  18571. }
  18572. i20 = _luaF_newproto(i17) | 0;
  18573. i24 = HEAP32[i19 >> 2] | 0;
  18574. HEAP32[i19 >> 2] = i24 + 1;
  18575. HEAP32[(HEAP32[i15 >> 2] | 0) + (i24 << 2) >> 2] = i20;
  18576. if (!((HEAP8[i20 + 5 | 0] & 3) == 0) ? !((HEAP8[i16 + 5 | 0] & 4) == 0) : 0) {
  18577. _luaC_barrier_(i17, i16, i20);
  18578. }
  18579. HEAP32[i3 >> 2] = i20;
  18580. HEAP32[i20 + 64 >> 2] = i5;
  18581. i16 = HEAP32[i18 >> 2] | 0;
  18582. HEAP32[i3 + 8 >> 2] = HEAP32[i2 >> 2];
  18583. i17 = i3 + 12 | 0;
  18584. HEAP32[i17 >> 2] = i1;
  18585. HEAP32[i2 >> 2] = i3;
  18586. HEAP32[i3 + 20 >> 2] = 0;
  18587. HEAP32[i3 + 24 >> 2] = 0;
  18588. HEAP32[i3 + 28 >> 2] = -1;
  18589. HEAP32[i3 + 32 >> 2] = 0;
  18590. HEAP32[i3 + 36 >> 2] = 0;
  18591. i22 = i3 + 44 | 0;
  18592. i15 = i1 + 64 | 0;
  18593. HEAP32[i22 + 0 >> 2] = 0;
  18594. HEAP8[i22 + 4 | 0] = 0;
  18595. HEAP32[i3 + 40 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 4 >> 2];
  18596. i15 = i3 + 16 | 0;
  18597. HEAP32[i15 >> 2] = 0;
  18598. HEAP32[i20 + 36 >> 2] = HEAP32[i1 + 68 >> 2];
  18599. HEAP8[i20 + 78 | 0] = 2;
  18600. i22 = _luaH_new(i16) | 0;
  18601. HEAP32[i3 + 4 >> 2] = i22;
  18602. i23 = i16 + 8 | 0;
  18603. i24 = HEAP32[i23 >> 2] | 0;
  18604. HEAP32[i24 >> 2] = i22;
  18605. HEAP32[i24 + 8 >> 2] = 69;
  18606. i24 = (HEAP32[i23 >> 2] | 0) + 16 | 0;
  18607. HEAP32[i23 >> 2] = i24;
  18608. if (((HEAP32[i16 + 24 >> 2] | 0) - i24 | 0) < 16) {
  18609. _luaD_growstack(i16, 0);
  18610. }
  18611. HEAP8[i14 + 10 | 0] = 0;
  18612. HEAP8[i14 + 8 | 0] = HEAP8[i3 + 46 | 0] | 0;
  18613. i24 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
  18614. HEAP16[i14 + 4 >> 1] = HEAP32[i24 + 28 >> 2];
  18615. HEAP16[i14 + 6 >> 1] = HEAP32[i24 + 16 >> 2];
  18616. HEAP8[i14 + 9 | 0] = 0;
  18617. HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
  18618. HEAP32[i15 >> 2] = i14;
  18619. i14 = i1 + 16 | 0;
  18620. if ((HEAP32[i14 >> 2] | 0) != 40) {
  18621. _error_expected(i1, 40);
  18622. }
  18623. _luaX_next(i1);
  18624. if ((i13 | 0) != 0) {
  18625. _new_localvar(i1, _luaX_newstring(i1, 6456, 4) | 0);
  18626. i24 = HEAP32[i2 >> 2] | 0;
  18627. i22 = i24 + 46 | 0;
  18628. i23 = (HEAPU8[i22] | 0) + 1 | 0;
  18629. HEAP8[i22] = i23;
  18630. HEAP32[(HEAP32[(HEAP32[i24 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i24 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i23 & 255) + -1 + (HEAP32[i24 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i24 + 20 >> 2];
  18631. }
  18632. i13 = HEAP32[i2 >> 2] | 0;
  18633. i15 = HEAP32[i13 >> 2] | 0;
  18634. i16 = i15 + 77 | 0;
  18635. HEAP8[i16] = 0;
  18636. i19 = HEAP32[i14 >> 2] | 0;
  18637. L20 : do {
  18638. if ((i19 | 0) != 41) {
  18639. i17 = i1 + 24 | 0;
  18640. i18 = 0;
  18641. while (1) {
  18642. if ((i19 | 0) == 280) {
  18643. i17 = 18;
  18644. break;
  18645. } else if ((i19 | 0) != 288) {
  18646. i17 = 19;
  18647. break;
  18648. }
  18649. i24 = HEAP32[i17 >> 2] | 0;
  18650. _luaX_next(i1);
  18651. _new_localvar(i1, i24);
  18652. i18 = i18 + 1 | 0;
  18653. if ((HEAP8[i16] | 0) != 0) {
  18654. i11 = i18;
  18655. break L20;
  18656. }
  18657. if ((HEAP32[i14 >> 2] | 0) != 44) {
  18658. i11 = i18;
  18659. break L20;
  18660. }
  18661. _luaX_next(i1);
  18662. i19 = HEAP32[i14 >> 2] | 0;
  18663. }
  18664. if ((i17 | 0) == 18) {
  18665. _luaX_next(i1);
  18666. HEAP8[i16] = 1;
  18667. i11 = i18;
  18668. break;
  18669. } else if ((i17 | 0) == 19) {
  18670. _luaX_syntaxerror(i1, 6464);
  18671. }
  18672. } else {
  18673. i11 = 0;
  18674. }
  18675. } while (0);
  18676. i18 = HEAP32[i2 >> 2] | 0;
  18677. i16 = i18 + 46 | 0;
  18678. i17 = (HEAPU8[i16] | 0) + i11 | 0;
  18679. HEAP8[i16] = i17;
  18680. if ((i11 | 0) != 0 ? (i8 = i18 + 20 | 0, i9 = i18 + 40 | 0, i7 = HEAP32[(HEAP32[i18 >> 2] | 0) + 24 >> 2] | 0, i10 = HEAP32[HEAP32[(HEAP32[i18 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i7 + ((HEAP16[i10 + ((i17 & 255) - i11 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2], i12 = i11 + -1 | 0, (i12 | 0) != 0) : 0) {
  18681. do {
  18682. HEAP32[i7 + ((HEAP16[i10 + ((HEAPU8[i16] | 0) - i12 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2];
  18683. i12 = i12 + -1 | 0;
  18684. } while ((i12 | 0) != 0);
  18685. }
  18686. i24 = i13 + 46 | 0;
  18687. HEAP8[i15 + 76 | 0] = HEAP8[i24] | 0;
  18688. _luaK_reserveregs(i13, HEAPU8[i24] | 0);
  18689. if ((HEAP32[i14 >> 2] | 0) != 41) {
  18690. _error_expected(i1, 41);
  18691. }
  18692. _luaX_next(i1);
  18693. L39 : while (1) {
  18694. i7 = HEAP32[i14 >> 2] | 0;
  18695. switch (i7 | 0) {
  18696. case 277:
  18697. case 286:
  18698. case 262:
  18699. case 261:
  18700. case 260:
  18701. {
  18702. i17 = 30;
  18703. break L39;
  18704. }
  18705. default:
  18706. {}
  18707. }
  18708. _statement(i1);
  18709. if ((i7 | 0) == 274) {
  18710. i17 = 30;
  18711. break;
  18712. }
  18713. }
  18714. if ((i17 | 0) == 30) {
  18715. HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] = HEAP32[i1 + 4 >> 2];
  18716. _check_match(i1, 262, 265, i5);
  18717. i24 = HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] | 0;
  18718. i23 = _luaK_codeABx(i24, 37, 0, (HEAP32[i24 + 36 >> 2] | 0) + -1 | 0) | 0;
  18719. HEAP32[i4 + 16 >> 2] = -1;
  18720. HEAP32[i4 + 20 >> 2] = -1;
  18721. HEAP32[i4 >> 2] = 11;
  18722. HEAP32[i4 + 8 >> 2] = i23;
  18723. _luaK_exp2nextreg(i24, i4);
  18724. _close_func(i1);
  18725. STACKTOP = i6;
  18726. return;
  18727. }
  18728. }
  18729. function _luaH_newkey(i3, i2, i1) {
  18730. i3 = i3 | 0;
  18731. i2 = i2 | 0;
  18732. i1 = i1 | 0;
  18733. var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0;
  18734. i4 = STACKTOP;
  18735. STACKTOP = STACKTOP + 144 | 0;
  18736. i8 = i4 + 8 | 0;
  18737. i10 = i4;
  18738. i5 = i4 + 16 | 0;
  18739. i6 = i1 + 8 | 0;
  18740. i11 = HEAP32[i6 >> 2] | 0;
  18741. if ((i11 | 0) == 0) {
  18742. _luaG_runerror(i3, 7968, i8);
  18743. } else if ((i11 | 0) == 3) {
  18744. i15 = 3;
  18745. }
  18746. if ((i15 | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], !(d21 == d21 & 0.0 == 0.0)) : 0) {
  18747. _luaG_runerror(i3, 7992, i8);
  18748. }
  18749. i13 = _mainposition(i2, i1) | 0;
  18750. i14 = i13 + 8 | 0;
  18751. do {
  18752. if ((HEAP32[i14 >> 2] | 0) != 0 | (i13 | 0) == 8016) {
  18753. i18 = i2 + 20 | 0;
  18754. i11 = i2 + 16 | 0;
  18755. i17 = HEAP32[i11 >> 2] | 0;
  18756. i16 = HEAP32[i18 >> 2] | 0;
  18757. while (1) {
  18758. if (!(i16 >>> 0 > i17 >>> 0)) {
  18759. break;
  18760. }
  18761. i12 = i16 + -32 | 0;
  18762. HEAP32[i18 >> 2] = i12;
  18763. if ((HEAP32[i16 + -8 >> 2] | 0) == 0) {
  18764. i15 = 37;
  18765. break;
  18766. } else {
  18767. i16 = i12;
  18768. }
  18769. }
  18770. if ((i15 | 0) == 37) {
  18771. i5 = _mainposition(i2, i13 + 16 | 0) | 0;
  18772. if ((i5 | 0) == (i13 | 0)) {
  18773. i20 = i13 + 28 | 0;
  18774. HEAP32[i16 + -4 >> 2] = HEAP32[i20 >> 2];
  18775. HEAP32[i20 >> 2] = i12;
  18776. break;
  18777. } else {
  18778. i7 = i5;
  18779. }
  18780. do {
  18781. i5 = i7 + 28 | 0;
  18782. i7 = HEAP32[i5 >> 2] | 0;
  18783. } while ((i7 | 0) != (i13 | 0));
  18784. HEAP32[i5 >> 2] = i12;
  18785. HEAP32[i12 + 0 >> 2] = HEAP32[i13 + 0 >> 2];
  18786. HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
  18787. HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
  18788. HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
  18789. HEAP32[i12 + 16 >> 2] = HEAP32[i13 + 16 >> 2];
  18790. HEAP32[i12 + 20 >> 2] = HEAP32[i13 + 20 >> 2];
  18791. HEAP32[i12 + 24 >> 2] = HEAP32[i13 + 24 >> 2];
  18792. HEAP32[i12 + 28 >> 2] = HEAP32[i13 + 28 >> 2];
  18793. HEAP32[i13 + 28 >> 2] = 0;
  18794. HEAP32[i14 >> 2] = 0;
  18795. i12 = i13;
  18796. break;
  18797. }
  18798. i13 = i5 + 0 | 0;
  18799. i12 = i13 + 124 | 0;
  18800. do {
  18801. HEAP32[i13 >> 2] = 0;
  18802. i13 = i13 + 4 | 0;
  18803. } while ((i13 | 0) < (i12 | 0));
  18804. i15 = i2 + 12 | 0;
  18805. i13 = HEAP32[i2 + 28 >> 2] | 0;
  18806. i12 = 0;
  18807. i20 = 1;
  18808. i16 = 0;
  18809. i14 = 1;
  18810. while (1) {
  18811. if ((i14 | 0) > (i13 | 0)) {
  18812. if ((i20 | 0) > (i13 | 0)) {
  18813. break;
  18814. } else {
  18815. i19 = i13;
  18816. }
  18817. } else {
  18818. i19 = i14;
  18819. }
  18820. if ((i20 | 0) > (i19 | 0)) {
  18821. i18 = i20;
  18822. i17 = 0;
  18823. } else {
  18824. i18 = HEAP32[i15 >> 2] | 0;
  18825. i17 = 0;
  18826. while (1) {
  18827. i17 = ((HEAP32[i18 + (i20 + -1 << 4) + 8 >> 2] | 0) != 0) + i17 | 0;
  18828. if ((i20 | 0) >= (i19 | 0)) {
  18829. break;
  18830. } else {
  18831. i20 = i20 + 1 | 0;
  18832. }
  18833. }
  18834. i18 = i19 + 1 | 0;
  18835. }
  18836. i20 = i5 + (i16 << 2) | 0;
  18837. HEAP32[i20 >> 2] = (HEAP32[i20 >> 2] | 0) + i17;
  18838. i12 = i17 + i12 | 0;
  18839. i16 = i16 + 1 | 0;
  18840. if ((i16 | 0) < 31) {
  18841. i20 = i18;
  18842. i14 = i14 << 1;
  18843. } else {
  18844. break;
  18845. }
  18846. }
  18847. i14 = 0;
  18848. i15 = 1 << (HEAPU8[i2 + 7 | 0] | 0);
  18849. i13 = 0;
  18850. L32 : while (1) {
  18851. i16 = i15;
  18852. while (1) {
  18853. i15 = i16 + -1 | 0;
  18854. if ((i16 | 0) == 0) {
  18855. break L32;
  18856. }
  18857. i16 = HEAP32[i11 >> 2] | 0;
  18858. if ((HEAP32[i16 + (i15 << 5) + 8 >> 2] | 0) == 0) {
  18859. i16 = i15;
  18860. } else {
  18861. break;
  18862. }
  18863. }
  18864. if (((HEAP32[i16 + (i15 << 5) + 24 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i16 + (i15 << 5) + 16 >> 3], HEAPF64[i10 >> 3] = d21 + 6755399441055744.0, i9 = HEAP32[i10 >> 2] | 0, +(i9 | 0) == d21) : 0) ? (i9 + -1 | 0) >>> 0 < 1073741824 : 0) {
  18865. i16 = i5 + ((_luaO_ceillog2(i9) | 0) << 2) | 0;
  18866. HEAP32[i16 >> 2] = (HEAP32[i16 >> 2] | 0) + 1;
  18867. i16 = 1;
  18868. } else {
  18869. i16 = 0;
  18870. }
  18871. i14 = i16 + i14 | 0;
  18872. i13 = i13 + 1 | 0;
  18873. }
  18874. i9 = i14 + i12 | 0;
  18875. if (((HEAP32[i6 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], HEAPF64[i8 >> 3] = d21 + 6755399441055744.0, i7 = HEAP32[i8 >> 2] | 0, +(i7 | 0) == d21) : 0) ? (i7 + -1 | 0) >>> 0 < 1073741824 : 0) {
  18876. i6 = i5 + ((_luaO_ceillog2(i7) | 0) << 2) | 0;
  18877. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
  18878. i6 = 1;
  18879. } else {
  18880. i6 = 0;
  18881. }
  18882. i7 = i9 + i6 | 0;
  18883. L49 : do {
  18884. if ((i7 | 0) > 0) {
  18885. i14 = 0;
  18886. i10 = 0;
  18887. i6 = 0;
  18888. i8 = 0;
  18889. i11 = 0;
  18890. i9 = 1;
  18891. while (1) {
  18892. i15 = HEAP32[i5 + (i6 << 2) >> 2] | 0;
  18893. if ((i15 | 0) > 0) {
  18894. i15 = i15 + i10 | 0;
  18895. i14 = (i15 | 0) > (i14 | 0);
  18896. i10 = i15;
  18897. i8 = i14 ? i9 : i8;
  18898. i11 = i14 ? i15 : i11;
  18899. }
  18900. if ((i10 | 0) == (i7 | 0)) {
  18901. break L49;
  18902. }
  18903. i9 = i9 << 1;
  18904. i14 = (i9 | 0) / 2 | 0;
  18905. if ((i14 | 0) < (i7 | 0)) {
  18906. i6 = i6 + 1 | 0;
  18907. } else {
  18908. break;
  18909. }
  18910. }
  18911. } else {
  18912. i8 = 0;
  18913. i11 = 0;
  18914. }
  18915. } while (0);
  18916. _luaH_resize(i3, i2, i8, i12 + 1 + i13 - i11 | 0);
  18917. i5 = _luaH_get(i2, i1) | 0;
  18918. if ((i5 | 0) != 5192) {
  18919. i20 = i5;
  18920. STACKTOP = i4;
  18921. return i20 | 0;
  18922. }
  18923. i20 = _luaH_newkey(i3, i2, i1) | 0;
  18924. STACKTOP = i4;
  18925. return i20 | 0;
  18926. } else {
  18927. i12 = i13;
  18928. }
  18929. } while (0);
  18930. i18 = i1;
  18931. i19 = HEAP32[i18 + 4 >> 2] | 0;
  18932. i20 = i12 + 16 | 0;
  18933. HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
  18934. HEAP32[i20 + 4 >> 2] = i19;
  18935. HEAP32[i12 + 24 >> 2] = HEAP32[i6 >> 2];
  18936. if (((HEAP32[i6 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i1 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i2 + 5 | 0] & 4) == 0) : 0) {
  18937. _luaC_barrierback_(i3, i2);
  18938. }
  18939. i20 = i12;
  18940. STACKTOP = i4;
  18941. return i20 | 0;
  18942. }
  18943. function _luaV_concat(i7, i10) {
  18944. i7 = i7 | 0;
  18945. i10 = i10 | 0;
  18946. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
  18947. i5 = STACKTOP;
  18948. STACKTOP = STACKTOP + 48 | 0;
  18949. i9 = i5;
  18950. i8 = i5 + 8 | 0;
  18951. i6 = i7 + 8 | 0;
  18952. i2 = i7 + 12 | 0;
  18953. i3 = i7 + 28 | 0;
  18954. i4 = i7 + 16 | 0;
  18955. i11 = HEAP32[i6 >> 2] | 0;
  18956. L1 : while (1) {
  18957. i14 = i11 + -32 | 0;
  18958. i12 = i11 + -24 | 0;
  18959. i17 = HEAP32[i12 >> 2] | 0;
  18960. i13 = i11 + -16 | 0;
  18961. do {
  18962. if ((i17 & 15 | 0) == 4 | (i17 | 0) == 3) {
  18963. i15 = i11 + -8 | 0;
  18964. i16 = HEAP32[i15 >> 2] | 0;
  18965. if ((i16 & 15 | 0) == 4) {
  18966. i16 = i13;
  18967. } else {
  18968. if ((i16 | 0) != 3) {
  18969. i1 = 7;
  18970. break;
  18971. }
  18972. HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i13 >> 3];
  18973. HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
  18974. HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  18975. i16 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
  18976. HEAP32[i13 >> 2] = i16;
  18977. HEAP32[i15 >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
  18978. i16 = i13;
  18979. i17 = HEAP32[i12 >> 2] | 0;
  18980. }
  18981. i16 = HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] | 0;
  18982. i18 = (i17 & 15 | 0) == 4;
  18983. if ((i16 | 0) == 0) {
  18984. if (i18) {
  18985. i12 = 2;
  18986. break;
  18987. }
  18988. if ((i17 | 0) != 3) {
  18989. i12 = 2;
  18990. break;
  18991. }
  18992. HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
  18993. HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
  18994. HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  18995. i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
  18996. HEAP32[i14 >> 2] = i18;
  18997. HEAP32[i12 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
  18998. i12 = 2;
  18999. break;
  19000. }
  19001. if (i18 ? (HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0) == 0 : 0) {
  19002. i16 = i13;
  19003. i17 = HEAP32[i16 + 4 >> 2] | 0;
  19004. i18 = i14;
  19005. HEAP32[i18 >> 2] = HEAP32[i16 >> 2];
  19006. HEAP32[i18 + 4 >> 2] = i17;
  19007. HEAP32[i12 >> 2] = HEAP32[i15 >> 2];
  19008. i12 = 2;
  19009. break;
  19010. }
  19011. L19 : do {
  19012. if ((i10 | 0) > 1) {
  19013. i12 = 1;
  19014. do {
  19015. i15 = ~i12;
  19016. i14 = i11 + (i15 << 4) | 0;
  19017. i15 = i11 + (i15 << 4) + 8 | 0;
  19018. i13 = HEAP32[i15 >> 2] | 0;
  19019. if ((i13 & 15 | 0) != 4) {
  19020. if ((i13 | 0) != 3) {
  19021. break L19;
  19022. }
  19023. HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
  19024. HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
  19025. HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  19026. i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
  19027. HEAP32[i14 >> 2] = i18;
  19028. HEAP32[i15 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
  19029. }
  19030. i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0;
  19031. if (!(i13 >>> 0 < (-3 - i16 | 0) >>> 0)) {
  19032. i1 = 24;
  19033. break L1;
  19034. }
  19035. i16 = i13 + i16 | 0;
  19036. i12 = i12 + 1 | 0;
  19037. } while ((i12 | 0) < (i10 | 0));
  19038. } else {
  19039. i12 = 1;
  19040. }
  19041. } while (0);
  19042. i14 = _luaZ_openspace(i7, (HEAP32[i2 >> 2] | 0) + 144 | 0, i16) | 0;
  19043. i15 = i12;
  19044. i13 = 0;
  19045. do {
  19046. i17 = HEAP32[i11 + (0 - i15 << 4) >> 2] | 0;
  19047. i18 = HEAP32[i17 + 12 >> 2] | 0;
  19048. _memcpy(i14 + i13 | 0, i17 + 16 | 0, i18 | 0) | 0;
  19049. i13 = i18 + i13 | 0;
  19050. i15 = i15 + -1 | 0;
  19051. } while ((i15 | 0) > 0);
  19052. i18 = 0 - i12 | 0;
  19053. i17 = _luaS_newlstr(i7, i14, i13) | 0;
  19054. HEAP32[i11 + (i18 << 4) >> 2] = i17;
  19055. HEAP32[i11 + (i18 << 4) + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 0 | 64;
  19056. } else {
  19057. i1 = 7;
  19058. }
  19059. } while (0);
  19060. if ((i1 | 0) == 7) {
  19061. i1 = 0;
  19062. i15 = _luaT_gettmbyobj(i7, i14, 15) | 0;
  19063. if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
  19064. i15 = _luaT_gettmbyobj(i7, i13, 15) | 0;
  19065. if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
  19066. i1 = 10;
  19067. break;
  19068. }
  19069. }
  19070. i18 = i14 - (HEAP32[i3 >> 2] | 0) | 0;
  19071. i16 = HEAP32[i6 >> 2] | 0;
  19072. HEAP32[i6 >> 2] = i16 + 16;
  19073. i20 = i15;
  19074. i19 = HEAP32[i20 + 4 >> 2] | 0;
  19075. i17 = i16;
  19076. HEAP32[i17 >> 2] = HEAP32[i20 >> 2];
  19077. HEAP32[i17 + 4 >> 2] = i19;
  19078. HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
  19079. i15 = HEAP32[i6 >> 2] | 0;
  19080. HEAP32[i6 >> 2] = i15 + 16;
  19081. i16 = i14;
  19082. i17 = HEAP32[i16 + 4 >> 2] | 0;
  19083. i14 = i15;
  19084. HEAP32[i14 >> 2] = HEAP32[i16 >> 2];
  19085. HEAP32[i14 + 4 >> 2] = i17;
  19086. HEAP32[i15 + 8 >> 2] = HEAP32[i12 >> 2];
  19087. i12 = HEAP32[i6 >> 2] | 0;
  19088. HEAP32[i6 >> 2] = i12 + 16;
  19089. i15 = i13;
  19090. i14 = HEAP32[i15 + 4 >> 2] | 0;
  19091. i17 = i12;
  19092. HEAP32[i17 >> 2] = HEAP32[i15 >> 2];
  19093. HEAP32[i17 + 4 >> 2] = i14;
  19094. HEAP32[i12 + 8 >> 2] = HEAP32[i11 + -8 >> 2];
  19095. _luaD_call(i7, (HEAP32[i6 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i4 >> 2] | 0) + 18 | 0] & 1);
  19096. i12 = HEAP32[i3 >> 2] | 0;
  19097. i17 = HEAP32[i6 >> 2] | 0;
  19098. i14 = i17 + -16 | 0;
  19099. HEAP32[i6 >> 2] = i14;
  19100. i15 = HEAP32[i14 + 4 >> 2] | 0;
  19101. i16 = i12 + i18 | 0;
  19102. HEAP32[i16 >> 2] = HEAP32[i14 >> 2];
  19103. HEAP32[i16 + 4 >> 2] = i15;
  19104. HEAP32[i12 + (i18 + 8) >> 2] = HEAP32[i17 + -8 >> 2];
  19105. i12 = 2;
  19106. }
  19107. i10 = i10 + 1 - i12 | 0;
  19108. i11 = (HEAP32[i6 >> 2] | 0) + (1 - i12 << 4) | 0;
  19109. HEAP32[i6 >> 2] = i11;
  19110. if ((i10 | 0) <= 1) {
  19111. i1 = 30;
  19112. break;
  19113. }
  19114. }
  19115. if ((i1 | 0) == 10) {
  19116. _luaG_concaterror(i7, i14, i13);
  19117. } else if ((i1 | 0) == 24) {
  19118. _luaG_runerror(i7, 9e3, i9);
  19119. } else if ((i1 | 0) == 30) {
  19120. STACKTOP = i5;
  19121. return;
  19122. }
  19123. }
  19124. function _str_gsub(i1) {
  19125. i1 = i1 | 0;
  19126. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0;
  19127. i3 = STACKTOP;
  19128. STACKTOP = STACKTOP + 1344 | 0;
  19129. i4 = i3;
  19130. i5 = i3 + 1336 | 0;
  19131. i14 = i3 + 1332 | 0;
  19132. i10 = i3 + 1328 | 0;
  19133. i6 = i3 + 1048 | 0;
  19134. i2 = i3 + 8 | 0;
  19135. i20 = _luaL_checklstring(i1, 1, i14) | 0;
  19136. i13 = _luaL_checklstring(i1, 2, i10) | 0;
  19137. i8 = _lua_type(i1, 3) | 0;
  19138. i9 = _luaL_optinteger(i1, 4, (HEAP32[i14 >> 2] | 0) + 1 | 0) | 0;
  19139. i7 = (HEAP8[i13] | 0) == 94;
  19140. if (!((i8 + -3 | 0) >>> 0 < 2 | (i8 | 0) == 6 | (i8 | 0) == 5)) {
  19141. _luaL_argerror(i1, 3, 7528) | 0;
  19142. }
  19143. _luaL_buffinit(i1, i2);
  19144. if (i7) {
  19145. i15 = (HEAP32[i10 >> 2] | 0) + -1 | 0;
  19146. HEAP32[i10 >> 2] = i15;
  19147. i13 = i13 + 1 | 0;
  19148. } else {
  19149. i15 = HEAP32[i10 >> 2] | 0;
  19150. }
  19151. i11 = i6 + 16 | 0;
  19152. HEAP32[i11 >> 2] = i1;
  19153. HEAP32[i6 >> 2] = 200;
  19154. i12 = i6 + 4 | 0;
  19155. HEAP32[i12 >> 2] = i20;
  19156. i10 = i6 + 8 | 0;
  19157. HEAP32[i10 >> 2] = i20 + (HEAP32[i14 >> 2] | 0);
  19158. HEAP32[i6 + 12 >> 2] = i13 + i15;
  19159. i14 = i6 + 20 | 0;
  19160. i15 = i2 + 8 | 0;
  19161. i18 = i2 + 4 | 0;
  19162. i16 = i6 + 28 | 0;
  19163. i17 = i6 + 24 | 0;
  19164. i22 = 0;
  19165. while (1) {
  19166. if (!(i22 >>> 0 < i9 >>> 0)) {
  19167. i19 = 48;
  19168. break;
  19169. }
  19170. HEAP32[i14 >> 2] = 0;
  19171. i21 = _match(i6, i20, i13) | 0;
  19172. if ((i21 | 0) != 0) {
  19173. i22 = i22 + 1 | 0;
  19174. i23 = HEAP32[i11 >> 2] | 0;
  19175. if ((i8 | 0) == 5) {
  19176. do {
  19177. if ((HEAP32[i14 >> 2] | 0) > 0) {
  19178. i24 = HEAP32[i16 >> 2] | 0;
  19179. if (!((i24 | 0) == -1)) {
  19180. i25 = HEAP32[i17 >> 2] | 0;
  19181. if ((i24 | 0) == -2) {
  19182. _lua_pushinteger(i23, i25 + 1 - (HEAP32[i12 >> 2] | 0) | 0);
  19183. break;
  19184. } else {
  19185. i19 = i23;
  19186. }
  19187. } else {
  19188. _luaL_error(i23, 7248, i4) | 0;
  19189. i19 = HEAP32[i11 >> 2] | 0;
  19190. i25 = HEAP32[i17 >> 2] | 0;
  19191. }
  19192. _lua_pushlstring(i19, i25, i24) | 0;
  19193. } else {
  19194. _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
  19195. }
  19196. } while (0);
  19197. _lua_gettable(i23, 3);
  19198. i19 = 37;
  19199. } else if ((i8 | 0) != 6) {
  19200. i24 = _lua_tolstring(i23, 3, i5) | 0;
  19201. if ((HEAP32[i5 >> 2] | 0) != 0) {
  19202. i23 = i21 - i20 | 0;
  19203. i25 = 0;
  19204. do {
  19205. i26 = i24 + i25 | 0;
  19206. i27 = HEAP8[i26] | 0;
  19207. do {
  19208. if (i27 << 24 >> 24 == 37) {
  19209. i25 = i25 + 1 | 0;
  19210. i26 = i24 + i25 | 0;
  19211. i28 = HEAP8[i26] | 0;
  19212. i27 = i28 << 24 >> 24;
  19213. if (((i28 & 255) + -48 | 0) >>> 0 < 10) {
  19214. if (i28 << 24 >> 24 == 48) {
  19215. _luaL_addlstring(i2, i20, i23);
  19216. break;
  19217. } else {
  19218. _push_onecapture(i6, i27 + -49 | 0, i20, i21);
  19219. _luaL_addvalue(i2);
  19220. break;
  19221. }
  19222. }
  19223. if (!(i28 << 24 >> 24 == 37)) {
  19224. i28 = HEAP32[i11 >> 2] | 0;
  19225. HEAP32[i4 >> 2] = 37;
  19226. _luaL_error(i28, 7600, i4) | 0;
  19227. }
  19228. i27 = HEAP32[i15 >> 2] | 0;
  19229. if (!(i27 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
  19230. _luaL_prepbuffsize(i2, 1) | 0;
  19231. i27 = HEAP32[i15 >> 2] | 0;
  19232. }
  19233. i28 = HEAP8[i26] | 0;
  19234. HEAP32[i15 >> 2] = i27 + 1;
  19235. HEAP8[(HEAP32[i2 >> 2] | 0) + i27 | 0] = i28;
  19236. } else {
  19237. i28 = HEAP32[i15 >> 2] | 0;
  19238. if (!(i28 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
  19239. _luaL_prepbuffsize(i2, 1) | 0;
  19240. i28 = HEAP32[i15 >> 2] | 0;
  19241. i27 = HEAP8[i26] | 0;
  19242. }
  19243. HEAP32[i15 >> 2] = i28 + 1;
  19244. HEAP8[(HEAP32[i2 >> 2] | 0) + i28 | 0] = i27;
  19245. }
  19246. } while (0);
  19247. i25 = i25 + 1 | 0;
  19248. } while (i25 >>> 0 < (HEAP32[i5 >> 2] | 0) >>> 0);
  19249. }
  19250. } else {
  19251. _lua_pushvalue(i23, 3);
  19252. i19 = HEAP32[i14 >> 2] | 0;
  19253. i19 = (i19 | 0) != 0 | (i20 | 0) == 0 ? i19 : 1;
  19254. _luaL_checkstack(HEAP32[i11 >> 2] | 0, i19, 7200);
  19255. if ((i19 | 0) > 0) {
  19256. i24 = 0;
  19257. do {
  19258. _push_onecapture(i6, i24, i20, i21);
  19259. i24 = i24 + 1 | 0;
  19260. } while ((i24 | 0) != (i19 | 0));
  19261. }
  19262. _lua_callk(i23, i19, 1, 0, 0);
  19263. i19 = 37;
  19264. }
  19265. if ((i19 | 0) == 37) {
  19266. i19 = 0;
  19267. if ((_lua_toboolean(i23, -1) | 0) != 0) {
  19268. if ((_lua_isstring(i23, -1) | 0) == 0) {
  19269. HEAP32[i4 >> 2] = _lua_typename(i23, _lua_type(i23, -1) | 0) | 0;
  19270. _luaL_error(i23, 7560, i4) | 0;
  19271. }
  19272. } else {
  19273. _lua_settop(i23, -2);
  19274. _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
  19275. }
  19276. _luaL_addvalue(i2);
  19277. }
  19278. if (i21 >>> 0 > i20 >>> 0) {
  19279. i20 = i21;
  19280. } else {
  19281. i19 = 43;
  19282. }
  19283. } else {
  19284. i19 = 43;
  19285. }
  19286. if ((i19 | 0) == 43) {
  19287. i19 = 0;
  19288. if (!(i20 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0)) {
  19289. i19 = 48;
  19290. break;
  19291. }
  19292. i21 = HEAP32[i15 >> 2] | 0;
  19293. if (!(i21 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
  19294. _luaL_prepbuffsize(i2, 1) | 0;
  19295. i21 = HEAP32[i15 >> 2] | 0;
  19296. }
  19297. i28 = HEAP8[i20] | 0;
  19298. HEAP32[i15 >> 2] = i21 + 1;
  19299. HEAP8[(HEAP32[i2 >> 2] | 0) + i21 | 0] = i28;
  19300. i20 = i20 + 1 | 0;
  19301. }
  19302. if (i7) {
  19303. i19 = 48;
  19304. break;
  19305. }
  19306. }
  19307. if ((i19 | 0) == 48) {
  19308. _luaL_addlstring(i2, i20, (HEAP32[i10 >> 2] | 0) - i20 | 0);
  19309. _luaL_pushresult(i2);
  19310. _lua_pushinteger(i1, i22);
  19311. STACKTOP = i3;
  19312. return 2;
  19313. }
  19314. return 0;
  19315. }
  19316. function _constructor(i11, i13) {
  19317. i11 = i11 | 0;
  19318. i13 = i13 | 0;
  19319. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0;
  19320. i5 = STACKTOP;
  19321. STACKTOP = STACKTOP + 64 | 0;
  19322. i10 = i5 + 40 | 0;
  19323. i8 = i5;
  19324. i12 = i11 + 48 | 0;
  19325. i6 = HEAP32[i12 >> 2] | 0;
  19326. i9 = HEAP32[i11 + 4 >> 2] | 0;
  19327. i2 = _luaK_codeABC(i6, 11, 0, 0, 0) | 0;
  19328. i7 = i8 + 36 | 0;
  19329. HEAP32[i7 >> 2] = 0;
  19330. i4 = i8 + 28 | 0;
  19331. HEAP32[i4 >> 2] = 0;
  19332. i3 = i8 + 32 | 0;
  19333. HEAP32[i3 >> 2] = 0;
  19334. i1 = i8 + 24 | 0;
  19335. HEAP32[i1 >> 2] = i13;
  19336. HEAP32[i13 + 16 >> 2] = -1;
  19337. HEAP32[i13 + 20 >> 2] = -1;
  19338. HEAP32[i13 >> 2] = 11;
  19339. HEAP32[i13 + 8 >> 2] = i2;
  19340. HEAP32[i8 + 16 >> 2] = -1;
  19341. HEAP32[i8 + 20 >> 2] = -1;
  19342. HEAP32[i8 >> 2] = 0;
  19343. HEAP32[i8 + 8 >> 2] = 0;
  19344. _luaK_exp2nextreg(HEAP32[i12 >> 2] | 0, i13);
  19345. i13 = i11 + 16 | 0;
  19346. if ((HEAP32[i13 >> 2] | 0) != 123) {
  19347. _error_expected(i11, 123);
  19348. }
  19349. _luaX_next(i11);
  19350. L4 : do {
  19351. if ((HEAP32[i13 >> 2] | 0) != 125) {
  19352. L5 : while (1) {
  19353. if ((HEAP32[i8 >> 2] | 0) != 0 ? (_luaK_exp2nextreg(i6, i8), HEAP32[i8 >> 2] = 0, (HEAP32[i7 >> 2] | 0) == 50) : 0) {
  19354. _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, 50);
  19355. HEAP32[i7 >> 2] = 0;
  19356. }
  19357. i14 = HEAP32[i13 >> 2] | 0;
  19358. do {
  19359. if ((i14 | 0) == 288) {
  19360. if ((_luaX_lookahead(i11) | 0) == 61) {
  19361. _recfield(i11, i8);
  19362. break;
  19363. }
  19364. _subexpr(i11, i8, 0) | 0;
  19365. i14 = HEAP32[i12 >> 2] | 0;
  19366. i15 = HEAP32[i3 >> 2] | 0;
  19367. if ((i15 | 0) > 2147483645) {
  19368. i12 = 10;
  19369. break L5;
  19370. }
  19371. HEAP32[i3 >> 2] = i15 + 1;
  19372. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
  19373. } else if ((i14 | 0) == 91) {
  19374. _recfield(i11, i8);
  19375. } else {
  19376. _subexpr(i11, i8, 0) | 0;
  19377. i14 = HEAP32[i12 >> 2] | 0;
  19378. i15 = HEAP32[i3 >> 2] | 0;
  19379. if ((i15 | 0) > 2147483645) {
  19380. i12 = 17;
  19381. break L5;
  19382. }
  19383. HEAP32[i3 >> 2] = i15 + 1;
  19384. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
  19385. }
  19386. } while (0);
  19387. i14 = HEAP32[i13 >> 2] | 0;
  19388. if ((i14 | 0) == 44) {
  19389. _luaX_next(i11);
  19390. } else if ((i14 | 0) == 59) {
  19391. _luaX_next(i11);
  19392. } else {
  19393. break L4;
  19394. }
  19395. if ((HEAP32[i13 >> 2] | 0) == 125) {
  19396. break L4;
  19397. }
  19398. }
  19399. if ((i12 | 0) == 10) {
  19400. i12 = i14 + 12 | 0;
  19401. i13 = HEAP32[(HEAP32[i12 >> 2] | 0) + 52 >> 2] | 0;
  19402. i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
  19403. if ((i14 | 0) == 0) {
  19404. i16 = 6552;
  19405. HEAP32[i10 >> 2] = 6528;
  19406. i15 = i10 + 4 | 0;
  19407. HEAP32[i15 >> 2] = 2147483645;
  19408. i15 = i10 + 8 | 0;
  19409. HEAP32[i15 >> 2] = i16;
  19410. i15 = _luaO_pushfstring(i13, 6592, i10) | 0;
  19411. i16 = HEAP32[i12 >> 2] | 0;
  19412. _luaX_syntaxerror(i16, i15);
  19413. }
  19414. HEAP32[i10 >> 2] = i14;
  19415. i15 = _luaO_pushfstring(i13, 6568, i10) | 0;
  19416. HEAP32[i10 >> 2] = 6528;
  19417. i16 = i10 + 4 | 0;
  19418. HEAP32[i16 >> 2] = 2147483645;
  19419. i16 = i10 + 8 | 0;
  19420. HEAP32[i16 >> 2] = i15;
  19421. i16 = _luaO_pushfstring(i13, 6592, i10) | 0;
  19422. i15 = HEAP32[i12 >> 2] | 0;
  19423. _luaX_syntaxerror(i15, i16);
  19424. } else if ((i12 | 0) == 17) {
  19425. i13 = i14 + 12 | 0;
  19426. i12 = HEAP32[(HEAP32[i13 >> 2] | 0) + 52 >> 2] | 0;
  19427. i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
  19428. if ((i14 | 0) == 0) {
  19429. i15 = 6552;
  19430. HEAP32[i10 >> 2] = 6528;
  19431. i16 = i10 + 4 | 0;
  19432. HEAP32[i16 >> 2] = 2147483645;
  19433. i16 = i10 + 8 | 0;
  19434. HEAP32[i16 >> 2] = i15;
  19435. i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
  19436. i15 = HEAP32[i13 >> 2] | 0;
  19437. _luaX_syntaxerror(i15, i16);
  19438. }
  19439. HEAP32[i10 >> 2] = i14;
  19440. i15 = _luaO_pushfstring(i12, 6568, i10) | 0;
  19441. HEAP32[i10 >> 2] = 6528;
  19442. i16 = i10 + 4 | 0;
  19443. HEAP32[i16 >> 2] = 2147483645;
  19444. i16 = i10 + 8 | 0;
  19445. HEAP32[i16 >> 2] = i15;
  19446. i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
  19447. i15 = HEAP32[i13 >> 2] | 0;
  19448. _luaX_syntaxerror(i15, i16);
  19449. }
  19450. }
  19451. } while (0);
  19452. _check_match(i11, 125, 123, i9);
  19453. i9 = HEAP32[i7 >> 2] | 0;
  19454. do {
  19455. if ((i9 | 0) != 0) {
  19456. i10 = HEAP32[i8 >> 2] | 0;
  19457. if ((i10 | 0) != 0) if ((i10 | 0) == 13 | (i10 | 0) == 12) {
  19458. _luaK_setreturns(i6, i8, -1);
  19459. _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, -1);
  19460. HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + -1;
  19461. break;
  19462. } else {
  19463. _luaK_exp2nextreg(i6, i8);
  19464. i9 = HEAP32[i7 >> 2] | 0;
  19465. }
  19466. _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, i9);
  19467. }
  19468. } while (0);
  19469. i16 = HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] & 8388607;
  19470. i16 = (_luaO_int2fb(HEAP32[i3 >> 2] | 0) | 0) << 23 | i16;
  19471. HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
  19472. i16 = (_luaO_int2fb(HEAP32[i4 >> 2] | 0) | 0) << 14 & 8372224 | i16 & -8372225;
  19473. HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
  19474. STACKTOP = i5;
  19475. return;
  19476. }
  19477. function _luaK_prefix(i4, i14, i7, i13) {
  19478. i4 = i4 | 0;
  19479. i14 = i14 | 0;
  19480. i7 = i7 | 0;
  19481. i13 = i13 | 0;
  19482. var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  19483. i1 = STACKTOP;
  19484. STACKTOP = STACKTOP + 32 | 0;
  19485. i12 = i1;
  19486. HEAP32[i12 + 20 >> 2] = -1;
  19487. HEAP32[i12 + 16 >> 2] = -1;
  19488. HEAP32[i12 >> 2] = 5;
  19489. HEAPF64[i12 + 8 >> 3] = 0.0;
  19490. if ((i14 | 0) == 1) {
  19491. _luaK_dischargevars(i4, i7);
  19492. switch (HEAP32[i7 >> 2] | 0) {
  19493. case 2:
  19494. case 5:
  19495. case 4:
  19496. {
  19497. HEAP32[i7 >> 2] = 3;
  19498. break;
  19499. }
  19500. case 10:
  19501. {
  19502. i13 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  19503. i12 = HEAP32[i7 + 8 >> 2] | 0;
  19504. i10 = i13 + (i12 << 2) | 0;
  19505. if (!((i12 | 0) > 0 ? (i11 = i13 + (i12 + -1 << 2) | 0, i9 = HEAP32[i11 >> 2] | 0, (HEAP8[5584 + (i9 & 63) | 0] | 0) < 0) : 0)) {
  19506. i11 = i10;
  19507. i9 = HEAP32[i10 >> 2] | 0;
  19508. }
  19509. HEAP32[i11 >> 2] = ((i9 & 16320 | 0) == 0) << 6 | i9 & -16321;
  19510. break;
  19511. }
  19512. case 6:
  19513. {
  19514. i8 = 25;
  19515. break;
  19516. }
  19517. case 3:
  19518. case 1:
  19519. {
  19520. HEAP32[i7 >> 2] = 2;
  19521. break;
  19522. }
  19523. case 11:
  19524. {
  19525. i12 = i4 + 48 | 0;
  19526. i8 = HEAP8[i12] | 0;
  19527. i11 = (i8 & 255) + 1 | 0;
  19528. i9 = (HEAP32[i4 >> 2] | 0) + 78 | 0;
  19529. do {
  19530. if (i11 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
  19531. if (i11 >>> 0 > 249) {
  19532. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10536);
  19533. } else {
  19534. HEAP8[i9] = i11;
  19535. i10 = HEAP8[i12] | 0;
  19536. break;
  19537. }
  19538. } else {
  19539. i10 = i8;
  19540. }
  19541. } while (0);
  19542. i14 = (i10 & 255) + 1 | 0;
  19543. HEAP8[i12] = i14;
  19544. _discharge2reg(i4, i7, (i14 & 255) + -1 | 0);
  19545. if ((HEAP32[i7 >> 2] | 0) == 6) {
  19546. i8 = 25;
  19547. } else {
  19548. i9 = i7 + 8 | 0;
  19549. i8 = 28;
  19550. }
  19551. break;
  19552. }
  19553. default:
  19554. {}
  19555. }
  19556. if ((i8 | 0) == 25) {
  19557. i8 = i7 + 8 | 0;
  19558. i9 = HEAP32[i8 >> 2] | 0;
  19559. if ((i9 & 256 | 0) == 0 ? (HEAPU8[i4 + 46 | 0] | 0) <= (i9 | 0) : 0) {
  19560. i9 = i4 + 48 | 0;
  19561. HEAP8[i9] = (HEAP8[i9] | 0) + -1 << 24 >> 24;
  19562. i9 = i8;
  19563. i8 = 28;
  19564. } else {
  19565. i9 = i8;
  19566. i8 = 28;
  19567. }
  19568. }
  19569. if ((i8 | 0) == 28) {
  19570. HEAP32[i9 >> 2] = _luaK_code(i4, HEAP32[i9 >> 2] << 23 | 20) | 0;
  19571. HEAP32[i7 >> 2] = 11;
  19572. }
  19573. i14 = i7 + 20 | 0;
  19574. i8 = HEAP32[i14 >> 2] | 0;
  19575. i7 = i7 + 16 | 0;
  19576. i9 = HEAP32[i7 >> 2] | 0;
  19577. HEAP32[i14 >> 2] = i9;
  19578. HEAP32[i7 >> 2] = i8;
  19579. if (!((i9 | 0) == -1)) {
  19580. i8 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  19581. do {
  19582. i12 = i8 + (i9 << 2) | 0;
  19583. if ((i9 | 0) > 0 ? (i5 = i8 + (i9 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0) {
  19584. i10 = i5;
  19585. i11 = i6;
  19586. } else {
  19587. i10 = i12;
  19588. i11 = HEAP32[i12 >> 2] | 0;
  19589. }
  19590. if ((i11 & 63 | 0) == 28) {
  19591. HEAP32[i10 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
  19592. }
  19593. i10 = ((HEAP32[i12 >> 2] | 0) >>> 14) + -131071 | 0;
  19594. if ((i10 | 0) == -1) {
  19595. break;
  19596. }
  19597. i9 = i9 + 1 + i10 | 0;
  19598. } while (!((i9 | 0) == -1));
  19599. i8 = HEAP32[i7 >> 2] | 0;
  19600. }
  19601. if ((i8 | 0) == -1) {
  19602. STACKTOP = i1;
  19603. return;
  19604. }
  19605. i4 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
  19606. while (1) {
  19607. i6 = i4 + (i8 << 2) | 0;
  19608. if ((i8 | 0) > 0 ? (i2 = i4 + (i8 + -1 << 2) | 0, i3 = HEAP32[i2 >> 2] | 0, (HEAP8[5584 + (i3 & 63) | 0] | 0) < 0) : 0) {
  19609. i7 = i2;
  19610. i5 = i3;
  19611. } else {
  19612. i7 = i6;
  19613. i5 = HEAP32[i6 >> 2] | 0;
  19614. }
  19615. if ((i5 & 63 | 0) == 28) {
  19616. HEAP32[i7 >> 2] = i5 & 8372224 | i5 >>> 23 << 6 | 27;
  19617. }
  19618. i5 = ((HEAP32[i6 >> 2] | 0) >>> 14) + -131071 | 0;
  19619. if ((i5 | 0) == -1) {
  19620. i8 = 54;
  19621. break;
  19622. }
  19623. i8 = i8 + 1 + i5 | 0;
  19624. if ((i8 | 0) == -1) {
  19625. i8 = 54;
  19626. break;
  19627. }
  19628. }
  19629. if ((i8 | 0) == 54) {
  19630. STACKTOP = i1;
  19631. return;
  19632. }
  19633. } else if ((i14 | 0) == 0) {
  19634. if (((HEAP32[i7 >> 2] | 0) == 5 ? (HEAP32[i7 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i7 + 20 >> 2] | 0) == -1 : 0) {
  19635. i14 = i7 + 8 | 0;
  19636. HEAPF64[i14 >> 3] = -+HEAPF64[i14 >> 3];
  19637. STACKTOP = i1;
  19638. return;
  19639. }
  19640. _luaK_dischargevars(i4, i7);
  19641. if ((HEAP32[i7 >> 2] | 0) == 6) {
  19642. i2 = HEAP32[i7 + 8 >> 2] | 0;
  19643. if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
  19644. if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
  19645. i8 = 10;
  19646. } else {
  19647. _exp2reg(i4, i7, i2);
  19648. }
  19649. }
  19650. } else {
  19651. i8 = 10;
  19652. }
  19653. if ((i8 | 0) == 10) {
  19654. _luaK_exp2nextreg(i4, i7);
  19655. }
  19656. _codearith(i4, 19, i7, i12, i13);
  19657. STACKTOP = i1;
  19658. return;
  19659. } else if ((i14 | 0) == 2) {
  19660. _luaK_dischargevars(i4, i7);
  19661. if ((HEAP32[i7 >> 2] | 0) == 6) {
  19662. i2 = HEAP32[i7 + 8 >> 2] | 0;
  19663. if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
  19664. if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
  19665. i8 = 52;
  19666. } else {
  19667. _exp2reg(i4, i7, i2);
  19668. }
  19669. }
  19670. } else {
  19671. i8 = 52;
  19672. }
  19673. if ((i8 | 0) == 52) {
  19674. _luaK_exp2nextreg(i4, i7);
  19675. }
  19676. _codearith(i4, 21, i7, i12, i13);
  19677. STACKTOP = i1;
  19678. return;
  19679. } else {
  19680. STACKTOP = i1;
  19681. return;
  19682. }
  19683. }
  19684. function _subexpr(i6, i3, i7) {
  19685. i6 = i6 | 0;
  19686. i3 = i3 | 0;
  19687. i7 = i7 | 0;
  19688. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  19689. i2 = STACKTOP;
  19690. STACKTOP = STACKTOP + 48 | 0;
  19691. i11 = i2 + 24 | 0;
  19692. i5 = i2;
  19693. i4 = i6 + 48 | 0;
  19694. i9 = HEAP32[i4 >> 2] | 0;
  19695. i1 = i6 + 52 | 0;
  19696. i12 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
  19697. i13 = (HEAP16[i12 >> 1] | 0) + 1 << 16 >> 16;
  19698. HEAP16[i12 >> 1] = i13;
  19699. if ((i13 & 65535) > 200) {
  19700. i10 = i9 + 12 | 0;
  19701. i12 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
  19702. i13 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
  19703. if ((i13 | 0) == 0) {
  19704. i15 = 6552;
  19705. HEAP32[i11 >> 2] = 6360;
  19706. i14 = i11 + 4 | 0;
  19707. HEAP32[i14 >> 2] = 200;
  19708. i14 = i11 + 8 | 0;
  19709. HEAP32[i14 >> 2] = i15;
  19710. i14 = _luaO_pushfstring(i12, 6592, i11) | 0;
  19711. i15 = HEAP32[i10 >> 2] | 0;
  19712. _luaX_syntaxerror(i15, i14);
  19713. }
  19714. HEAP32[i11 >> 2] = i13;
  19715. i14 = _luaO_pushfstring(i12, 6568, i11) | 0;
  19716. HEAP32[i11 >> 2] = 6360;
  19717. i15 = i11 + 4 | 0;
  19718. HEAP32[i15 >> 2] = 200;
  19719. i15 = i11 + 8 | 0;
  19720. HEAP32[i15 >> 2] = i14;
  19721. i15 = _luaO_pushfstring(i12, 6592, i11) | 0;
  19722. i14 = HEAP32[i10 >> 2] | 0;
  19723. _luaX_syntaxerror(i14, i15);
  19724. }
  19725. i10 = i6 + 16 | 0;
  19726. L8 : do {
  19727. switch (HEAP32[i10 >> 2] | 0) {
  19728. case 287:
  19729. {
  19730. HEAP32[i3 + 16 >> 2] = -1;
  19731. HEAP32[i3 + 20 >> 2] = -1;
  19732. HEAP32[i3 >> 2] = 5;
  19733. HEAP32[i3 + 8 >> 2] = 0;
  19734. HEAPF64[i3 + 8 >> 3] = +HEAPF64[i6 + 24 >> 3];
  19735. i8 = 20;
  19736. break;
  19737. }
  19738. case 271:
  19739. {
  19740. i9 = 1;
  19741. i8 = 8;
  19742. break;
  19743. }
  19744. case 289:
  19745. {
  19746. i8 = _luaK_stringK(i9, HEAP32[i6 + 24 >> 2] | 0) | 0;
  19747. HEAP32[i3 + 16 >> 2] = -1;
  19748. HEAP32[i3 + 20 >> 2] = -1;
  19749. HEAP32[i3 >> 2] = 4;
  19750. HEAP32[i3 + 8 >> 2] = i8;
  19751. i8 = 20;
  19752. break;
  19753. }
  19754. case 265:
  19755. {
  19756. _luaX_next(i6);
  19757. _body(i6, i3, 0, HEAP32[i6 + 4 >> 2] | 0);
  19758. break;
  19759. }
  19760. case 276:
  19761. {
  19762. HEAP32[i3 + 16 >> 2] = -1;
  19763. HEAP32[i3 + 20 >> 2] = -1;
  19764. HEAP32[i3 >> 2] = 2;
  19765. HEAP32[i3 + 8 >> 2] = 0;
  19766. i8 = 20;
  19767. break;
  19768. }
  19769. case 45:
  19770. {
  19771. i9 = 0;
  19772. i8 = 8;
  19773. break;
  19774. }
  19775. case 35:
  19776. {
  19777. i9 = 2;
  19778. i8 = 8;
  19779. break;
  19780. }
  19781. case 123:
  19782. {
  19783. _constructor(i6, i3);
  19784. break;
  19785. }
  19786. case 263:
  19787. {
  19788. HEAP32[i3 + 16 >> 2] = -1;
  19789. HEAP32[i3 + 20 >> 2] = -1;
  19790. HEAP32[i3 >> 2] = 3;
  19791. HEAP32[i3 + 8 >> 2] = 0;
  19792. i8 = 20;
  19793. break;
  19794. }
  19795. case 280:
  19796. {
  19797. if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 77 | 0] | 0) == 0) {
  19798. _luaX_syntaxerror(i6, 6408);
  19799. } else {
  19800. i8 = _luaK_codeABC(i9, 38, 0, 1, 0) | 0;
  19801. HEAP32[i3 + 16 >> 2] = -1;
  19802. HEAP32[i3 + 20 >> 2] = -1;
  19803. HEAP32[i3 >> 2] = 13;
  19804. HEAP32[i3 + 8 >> 2] = i8;
  19805. i8 = 20;
  19806. break L8;
  19807. }
  19808. break;
  19809. }
  19810. case 270:
  19811. {
  19812. HEAP32[i3 + 16 >> 2] = -1;
  19813. HEAP32[i3 + 20 >> 2] = -1;
  19814. HEAP32[i3 >> 2] = 1;
  19815. HEAP32[i3 + 8 >> 2] = 0;
  19816. i8 = 20;
  19817. break;
  19818. }
  19819. default:
  19820. {
  19821. _suffixedexp(i6, i3);
  19822. }
  19823. }
  19824. } while (0);
  19825. if ((i8 | 0) == 8) {
  19826. i15 = HEAP32[i6 + 4 >> 2] | 0;
  19827. _luaX_next(i6);
  19828. _subexpr(i6, i3, 8) | 0;
  19829. _luaK_prefix(HEAP32[i4 >> 2] | 0, i9, i3, i15);
  19830. } else if ((i8 | 0) == 20) {
  19831. _luaX_next(i6);
  19832. }
  19833. switch (HEAP32[i10 >> 2] | 0) {
  19834. case 257:
  19835. {
  19836. i9 = 13;
  19837. break;
  19838. }
  19839. case 272:
  19840. {
  19841. i9 = 14;
  19842. break;
  19843. }
  19844. case 47:
  19845. {
  19846. i9 = 3;
  19847. break;
  19848. }
  19849. case 37:
  19850. {
  19851. i9 = 4;
  19852. break;
  19853. }
  19854. case 43:
  19855. {
  19856. i9 = 0;
  19857. break;
  19858. }
  19859. case 284:
  19860. {
  19861. i9 = 10;
  19862. break;
  19863. }
  19864. case 281:
  19865. {
  19866. i9 = 7;
  19867. break;
  19868. }
  19869. case 62:
  19870. {
  19871. i9 = 11;
  19872. break;
  19873. }
  19874. case 282:
  19875. {
  19876. i9 = 12;
  19877. break;
  19878. }
  19879. case 45:
  19880. {
  19881. i9 = 1;
  19882. break;
  19883. }
  19884. case 42:
  19885. {
  19886. i9 = 2;
  19887. break;
  19888. }
  19889. case 60:
  19890. {
  19891. i9 = 8;
  19892. break;
  19893. }
  19894. case 283:
  19895. {
  19896. i9 = 9;
  19897. break;
  19898. }
  19899. case 94:
  19900. {
  19901. i9 = 5;
  19902. break;
  19903. }
  19904. case 279:
  19905. {
  19906. i9 = 6;
  19907. break;
  19908. }
  19909. default:
  19910. {
  19911. i15 = 15;
  19912. i14 = HEAP32[i1 >> 2] | 0;
  19913. i14 = i14 + 38 | 0;
  19914. i13 = HEAP16[i14 >> 1] | 0;
  19915. i13 = i13 + -1 << 16 >> 16;
  19916. HEAP16[i14 >> 1] = i13;
  19917. STACKTOP = i2;
  19918. return i15 | 0;
  19919. }
  19920. }
  19921. i8 = i6 + 4 | 0;
  19922. while (1) {
  19923. if ((HEAPU8[6376 + (i9 << 1) | 0] | 0) <= (i7 | 0)) {
  19924. i8 = 39;
  19925. break;
  19926. }
  19927. i15 = HEAP32[i8 >> 2] | 0;
  19928. _luaX_next(i6);
  19929. _luaK_infix(HEAP32[i4 >> 2] | 0, i9, i3);
  19930. i10 = _subexpr(i6, i5, HEAPU8[6377 + (i9 << 1) | 0] | 0) | 0;
  19931. _luaK_posfix(HEAP32[i4 >> 2] | 0, i9, i3, i5, i15);
  19932. if ((i10 | 0) == 15) {
  19933. i9 = 15;
  19934. i8 = 39;
  19935. break;
  19936. } else {
  19937. i9 = i10;
  19938. }
  19939. }
  19940. if ((i8 | 0) == 39) {
  19941. i15 = HEAP32[i1 >> 2] | 0;
  19942. i15 = i15 + 38 | 0;
  19943. i14 = HEAP16[i15 >> 1] | 0;
  19944. i14 = i14 + -1 << 16 >> 16;
  19945. HEAP16[i15 >> 1] = i14;
  19946. STACKTOP = i2;
  19947. return i9 | 0;
  19948. }
  19949. return 0;
  19950. }
  19951. function _luaV_lessequal(i5, i3, i2) {
  19952. i5 = i5 | 0;
  19953. i3 = i3 | 0;
  19954. i2 = i2 | 0;
  19955. var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  19956. i1 = STACKTOP;
  19957. i4 = i3 + 8 | 0;
  19958. i7 = HEAP32[i4 >> 2] | 0;
  19959. if ((i7 | 0) == 3) {
  19960. if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
  19961. i9 = +HEAPF64[i3 >> 3] <= +HEAPF64[i2 >> 3] | 0;
  19962. STACKTOP = i1;
  19963. return i9 | 0;
  19964. }
  19965. } else {
  19966. if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
  19967. i3 = HEAP32[i3 >> 2] | 0;
  19968. i6 = HEAP32[i2 >> 2] | 0;
  19969. i4 = i3 + 16 | 0;
  19970. i5 = i6 + 16 | 0;
  19971. i7 = _strcmp(i4, i5) | 0;
  19972. L8 : do {
  19973. if ((i7 | 0) == 0) {
  19974. i2 = HEAP32[i3 + 12 >> 2] | 0;
  19975. i3 = HEAP32[i6 + 12 >> 2] | 0;
  19976. i6 = i5;
  19977. while (1) {
  19978. i5 = _strlen(i4 | 0) | 0;
  19979. i7 = (i5 | 0) == (i2 | 0);
  19980. if ((i5 | 0) == (i3 | 0)) {
  19981. break;
  19982. }
  19983. if (i7) {
  19984. i7 = -1;
  19985. break L8;
  19986. }
  19987. i5 = i5 + 1 | 0;
  19988. i4 = i4 + i5 | 0;
  19989. i6 = i6 + i5 | 0;
  19990. i7 = _strcmp(i4, i6) | 0;
  19991. if ((i7 | 0) == 0) {
  19992. i2 = i2 - i5 | 0;
  19993. i3 = i3 - i5 | 0;
  19994. } else {
  19995. break L8;
  19996. }
  19997. }
  19998. i7 = i7 & 1 ^ 1;
  19999. }
  20000. } while (0);
  20001. i9 = (i7 | 0) < 1 | 0;
  20002. STACKTOP = i1;
  20003. return i9 | 0;
  20004. }
  20005. }
  20006. i7 = i5 + 8 | 0;
  20007. i8 = HEAP32[i7 >> 2] | 0;
  20008. i9 = _luaT_gettmbyobj(i5, i3, 14) | 0;
  20009. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  20010. i9 = _luaT_gettmbyobj(i5, i2, 14) | 0;
  20011. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  20012. i8 = HEAP32[i7 >> 2] | 0;
  20013. i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
  20014. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  20015. i9 = _luaT_gettmbyobj(i5, i3, 13) | 0;
  20016. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  20017. _luaG_ordererror(i5, i3, i2);
  20018. } else {
  20019. i6 = i9;
  20020. }
  20021. } else {
  20022. i6 = i9;
  20023. }
  20024. i10 = i5 + 28 | 0;
  20025. i9 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
  20026. i8 = HEAP32[i7 >> 2] | 0;
  20027. HEAP32[i7 >> 2] = i8 + 16;
  20028. i13 = i6;
  20029. i11 = HEAP32[i13 + 4 >> 2] | 0;
  20030. i12 = i8;
  20031. HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
  20032. HEAP32[i12 + 4 >> 2] = i11;
  20033. HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
  20034. i8 = HEAP32[i7 >> 2] | 0;
  20035. HEAP32[i7 >> 2] = i8 + 16;
  20036. i12 = i2;
  20037. i11 = HEAP32[i12 + 4 >> 2] | 0;
  20038. i6 = i8;
  20039. HEAP32[i6 >> 2] = HEAP32[i12 >> 2];
  20040. HEAP32[i6 + 4 >> 2] = i11;
  20041. HEAP32[i8 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
  20042. i2 = HEAP32[i7 >> 2] | 0;
  20043. HEAP32[i7 >> 2] = i2 + 16;
  20044. i8 = i3;
  20045. i6 = HEAP32[i8 + 4 >> 2] | 0;
  20046. i3 = i2;
  20047. HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
  20048. HEAP32[i3 + 4 >> 2] = i6;
  20049. HEAP32[i2 + 8 >> 2] = HEAP32[i4 >> 2];
  20050. _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
  20051. i3 = HEAP32[i10 >> 2] | 0;
  20052. i2 = HEAP32[i7 >> 2] | 0;
  20053. i5 = i2 + -16 | 0;
  20054. HEAP32[i7 >> 2] = i5;
  20055. i6 = HEAP32[i5 + 4 >> 2] | 0;
  20056. i8 = i3 + i9 | 0;
  20057. HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
  20058. HEAP32[i8 + 4 >> 2] = i6;
  20059. HEAP32[i3 + (i9 + 8) >> 2] = HEAP32[i2 + -8 >> 2];
  20060. i3 = HEAP32[i7 >> 2] | 0;
  20061. i2 = HEAP32[i3 + 8 >> 2] | 0;
  20062. if ((i2 | 0) != 0) {
  20063. if ((i2 | 0) == 1) {
  20064. i2 = (HEAP32[i3 >> 2] | 0) != 0;
  20065. } else {
  20066. i2 = 1;
  20067. }
  20068. } else {
  20069. i2 = 0;
  20070. }
  20071. i13 = i2 & 1 ^ 1;
  20072. STACKTOP = i1;
  20073. return i13 | 0;
  20074. }
  20075. }
  20076. i10 = i5 + 28 | 0;
  20077. i13 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
  20078. i11 = HEAP32[i7 >> 2] | 0;
  20079. HEAP32[i7 >> 2] = i11 + 16;
  20080. i6 = i9;
  20081. i8 = HEAP32[i6 + 4 >> 2] | 0;
  20082. i12 = i11;
  20083. HEAP32[i12 >> 2] = HEAP32[i6 >> 2];
  20084. HEAP32[i12 + 4 >> 2] = i8;
  20085. HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
  20086. i9 = HEAP32[i7 >> 2] | 0;
  20087. HEAP32[i7 >> 2] = i9 + 16;
  20088. i11 = i3;
  20089. i12 = HEAP32[i11 + 4 >> 2] | 0;
  20090. i3 = i9;
  20091. HEAP32[i3 >> 2] = HEAP32[i11 >> 2];
  20092. HEAP32[i3 + 4 >> 2] = i12;
  20093. HEAP32[i9 + 8 >> 2] = HEAP32[i4 >> 2];
  20094. i3 = HEAP32[i7 >> 2] | 0;
  20095. HEAP32[i7 >> 2] = i3 + 16;
  20096. i9 = i2;
  20097. i12 = HEAP32[i9 + 4 >> 2] | 0;
  20098. i11 = i3;
  20099. HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
  20100. HEAP32[i11 + 4 >> 2] = i12;
  20101. HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
  20102. _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
  20103. i2 = HEAP32[i10 >> 2] | 0;
  20104. i3 = HEAP32[i7 >> 2] | 0;
  20105. i10 = i3 + -16 | 0;
  20106. HEAP32[i7 >> 2] = i10;
  20107. i11 = HEAP32[i10 + 4 >> 2] | 0;
  20108. i12 = i2 + i13 | 0;
  20109. HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
  20110. HEAP32[i12 + 4 >> 2] = i11;
  20111. HEAP32[i2 + (i13 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
  20112. i2 = HEAP32[i7 >> 2] | 0;
  20113. i3 = HEAP32[i2 + 8 >> 2] | 0;
  20114. if ((i3 | 0) != 0) {
  20115. if ((i3 | 0) == 1) {
  20116. i2 = (HEAP32[i2 >> 2] | 0) != 0;
  20117. } else {
  20118. i2 = 1;
  20119. }
  20120. } else {
  20121. i2 = 0;
  20122. }
  20123. i13 = i2 & 1;
  20124. STACKTOP = i1;
  20125. return i13 | 0;
  20126. }
  20127. function ___udivmoddi4(i6, i8, i2, i4, i1) {
  20128. i6 = i6 | 0;
  20129. i8 = i8 | 0;
  20130. i2 = i2 | 0;
  20131. i4 = i4 | 0;
  20132. i1 = i1 | 0;
  20133. var i3 = 0, i5 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  20134. i5 = i6;
  20135. i9 = i8;
  20136. i7 = i9;
  20137. i10 = i2;
  20138. i3 = i4;
  20139. i11 = i3;
  20140. if ((i7 | 0) == 0) {
  20141. i2 = (i1 | 0) != 0;
  20142. if ((i11 | 0) == 0) {
  20143. if (i2) {
  20144. HEAP32[i1 >> 2] = (i5 >>> 0) % (i10 >>> 0);
  20145. HEAP32[i1 + 4 >> 2] = 0;
  20146. }
  20147. i11 = 0;
  20148. i12 = (i5 >>> 0) / (i10 >>> 0) >>> 0;
  20149. return (tempRet0 = i11, i12) | 0;
  20150. } else {
  20151. if (!i2) {
  20152. i11 = 0;
  20153. i12 = 0;
  20154. return (tempRet0 = i11, i12) | 0;
  20155. }
  20156. HEAP32[i1 >> 2] = i6 | 0;
  20157. HEAP32[i1 + 4 >> 2] = i8 & 0;
  20158. i11 = 0;
  20159. i12 = 0;
  20160. return (tempRet0 = i11, i12) | 0;
  20161. }
  20162. }
  20163. i12 = (i11 | 0) == 0;
  20164. do {
  20165. if ((i10 | 0) != 0) {
  20166. if (!i12) {
  20167. i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
  20168. if (i10 >>> 0 <= 31) {
  20169. i11 = i10 + 1 | 0;
  20170. i12 = 31 - i10 | 0;
  20171. i8 = i10 - 31 >> 31;
  20172. i9 = i11;
  20173. i6 = i5 >>> (i11 >>> 0) & i8 | i7 << i12;
  20174. i8 = i7 >>> (i11 >>> 0) & i8;
  20175. i11 = 0;
  20176. i7 = i5 << i12;
  20177. break;
  20178. }
  20179. if ((i1 | 0) == 0) {
  20180. i11 = 0;
  20181. i12 = 0;
  20182. return (tempRet0 = i11, i12) | 0;
  20183. }
  20184. HEAP32[i1 >> 2] = i6 | 0;
  20185. HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
  20186. i11 = 0;
  20187. i12 = 0;
  20188. return (tempRet0 = i11, i12) | 0;
  20189. }
  20190. i11 = i10 - 1 | 0;
  20191. if ((i11 & i10 | 0) != 0) {
  20192. i12 = (_llvm_ctlz_i32(i10 | 0) | 0) + 33 - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
  20193. i15 = 64 - i12 | 0;
  20194. i10 = 32 - i12 | 0;
  20195. i13 = i10 >> 31;
  20196. i14 = i12 - 32 | 0;
  20197. i8 = i14 >> 31;
  20198. i9 = i12;
  20199. i6 = i10 - 1 >> 31 & i7 >>> (i14 >>> 0) | (i7 << i10 | i5 >>> (i12 >>> 0)) & i8;
  20200. i8 = i8 & i7 >>> (i12 >>> 0);
  20201. i11 = i5 << i15 & i13;
  20202. i7 = (i7 << i15 | i5 >>> (i14 >>> 0)) & i13 | i5 << i10 & i12 - 33 >> 31;
  20203. break;
  20204. }
  20205. if ((i1 | 0) != 0) {
  20206. HEAP32[i1 >> 2] = i11 & i5;
  20207. HEAP32[i1 + 4 >> 2] = 0;
  20208. }
  20209. if ((i10 | 0) == 1) {
  20210. i14 = i9 | i8 & 0;
  20211. i15 = i6 | 0 | 0;
  20212. return (tempRet0 = i14, i15) | 0;
  20213. } else {
  20214. i15 = _llvm_cttz_i32(i10 | 0) | 0;
  20215. i14 = i7 >>> (i15 >>> 0) | 0;
  20216. i15 = i7 << 32 - i15 | i5 >>> (i15 >>> 0) | 0;
  20217. return (tempRet0 = i14, i15) | 0;
  20218. }
  20219. } else {
  20220. if (i12) {
  20221. if ((i1 | 0) != 0) {
  20222. HEAP32[i1 >> 2] = (i7 >>> 0) % (i10 >>> 0);
  20223. HEAP32[i1 + 4 >> 2] = 0;
  20224. }
  20225. i14 = 0;
  20226. i15 = (i7 >>> 0) / (i10 >>> 0) >>> 0;
  20227. return (tempRet0 = i14, i15) | 0;
  20228. }
  20229. if ((i5 | 0) == 0) {
  20230. if ((i1 | 0) != 0) {
  20231. HEAP32[i1 >> 2] = 0;
  20232. HEAP32[i1 + 4 >> 2] = (i7 >>> 0) % (i11 >>> 0);
  20233. }
  20234. i14 = 0;
  20235. i15 = (i7 >>> 0) / (i11 >>> 0) >>> 0;
  20236. return (tempRet0 = i14, i15) | 0;
  20237. }
  20238. i10 = i11 - 1 | 0;
  20239. if ((i10 & i11 | 0) == 0) {
  20240. if ((i1 | 0) != 0) {
  20241. HEAP32[i1 >> 2] = i6 | 0;
  20242. HEAP32[i1 + 4 >> 2] = i10 & i7 | i8 & 0;
  20243. }
  20244. i14 = 0;
  20245. i15 = i7 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0);
  20246. return (tempRet0 = i14, i15) | 0;
  20247. }
  20248. i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
  20249. if (i10 >>> 0 <= 30) {
  20250. i8 = i10 + 1 | 0;
  20251. i15 = 31 - i10 | 0;
  20252. i9 = i8;
  20253. i6 = i7 << i15 | i5 >>> (i8 >>> 0);
  20254. i8 = i7 >>> (i8 >>> 0);
  20255. i11 = 0;
  20256. i7 = i5 << i15;
  20257. break;
  20258. }
  20259. if ((i1 | 0) == 0) {
  20260. i14 = 0;
  20261. i15 = 0;
  20262. return (tempRet0 = i14, i15) | 0;
  20263. }
  20264. HEAP32[i1 >> 2] = i6 | 0;
  20265. HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
  20266. i14 = 0;
  20267. i15 = 0;
  20268. return (tempRet0 = i14, i15) | 0;
  20269. }
  20270. } while (0);
  20271. if ((i9 | 0) == 0) {
  20272. i12 = i6;
  20273. i2 = 0;
  20274. i6 = 0;
  20275. } else {
  20276. i2 = i2 | 0 | 0;
  20277. i3 = i3 | i4 & 0;
  20278. i4 = _i64Add(i2, i3, -1, -1) | 0;
  20279. i5 = tempRet0;
  20280. i10 = i8;
  20281. i12 = i6;
  20282. i6 = 0;
  20283. while (1) {
  20284. i8 = i11 >>> 31 | i7 << 1;
  20285. i11 = i6 | i11 << 1;
  20286. i7 = i12 << 1 | i7 >>> 31 | 0;
  20287. i10 = i12 >>> 31 | i10 << 1 | 0;
  20288. _i64Subtract(i4, i5, i7, i10) | 0;
  20289. i12 = tempRet0;
  20290. i15 = i12 >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1;
  20291. i6 = i15 & 1;
  20292. i12 = _i64Subtract(i7, i10, i15 & i2, (((i12 | 0) < 0 ? -1 : 0) >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1) & i3) | 0;
  20293. i10 = tempRet0;
  20294. i9 = i9 - 1 | 0;
  20295. if ((i9 | 0) == 0) {
  20296. break;
  20297. } else {
  20298. i7 = i8;
  20299. }
  20300. }
  20301. i7 = i8;
  20302. i8 = i10;
  20303. i2 = 0;
  20304. }
  20305. i3 = 0;
  20306. if ((i1 | 0) != 0) {
  20307. HEAP32[i1 >> 2] = i12;
  20308. HEAP32[i1 + 4 >> 2] = i8;
  20309. }
  20310. i14 = (i11 | 0) >>> 31 | (i7 | i3) << 1 | (i3 << 1 | i11 >>> 31) & 0 | i2;
  20311. i15 = (i11 << 1 | 0 >>> 31) & -2 | i6;
  20312. return (tempRet0 = i14, i15) | 0;
  20313. }
  20314. function _leaveblock(i1) {
  20315. i1 = i1 | 0;
  20316. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
  20317. i3 = STACKTOP;
  20318. STACKTOP = STACKTOP + 16 | 0;
  20319. i5 = i3;
  20320. i7 = i1 + 16 | 0;
  20321. i4 = HEAP32[i7 >> 2] | 0;
  20322. i2 = i1 + 12 | 0;
  20323. i6 = HEAP32[i2 >> 2] | 0;
  20324. if ((HEAP32[i4 >> 2] | 0) != 0 ? (HEAP8[i4 + 9 | 0] | 0) != 0 : 0) {
  20325. i16 = _luaK_jump(i1) | 0;
  20326. _luaK_patchclose(i1, i16, HEAPU8[i4 + 8 | 0] | 0);
  20327. _luaK_patchtohere(i1, i16);
  20328. }
  20329. L5 : do {
  20330. if ((HEAP8[i4 + 10 | 0] | 0) != 0) {
  20331. i15 = i6 + 52 | 0;
  20332. i14 = _luaS_new(HEAP32[i15 >> 2] | 0, 6304) | 0;
  20333. i13 = i6 + 64 | 0;
  20334. i16 = HEAP32[i13 >> 2] | 0;
  20335. i10 = i16 + 24 | 0;
  20336. i8 = i6 + 48 | 0;
  20337. i11 = HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] | 0;
  20338. i12 = i16 + 28 | 0;
  20339. i9 = HEAP32[i12 >> 2] | 0;
  20340. i16 = i16 + 32 | 0;
  20341. if ((i9 | 0) < (HEAP32[i16 >> 2] | 0)) {
  20342. i15 = HEAP32[i10 >> 2] | 0;
  20343. } else {
  20344. i15 = _luaM_growaux_(HEAP32[i15 >> 2] | 0, HEAP32[i10 >> 2] | 0, i16, 16, 32767, 6312) | 0;
  20345. HEAP32[i10 >> 2] = i15;
  20346. }
  20347. HEAP32[i15 + (i9 << 4) >> 2] = i14;
  20348. i16 = HEAP32[i10 >> 2] | 0;
  20349. HEAP32[i16 + (i9 << 4) + 8 >> 2] = 0;
  20350. HEAP8[i16 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
  20351. HEAP32[(HEAP32[i10 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
  20352. HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + 1;
  20353. i10 = HEAP32[i13 >> 2] | 0;
  20354. i9 = (HEAP32[i10 + 24 >> 2] | 0) + (i9 << 4) | 0;
  20355. i11 = HEAP16[(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
  20356. i8 = i10 + 16 | 0;
  20357. if ((i11 | 0) < (HEAP32[i8 >> 2] | 0)) {
  20358. i10 = i10 + 12 | 0;
  20359. do {
  20360. while (1) {
  20361. if ((_luaS_eqstr(HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 4) >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0) == 0) {
  20362. break;
  20363. }
  20364. _closegoto(i6, i11, i9);
  20365. if ((i11 | 0) >= (HEAP32[i8 >> 2] | 0)) {
  20366. break L5;
  20367. }
  20368. }
  20369. i11 = i11 + 1 | 0;
  20370. } while ((i11 | 0) < (HEAP32[i8 >> 2] | 0));
  20371. }
  20372. }
  20373. } while (0);
  20374. HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
  20375. i7 = i4 + 8 | 0;
  20376. i9 = HEAP8[i7] | 0;
  20377. i10 = i1 + 46 | 0;
  20378. i8 = (HEAP32[i2 >> 2] | 0) + 64 | 0;
  20379. i14 = (HEAP32[i8 >> 2] | 0) + 4 | 0;
  20380. HEAP32[i14 >> 2] = (i9 & 255) - (HEAPU8[i10] | 0) + (HEAP32[i14 >> 2] | 0);
  20381. i14 = HEAP8[i10] | 0;
  20382. if ((i14 & 255) > (i9 & 255)) {
  20383. i13 = i1 + 20 | 0;
  20384. i11 = i1 + 40 | 0;
  20385. i12 = (HEAP32[i1 >> 2] | 0) + 24 | 0;
  20386. do {
  20387. i16 = HEAP32[i13 >> 2] | 0;
  20388. i14 = i14 + -1 << 24 >> 24;
  20389. HEAP8[i10] = i14;
  20390. HEAP32[(HEAP32[i12 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[i8 >> 2] >> 2] | 0) + ((HEAP32[i11 >> 2] | 0) + (i14 & 255) << 1) >> 1] | 0) * 12 | 0) + 8 >> 2] = i16;
  20391. i14 = HEAP8[i10] | 0;
  20392. } while ((i14 & 255) > (i9 & 255));
  20393. }
  20394. HEAP8[i1 + 48 | 0] = i14;
  20395. i10 = HEAP32[i6 + 64 >> 2] | 0;
  20396. HEAP32[i10 + 28 >> 2] = HEAP16[i4 + 4 >> 1] | 0;
  20397. i9 = HEAP16[i4 + 6 >> 1] | 0;
  20398. if ((HEAP32[i4 >> 2] | 0) == 0) {
  20399. if ((i9 | 0) >= (HEAP32[i10 + 16 >> 2] | 0)) {
  20400. STACKTOP = i3;
  20401. return;
  20402. }
  20403. i10 = HEAP32[i10 + 12 >> 2] | 0;
  20404. i11 = HEAP32[i10 + (i9 << 4) >> 2] | 0;
  20405. if ((HEAP8[i11 + 4 | 0] | 0) != 4) {
  20406. i16 = 6200;
  20407. i15 = i6 + 52 | 0;
  20408. i15 = HEAP32[i15 >> 2] | 0;
  20409. i14 = i11 + 16 | 0;
  20410. i13 = i10 + (i9 << 4) + 8 | 0;
  20411. i13 = HEAP32[i13 >> 2] | 0;
  20412. HEAP32[i5 >> 2] = i14;
  20413. i14 = i5 + 4 | 0;
  20414. HEAP32[i14 >> 2] = i13;
  20415. i16 = _luaO_pushfstring(i15, i16, i5) | 0;
  20416. _semerror(i6, i16);
  20417. }
  20418. i16 = (HEAP8[i11 + 6 | 0] | 0) != 0 ? 6160 : 6200;
  20419. i15 = i6 + 52 | 0;
  20420. i15 = HEAP32[i15 >> 2] | 0;
  20421. i14 = i11 + 16 | 0;
  20422. i13 = i10 + (i9 << 4) + 8 | 0;
  20423. i13 = HEAP32[i13 >> 2] | 0;
  20424. HEAP32[i5 >> 2] = i14;
  20425. i14 = i5 + 4 | 0;
  20426. HEAP32[i14 >> 2] = i13;
  20427. i16 = _luaO_pushfstring(i15, i16, i5) | 0;
  20428. _semerror(i6, i16);
  20429. }
  20430. i6 = HEAP32[i8 >> 2] | 0;
  20431. i5 = i6 + 16 | 0;
  20432. if ((i9 | 0) >= (HEAP32[i5 >> 2] | 0)) {
  20433. STACKTOP = i3;
  20434. return;
  20435. }
  20436. i6 = i6 + 12 | 0;
  20437. i4 = i4 + 9 | 0;
  20438. do {
  20439. i10 = HEAP32[i6 >> 2] | 0;
  20440. i8 = i10 + (i9 << 4) + 12 | 0;
  20441. i11 = HEAP8[i7] | 0;
  20442. i12 = i11 & 255;
  20443. if ((HEAPU8[i8] | 0) > (i11 & 255)) {
  20444. if ((HEAP8[i4] | 0) != 0) {
  20445. _luaK_patchclose(i1, HEAP32[i10 + (i9 << 4) + 4 >> 2] | 0, i12);
  20446. i11 = HEAP8[i7] | 0;
  20447. }
  20448. HEAP8[i8] = i11;
  20449. }
  20450. i9 = ((_findlabel(HEAP32[i2 >> 2] | 0, i9) | 0) == 0) + i9 | 0;
  20451. } while ((i9 | 0) < (HEAP32[i5 >> 2] | 0));
  20452. STACKTOP = i3;
  20453. return;
  20454. }
  20455. function _getobjname(i3, i7, i9, i2) {
  20456. i3 = i3 | 0;
  20457. i7 = i7 | 0;
  20458. i9 = i9 | 0;
  20459. i2 = i2 | 0;
  20460. var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  20461. i1 = STACKTOP;
  20462. i4 = i3 + 12 | 0;
  20463. L1 : while (1) {
  20464. i13 = _luaF_getlocalname(i3, i9 + 1 | 0, i7) | 0;
  20465. HEAP32[i2 >> 2] = i13;
  20466. if ((i13 | 0) != 0) {
  20467. i2 = 2040;
  20468. i4 = 42;
  20469. break;
  20470. }
  20471. if ((i7 | 0) <= 0) {
  20472. i2 = 0;
  20473. i4 = 42;
  20474. break;
  20475. }
  20476. i6 = HEAP32[i4 >> 2] | 0;
  20477. i8 = 0;
  20478. i5 = -1;
  20479. do {
  20480. i12 = HEAP32[i6 + (i8 << 2) >> 2] | 0;
  20481. i13 = i12 & 63;
  20482. i11 = i12 >>> 6 & 255;
  20483. switch (i13 | 0) {
  20484. case 27:
  20485. {
  20486. i10 = i8;
  20487. i5 = (i11 | 0) == (i9 | 0) ? i8 : i5;
  20488. break;
  20489. }
  20490. case 30:
  20491. case 29:
  20492. {
  20493. i10 = i8;
  20494. i5 = (i11 | 0) > (i9 | 0) ? i5 : i8;
  20495. break;
  20496. }
  20497. case 23:
  20498. {
  20499. i10 = (i12 >>> 14) + -131071 | 0;
  20500. i13 = i8 + 1 + i10 | 0;
  20501. i10 = ((i8 | 0) >= (i13 | 0) | (i13 | 0) > (i7 | 0) ? 0 : i10) + i8 | 0;
  20502. break;
  20503. }
  20504. case 4:
  20505. {
  20506. if ((i11 | 0) > (i9 | 0)) {
  20507. i10 = i8;
  20508. } else {
  20509. i10 = i8;
  20510. i5 = (i11 + (i12 >>> 23) | 0) < (i9 | 0) ? i5 : i8;
  20511. }
  20512. break;
  20513. }
  20514. case 34:
  20515. {
  20516. i10 = i8;
  20517. i5 = (i11 + 2 | 0) > (i9 | 0) ? i5 : i8;
  20518. break;
  20519. }
  20520. default:
  20521. {
  20522. i10 = i8;
  20523. i5 = (HEAP8[5584 + i13 | 0] & 64) != 0 & (i11 | 0) == (i9 | 0) ? i8 : i5;
  20524. }
  20525. }
  20526. i8 = i10 + 1 | 0;
  20527. } while ((i8 | 0) < (i7 | 0));
  20528. if ((i5 | 0) == -1) {
  20529. i2 = 0;
  20530. i4 = 42;
  20531. break;
  20532. }
  20533. i7 = HEAP32[i6 + (i5 << 2) >> 2] | 0;
  20534. i9 = i7 & 63;
  20535. switch (i9 | 0) {
  20536. case 0:
  20537. {
  20538. break;
  20539. }
  20540. case 7:
  20541. case 6:
  20542. {
  20543. i4 = 17;
  20544. break L1;
  20545. }
  20546. case 5:
  20547. {
  20548. i4 = 29;
  20549. break L1;
  20550. }
  20551. case 1:
  20552. {
  20553. i4 = 32;
  20554. break L1;
  20555. }
  20556. case 2:
  20557. {
  20558. i4 = 33;
  20559. break L1;
  20560. }
  20561. case 12:
  20562. {
  20563. i4 = 36;
  20564. break L1;
  20565. }
  20566. default:
  20567. {
  20568. i2 = 0;
  20569. i4 = 42;
  20570. break L1;
  20571. }
  20572. }
  20573. i9 = i7 >>> 23;
  20574. if (i9 >>> 0 < (i7 >>> 6 & 255) >>> 0) {
  20575. i7 = i5;
  20576. } else {
  20577. i2 = 0;
  20578. i4 = 42;
  20579. break;
  20580. }
  20581. }
  20582. if ((i4 | 0) == 17) {
  20583. i6 = i7 >>> 14;
  20584. i8 = i6 & 511;
  20585. i7 = i7 >>> 23;
  20586. if ((i9 | 0) != 7) {
  20587. i7 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 << 3) >> 2] | 0;
  20588. if ((i7 | 0) == 0) {
  20589. i7 = 2104;
  20590. } else {
  20591. i7 = i7 + 16 | 0;
  20592. }
  20593. } else {
  20594. i7 = _luaF_getlocalname(i3, i7 + 1 | 0, i5) | 0;
  20595. }
  20596. if ((i6 & 256 | 0) == 0) {
  20597. i3 = _getobjname(i3, i5, i8, i2) | 0;
  20598. if (!((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0)) {
  20599. i4 = 26;
  20600. }
  20601. } else {
  20602. i5 = i6 & 255;
  20603. i3 = HEAP32[i3 + 8 >> 2] | 0;
  20604. if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) == 4) {
  20605. HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
  20606. } else {
  20607. i4 = 26;
  20608. }
  20609. }
  20610. if ((i4 | 0) == 26) {
  20611. HEAP32[i2 >> 2] = 2104;
  20612. }
  20613. if ((i7 | 0) == 0) {
  20614. i13 = 2064;
  20615. STACKTOP = i1;
  20616. return i13 | 0;
  20617. }
  20618. i13 = (_strcmp(i7, 2048) | 0) == 0;
  20619. i13 = i13 ? 2056 : 2064;
  20620. STACKTOP = i1;
  20621. return i13 | 0;
  20622. } else if ((i4 | 0) == 29) {
  20623. i3 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 >>> 23 << 3) >> 2] | 0;
  20624. if ((i3 | 0) == 0) {
  20625. i3 = 2104;
  20626. } else {
  20627. i3 = i3 + 16 | 0;
  20628. }
  20629. HEAP32[i2 >> 2] = i3;
  20630. i13 = 2072;
  20631. STACKTOP = i1;
  20632. return i13 | 0;
  20633. } else if ((i4 | 0) == 32) {
  20634. i5 = i7 >>> 14;
  20635. } else if ((i4 | 0) == 33) {
  20636. i5 = (HEAP32[i6 + (i5 + 1 << 2) >> 2] | 0) >>> 6;
  20637. } else if ((i4 | 0) == 36) {
  20638. i4 = i7 >>> 14;
  20639. if ((i4 & 256 | 0) == 0) {
  20640. i3 = _getobjname(i3, i5, i4 & 511, i2) | 0;
  20641. if ((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0) {
  20642. i13 = 2096;
  20643. STACKTOP = i1;
  20644. return i13 | 0;
  20645. }
  20646. } else {
  20647. i4 = i4 & 255;
  20648. i3 = HEAP32[i3 + 8 >> 2] | 0;
  20649. if ((HEAP32[i3 + (i4 << 4) + 8 >> 2] & 15 | 0) == 4) {
  20650. HEAP32[i2 >> 2] = (HEAP32[i3 + (i4 << 4) >> 2] | 0) + 16;
  20651. i13 = 2096;
  20652. STACKTOP = i1;
  20653. return i13 | 0;
  20654. }
  20655. }
  20656. HEAP32[i2 >> 2] = 2104;
  20657. i13 = 2096;
  20658. STACKTOP = i1;
  20659. return i13 | 0;
  20660. } else if ((i4 | 0) == 42) {
  20661. STACKTOP = i1;
  20662. return i2 | 0;
  20663. }
  20664. i3 = HEAP32[i3 + 8 >> 2] | 0;
  20665. if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) != 4) {
  20666. i13 = 0;
  20667. STACKTOP = i1;
  20668. return i13 | 0;
  20669. }
  20670. HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
  20671. i13 = 2080;
  20672. STACKTOP = i1;
  20673. return i13 | 0;
  20674. }
  20675. function _assignment(i2, i16, i5) {
  20676. i2 = i2 | 0;
  20677. i16 = i16 | 0;
  20678. i5 = i5 | 0;
  20679. var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
  20680. i3 = STACKTOP;
  20681. STACKTOP = STACKTOP + 80 | 0;
  20682. i6 = i3 + 56 | 0;
  20683. i1 = i3 + 32 | 0;
  20684. i8 = i3;
  20685. i4 = i16 + 8 | 0;
  20686. if (!(((HEAP32[i4 >> 2] | 0) + -7 | 0) >>> 0 < 3)) {
  20687. _luaX_syntaxerror(i2, 6344);
  20688. }
  20689. i13 = i2 + 16 | 0;
  20690. i14 = HEAP32[i13 >> 2] | 0;
  20691. do {
  20692. if ((i14 | 0) == 44) {
  20693. _luaX_next(i2);
  20694. HEAP32[i8 >> 2] = i16;
  20695. i14 = i8 + 8 | 0;
  20696. _suffixedexp(i2, i14);
  20697. i15 = i2 + 48 | 0;
  20698. if ((HEAP32[i14 >> 2] | 0) != 9 ? (i10 = HEAP32[i15 >> 2] | 0, i11 = HEAP8[i10 + 48 | 0] | 0, i9 = i11 & 255, (i16 | 0) != 0) : 0) {
  20699. i13 = i8 + 16 | 0;
  20700. i12 = i11 & 255;
  20701. i18 = 0;
  20702. do {
  20703. if ((HEAP32[i16 + 8 >> 2] | 0) == 9) {
  20704. i17 = i16 + 16 | 0;
  20705. i19 = i17 + 3 | 0;
  20706. i20 = HEAPU8[i19] | 0;
  20707. i21 = HEAP32[i14 >> 2] | 0;
  20708. if ((i20 | 0) == (i21 | 0)) {
  20709. i21 = i17 + 2 | 0;
  20710. if ((HEAPU8[i21] | 0) == (HEAP32[i13 >> 2] | 0)) {
  20711. HEAP8[i19] = 7;
  20712. HEAP8[i21] = i11;
  20713. i20 = HEAP32[i14 >> 2] | 0;
  20714. i18 = 1;
  20715. }
  20716. } else {
  20717. i20 = i21;
  20718. }
  20719. if ((i20 | 0) == 7 ? (HEAP16[i17 >> 1] | 0) == (HEAP32[i13 >> 2] | 0) : 0) {
  20720. HEAP16[i17 >> 1] = i12;
  20721. i18 = 1;
  20722. }
  20723. }
  20724. i16 = HEAP32[i16 >> 2] | 0;
  20725. } while ((i16 | 0) != 0);
  20726. if ((i18 | 0) != 0) {
  20727. _luaK_codeABC(i10, (HEAP32[i14 >> 2] | 0) == 7 ? 0 : 5, i9, HEAP32[i13 >> 2] | 0, 0) | 0;
  20728. _luaK_reserveregs(i10, 1);
  20729. }
  20730. }
  20731. i9 = HEAP32[i15 >> 2] | 0;
  20732. if (((HEAPU16[(HEAP32[i2 + 52 >> 2] | 0) + 38 >> 1] | 0) + i5 | 0) <= 200) {
  20733. _assignment(i2, i8, i5 + 1 | 0);
  20734. i7 = i1;
  20735. break;
  20736. }
  20737. i8 = i9 + 12 | 0;
  20738. i5 = HEAP32[(HEAP32[i8 >> 2] | 0) + 52 >> 2] | 0;
  20739. i9 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
  20740. if ((i9 | 0) == 0) {
  20741. i20 = 6552;
  20742. HEAP32[i6 >> 2] = 6360;
  20743. i21 = i6 + 4 | 0;
  20744. HEAP32[i21 >> 2] = 200;
  20745. i21 = i6 + 8 | 0;
  20746. HEAP32[i21 >> 2] = i20;
  20747. i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
  20748. i20 = HEAP32[i8 >> 2] | 0;
  20749. _luaX_syntaxerror(i20, i21);
  20750. }
  20751. HEAP32[i6 >> 2] = i9;
  20752. i20 = _luaO_pushfstring(i5, 6568, i6) | 0;
  20753. HEAP32[i6 >> 2] = 6360;
  20754. i21 = i6 + 4 | 0;
  20755. HEAP32[i21 >> 2] = 200;
  20756. i21 = i6 + 8 | 0;
  20757. HEAP32[i21 >> 2] = i20;
  20758. i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
  20759. i20 = HEAP32[i8 >> 2] | 0;
  20760. _luaX_syntaxerror(i20, i21);
  20761. } else if ((i14 | 0) == 61) {
  20762. _luaX_next(i2);
  20763. _subexpr(i2, i1, 0) | 0;
  20764. i6 = i2 + 48 | 0;
  20765. if ((HEAP32[i13 >> 2] | 0) == 44) {
  20766. i9 = 1;
  20767. do {
  20768. _luaX_next(i2);
  20769. _luaK_exp2nextreg(HEAP32[i6 >> 2] | 0, i1);
  20770. _subexpr(i2, i1, 0) | 0;
  20771. i9 = i9 + 1 | 0;
  20772. } while ((HEAP32[i13 >> 2] | 0) == 44);
  20773. } else {
  20774. i9 = 1;
  20775. }
  20776. i8 = HEAP32[i6 >> 2] | 0;
  20777. if ((i9 | 0) == (i5 | 0)) {
  20778. _luaK_setoneret(i8, i1);
  20779. _luaK_storevar(HEAP32[i6 >> 2] | 0, i4, i1);
  20780. STACKTOP = i3;
  20781. return;
  20782. }
  20783. i7 = i5 - i9 | 0;
  20784. i10 = HEAP32[i1 >> 2] | 0;
  20785. if ((i10 | 0) == 13 | (i10 | 0) == 12) {
  20786. i10 = i7 + 1 | 0;
  20787. i10 = (i10 | 0) < 0 ? 0 : i10;
  20788. _luaK_setreturns(i8, i1, i10);
  20789. if ((i10 | 0) > 1) {
  20790. _luaK_reserveregs(i8, i10 + -1 | 0);
  20791. }
  20792. } else if ((i10 | 0) == 0) {
  20793. i12 = 30;
  20794. } else {
  20795. _luaK_exp2nextreg(i8, i1);
  20796. i12 = 30;
  20797. }
  20798. if ((i12 | 0) == 30 ? (i7 | 0) > 0 : 0) {
  20799. i21 = HEAPU8[i8 + 48 | 0] | 0;
  20800. _luaK_reserveregs(i8, i7);
  20801. _luaK_nil(i8, i21, i7);
  20802. }
  20803. if ((i9 | 0) > (i5 | 0)) {
  20804. i21 = (HEAP32[i6 >> 2] | 0) + 48 | 0;
  20805. HEAP8[i21] = i7 + (HEAPU8[i21] | 0);
  20806. i7 = i1;
  20807. } else {
  20808. i7 = i1;
  20809. }
  20810. } else {
  20811. _error_expected(i2, 61);
  20812. }
  20813. } while (0);
  20814. i21 = HEAP32[i2 + 48 >> 2] | 0;
  20815. i20 = (HEAPU8[i21 + 48 | 0] | 0) + -1 | 0;
  20816. HEAP32[i1 + 16 >> 2] = -1;
  20817. HEAP32[i1 + 20 >> 2] = -1;
  20818. HEAP32[i7 >> 2] = 6;
  20819. HEAP32[i1 + 8 >> 2] = i20;
  20820. _luaK_storevar(i21, i4, i1);
  20821. STACKTOP = i3;
  20822. return;
  20823. }
  20824. function _str_find_aux(i3, i7) {
  20825. i3 = i3 | 0;
  20826. i7 = i7 | 0;
  20827. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  20828. i1 = STACKTOP;
  20829. STACKTOP = STACKTOP + 288 | 0;
  20830. i9 = i1 + 284 | 0;
  20831. i5 = i1 + 280 | 0;
  20832. i4 = i1;
  20833. i2 = _luaL_checklstring(i3, 1, i9) | 0;
  20834. i8 = _luaL_checklstring(i3, 2, i5) | 0;
  20835. i12 = _luaL_optinteger(i3, 3, 1) | 0;
  20836. i10 = HEAP32[i9 >> 2] | 0;
  20837. if (!((i12 | 0) > -1)) {
  20838. if (i10 >>> 0 < (0 - i12 | 0) >>> 0) {
  20839. i12 = 1;
  20840. } else {
  20841. i12 = i12 + 1 + i10 | 0;
  20842. i6 = 4;
  20843. }
  20844. } else {
  20845. i6 = 4;
  20846. }
  20847. if ((i6 | 0) == 4) {
  20848. if ((i12 | 0) != 0) {
  20849. if (i12 >>> 0 > (i10 + 1 | 0) >>> 0) {
  20850. _lua_pushnil(i3);
  20851. i13 = 1;
  20852. STACKTOP = i1;
  20853. return i13 | 0;
  20854. }
  20855. } else {
  20856. i12 = 1;
  20857. }
  20858. }
  20859. i7 = (i7 | 0) != 0;
  20860. L10 : do {
  20861. if (i7) {
  20862. i13 = (_lua_toboolean(i3, 4) | 0) == 0;
  20863. i10 = HEAP32[i5 >> 2] | 0;
  20864. if (i13) {
  20865. i11 = 0;
  20866. do {
  20867. i13 = i8 + i11 | 0;
  20868. if ((_strpbrk(i13, 7512) | 0) != 0) {
  20869. i6 = 20;
  20870. break L10;
  20871. }
  20872. i11 = i11 + 1 + (_strlen(i13 | 0) | 0) | 0;
  20873. } while (!(i11 >>> 0 > i10 >>> 0));
  20874. }
  20875. i11 = i2 + (i12 + -1) | 0;
  20876. i9 = (HEAP32[i9 >> 2] | 0) - i12 + 1 | 0;
  20877. L17 : do {
  20878. if ((i10 | 0) == 0) {
  20879. if ((i11 | 0) == 0) {
  20880. break L10;
  20881. }
  20882. } else {
  20883. if (i10 >>> 0 > i9 >>> 0) {
  20884. break L10;
  20885. }
  20886. i4 = i10 + -1 | 0;
  20887. if ((i4 | 0) == (i9 | 0)) {
  20888. break L10;
  20889. }
  20890. i7 = HEAP8[i8] | 0;
  20891. i8 = i8 + 1 | 0;
  20892. i9 = i9 - i4 | 0;
  20893. i12 = i11;
  20894. while (1) {
  20895. i11 = _memchr(i12, i7, i9) | 0;
  20896. if ((i11 | 0) == 0) {
  20897. break L10;
  20898. }
  20899. i10 = i11 + 1 | 0;
  20900. if ((_memcmp(i10, i8, i4) | 0) == 0) {
  20901. break L17;
  20902. }
  20903. i11 = i10;
  20904. i9 = i12 + i9 | 0;
  20905. if ((i9 | 0) == (i11 | 0)) {
  20906. break L10;
  20907. } else {
  20908. i9 = i9 - i11 | 0;
  20909. i12 = i10;
  20910. }
  20911. }
  20912. }
  20913. } while (0);
  20914. i13 = i11 - i2 | 0;
  20915. _lua_pushinteger(i3, i13 + 1 | 0);
  20916. _lua_pushinteger(i3, i13 + (HEAP32[i5 >> 2] | 0) | 0);
  20917. i13 = 2;
  20918. STACKTOP = i1;
  20919. return i13 | 0;
  20920. } else {
  20921. i6 = 20;
  20922. }
  20923. } while (0);
  20924. L28 : do {
  20925. if ((i6 | 0) == 20) {
  20926. i6 = i2 + (i12 + -1) | 0;
  20927. i10 = (HEAP8[i8] | 0) == 94;
  20928. if (i10) {
  20929. i12 = (HEAP32[i5 >> 2] | 0) + -1 | 0;
  20930. HEAP32[i5 >> 2] = i12;
  20931. i8 = i8 + 1 | 0;
  20932. } else {
  20933. i12 = HEAP32[i5 >> 2] | 0;
  20934. }
  20935. i5 = i4 + 16 | 0;
  20936. HEAP32[i5 >> 2] = i3;
  20937. HEAP32[i4 >> 2] = 200;
  20938. HEAP32[i4 + 4 >> 2] = i2;
  20939. i11 = i4 + 8 | 0;
  20940. HEAP32[i11 >> 2] = i2 + (HEAP32[i9 >> 2] | 0);
  20941. HEAP32[i4 + 12 >> 2] = i8 + i12;
  20942. i9 = i4 + 20 | 0;
  20943. L34 : do {
  20944. if (i10) {
  20945. HEAP32[i9 >> 2] = 0;
  20946. i8 = _match(i4, i6, i8) | 0;
  20947. if ((i8 | 0) == 0) {
  20948. break L28;
  20949. }
  20950. } else {
  20951. while (1) {
  20952. HEAP32[i9 >> 2] = 0;
  20953. i10 = _match(i4, i6, i8) | 0;
  20954. if ((i10 | 0) != 0) {
  20955. i8 = i10;
  20956. break L34;
  20957. }
  20958. if (!(i6 >>> 0 < (HEAP32[i11 >> 2] | 0) >>> 0)) {
  20959. break L28;
  20960. }
  20961. i6 = i6 + 1 | 0;
  20962. }
  20963. }
  20964. } while (0);
  20965. if (i7) {
  20966. _lua_pushinteger(i3, 1 - i2 + i6 | 0);
  20967. _lua_pushinteger(i3, i8 - i2 | 0);
  20968. i2 = HEAP32[i9 >> 2] | 0;
  20969. _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
  20970. if ((i2 | 0) > 0) {
  20971. i3 = 0;
  20972. do {
  20973. _push_onecapture(i4, i3, 0, 0);
  20974. i3 = i3 + 1 | 0;
  20975. } while ((i3 | 0) != (i2 | 0));
  20976. }
  20977. i13 = i2 + 2 | 0;
  20978. STACKTOP = i1;
  20979. return i13 | 0;
  20980. } else {
  20981. i3 = HEAP32[i9 >> 2] | 0;
  20982. i2 = (i3 | 0) != 0 | (i6 | 0) == 0 ? i3 : 1;
  20983. _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
  20984. if ((i2 | 0) > 0) {
  20985. i3 = 0;
  20986. } else {
  20987. i13 = i3;
  20988. STACKTOP = i1;
  20989. return i13 | 0;
  20990. }
  20991. do {
  20992. _push_onecapture(i4, i3, i6, i8);
  20993. i3 = i3 + 1 | 0;
  20994. } while ((i3 | 0) != (i2 | 0));
  20995. STACKTOP = i1;
  20996. return i2 | 0;
  20997. }
  20998. }
  20999. } while (0);
  21000. _lua_pushnil(i3);
  21001. i13 = 1;
  21002. STACKTOP = i1;
  21003. return i13 | 0;
  21004. }
  21005. function _luaO_pushvfstring(i2, i13, i10) {
  21006. i2 = i2 | 0;
  21007. i13 = i13 | 0;
  21008. i10 = i10 | 0;
  21009. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0;
  21010. i3 = STACKTOP;
  21011. STACKTOP = STACKTOP + 48 | 0;
  21012. i7 = i3;
  21013. i9 = i3 + 32 | 0;
  21014. i8 = i3 + 8 | 0;
  21015. i14 = _strchr(i13, 37) | 0;
  21016. i6 = i2 + 24 | 0;
  21017. i4 = i2 + 8 | 0;
  21018. i15 = HEAP32[i4 >> 2] | 0;
  21019. i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
  21020. L1 : do {
  21021. if ((i14 | 0) == 0) {
  21022. i5 = i13;
  21023. i11 = i17;
  21024. i12 = i15;
  21025. i1 = 0;
  21026. } else {
  21027. i16 = 0;
  21028. L3 : while (1) {
  21029. if ((i17 | 0) < 48) {
  21030. _luaD_growstack(i2, 2);
  21031. i15 = HEAP32[i4 >> 2] | 0;
  21032. }
  21033. HEAP32[i4 >> 2] = i15 + 16;
  21034. i13 = _luaS_newlstr(i2, i13, i14 - i13 | 0) | 0;
  21035. HEAP32[i15 >> 2] = i13;
  21036. HEAP32[i15 + 8 >> 2] = HEAPU8[i13 + 4 | 0] | 64;
  21037. i13 = HEAP8[i14 + 1 | 0] | 0;
  21038. switch (i13 | 0) {
  21039. case 115:
  21040. {
  21041. i17 = HEAP32[i10 >> 2] | 0;
  21042. i13 = HEAP32[i17 >> 2] | 0;
  21043. HEAP32[i10 >> 2] = i17 + 4;
  21044. i13 = (i13 | 0) == 0 ? 5480 : i13;
  21045. i15 = _strlen(i13 | 0) | 0;
  21046. i17 = HEAP32[i4 >> 2] | 0;
  21047. HEAP32[i4 >> 2] = i17 + 16;
  21048. i15 = _luaS_newlstr(i2, i13, i15) | 0;
  21049. HEAP32[i17 >> 2] = i15;
  21050. HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
  21051. break;
  21052. }
  21053. case 100:
  21054. {
  21055. i17 = HEAP32[i4 >> 2] | 0;
  21056. HEAP32[i4 >> 2] = i17 + 16;
  21057. i13 = HEAP32[i10 >> 2] | 0;
  21058. i15 = HEAP32[i13 >> 2] | 0;
  21059. HEAP32[i10 >> 2] = i13 + 4;
  21060. HEAPF64[i17 >> 3] = +(i15 | 0);
  21061. HEAP32[i17 + 8 >> 2] = 3;
  21062. break;
  21063. }
  21064. case 37:
  21065. {
  21066. i17 = HEAP32[i4 >> 2] | 0;
  21067. HEAP32[i4 >> 2] = i17 + 16;
  21068. i15 = _luaS_newlstr(i2, 5496, 1) | 0;
  21069. HEAP32[i17 >> 2] = i15;
  21070. HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
  21071. break;
  21072. }
  21073. case 99:
  21074. {
  21075. i15 = HEAP32[i10 >> 2] | 0;
  21076. i17 = HEAP32[i15 >> 2] | 0;
  21077. HEAP32[i10 >> 2] = i15 + 4;
  21078. HEAP8[i9] = i17;
  21079. i17 = HEAP32[i4 >> 2] | 0;
  21080. HEAP32[i4 >> 2] = i17 + 16;
  21081. i15 = _luaS_newlstr(i2, i9, 1) | 0;
  21082. HEAP32[i17 >> 2] = i15;
  21083. HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
  21084. break;
  21085. }
  21086. case 102:
  21087. {
  21088. i17 = HEAP32[i4 >> 2] | 0;
  21089. HEAP32[i4 >> 2] = i17 + 16;
  21090. i15 = HEAP32[i10 >> 2] | 0;
  21091. d18 = +HEAPF64[i15 >> 3];
  21092. HEAP32[i10 >> 2] = i15 + 8;
  21093. HEAPF64[i17 >> 3] = d18;
  21094. HEAP32[i17 + 8 >> 2] = 3;
  21095. break;
  21096. }
  21097. case 112:
  21098. {
  21099. i17 = HEAP32[i10 >> 2] | 0;
  21100. i15 = HEAP32[i17 >> 2] | 0;
  21101. HEAP32[i10 >> 2] = i17 + 4;
  21102. HEAP32[i7 >> 2] = i15;
  21103. i15 = _sprintf(i8 | 0, 5488, i7 | 0) | 0;
  21104. i17 = HEAP32[i4 >> 2] | 0;
  21105. HEAP32[i4 >> 2] = i17 + 16;
  21106. i15 = _luaS_newlstr(i2, i8, i15) | 0;
  21107. HEAP32[i17 >> 2] = i15;
  21108. HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
  21109. break;
  21110. }
  21111. default:
  21112. {
  21113. break L3;
  21114. }
  21115. }
  21116. i16 = i16 + 2 | 0;
  21117. i13 = i14 + 2 | 0;
  21118. i14 = _strchr(i13, 37) | 0;
  21119. i15 = HEAP32[i4 >> 2] | 0;
  21120. i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
  21121. if ((i14 | 0) == 0) {
  21122. i5 = i13;
  21123. i11 = i17;
  21124. i12 = i15;
  21125. i1 = i16;
  21126. break L1;
  21127. }
  21128. }
  21129. HEAP32[i7 >> 2] = i13;
  21130. _luaG_runerror(i2, 5504, i7);
  21131. }
  21132. } while (0);
  21133. if ((i11 | 0) < 32) {
  21134. _luaD_growstack(i2, 1);
  21135. i12 = HEAP32[i4 >> 2] | 0;
  21136. }
  21137. i17 = _strlen(i5 | 0) | 0;
  21138. HEAP32[i4 >> 2] = i12 + 16;
  21139. i17 = _luaS_newlstr(i2, i5, i17) | 0;
  21140. HEAP32[i12 >> 2] = i17;
  21141. HEAP32[i12 + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 64;
  21142. if ((i1 | 0) <= 0) {
  21143. i17 = HEAP32[i4 >> 2] | 0;
  21144. i17 = i17 + -16 | 0;
  21145. i17 = HEAP32[i17 >> 2] | 0;
  21146. i17 = i17 + 16 | 0;
  21147. STACKTOP = i3;
  21148. return i17 | 0;
  21149. }
  21150. _luaV_concat(i2, i1 | 1);
  21151. i17 = HEAP32[i4 >> 2] | 0;
  21152. i17 = i17 + -16 | 0;
  21153. i17 = HEAP32[i17 >> 2] | 0;
  21154. i17 = i17 + 16 | 0;
  21155. STACKTOP = i3;
  21156. return i17 | 0;
  21157. }
  21158. function _luaH_getn(i6) {
  21159. i6 = i6 | 0;
  21160. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0;
  21161. i1 = STACKTOP;
  21162. STACKTOP = STACKTOP + 16 | 0;
  21163. i2 = i1;
  21164. i3 = i6 + 28 | 0;
  21165. i12 = HEAP32[i3 >> 2] | 0;
  21166. if ((i12 | 0) != 0 ? (i4 = HEAP32[i6 + 12 >> 2] | 0, (HEAP32[i4 + (i12 + -1 << 4) + 8 >> 2] | 0) == 0) : 0) {
  21167. if (i12 >>> 0 > 1) {
  21168. i10 = 0;
  21169. } else {
  21170. i13 = 0;
  21171. STACKTOP = i1;
  21172. return i13 | 0;
  21173. }
  21174. do {
  21175. i2 = (i10 + i12 | 0) >>> 1;
  21176. i3 = (HEAP32[i4 + (i2 + -1 << 4) + 8 >> 2] | 0) == 0;
  21177. i12 = i3 ? i2 : i12;
  21178. i10 = i3 ? i10 : i2;
  21179. } while ((i12 - i10 | 0) >>> 0 > 1);
  21180. STACKTOP = i1;
  21181. return i10 | 0;
  21182. }
  21183. i4 = i6 + 16 | 0;
  21184. if ((HEAP32[i4 >> 2] | 0) == 8016) {
  21185. i13 = i12;
  21186. STACKTOP = i1;
  21187. return i13 | 0;
  21188. }
  21189. i5 = i6 + 12 | 0;
  21190. i6 = i6 + 7 | 0;
  21191. i9 = i2 + 4 | 0;
  21192. i8 = i12 + 1 | 0;
  21193. i13 = i12;
  21194. i10 = i12;
  21195. while (1) {
  21196. i12 = i8 + -1 | 0;
  21197. L15 : do {
  21198. if (i12 >>> 0 < i13 >>> 0) {
  21199. i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
  21200. } else {
  21201. d11 = +(i8 | 0);
  21202. HEAPF64[i2 >> 3] = d11 + 1.0;
  21203. i13 = (HEAP32[i9 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
  21204. if ((i13 | 0) < 0) {
  21205. i12 = 0 - i13 | 0;
  21206. i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
  21207. }
  21208. i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  21209. while (1) {
  21210. if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
  21211. break;
  21212. }
  21213. i12 = HEAP32[i12 + 28 >> 2] | 0;
  21214. if ((i12 | 0) == 0) {
  21215. i12 = 5192;
  21216. break L15;
  21217. }
  21218. }
  21219. }
  21220. } while (0);
  21221. if ((HEAP32[i12 + 8 >> 2] | 0) == 0) {
  21222. break;
  21223. }
  21224. i10 = i8 << 1;
  21225. if (i10 >>> 0 > 2147483645) {
  21226. i7 = 21;
  21227. break;
  21228. }
  21229. i12 = i8;
  21230. i8 = i10;
  21231. i13 = HEAP32[i3 >> 2] | 0;
  21232. i10 = i12;
  21233. }
  21234. if ((i7 | 0) == 21) {
  21235. i8 = i2 + 4 | 0;
  21236. i7 = 1;
  21237. while (1) {
  21238. i10 = i7 + -1 | 0;
  21239. L34 : do {
  21240. if (i10 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
  21241. i9 = (HEAP32[i5 >> 2] | 0) + (i10 << 4) | 0;
  21242. } else {
  21243. d11 = +(i7 | 0);
  21244. HEAPF64[i2 >> 3] = d11 + 1.0;
  21245. i9 = (HEAP32[i8 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
  21246. if ((i9 | 0) < 0) {
  21247. i12 = 0 - i9 | 0;
  21248. i9 = (i9 | 0) == (i12 | 0) ? 0 : i12;
  21249. }
  21250. i9 = (HEAP32[i4 >> 2] | 0) + (((i9 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  21251. while (1) {
  21252. if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d11 : 0) {
  21253. break;
  21254. }
  21255. i9 = HEAP32[i9 + 28 >> 2] | 0;
  21256. if ((i9 | 0) == 0) {
  21257. i9 = 5192;
  21258. break L34;
  21259. }
  21260. }
  21261. }
  21262. } while (0);
  21263. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  21264. break;
  21265. }
  21266. i7 = i7 + 1 | 0;
  21267. }
  21268. STACKTOP = i1;
  21269. return i10 | 0;
  21270. }
  21271. if (!((i8 - i10 | 0) >>> 0 > 1)) {
  21272. i13 = i10;
  21273. STACKTOP = i1;
  21274. return i13 | 0;
  21275. }
  21276. i7 = i2 + 4 | 0;
  21277. do {
  21278. i9 = (i8 + i10 | 0) >>> 1;
  21279. i12 = i9 + -1 | 0;
  21280. L55 : do {
  21281. if (i12 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
  21282. i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
  21283. } else {
  21284. d11 = +(i9 | 0);
  21285. HEAPF64[i2 >> 3] = d11 + 1.0;
  21286. i13 = (HEAP32[i7 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
  21287. if ((i13 | 0) < 0) {
  21288. i12 = 0 - i13 | 0;
  21289. i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
  21290. }
  21291. i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  21292. while (1) {
  21293. if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
  21294. break;
  21295. }
  21296. i12 = HEAP32[i12 + 28 >> 2] | 0;
  21297. if ((i12 | 0) == 0) {
  21298. i12 = 5192;
  21299. break L55;
  21300. }
  21301. }
  21302. }
  21303. } while (0);
  21304. i12 = (HEAP32[i12 + 8 >> 2] | 0) == 0;
  21305. i8 = i12 ? i9 : i8;
  21306. i10 = i12 ? i10 : i9;
  21307. } while ((i8 - i10 | 0) >>> 0 > 1);
  21308. STACKTOP = i1;
  21309. return i10 | 0;
  21310. }
  21311. function _lua_resume(i4, i3, i7) {
  21312. i4 = i4 | 0;
  21313. i3 = i3 | 0;
  21314. i7 = i7 | 0;
  21315. var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
  21316. i1 = STACKTOP;
  21317. if ((i3 | 0) == 0) {
  21318. i5 = 1;
  21319. } else {
  21320. i5 = (HEAPU16[i3 + 38 >> 1] | 0) + 1 & 65535;
  21321. }
  21322. i3 = i4 + 38 | 0;
  21323. HEAP16[i3 >> 1] = i5;
  21324. i5 = i4 + 36 | 0;
  21325. HEAP16[i5 >> 1] = 0;
  21326. i6 = i4 + 8 | 0;
  21327. i13 = _luaD_rawrunprotected(i4, 4, (HEAP32[i6 >> 2] | 0) + (0 - i7 << 4) | 0) | 0;
  21328. if ((i13 | 0) == -1) {
  21329. i18 = 2;
  21330. HEAP16[i5 >> 1] = 1;
  21331. i17 = HEAP16[i3 >> 1] | 0;
  21332. i17 = i17 + -1 << 16 >> 16;
  21333. HEAP16[i3 >> 1] = i17;
  21334. STACKTOP = i1;
  21335. return i18 | 0;
  21336. }
  21337. if (!(i13 >>> 0 > 1)) {
  21338. i18 = i13;
  21339. HEAP16[i5 >> 1] = 1;
  21340. i17 = HEAP16[i3 >> 1] | 0;
  21341. i17 = i17 + -1 << 16 >> 16;
  21342. HEAP16[i3 >> 1] = i17;
  21343. STACKTOP = i1;
  21344. return i18 | 0;
  21345. }
  21346. i7 = i4 + 16 | 0;
  21347. i12 = i4 + 28 | 0;
  21348. i11 = i4 + 41 | 0;
  21349. i10 = i4 + 68 | 0;
  21350. i9 = i4 + 32 | 0;
  21351. i8 = i4 + 12 | 0;
  21352. L10 : while (1) {
  21353. i15 = HEAP32[i7 >> 2] | 0;
  21354. if ((i15 | 0) == 0) {
  21355. break;
  21356. }
  21357. while (1) {
  21358. i14 = i15 + 18 | 0;
  21359. if (!((HEAP8[i14] & 16) == 0)) {
  21360. break;
  21361. }
  21362. i15 = HEAP32[i15 + 8 >> 2] | 0;
  21363. if ((i15 | 0) == 0) {
  21364. break L10;
  21365. }
  21366. }
  21367. i16 = HEAP32[i12 >> 2] | 0;
  21368. i17 = HEAP32[i15 + 20 >> 2] | 0;
  21369. i18 = i16 + i17 | 0;
  21370. _luaF_close(i4, i18);
  21371. if ((i13 | 0) == 4) {
  21372. i19 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
  21373. HEAP32[i18 >> 2] = i19;
  21374. HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
  21375. } else if ((i13 | 0) == 6) {
  21376. i19 = _luaS_newlstr(i4, 2424, 23) | 0;
  21377. HEAP32[i18 >> 2] = i19;
  21378. HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
  21379. } else {
  21380. i19 = HEAP32[i6 >> 2] | 0;
  21381. i21 = i19 + -16 | 0;
  21382. i20 = HEAP32[i21 + 4 >> 2] | 0;
  21383. HEAP32[i18 >> 2] = HEAP32[i21 >> 2];
  21384. HEAP32[i18 + 4 >> 2] = i20;
  21385. HEAP32[i16 + (i17 + 8) >> 2] = HEAP32[i19 + -8 >> 2];
  21386. }
  21387. i17 = i16 + (i17 + 16) | 0;
  21388. HEAP32[i6 >> 2] = i17;
  21389. HEAP32[i7 >> 2] = i15;
  21390. HEAP8[i11] = HEAP8[i15 + 36 | 0] | 0;
  21391. HEAP16[i5 >> 1] = 0;
  21392. if ((i15 | 0) != 0) {
  21393. i16 = i15;
  21394. do {
  21395. i18 = HEAP32[i16 + 4 >> 2] | 0;
  21396. i17 = i17 >>> 0 < i18 >>> 0 ? i18 : i17;
  21397. i16 = HEAP32[i16 + 8 >> 2] | 0;
  21398. } while ((i16 | 0) != 0);
  21399. }
  21400. i16 = i17 - (HEAP32[i12 >> 2] | 0) | 0;
  21401. i17 = (i16 >> 4) + 1 | 0;
  21402. i17 = ((i17 | 0) / 8 | 0) + 10 + i17 | 0;
  21403. i17 = (i17 | 0) > 1e6 ? 1e6 : i17;
  21404. if ((i16 | 0) <= 15999984 ? (i17 | 0) < (HEAP32[i9 >> 2] | 0) : 0) {
  21405. _luaD_reallocstack(i4, i17);
  21406. }
  21407. HEAP32[i10 >> 2] = HEAP32[i15 + 32 >> 2];
  21408. HEAP8[i14] = HEAPU8[i14] | 0 | 32;
  21409. HEAP8[i15 + 37 | 0] = i13;
  21410. i13 = _luaD_rawrunprotected(i4, 5, 0) | 0;
  21411. if (!(i13 >>> 0 > 1)) {
  21412. i2 = 24;
  21413. break;
  21414. }
  21415. }
  21416. if ((i2 | 0) == 24) {
  21417. HEAP16[i5 >> 1] = 1;
  21418. i21 = HEAP16[i3 >> 1] | 0;
  21419. i21 = i21 + -1 << 16 >> 16;
  21420. HEAP16[i3 >> 1] = i21;
  21421. STACKTOP = i1;
  21422. return i13 | 0;
  21423. }
  21424. HEAP8[i4 + 6 | 0] = i13;
  21425. i2 = HEAP32[i6 >> 2] | 0;
  21426. if ((i13 | 0) == 4) {
  21427. i21 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
  21428. HEAP32[i2 >> 2] = i21;
  21429. HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
  21430. } else if ((i13 | 0) == 6) {
  21431. i21 = _luaS_newlstr(i4, 2424, 23) | 0;
  21432. HEAP32[i2 >> 2] = i21;
  21433. HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
  21434. } else {
  21435. i19 = i2 + -16 | 0;
  21436. i20 = HEAP32[i19 + 4 >> 2] | 0;
  21437. i21 = i2;
  21438. HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
  21439. HEAP32[i21 + 4 >> 2] = i20;
  21440. HEAP32[i2 + 8 >> 2] = HEAP32[i2 + -8 >> 2];
  21441. }
  21442. i21 = i2 + 16 | 0;
  21443. HEAP32[i6 >> 2] = i21;
  21444. HEAP32[(HEAP32[i7 >> 2] | 0) + 4 >> 2] = i21;
  21445. i21 = i13;
  21446. HEAP16[i5 >> 1] = 1;
  21447. i20 = HEAP16[i3 >> 1] | 0;
  21448. i20 = i20 + -1 << 16 >> 16;
  21449. HEAP16[i3 >> 1] = i20;
  21450. STACKTOP = i1;
  21451. return i21 | 0;
  21452. }
  21453. function _luaK_goiftrue(i1, i3) {
  21454. i1 = i1 | 0;
  21455. i3 = i3 | 0;
  21456. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  21457. i2 = STACKTOP;
  21458. _luaK_dischargevars(i1, i3);
  21459. i12 = HEAP32[i3 >> 2] | 0;
  21460. do {
  21461. if ((i12 | 0) == 10) {
  21462. i9 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  21463. i5 = i3 + 8 | 0;
  21464. i8 = HEAP32[i5 >> 2] | 0;
  21465. i7 = i9 + (i8 << 2) | 0;
  21466. if (!((i8 | 0) > 0 ? (i10 = i9 + (i8 + -1 << 2) | 0, i6 = HEAP32[i10 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0)) {
  21467. i10 = i7;
  21468. i6 = HEAP32[i7 >> 2] | 0;
  21469. }
  21470. HEAP32[i10 >> 2] = ((i6 & 16320 | 0) == 0) << 6 | i6 & -16321;
  21471. i5 = HEAP32[i5 >> 2] | 0;
  21472. i8 = 18;
  21473. } else if (!((i12 | 0) == 2 | (i12 | 0) == 5 | (i12 | 0) == 4)) {
  21474. i5 = i3 + 8 | 0;
  21475. if ((i12 | 0) == 6) {
  21476. i8 = 14;
  21477. } else if ((i12 | 0) == 11 ? (i11 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 >> 2] << 2) >> 2] | 0, (i11 & 63 | 0) == 20) : 0) {
  21478. i5 = i1 + 20 | 0;
  21479. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -1;
  21480. i5 = _condjump(i1, 27, i11 >>> 23, 0, 1) | 0;
  21481. i8 = 18;
  21482. break;
  21483. } else {
  21484. i8 = 9;
  21485. }
  21486. if ((i8 | 0) == 9) {
  21487. i12 = i1 + 48 | 0;
  21488. i10 = HEAP8[i12] | 0;
  21489. i11 = (i10 & 255) + 1 | 0;
  21490. i6 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
  21491. do {
  21492. if (i11 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
  21493. if (i11 >>> 0 > 249) {
  21494. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
  21495. } else {
  21496. HEAP8[i6] = i11;
  21497. i9 = HEAP8[i12] | 0;
  21498. break;
  21499. }
  21500. } else {
  21501. i9 = i10;
  21502. }
  21503. } while (0);
  21504. i11 = (i9 & 255) + 1 | 0;
  21505. HEAP8[i12] = i11;
  21506. _discharge2reg(i1, i3, (i11 & 255) + -1 | 0);
  21507. if ((HEAP32[i3 >> 2] | 0) == 6) {
  21508. i8 = 14;
  21509. }
  21510. }
  21511. if (((i8 | 0) == 14 ? (i7 = HEAP32[i5 >> 2] | 0, (i7 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i7 | 0) : 0) {
  21512. i12 = i1 + 48 | 0;
  21513. HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
  21514. }
  21515. i5 = _condjump(i1, 28, 255, HEAP32[i5 >> 2] | 0, 0) | 0;
  21516. i8 = 18;
  21517. }
  21518. } while (0);
  21519. do {
  21520. if ((i8 | 0) == 18 ? (i4 = i3 + 20 | 0, !((i5 | 0) == -1)) : 0) {
  21521. i8 = HEAP32[i4 >> 2] | 0;
  21522. if ((i8 | 0) == -1) {
  21523. HEAP32[i4 >> 2] = i5;
  21524. break;
  21525. }
  21526. i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  21527. while (1) {
  21528. i7 = i4 + (i8 << 2) | 0;
  21529. i6 = HEAP32[i7 >> 2] | 0;
  21530. i9 = (i6 >>> 14) + -131071 | 0;
  21531. if ((i9 | 0) == -1) {
  21532. break;
  21533. }
  21534. i9 = i8 + 1 + i9 | 0;
  21535. if ((i9 | 0) == -1) {
  21536. break;
  21537. } else {
  21538. i8 = i9;
  21539. }
  21540. }
  21541. i4 = i5 + ~i8 | 0;
  21542. if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
  21543. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  21544. } else {
  21545. HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
  21546. break;
  21547. }
  21548. }
  21549. } while (0);
  21550. i3 = i3 + 16 | 0;
  21551. i4 = HEAP32[i3 >> 2] | 0;
  21552. HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
  21553. i5 = i1 + 28 | 0;
  21554. if ((i4 | 0) == -1) {
  21555. HEAP32[i3 >> 2] = -1;
  21556. STACKTOP = i2;
  21557. return;
  21558. }
  21559. i8 = HEAP32[i5 >> 2] | 0;
  21560. if ((i8 | 0) == -1) {
  21561. HEAP32[i5 >> 2] = i4;
  21562. HEAP32[i3 >> 2] = -1;
  21563. STACKTOP = i2;
  21564. return;
  21565. }
  21566. i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  21567. while (1) {
  21568. i5 = i7 + (i8 << 2) | 0;
  21569. i6 = HEAP32[i5 >> 2] | 0;
  21570. i9 = (i6 >>> 14) + -131071 | 0;
  21571. if ((i9 | 0) == -1) {
  21572. break;
  21573. }
  21574. i9 = i8 + 1 + i9 | 0;
  21575. if ((i9 | 0) == -1) {
  21576. break;
  21577. } else {
  21578. i8 = i9;
  21579. }
  21580. }
  21581. i4 = i4 + ~i8 | 0;
  21582. if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
  21583. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  21584. }
  21585. HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
  21586. HEAP32[i3 >> 2] = -1;
  21587. STACKTOP = i2;
  21588. return;
  21589. }
  21590. function _luaO_str2d(i1, i3, i5) {
  21591. i1 = i1 | 0;
  21592. i3 = i3 | 0;
  21593. i5 = i5 | 0;
  21594. var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  21595. i2 = STACKTOP;
  21596. STACKTOP = STACKTOP + 16 | 0;
  21597. i4 = i2;
  21598. if ((_strpbrk(i1, 5464) | 0) != 0) {
  21599. i13 = 0;
  21600. STACKTOP = i2;
  21601. return i13 | 0;
  21602. }
  21603. do {
  21604. if ((_strpbrk(i1, 5472) | 0) == 0) {
  21605. d9 = +_strtod(i1, i4);
  21606. i10 = HEAP32[i4 >> 2] | 0;
  21607. } else {
  21608. HEAP32[i4 >> 2] = i1;
  21609. i8 = i1;
  21610. while (1) {
  21611. i6 = HEAP8[i8] | 0;
  21612. i10 = i8 + 1 | 0;
  21613. if ((HEAP8[(i6 & 255) + 10913 | 0] & 8) == 0) {
  21614. break;
  21615. } else {
  21616. i8 = i10;
  21617. }
  21618. }
  21619. if (i6 << 24 >> 24 == 43) {
  21620. i6 = 0;
  21621. i8 = i10;
  21622. } else if (i6 << 24 >> 24 == 45) {
  21623. i6 = 1;
  21624. i8 = i10;
  21625. } else {
  21626. i6 = 0;
  21627. }
  21628. if ((HEAP8[i8] | 0) == 48 ? (i13 = HEAP8[i8 + 1 | 0] | 0, i13 << 24 >> 24 == 88 | i13 << 24 >> 24 == 120) : 0) {
  21629. i10 = i8 + 2 | 0;
  21630. i8 = HEAP8[i10] | 0;
  21631. i12 = i8 & 255;
  21632. i11 = HEAP8[i12 + 10913 | 0] | 0;
  21633. if ((i11 & 16) == 0) {
  21634. d9 = 0.0;
  21635. i11 = i8;
  21636. i8 = 0;
  21637. } else {
  21638. d9 = 0.0;
  21639. i8 = 0;
  21640. while (1) {
  21641. if ((i11 & 2) == 0) {
  21642. i11 = (i12 | 32) + -87 | 0;
  21643. } else {
  21644. i11 = i12 + -48 | 0;
  21645. }
  21646. d9 = d9 * 16.0 + +(i11 | 0);
  21647. i8 = i8 + 1 | 0;
  21648. i10 = i10 + 1 | 0;
  21649. i13 = HEAP8[i10] | 0;
  21650. i12 = i13 & 255;
  21651. i11 = HEAP8[i12 + 10913 | 0] | 0;
  21652. if ((i11 & 16) == 0) {
  21653. i11 = i13;
  21654. break;
  21655. }
  21656. }
  21657. }
  21658. if (i11 << 24 >> 24 == 46) {
  21659. i10 = i10 + 1 | 0;
  21660. i13 = HEAPU8[i10] | 0;
  21661. i11 = HEAP8[i13 + 10913 | 0] | 0;
  21662. if ((i11 & 16) == 0) {
  21663. i12 = 0;
  21664. } else {
  21665. i12 = 0;
  21666. do {
  21667. if ((i11 & 2) == 0) {
  21668. i11 = (i13 | 32) + -87 | 0;
  21669. } else {
  21670. i11 = i13 + -48 | 0;
  21671. }
  21672. d9 = d9 * 16.0 + +(i11 | 0);
  21673. i12 = i12 + 1 | 0;
  21674. i10 = i10 + 1 | 0;
  21675. i13 = HEAPU8[i10] | 0;
  21676. i11 = HEAP8[i13 + 10913 | 0] | 0;
  21677. } while (!((i11 & 16) == 0));
  21678. }
  21679. } else {
  21680. i12 = 0;
  21681. }
  21682. if ((i12 | i8 | 0) != 0) {
  21683. i8 = Math_imul(i12, -4) | 0;
  21684. HEAP32[i4 >> 2] = i10;
  21685. i13 = HEAP8[i10] | 0;
  21686. if (i13 << 24 >> 24 == 80 | i13 << 24 >> 24 == 112) {
  21687. i13 = i10 + 1 | 0;
  21688. i11 = HEAP8[i13] | 0;
  21689. if (i11 << 24 >> 24 == 45) {
  21690. i11 = 1;
  21691. i13 = i10 + 2 | 0;
  21692. } else if (i11 << 24 >> 24 == 43) {
  21693. i11 = 0;
  21694. i13 = i10 + 2 | 0;
  21695. } else {
  21696. i11 = 0;
  21697. }
  21698. i12 = HEAP8[i13] | 0;
  21699. if (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0)) {
  21700. i10 = i13;
  21701. i7 = 0;
  21702. do {
  21703. i10 = i10 + 1 | 0;
  21704. i7 = (i12 << 24 >> 24) + -48 + (i7 * 10 | 0) | 0;
  21705. i12 = HEAP8[i10] | 0;
  21706. } while (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0));
  21707. i8 = ((i11 | 0) == 0 ? i7 : 0 - i7 | 0) + i8 | 0;
  21708. i7 = 29;
  21709. }
  21710. } else {
  21711. i7 = 29;
  21712. }
  21713. if ((i7 | 0) == 29) {
  21714. HEAP32[i4 >> 2] = i10;
  21715. }
  21716. if ((i6 | 0) != 0) {
  21717. d9 = -d9;
  21718. }
  21719. d9 = +_ldexp(d9, i8);
  21720. break;
  21721. }
  21722. }
  21723. HEAPF64[i5 >> 3] = 0.0;
  21724. i13 = 0;
  21725. STACKTOP = i2;
  21726. return i13 | 0;
  21727. }
  21728. } while (0);
  21729. HEAPF64[i5 >> 3] = d9;
  21730. if ((i10 | 0) == (i1 | 0)) {
  21731. i13 = 0;
  21732. STACKTOP = i2;
  21733. return i13 | 0;
  21734. }
  21735. if (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0)) {
  21736. do {
  21737. i10 = i10 + 1 | 0;
  21738. } while (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0));
  21739. HEAP32[i4 >> 2] = i10;
  21740. }
  21741. i13 = (i10 | 0) == (i1 + i3 | 0) | 0;
  21742. STACKTOP = i2;
  21743. return i13 | 0;
  21744. }
  21745. function _luaV_equalobj_(i2, i4, i5) {
  21746. i2 = i2 | 0;
  21747. i4 = i4 | 0;
  21748. i5 = i5 | 0;
  21749. var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  21750. i1 = STACKTOP;
  21751. i3 = i4 + 8 | 0;
  21752. L1 : do {
  21753. switch (HEAP32[i3 >> 2] & 63 | 0) {
  21754. case 7:
  21755. {
  21756. i6 = HEAP32[i4 >> 2] | 0;
  21757. i7 = HEAP32[i5 >> 2] | 0;
  21758. if ((i6 | 0) == (i7 | 0)) {
  21759. i7 = 1;
  21760. STACKTOP = i1;
  21761. return i7 | 0;
  21762. }
  21763. if ((i2 | 0) == 0) {
  21764. i7 = 0;
  21765. STACKTOP = i1;
  21766. return i7 | 0;
  21767. } else {
  21768. i6 = _get_equalTM(i2, HEAP32[i6 + 8 >> 2] | 0, HEAP32[i7 + 8 >> 2] | 0) | 0;
  21769. break L1;
  21770. }
  21771. }
  21772. case 5:
  21773. {
  21774. i7 = HEAP32[i4 >> 2] | 0;
  21775. i6 = HEAP32[i5 >> 2] | 0;
  21776. if ((i7 | 0) == (i6 | 0)) {
  21777. i7 = 1;
  21778. STACKTOP = i1;
  21779. return i7 | 0;
  21780. }
  21781. if ((i2 | 0) == 0) {
  21782. i7 = 0;
  21783. STACKTOP = i1;
  21784. return i7 | 0;
  21785. } else {
  21786. i6 = _get_equalTM(i2, HEAP32[i7 + 8 >> 2] | 0, HEAP32[i6 + 8 >> 2] | 0) | 0;
  21787. break L1;
  21788. }
  21789. }
  21790. case 4:
  21791. {
  21792. i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
  21793. STACKTOP = i1;
  21794. return i7 | 0;
  21795. }
  21796. case 20:
  21797. {
  21798. i7 = _luaS_eqlngstr(HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  21799. STACKTOP = i1;
  21800. return i7 | 0;
  21801. }
  21802. case 3:
  21803. {
  21804. i7 = +HEAPF64[i4 >> 3] == +HEAPF64[i5 >> 3] | 0;
  21805. STACKTOP = i1;
  21806. return i7 | 0;
  21807. }
  21808. case 1:
  21809. {
  21810. i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
  21811. STACKTOP = i1;
  21812. return i7 | 0;
  21813. }
  21814. case 22:
  21815. {
  21816. i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
  21817. STACKTOP = i1;
  21818. return i7 | 0;
  21819. }
  21820. case 2:
  21821. {
  21822. i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
  21823. STACKTOP = i1;
  21824. return i7 | 0;
  21825. }
  21826. case 0:
  21827. {
  21828. i7 = 1;
  21829. STACKTOP = i1;
  21830. return i7 | 0;
  21831. }
  21832. default:
  21833. {
  21834. i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
  21835. STACKTOP = i1;
  21836. return i7 | 0;
  21837. }
  21838. }
  21839. } while (0);
  21840. if ((i6 | 0) == 0) {
  21841. i7 = 0;
  21842. STACKTOP = i1;
  21843. return i7 | 0;
  21844. }
  21845. i7 = i2 + 8 | 0;
  21846. i10 = HEAP32[i7 >> 2] | 0;
  21847. i9 = i2 + 28 | 0;
  21848. i8 = i10 - (HEAP32[i9 >> 2] | 0) | 0;
  21849. HEAP32[i7 >> 2] = i10 + 16;
  21850. i13 = i6;
  21851. i12 = HEAP32[i13 + 4 >> 2] | 0;
  21852. i11 = i10;
  21853. HEAP32[i11 >> 2] = HEAP32[i13 >> 2];
  21854. HEAP32[i11 + 4 >> 2] = i12;
  21855. HEAP32[i10 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
  21856. i10 = HEAP32[i7 >> 2] | 0;
  21857. HEAP32[i7 >> 2] = i10 + 16;
  21858. i11 = i4;
  21859. i4 = HEAP32[i11 + 4 >> 2] | 0;
  21860. i6 = i10;
  21861. HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
  21862. HEAP32[i6 + 4 >> 2] = i4;
  21863. HEAP32[i10 + 8 >> 2] = HEAP32[i3 >> 2];
  21864. i3 = HEAP32[i7 >> 2] | 0;
  21865. HEAP32[i7 >> 2] = i3 + 16;
  21866. i10 = i5;
  21867. i6 = HEAP32[i10 + 4 >> 2] | 0;
  21868. i4 = i3;
  21869. HEAP32[i4 >> 2] = HEAP32[i10 >> 2];
  21870. HEAP32[i4 + 4 >> 2] = i6;
  21871. HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
  21872. _luaD_call(i2, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
  21873. i2 = HEAP32[i9 >> 2] | 0;
  21874. i3 = HEAP32[i7 >> 2] | 0;
  21875. i4 = i3 + -16 | 0;
  21876. HEAP32[i7 >> 2] = i4;
  21877. i5 = HEAP32[i4 + 4 >> 2] | 0;
  21878. i6 = i2 + i8 | 0;
  21879. HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
  21880. HEAP32[i6 + 4 >> 2] = i5;
  21881. HEAP32[i2 + (i8 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
  21882. i2 = HEAP32[i7 >> 2] | 0;
  21883. i3 = HEAP32[i2 + 8 >> 2] | 0;
  21884. if ((i3 | 0) != 0) {
  21885. if ((i3 | 0) == 1) {
  21886. i2 = (HEAP32[i2 >> 2] | 0) != 0;
  21887. } else {
  21888. i2 = 1;
  21889. }
  21890. } else {
  21891. i2 = 0;
  21892. }
  21893. i13 = i2 & 1;
  21894. STACKTOP = i1;
  21895. return i13 | 0;
  21896. }
  21897. function _forbody(i1, i5, i6, i4, i9) {
  21898. i1 = i1 | 0;
  21899. i5 = i5 | 0;
  21900. i6 = i6 | 0;
  21901. i4 = i4 | 0;
  21902. i9 = i9 | 0;
  21903. var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
  21904. i3 = STACKTOP;
  21905. STACKTOP = STACKTOP + 32 | 0;
  21906. i8 = i3 + 12 | 0;
  21907. i19 = i3;
  21908. i11 = i1 + 48 | 0;
  21909. i7 = HEAP32[i11 >> 2] | 0;
  21910. i18 = i7 + 46 | 0;
  21911. i22 = (HEAPU8[i18] | 0) + 3 | 0;
  21912. HEAP8[i18] = i22;
  21913. i21 = i7 + 20 | 0;
  21914. i17 = i7 + 12 | 0;
  21915. i2 = i7 + 40 | 0;
  21916. i20 = HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0;
  21917. i10 = HEAP32[HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] >> 2] | 0;
  21918. HEAP32[i20 + ((HEAP16[i10 + ((i22 & 255) + -3 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
  21919. HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -2 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
  21920. HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -1 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
  21921. i2 = i1 + 16 | 0;
  21922. if ((HEAP32[i2 >> 2] | 0) != 259) {
  21923. _error_expected(i1, 259);
  21924. }
  21925. _luaX_next(i1);
  21926. i10 = (i9 | 0) != 0;
  21927. if (i10) {
  21928. i9 = _luaK_codeABx(i7, 33, i5, 131070) | 0;
  21929. } else {
  21930. i9 = _luaK_jump(i7) | 0;
  21931. }
  21932. HEAP8[i19 + 10 | 0] = 0;
  21933. HEAP8[i19 + 8 | 0] = HEAP8[i18] | 0;
  21934. i17 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
  21935. HEAP16[i19 + 4 >> 1] = HEAP32[i17 + 28 >> 2];
  21936. HEAP16[i19 + 6 >> 1] = HEAP32[i17 + 16 >> 2];
  21937. HEAP8[i19 + 9 | 0] = 0;
  21938. i17 = i7 + 16 | 0;
  21939. HEAP32[i19 >> 2] = HEAP32[i17 >> 2];
  21940. HEAP32[i17 >> 2] = i19;
  21941. i19 = HEAP32[i11 >> 2] | 0;
  21942. i17 = i19 + 46 | 0;
  21943. i18 = (HEAPU8[i17] | 0) + i4 | 0;
  21944. HEAP8[i17] = i18;
  21945. if ((i4 | 0) != 0 ? (i13 = i19 + 20 | 0, i12 = i19 + 40 | 0, i14 = HEAP32[(HEAP32[i19 >> 2] | 0) + 24 >> 2] | 0, i15 = HEAP32[HEAP32[(HEAP32[i19 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i14 + ((HEAP16[i15 + ((i18 & 255) - i4 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2], i16 = i4 + -1 | 0, (i16 | 0) != 0) : 0) {
  21946. do {
  21947. HEAP32[i14 + ((HEAP16[i15 + ((HEAPU8[i17] | 0) - i16 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2];
  21948. i16 = i16 + -1 | 0;
  21949. } while ((i16 | 0) != 0);
  21950. }
  21951. _luaK_reserveregs(i7, i4);
  21952. i11 = HEAP32[i11 >> 2] | 0;
  21953. HEAP8[i8 + 10 | 0] = 0;
  21954. HEAP8[i8 + 8 | 0] = HEAP8[i11 + 46 | 0] | 0;
  21955. i22 = HEAP32[(HEAP32[i11 + 12 >> 2] | 0) + 64 >> 2] | 0;
  21956. HEAP16[i8 + 4 >> 1] = HEAP32[i22 + 28 >> 2];
  21957. HEAP16[i8 + 6 >> 1] = HEAP32[i22 + 16 >> 2];
  21958. HEAP8[i8 + 9 | 0] = 0;
  21959. i22 = i11 + 16 | 0;
  21960. HEAP32[i8 >> 2] = HEAP32[i22 >> 2];
  21961. HEAP32[i22 >> 2] = i8;
  21962. L13 : do {
  21963. i8 = HEAP32[i2 >> 2] | 0;
  21964. switch (i8 | 0) {
  21965. case 277:
  21966. case 286:
  21967. case 262:
  21968. case 261:
  21969. case 260:
  21970. {
  21971. break L13;
  21972. }
  21973. default:
  21974. {}
  21975. }
  21976. _statement(i1);
  21977. } while ((i8 | 0) != 274);
  21978. _leaveblock(i11);
  21979. _leaveblock(i7);
  21980. _luaK_patchtohere(i7, i9);
  21981. if (i10) {
  21982. i21 = _luaK_codeABx(i7, 32, i5, 131070) | 0;
  21983. i22 = i9 + 1 | 0;
  21984. _luaK_patchlist(i7, i21, i22);
  21985. _luaK_fixline(i7, i6);
  21986. STACKTOP = i3;
  21987. return;
  21988. } else {
  21989. _luaK_codeABC(i7, 34, i5, 0, i4) | 0;
  21990. _luaK_fixline(i7, i6);
  21991. i21 = _luaK_codeABx(i7, 35, i5 + 2 | 0, 131070) | 0;
  21992. i22 = i9 + 1 | 0;
  21993. _luaK_patchlist(i7, i21, i22);
  21994. _luaK_fixline(i7, i6);
  21995. STACKTOP = i3;
  21996. return;
  21997. }
  21998. }
  21999. function _dotty(i1) {
  22000. i1 = i1 | 0;
  22001. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  22002. i6 = STACKTOP;
  22003. STACKTOP = STACKTOP + 16 | 0;
  22004. i3 = i6;
  22005. i4 = i6 + 4 | 0;
  22006. i2 = HEAP32[20] | 0;
  22007. HEAP32[20] = 0;
  22008. _lua_settop(i1, 0);
  22009. if ((_pushline(i1, 1) | 0) == 0) {
  22010. _lua_settop(i1, 0);
  22011. i10 = HEAP32[_stdout >> 2] | 0;
  22012. _fputc(10, i10 | 0) | 0;
  22013. _fflush(i10 | 0) | 0;
  22014. HEAP32[20] = i2;
  22015. STACKTOP = i6;
  22016. return;
  22017. }
  22018. i5 = HEAP32[_stderr >> 2] | 0;
  22019. L4 : while (1) {
  22020. i8 = _lua_tolstring(i1, 1, i4) | 0;
  22021. i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
  22022. L6 : do {
  22023. if ((i8 | 0) == 3) {
  22024. while (1) {
  22025. i8 = _lua_tolstring(i1, -1, i3) | 0;
  22026. i7 = HEAP32[i3 >> 2] | 0;
  22027. if (!(i7 >>> 0 > 4)) {
  22028. break;
  22029. }
  22030. if ((_strcmp(i8 + (i7 + -5) | 0, 264) | 0) != 0) {
  22031. break;
  22032. }
  22033. _lua_settop(i1, -2);
  22034. if ((_pushline(i1, 0) | 0) == 0) {
  22035. i7 = 23;
  22036. break L4;
  22037. }
  22038. _lua_pushlstring(i1, 184, 1) | 0;
  22039. _lua_insert(i1, -2);
  22040. _lua_concat(i1, 3);
  22041. i8 = _lua_tolstring(i1, 1, i4) | 0;
  22042. i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
  22043. if ((i8 | 0) != 3) {
  22044. i7 = 9;
  22045. break L6;
  22046. }
  22047. }
  22048. _lua_remove(i1, 1);
  22049. i8 = 3;
  22050. i7 = 10;
  22051. } else {
  22052. i7 = 9;
  22053. }
  22054. } while (0);
  22055. do {
  22056. if ((i7 | 0) == 9) {
  22057. _lua_remove(i1, 1);
  22058. if ((i8 | 0) == -1) {
  22059. i7 = 23;
  22060. break L4;
  22061. } else if ((i8 | 0) != 0) {
  22062. i7 = 10;
  22063. break;
  22064. }
  22065. i9 = _lua_gettop(i1) | 0;
  22066. _lua_pushcclosure(i1, 142, 0);
  22067. _lua_insert(i1, i9);
  22068. HEAP32[48] = i1;
  22069. _signal(2, 1) | 0;
  22070. i10 = _lua_pcallk(i1, 0, -1, i9, 0, 0) | 0;
  22071. _signal(2, 0) | 0;
  22072. _lua_remove(i1, i9);
  22073. if ((i10 | 0) == 0) {
  22074. i7 = 17;
  22075. } else {
  22076. i9 = 0;
  22077. i7 = 12;
  22078. }
  22079. }
  22080. } while (0);
  22081. if ((i7 | 0) == 10) {
  22082. i9 = (i8 | 0) == 0;
  22083. i7 = 12;
  22084. }
  22085. do {
  22086. if ((i7 | 0) == 12) {
  22087. i7 = 0;
  22088. if ((_lua_type(i1, -1) | 0) == 0) {
  22089. if (i9) {
  22090. i7 = 17;
  22091. break;
  22092. } else {
  22093. break;
  22094. }
  22095. }
  22096. i10 = _lua_tolstring(i1, -1, 0) | 0;
  22097. i8 = HEAP32[20] | 0;
  22098. if ((i8 | 0) != 0) {
  22099. HEAP32[i3 >> 2] = i8;
  22100. _fprintf(i5 | 0, 496, i3 | 0) | 0;
  22101. _fflush(i5 | 0) | 0;
  22102. }
  22103. HEAP32[i3 >> 2] = (i10 | 0) == 0 ? 48 : i10;
  22104. _fprintf(i5 | 0, 912, i3 | 0) | 0;
  22105. _fflush(i5 | 0) | 0;
  22106. _lua_settop(i1, -2);
  22107. _lua_gc(i1, 2, 0) | 0;
  22108. if (i9) {
  22109. i7 = 17;
  22110. }
  22111. }
  22112. } while (0);
  22113. if (((i7 | 0) == 17 ? (0, (_lua_gettop(i1) | 0) > 0) : 0) ? (_luaL_checkstack(i1, 20, 112), _lua_getglobal(i1, 144), _lua_insert(i1, 1), (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -1 | 0, 0, 0, 0, 0) | 0) != 0) : 0) {
  22114. i7 = HEAP32[20] | 0;
  22115. HEAP32[i3 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
  22116. i8 = _lua_pushfstring(i1, 152, i3) | 0;
  22117. if ((i7 | 0) != 0) {
  22118. HEAP32[i3 >> 2] = i7;
  22119. _fprintf(i5 | 0, 496, i3 | 0) | 0;
  22120. _fflush(i5 | 0) | 0;
  22121. }
  22122. HEAP32[i3 >> 2] = i8;
  22123. _fprintf(i5 | 0, 912, i3 | 0) | 0;
  22124. _fflush(i5 | 0) | 0;
  22125. }
  22126. _lua_settop(i1, 0);
  22127. if ((_pushline(i1, 1) | 0) == 0) {
  22128. i7 = 23;
  22129. break;
  22130. }
  22131. }
  22132. if ((i7 | 0) == 23) {
  22133. _lua_settop(i1, 0);
  22134. i10 = HEAP32[_stdout >> 2] | 0;
  22135. _fputc(10, i10 | 0) | 0;
  22136. _fflush(i10 | 0) | 0;
  22137. HEAP32[20] = i2;
  22138. STACKTOP = i6;
  22139. return;
  22140. }
  22141. }
  22142. function _test_then_block(i5, i1) {
  22143. i5 = i5 | 0;
  22144. i1 = i1 | 0;
  22145. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
  22146. i2 = STACKTOP;
  22147. STACKTOP = STACKTOP + 48 | 0;
  22148. i10 = i2 + 24 | 0;
  22149. i9 = i2;
  22150. i8 = i5 + 48 | 0;
  22151. i4 = HEAP32[i8 >> 2] | 0;
  22152. _luaX_next(i5);
  22153. _subexpr(i5, i9, 0) | 0;
  22154. i3 = i5 + 16 | 0;
  22155. if ((HEAP32[i3 >> 2] | 0) != 275) {
  22156. _error_expected(i5, 275);
  22157. }
  22158. _luaX_next(i5);
  22159. i14 = HEAP32[i3 >> 2] | 0;
  22160. do {
  22161. if ((i14 | 0) == 258 | (i14 | 0) == 266) {
  22162. _luaK_goiffalse(HEAP32[i8 >> 2] | 0, i9);
  22163. HEAP8[i10 + 10 | 0] = 0;
  22164. HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
  22165. i11 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
  22166. HEAP16[i10 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
  22167. HEAP16[i10 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
  22168. HEAP8[i10 + 9 | 0] = 0;
  22169. i11 = i4 + 16 | 0;
  22170. HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
  22171. HEAP32[i11 >> 2] = i10;
  22172. i11 = HEAP32[i9 + 16 >> 2] | 0;
  22173. i10 = HEAP32[i5 + 4 >> 2] | 0;
  22174. i14 = (HEAP32[i3 >> 2] | 0) == 266;
  22175. _luaX_next(i5);
  22176. do {
  22177. if (i14) {
  22178. if ((HEAP32[i3 >> 2] | 0) == 288) {
  22179. i7 = HEAP32[i5 + 24 >> 2] | 0;
  22180. _luaX_next(i5);
  22181. break;
  22182. } else {
  22183. _error_expected(i5, 288);
  22184. }
  22185. } else {
  22186. i7 = _luaS_new(HEAP32[i5 + 52 >> 2] | 0, 6304) | 0;
  22187. }
  22188. } while (0);
  22189. i14 = HEAP32[i5 + 64 >> 2] | 0;
  22190. i12 = i14 + 12 | 0;
  22191. i13 = i14 + 16 | 0;
  22192. i9 = HEAP32[i13 >> 2] | 0;
  22193. i14 = i14 + 20 | 0;
  22194. if ((i9 | 0) < (HEAP32[i14 >> 2] | 0)) {
  22195. i14 = HEAP32[i12 >> 2] | 0;
  22196. } else {
  22197. i14 = _luaM_growaux_(HEAP32[i5 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
  22198. HEAP32[i12 >> 2] = i14;
  22199. }
  22200. HEAP32[i14 + (i9 << 4) >> 2] = i7;
  22201. i14 = HEAP32[i12 >> 2] | 0;
  22202. HEAP32[i14 + (i9 << 4) + 8 >> 2] = i10;
  22203. HEAP8[i14 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
  22204. HEAP32[(HEAP32[i12 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
  22205. HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
  22206. _findlabel(i5, i9) | 0;
  22207. L18 : while (1) {
  22208. switch (HEAP32[i3 >> 2] | 0) {
  22209. case 286:
  22210. case 262:
  22211. case 261:
  22212. case 260:
  22213. {
  22214. break L18;
  22215. }
  22216. case 285:
  22217. case 59:
  22218. {
  22219. break;
  22220. }
  22221. default:
  22222. {
  22223. i6 = 16;
  22224. break L18;
  22225. }
  22226. }
  22227. _statement(i5);
  22228. }
  22229. if ((i6 | 0) == 16) {
  22230. i6 = _luaK_jump(i4) | 0;
  22231. break;
  22232. }
  22233. _leaveblock(i4);
  22234. STACKTOP = i2;
  22235. return;
  22236. } else {
  22237. _luaK_goiftrue(HEAP32[i8 >> 2] | 0, i9);
  22238. HEAP8[i10 + 10 | 0] = 0;
  22239. HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
  22240. i6 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
  22241. HEAP16[i10 + 4 >> 1] = HEAP32[i6 + 28 >> 2];
  22242. HEAP16[i10 + 6 >> 1] = HEAP32[i6 + 16 >> 2];
  22243. HEAP8[i10 + 9 | 0] = 0;
  22244. i6 = i4 + 16 | 0;
  22245. HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
  22246. HEAP32[i6 >> 2] = i10;
  22247. i6 = HEAP32[i9 + 20 >> 2] | 0;
  22248. }
  22249. } while (0);
  22250. L26 : do {
  22251. i7 = HEAP32[i3 >> 2] | 0;
  22252. switch (i7 | 0) {
  22253. case 277:
  22254. case 286:
  22255. case 262:
  22256. case 261:
  22257. case 260:
  22258. {
  22259. break L26;
  22260. }
  22261. default:
  22262. {}
  22263. }
  22264. _statement(i5);
  22265. } while ((i7 | 0) != 274);
  22266. _leaveblock(i4);
  22267. if (((HEAP32[i3 >> 2] | 0) + -260 | 0) >>> 0 < 2) {
  22268. _luaK_concat(i4, i1, _luaK_jump(i4) | 0);
  22269. }
  22270. _luaK_patchtohere(i4, i6);
  22271. STACKTOP = i2;
  22272. return;
  22273. }
  22274. function _luaL_gsub(i2, i13, i11, i10) {
  22275. i2 = i2 | 0;
  22276. i13 = i13 | 0;
  22277. i11 = i11 | 0;
  22278. i10 = i10 | 0;
  22279. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
  22280. i1 = STACKTOP;
  22281. STACKTOP = STACKTOP + 1056 | 0;
  22282. i8 = i1;
  22283. i4 = i1 + 8 | 0;
  22284. i9 = _strlen(i11 | 0) | 0;
  22285. i6 = i4 + 12 | 0;
  22286. HEAP32[i6 >> 2] = i2;
  22287. i3 = i4 + 16 | 0;
  22288. HEAP32[i4 >> 2] = i3;
  22289. i5 = i4 + 8 | 0;
  22290. HEAP32[i5 >> 2] = 0;
  22291. i7 = i4 + 4 | 0;
  22292. HEAP32[i7 >> 2] = 1024;
  22293. i12 = _strstr(i13, i11) | 0;
  22294. if ((i12 | 0) == 0) {
  22295. i14 = 0;
  22296. i17 = 1024;
  22297. i16 = i2;
  22298. } else {
  22299. i14 = 0;
  22300. i17 = 1024;
  22301. i16 = i2;
  22302. do {
  22303. i15 = i12 - i13 | 0;
  22304. if ((i17 - i14 | 0) >>> 0 < i15 >>> 0) {
  22305. i17 = i17 << 1;
  22306. i17 = (i17 - i14 | 0) >>> 0 < i15 >>> 0 ? i14 + i15 | 0 : i17;
  22307. if (i17 >>> 0 < i14 >>> 0 | (i17 - i14 | 0) >>> 0 < i15 >>> 0) {
  22308. _luaL_error(i16, 1272, i8) | 0;
  22309. }
  22310. i14 = _lua_newuserdata(i16, i17) | 0;
  22311. _memcpy(i14 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  22312. if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
  22313. _lua_remove(i16, -2);
  22314. }
  22315. HEAP32[i4 >> 2] = i14;
  22316. HEAP32[i7 >> 2] = i17;
  22317. i16 = i14;
  22318. i14 = HEAP32[i5 >> 2] | 0;
  22319. } else {
  22320. i16 = HEAP32[i4 >> 2] | 0;
  22321. }
  22322. _memcpy(i16 + i14 | 0, i13 | 0, i15 | 0) | 0;
  22323. i15 = (HEAP32[i5 >> 2] | 0) + i15 | 0;
  22324. HEAP32[i5 >> 2] = i15;
  22325. i13 = _strlen(i10 | 0) | 0;
  22326. i14 = HEAP32[i6 >> 2] | 0;
  22327. i16 = HEAP32[i7 >> 2] | 0;
  22328. if ((i16 - i15 | 0) >>> 0 < i13 >>> 0) {
  22329. i16 = i16 << 1;
  22330. i16 = (i16 - i15 | 0) >>> 0 < i13 >>> 0 ? i15 + i13 | 0 : i16;
  22331. if (i16 >>> 0 < i15 >>> 0 | (i16 - i15 | 0) >>> 0 < i13 >>> 0) {
  22332. _luaL_error(i14, 1272, i8) | 0;
  22333. }
  22334. i15 = _lua_newuserdata(i14, i16) | 0;
  22335. _memcpy(i15 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  22336. if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
  22337. _lua_remove(i14, -2);
  22338. }
  22339. HEAP32[i4 >> 2] = i15;
  22340. HEAP32[i7 >> 2] = i16;
  22341. i14 = i15;
  22342. i15 = HEAP32[i5 >> 2] | 0;
  22343. } else {
  22344. i14 = HEAP32[i4 >> 2] | 0;
  22345. }
  22346. _memcpy(i14 + i15 | 0, i10 | 0, i13 | 0) | 0;
  22347. i14 = (HEAP32[i5 >> 2] | 0) + i13 | 0;
  22348. HEAP32[i5 >> 2] = i14;
  22349. i13 = i12 + i9 | 0;
  22350. i12 = _strstr(i13, i11) | 0;
  22351. i16 = HEAP32[i6 >> 2] | 0;
  22352. i17 = HEAP32[i7 >> 2] | 0;
  22353. } while ((i12 | 0) != 0);
  22354. }
  22355. i9 = _strlen(i13 | 0) | 0;
  22356. if ((i17 - i14 | 0) >>> 0 < i9 >>> 0) {
  22357. i10 = i17 << 1;
  22358. i10 = (i10 - i14 | 0) >>> 0 < i9 >>> 0 ? i14 + i9 | 0 : i10;
  22359. if (i10 >>> 0 < i14 >>> 0 | (i10 - i14 | 0) >>> 0 < i9 >>> 0) {
  22360. _luaL_error(i16, 1272, i8) | 0;
  22361. }
  22362. i8 = _lua_newuserdata(i16, i10) | 0;
  22363. _memcpy(i8 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  22364. if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
  22365. _lua_remove(i16, -2);
  22366. }
  22367. HEAP32[i4 >> 2] = i8;
  22368. HEAP32[i7 >> 2] = i10;
  22369. i14 = HEAP32[i5 >> 2] | 0;
  22370. } else {
  22371. i8 = HEAP32[i4 >> 2] | 0;
  22372. }
  22373. _memcpy(i8 + i14 | 0, i13 | 0, i9 | 0) | 0;
  22374. i17 = (HEAP32[i5 >> 2] | 0) + i9 | 0;
  22375. HEAP32[i5 >> 2] = i17;
  22376. i5 = HEAP32[i6 >> 2] | 0;
  22377. _lua_pushlstring(i5, HEAP32[i4 >> 2] | 0, i17) | 0;
  22378. if ((HEAP32[i4 >> 2] | 0) == (i3 | 0)) {
  22379. i17 = _lua_tolstring(i2, -1, 0) | 0;
  22380. STACKTOP = i1;
  22381. return i17 | 0;
  22382. }
  22383. _lua_remove(i5, -2);
  22384. i17 = _lua_tolstring(i2, -1, 0) | 0;
  22385. STACKTOP = i1;
  22386. return i17 | 0;
  22387. }
  22388. function _luaK_goiffalse(i1, i3) {
  22389. i1 = i1 | 0;
  22390. i3 = i3 | 0;
  22391. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  22392. i2 = STACKTOP;
  22393. _luaK_dischargevars(i1, i3);
  22394. i9 = HEAP32[i3 >> 2] | 0;
  22395. do {
  22396. if ((i9 | 0) == 10) {
  22397. i4 = HEAP32[i3 + 8 >> 2] | 0;
  22398. i8 = 15;
  22399. } else if (!((i9 | 0) == 3 | (i9 | 0) == 1)) {
  22400. i4 = i3 + 8 | 0;
  22401. if ((i9 | 0) == 6) {
  22402. i8 = 11;
  22403. } else if ((i9 | 0) == 11 ? (i10 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0, (i10 & 63 | 0) == 20) : 0) {
  22404. i4 = i1 + 20 | 0;
  22405. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -1;
  22406. i4 = _condjump(i1, 27, i10 >>> 23, 0, 0) | 0;
  22407. i8 = 15;
  22408. break;
  22409. } else {
  22410. i8 = 6;
  22411. }
  22412. if ((i8 | 0) == 6) {
  22413. i9 = i1 + 48 | 0;
  22414. i11 = HEAP8[i9] | 0;
  22415. i10 = (i11 & 255) + 1 | 0;
  22416. i12 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
  22417. do {
  22418. if (i10 >>> 0 > (HEAPU8[i12] | 0) >>> 0) {
  22419. if (i10 >>> 0 > 249) {
  22420. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
  22421. } else {
  22422. HEAP8[i12] = i10;
  22423. i7 = HEAP8[i9] | 0;
  22424. break;
  22425. }
  22426. } else {
  22427. i7 = i11;
  22428. }
  22429. } while (0);
  22430. i12 = (i7 & 255) + 1 | 0;
  22431. HEAP8[i9] = i12;
  22432. _discharge2reg(i1, i3, (i12 & 255) + -1 | 0);
  22433. if ((HEAP32[i3 >> 2] | 0) == 6) {
  22434. i8 = 11;
  22435. }
  22436. }
  22437. if (((i8 | 0) == 11 ? (i6 = HEAP32[i4 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i6 | 0) : 0) {
  22438. i12 = i1 + 48 | 0;
  22439. HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
  22440. }
  22441. i4 = _condjump(i1, 28, 255, HEAP32[i4 >> 2] | 0, 1) | 0;
  22442. i8 = 15;
  22443. }
  22444. } while (0);
  22445. do {
  22446. if ((i8 | 0) == 15 ? (i5 = i3 + 16 | 0, !((i4 | 0) == -1)) : 0) {
  22447. i8 = HEAP32[i5 >> 2] | 0;
  22448. if ((i8 | 0) == -1) {
  22449. HEAP32[i5 >> 2] = i4;
  22450. break;
  22451. }
  22452. i5 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  22453. while (1) {
  22454. i7 = i5 + (i8 << 2) | 0;
  22455. i6 = HEAP32[i7 >> 2] | 0;
  22456. i9 = (i6 >>> 14) + -131071 | 0;
  22457. if ((i9 | 0) == -1) {
  22458. break;
  22459. }
  22460. i9 = i8 + 1 + i9 | 0;
  22461. if ((i9 | 0) == -1) {
  22462. break;
  22463. } else {
  22464. i8 = i9;
  22465. }
  22466. }
  22467. i4 = i4 + ~i8 | 0;
  22468. if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
  22469. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  22470. } else {
  22471. HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
  22472. break;
  22473. }
  22474. }
  22475. } while (0);
  22476. i3 = i3 + 20 | 0;
  22477. i4 = HEAP32[i3 >> 2] | 0;
  22478. HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
  22479. i5 = i1 + 28 | 0;
  22480. if ((i4 | 0) == -1) {
  22481. HEAP32[i3 >> 2] = -1;
  22482. STACKTOP = i2;
  22483. return;
  22484. }
  22485. i8 = HEAP32[i5 >> 2] | 0;
  22486. if ((i8 | 0) == -1) {
  22487. HEAP32[i5 >> 2] = i4;
  22488. HEAP32[i3 >> 2] = -1;
  22489. STACKTOP = i2;
  22490. return;
  22491. }
  22492. i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  22493. while (1) {
  22494. i5 = i7 + (i8 << 2) | 0;
  22495. i6 = HEAP32[i5 >> 2] | 0;
  22496. i9 = (i6 >>> 14) + -131071 | 0;
  22497. if ((i9 | 0) == -1) {
  22498. break;
  22499. }
  22500. i9 = i8 + 1 + i9 | 0;
  22501. if ((i9 | 0) == -1) {
  22502. break;
  22503. } else {
  22504. i8 = i9;
  22505. }
  22506. }
  22507. i4 = i4 + ~i8 | 0;
  22508. if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
  22509. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  22510. }
  22511. HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
  22512. HEAP32[i3 >> 2] = -1;
  22513. STACKTOP = i2;
  22514. return;
  22515. }
  22516. function _luaV_settable(i2, i11, i7, i9) {
  22517. i2 = i2 | 0;
  22518. i11 = i11 | 0;
  22519. i7 = i7 | 0;
  22520. i9 = i9 | 0;
  22521. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i12 = 0, i13 = 0, i14 = 0;
  22522. i6 = STACKTOP;
  22523. STACKTOP = STACKTOP + 16 | 0;
  22524. i5 = i6;
  22525. i4 = i2 + 12 | 0;
  22526. i3 = i11;
  22527. i13 = HEAP32[i11 + 8 >> 2] | 0;
  22528. i12 = 0;
  22529. while (1) {
  22530. i11 = i3 + 8 | 0;
  22531. if ((i13 | 0) != 69) {
  22532. i14 = _luaT_gettmbyobj(i2, i3, 1) | 0;
  22533. i13 = HEAP32[i14 + 8 >> 2] | 0;
  22534. if ((i13 | 0) == 0) {
  22535. i1 = 16;
  22536. break;
  22537. }
  22538. } else {
  22539. i8 = HEAP32[i3 >> 2] | 0;
  22540. i13 = _luaH_get(i8, i7) | 0;
  22541. if ((HEAP32[i13 + 8 >> 2] | 0) != 0) {
  22542. i10 = i13;
  22543. break;
  22544. }
  22545. i14 = HEAP32[i8 + 8 >> 2] | 0;
  22546. if ((i14 | 0) == 0) {
  22547. i1 = 9;
  22548. break;
  22549. }
  22550. if (!((HEAP8[i14 + 6 | 0] & 2) == 0)) {
  22551. i1 = 9;
  22552. break;
  22553. }
  22554. i14 = _luaT_gettm(i14, 1, HEAP32[(HEAP32[i4 >> 2] | 0) + 188 >> 2] | 0) | 0;
  22555. if ((i14 | 0) == 0) {
  22556. i1 = 9;
  22557. break;
  22558. }
  22559. i13 = HEAP32[i14 + 8 >> 2] | 0;
  22560. }
  22561. i12 = i12 + 1 | 0;
  22562. if ((i13 & 15 | 0) == 6) {
  22563. i1 = 18;
  22564. break;
  22565. }
  22566. if ((i12 | 0) < 100) {
  22567. i3 = i14;
  22568. } else {
  22569. i1 = 19;
  22570. break;
  22571. }
  22572. }
  22573. if ((i1 | 0) == 9) {
  22574. if ((i13 | 0) == 5192) {
  22575. i10 = _luaH_newkey(i2, i8, i7) | 0;
  22576. } else {
  22577. i10 = i13;
  22578. }
  22579. } else if ((i1 | 0) == 16) {
  22580. _luaG_typeerror(i2, i3, 8944);
  22581. } else if ((i1 | 0) == 18) {
  22582. i13 = i2 + 8 | 0;
  22583. i8 = HEAP32[i13 >> 2] | 0;
  22584. HEAP32[i13 >> 2] = i8 + 16;
  22585. i5 = i14;
  22586. i12 = HEAP32[i5 + 4 >> 2] | 0;
  22587. i10 = i8;
  22588. HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
  22589. HEAP32[i10 + 4 >> 2] = i12;
  22590. HEAP32[i8 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
  22591. i14 = HEAP32[i13 >> 2] | 0;
  22592. HEAP32[i13 >> 2] = i14 + 16;
  22593. i8 = i3;
  22594. i10 = HEAP32[i8 + 4 >> 2] | 0;
  22595. i12 = i14;
  22596. HEAP32[i12 >> 2] = HEAP32[i8 >> 2];
  22597. HEAP32[i12 + 4 >> 2] = i10;
  22598. HEAP32[i14 + 8 >> 2] = HEAP32[i11 >> 2];
  22599. i14 = HEAP32[i13 >> 2] | 0;
  22600. HEAP32[i13 >> 2] = i14 + 16;
  22601. i12 = i7;
  22602. i11 = HEAP32[i12 + 4 >> 2] | 0;
  22603. i10 = i14;
  22604. HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
  22605. HEAP32[i10 + 4 >> 2] = i11;
  22606. HEAP32[i14 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
  22607. i14 = HEAP32[i13 >> 2] | 0;
  22608. HEAP32[i13 >> 2] = i14 + 16;
  22609. i10 = i9;
  22610. i11 = HEAP32[i10 + 4 >> 2] | 0;
  22611. i12 = i14;
  22612. HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
  22613. HEAP32[i12 + 4 >> 2] = i11;
  22614. HEAP32[i14 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
  22615. _luaD_call(i2, (HEAP32[i13 >> 2] | 0) + -64 | 0, 0, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
  22616. STACKTOP = i6;
  22617. return;
  22618. } else if ((i1 | 0) == 19) {
  22619. _luaG_runerror(i2, 8976, i5);
  22620. }
  22621. i12 = i9;
  22622. i13 = HEAP32[i12 + 4 >> 2] | 0;
  22623. i14 = i10;
  22624. HEAP32[i14 >> 2] = HEAP32[i12 >> 2];
  22625. HEAP32[i14 + 4 >> 2] = i13;
  22626. i14 = i9 + 8 | 0;
  22627. HEAP32[i10 + 8 >> 2] = HEAP32[i14 >> 2];
  22628. HEAP8[i8 + 6 | 0] = 0;
  22629. if ((HEAP32[i14 >> 2] & 64 | 0) == 0) {
  22630. STACKTOP = i6;
  22631. return;
  22632. }
  22633. if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0) {
  22634. STACKTOP = i6;
  22635. return;
  22636. }
  22637. if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
  22638. STACKTOP = i6;
  22639. return;
  22640. }
  22641. _luaC_barrierback_(i2, i8);
  22642. STACKTOP = i6;
  22643. return;
  22644. }
  22645. function _luaK_code(i4, i5) {
  22646. i4 = i4 | 0;
  22647. i5 = i5 | 0;
  22648. var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
  22649. i2 = STACKTOP;
  22650. i1 = HEAP32[i4 >> 2] | 0;
  22651. i7 = i4 + 28 | 0;
  22652. i15 = HEAP32[i7 >> 2] | 0;
  22653. i3 = i4 + 20 | 0;
  22654. i8 = HEAP32[i3 >> 2] | 0;
  22655. do {
  22656. if (!((i15 | 0) == -1)) {
  22657. i11 = HEAP32[i1 + 12 >> 2] | 0;
  22658. while (1) {
  22659. i12 = i11 + (i15 << 2) | 0;
  22660. i14 = HEAP32[i12 >> 2] | 0;
  22661. i13 = (i14 >>> 14) + -131071 | 0;
  22662. if ((i13 | 0) == -1) {
  22663. i13 = -1;
  22664. } else {
  22665. i13 = i15 + 1 + i13 | 0;
  22666. }
  22667. if ((i15 | 0) > 0 ? (i9 = i11 + (i15 + -1 << 2) | 0, i10 = HEAP32[i9 >> 2] | 0, (HEAP8[5584 + (i10 & 63) | 0] | 0) < 0) : 0) {
  22668. i17 = i9;
  22669. i16 = i10;
  22670. } else {
  22671. i17 = i12;
  22672. i16 = i14;
  22673. }
  22674. if ((i16 & 63 | 0) == 28) {
  22675. HEAP32[i17 >> 2] = i16 & 8372224 | i16 >>> 23 << 6 | 27;
  22676. i14 = i8 + ~i15 | 0;
  22677. if ((((i14 | 0) > -1 ? i14 : 0 - i14 | 0) | 0) > 131071) {
  22678. i8 = 10;
  22679. break;
  22680. }
  22681. i14 = HEAP32[i12 >> 2] & 16383 | (i14 << 14) + 2147467264;
  22682. } else {
  22683. i15 = i8 + ~i15 | 0;
  22684. if ((((i15 | 0) > -1 ? i15 : 0 - i15 | 0) | 0) > 131071) {
  22685. i8 = 13;
  22686. break;
  22687. }
  22688. i14 = (i15 << 14) + 2147467264 | i14 & 16383;
  22689. }
  22690. HEAP32[i12 >> 2] = i14;
  22691. if ((i13 | 0) == -1) {
  22692. i8 = 16;
  22693. break;
  22694. } else {
  22695. i15 = i13;
  22696. }
  22697. }
  22698. if ((i8 | 0) == 10) {
  22699. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  22700. } else if ((i8 | 0) == 13) {
  22701. _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
  22702. } else if ((i8 | 0) == 16) {
  22703. i6 = HEAP32[i3 >> 2] | 0;
  22704. break;
  22705. }
  22706. } else {
  22707. i6 = i8;
  22708. }
  22709. } while (0);
  22710. HEAP32[i7 >> 2] = -1;
  22711. i7 = i1 + 48 | 0;
  22712. if ((i6 | 0) < (HEAP32[i7 >> 2] | 0)) {
  22713. i7 = i1 + 12 | 0;
  22714. } else {
  22715. i6 = i1 + 12 | 0;
  22716. HEAP32[i6 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i6 >> 2] | 0, i7, 4, 2147483645, 10616) | 0;
  22717. i7 = i6;
  22718. i6 = HEAP32[i3 >> 2] | 0;
  22719. }
  22720. HEAP32[(HEAP32[i7 >> 2] | 0) + (i6 << 2) >> 2] = i5;
  22721. i5 = HEAP32[i3 >> 2] | 0;
  22722. i6 = i1 + 52 | 0;
  22723. i4 = i4 + 12 | 0;
  22724. if ((i5 | 0) < (HEAP32[i6 >> 2] | 0)) {
  22725. i15 = i1 + 20 | 0;
  22726. i17 = i5;
  22727. i16 = HEAP32[i4 >> 2] | 0;
  22728. i16 = i16 + 8 | 0;
  22729. i16 = HEAP32[i16 >> 2] | 0;
  22730. i15 = HEAP32[i15 >> 2] | 0;
  22731. i17 = i15 + (i17 << 2) | 0;
  22732. HEAP32[i17 >> 2] = i16;
  22733. i17 = HEAP32[i3 >> 2] | 0;
  22734. i16 = i17 + 1 | 0;
  22735. HEAP32[i3 >> 2] = i16;
  22736. STACKTOP = i2;
  22737. return i17 | 0;
  22738. } else {
  22739. i15 = i1 + 20 | 0;
  22740. HEAP32[i15 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i15 >> 2] | 0, i6, 4, 2147483645, 10616) | 0;
  22741. i17 = HEAP32[i3 >> 2] | 0;
  22742. i16 = HEAP32[i4 >> 2] | 0;
  22743. i16 = i16 + 8 | 0;
  22744. i16 = HEAP32[i16 >> 2] | 0;
  22745. i15 = HEAP32[i15 >> 2] | 0;
  22746. i17 = i15 + (i17 << 2) | 0;
  22747. HEAP32[i17 >> 2] = i16;
  22748. i17 = HEAP32[i3 >> 2] | 0;
  22749. i16 = i17 + 1 | 0;
  22750. HEAP32[i3 >> 2] = i16;
  22751. STACKTOP = i2;
  22752. return i17 | 0;
  22753. }
  22754. return 0;
  22755. }
  22756. function _luaH_next(i9, i5, i2) {
  22757. i9 = i9 | 0;
  22758. i5 = i5 | 0;
  22759. i2 = i2 | 0;
  22760. var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
  22761. i1 = STACKTOP;
  22762. STACKTOP = STACKTOP + 16 | 0;
  22763. i8 = i1 + 8 | 0;
  22764. i11 = i1;
  22765. i3 = i2 + 8 | 0;
  22766. i10 = HEAP32[i3 >> 2] | 0;
  22767. do {
  22768. if ((i10 | 0) != 0) {
  22769. if ((((i10 | 0) == 3 ? (d14 = +HEAPF64[i2 >> 3], HEAPF64[i11 >> 3] = d14 + 6755399441055744.0, i12 = HEAP32[i11 >> 2] | 0, +(i12 | 0) == d14) : 0) ? (i12 | 0) > 0 : 0) ? (i13 = HEAP32[i5 + 28 >> 2] | 0, (i12 | 0) <= (i13 | 0)) : 0) {
  22770. i6 = i13;
  22771. i7 = i12 + -1 | 0;
  22772. break;
  22773. }
  22774. i10 = _mainposition(i5, i2) | 0;
  22775. while (1) {
  22776. i4 = i10 + 16 | 0;
  22777. i11 = i10 + 24 | 0;
  22778. i12 = HEAP32[i11 >> 2] | 0;
  22779. if ((i12 | 0) == (HEAP32[i3 >> 2] | 0)) {
  22780. if ((_luaV_equalobj_(0, i4, i2) | 0) != 0) {
  22781. i4 = 15;
  22782. break;
  22783. }
  22784. i12 = HEAP32[i11 >> 2] | 0;
  22785. }
  22786. if (((i12 | 0) == 11 ? (HEAP32[i3 >> 2] & 64 | 0) != 0 : 0) ? (HEAP32[i4 >> 2] | 0) == (HEAP32[i2 >> 2] | 0) : 0) {
  22787. i4 = 15;
  22788. break;
  22789. }
  22790. i10 = HEAP32[i10 + 28 >> 2] | 0;
  22791. if ((i10 | 0) == 0) {
  22792. i4 = 18;
  22793. break;
  22794. }
  22795. }
  22796. if ((i4 | 0) == 15) {
  22797. i7 = HEAP32[i5 + 28 >> 2] | 0;
  22798. i6 = i7;
  22799. i7 = (i10 - (HEAP32[i5 + 16 >> 2] | 0) >> 5) + i7 | 0;
  22800. break;
  22801. } else if ((i4 | 0) == 18) {
  22802. _luaG_runerror(i9, 8064, i8);
  22803. }
  22804. } else {
  22805. i6 = HEAP32[i5 + 28 >> 2] | 0;
  22806. i7 = -1;
  22807. }
  22808. } while (0);
  22809. i8 = i5 + 12 | 0;
  22810. while (1) {
  22811. i9 = i7 + 1 | 0;
  22812. if ((i9 | 0) >= (i6 | 0)) {
  22813. break;
  22814. }
  22815. i11 = HEAP32[i8 >> 2] | 0;
  22816. i10 = i11 + (i9 << 4) + 8 | 0;
  22817. if ((HEAP32[i10 >> 2] | 0) == 0) {
  22818. i7 = i9;
  22819. } else {
  22820. i4 = 21;
  22821. break;
  22822. }
  22823. }
  22824. if ((i4 | 0) == 21) {
  22825. HEAPF64[i2 >> 3] = +(i7 + 2 | 0);
  22826. HEAP32[i3 >> 2] = 3;
  22827. i11 = i11 + (i9 << 4) | 0;
  22828. i12 = HEAP32[i11 + 4 >> 2] | 0;
  22829. i13 = i2 + 16 | 0;
  22830. HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
  22831. HEAP32[i13 + 4 >> 2] = i12;
  22832. HEAP32[i2 + 24 >> 2] = HEAP32[i10 >> 2];
  22833. i13 = 1;
  22834. STACKTOP = i1;
  22835. return i13 | 0;
  22836. }
  22837. i8 = i9 - i6 | 0;
  22838. i6 = 1 << (HEAPU8[i5 + 7 | 0] | 0);
  22839. if ((i8 | 0) >= (i6 | 0)) {
  22840. i13 = 0;
  22841. STACKTOP = i1;
  22842. return i13 | 0;
  22843. }
  22844. i7 = i5 + 16 | 0;
  22845. i5 = HEAP32[i7 >> 2] | 0;
  22846. while (1) {
  22847. i9 = i8 + 1 | 0;
  22848. if ((HEAP32[i5 + (i8 << 5) + 8 >> 2] | 0) != 0) {
  22849. break;
  22850. }
  22851. if ((i9 | 0) < (i6 | 0)) {
  22852. i8 = i9;
  22853. } else {
  22854. i2 = 0;
  22855. i4 = 27;
  22856. break;
  22857. }
  22858. }
  22859. if ((i4 | 0) == 27) {
  22860. STACKTOP = i1;
  22861. return i2 | 0;
  22862. }
  22863. i11 = i5 + (i8 << 5) + 16 | 0;
  22864. i10 = HEAP32[i11 + 4 >> 2] | 0;
  22865. i13 = i2;
  22866. HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
  22867. HEAP32[i13 + 4 >> 2] = i10;
  22868. HEAP32[i3 >> 2] = HEAP32[i5 + (i8 << 5) + 24 >> 2];
  22869. i13 = HEAP32[i7 >> 2] | 0;
  22870. i10 = i13 + (i8 << 5) | 0;
  22871. i11 = HEAP32[i10 + 4 >> 2] | 0;
  22872. i12 = i2 + 16 | 0;
  22873. HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
  22874. HEAP32[i12 + 4 >> 2] = i11;
  22875. HEAP32[i2 + 24 >> 2] = HEAP32[i13 + (i8 << 5) + 8 >> 2];
  22876. i13 = 1;
  22877. STACKTOP = i1;
  22878. return i13 | 0;
  22879. }
  22880. function _g_read(i1, i3, i2) {
  22881. i1 = i1 | 0;
  22882. i3 = i3 | 0;
  22883. i2 = i2 | 0;
  22884. var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  22885. i4 = STACKTOP;
  22886. STACKTOP = STACKTOP + 1056 | 0;
  22887. i7 = i4 + 8 | 0;
  22888. i9 = i4;
  22889. i10 = _lua_gettop(i1) | 0;
  22890. _clearerr(i3 | 0);
  22891. L1 : do {
  22892. if ((i10 | 0) == 1) {
  22893. i11 = i2 + 1 | 0;
  22894. i12 = _read_line(i1, i3, 1) | 0;
  22895. } else {
  22896. _luaL_checkstack(i1, i10 + 19 | 0, 3256);
  22897. i6 = i7 + 8 | 0;
  22898. i5 = i7 + 8 | 0;
  22899. i10 = i10 + -2 | 0;
  22900. i11 = i2;
  22901. L4 : while (1) {
  22902. do {
  22903. if ((_lua_type(i1, i11) | 0) == 3) {
  22904. i12 = _lua_tointegerx(i1, i11, 0) | 0;
  22905. if ((i12 | 0) == 0) {
  22906. i12 = _fgetc(i3 | 0) | 0;
  22907. _ungetc(i12 | 0, i3 | 0) | 0;
  22908. _lua_pushlstring(i1, 0, 0) | 0;
  22909. i12 = (i12 | 0) != -1 | 0;
  22910. break;
  22911. } else {
  22912. _luaL_buffinit(i1, i7);
  22913. i12 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
  22914. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i12;
  22915. _luaL_pushresult(i7);
  22916. i12 = (i12 | 0) != 0 | 0;
  22917. break;
  22918. }
  22919. } else {
  22920. i12 = _lua_tolstring(i1, i11, 0) | 0;
  22921. if (!((i12 | 0) != 0 ? (HEAP8[i12] | 0) == 42 : 0)) {
  22922. _luaL_argerror(i1, i11, 3280) | 0;
  22923. }
  22924. i12 = HEAP8[i12 + 1 | 0] | 0;
  22925. if ((i12 | 0) == 110) {
  22926. HEAP32[i7 >> 2] = i9;
  22927. if ((_fscanf(i3 | 0, 3312, i7 | 0) | 0) != 1) {
  22928. i8 = 14;
  22929. break L4;
  22930. }
  22931. _lua_pushnumber(i1, +HEAPF64[i9 >> 3]);
  22932. i12 = 1;
  22933. break;
  22934. } else if ((i12 | 0) == 108) {
  22935. i12 = _read_line(i1, i3, 1) | 0;
  22936. break;
  22937. } else if ((i12 | 0) == 76) {
  22938. i12 = _read_line(i1, i3, 0) | 0;
  22939. break;
  22940. } else if ((i12 | 0) == 97) {
  22941. _luaL_buffinit(i1, i7);
  22942. i12 = _fread(_luaL_prepbuffsize(i7, 1024) | 0, 1, 1024, i3 | 0) | 0;
  22943. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i12;
  22944. if (!(i12 >>> 0 < 1024)) {
  22945. i12 = 1024;
  22946. do {
  22947. i12 = i12 << (i12 >>> 0 < 1073741824);
  22948. i13 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
  22949. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i13;
  22950. } while (!(i13 >>> 0 < i12 >>> 0));
  22951. }
  22952. _luaL_pushresult(i7);
  22953. i12 = 1;
  22954. break;
  22955. } else {
  22956. break L4;
  22957. }
  22958. }
  22959. } while (0);
  22960. i11 = i11 + 1 | 0;
  22961. if ((i10 | 0) == 0 | (i12 | 0) == 0) {
  22962. break L1;
  22963. } else {
  22964. i10 = i10 + -1 | 0;
  22965. }
  22966. }
  22967. if ((i8 | 0) == 14) {
  22968. _lua_pushnil(i1);
  22969. i11 = i11 + 1 | 0;
  22970. i12 = 0;
  22971. break;
  22972. }
  22973. i13 = _luaL_argerror(i1, i11, 3296) | 0;
  22974. STACKTOP = i4;
  22975. return i13 | 0;
  22976. }
  22977. } while (0);
  22978. if ((_ferror(i3 | 0) | 0) != 0) {
  22979. i13 = _luaL_fileresult(i1, 0, 0) | 0;
  22980. STACKTOP = i4;
  22981. return i13 | 0;
  22982. }
  22983. if ((i12 | 0) == 0) {
  22984. _lua_settop(i1, -2);
  22985. _lua_pushnil(i1);
  22986. }
  22987. i13 = i11 - i2 | 0;
  22988. STACKTOP = i4;
  22989. return i13 | 0;
  22990. }
  22991. function _luaY_parser(i8, i12, i10, i11, i9, i13) {
  22992. i8 = i8 | 0;
  22993. i12 = i12 | 0;
  22994. i10 = i10 | 0;
  22995. i11 = i11 | 0;
  22996. i9 = i9 | 0;
  22997. i13 = i13 | 0;
  22998. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i14 = 0, i15 = 0;
  22999. i2 = STACKTOP;
  23000. STACKTOP = STACKTOP + 176 | 0;
  23001. i5 = i2 + 156 | 0;
  23002. i7 = i2 + 80 | 0;
  23003. i4 = i2;
  23004. i6 = i2 + 104 | 0;
  23005. i3 = _luaF_newLclosure(i8, 1) | 0;
  23006. i15 = i8 + 8 | 0;
  23007. i14 = HEAP32[i15 >> 2] | 0;
  23008. HEAP32[i14 >> 2] = i3;
  23009. HEAP32[i14 + 8 >> 2] = 70;
  23010. i14 = (HEAP32[i15 >> 2] | 0) + 16 | 0;
  23011. HEAP32[i15 >> 2] = i14;
  23012. if (((HEAP32[i8 + 24 >> 2] | 0) - i14 | 0) < 16) {
  23013. _luaD_growstack(i8, 0);
  23014. }
  23015. i14 = _luaF_newproto(i8) | 0;
  23016. HEAP32[i3 + 12 >> 2] = i14;
  23017. HEAP32[i6 >> 2] = i14;
  23018. i9 = _luaS_new(i8, i9) | 0;
  23019. HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] = i9;
  23020. HEAP32[i4 + 60 >> 2] = i10;
  23021. i9 = i4 + 64 | 0;
  23022. HEAP32[i9 >> 2] = i11;
  23023. HEAP32[i11 + 28 >> 2] = 0;
  23024. HEAP32[i11 + 16 >> 2] = 0;
  23025. HEAP32[i11 + 4 >> 2] = 0;
  23026. _luaX_setinput(i8, i4, i12, HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] | 0, i13);
  23027. i10 = HEAP32[i4 + 52 >> 2] | 0;
  23028. i13 = i4 + 48 | 0;
  23029. HEAP32[i6 + 8 >> 2] = HEAP32[i13 >> 2];
  23030. i8 = i6 + 12 | 0;
  23031. HEAP32[i8 >> 2] = i4;
  23032. HEAP32[i13 >> 2] = i6;
  23033. HEAP32[i6 + 20 >> 2] = 0;
  23034. HEAP32[i6 + 24 >> 2] = 0;
  23035. HEAP32[i6 + 28 >> 2] = -1;
  23036. HEAP32[i6 + 32 >> 2] = 0;
  23037. HEAP32[i6 + 36 >> 2] = 0;
  23038. i13 = i6 + 44 | 0;
  23039. HEAP32[i13 + 0 >> 2] = 0;
  23040. HEAP8[i13 + 4 | 0] = 0;
  23041. HEAP32[i6 + 40 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + 4 >> 2];
  23042. i9 = i6 + 16 | 0;
  23043. HEAP32[i9 >> 2] = 0;
  23044. i13 = HEAP32[i6 >> 2] | 0;
  23045. HEAP32[i13 + 36 >> 2] = HEAP32[i4 + 68 >> 2];
  23046. HEAP8[i13 + 78 | 0] = 2;
  23047. i13 = _luaH_new(i10) | 0;
  23048. HEAP32[i6 + 4 >> 2] = i13;
  23049. i14 = i10 + 8 | 0;
  23050. i15 = HEAP32[i14 >> 2] | 0;
  23051. HEAP32[i15 >> 2] = i13;
  23052. HEAP32[i15 + 8 >> 2] = 69;
  23053. i15 = (HEAP32[i14 >> 2] | 0) + 16 | 0;
  23054. HEAP32[i14 >> 2] = i15;
  23055. if (((HEAP32[i10 + 24 >> 2] | 0) - i15 | 0) < 16) {
  23056. _luaD_growstack(i10, 0);
  23057. }
  23058. HEAP8[i5 + 10 | 0] = 0;
  23059. HEAP8[i5 + 8 | 0] = HEAP8[i6 + 46 | 0] | 0;
  23060. i15 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
  23061. HEAP16[i5 + 4 >> 1] = HEAP32[i15 + 28 >> 2];
  23062. HEAP16[i5 + 6 >> 1] = HEAP32[i15 + 16 >> 2];
  23063. HEAP8[i5 + 9 | 0] = 0;
  23064. HEAP32[i5 >> 2] = HEAP32[i9 >> 2];
  23065. HEAP32[i9 >> 2] = i5;
  23066. HEAP8[(HEAP32[i6 >> 2] | 0) + 77 | 0] = 1;
  23067. HEAP32[i7 + 16 >> 2] = -1;
  23068. HEAP32[i7 + 20 >> 2] = -1;
  23069. HEAP32[i7 >> 2] = 7;
  23070. HEAP32[i7 + 8 >> 2] = 0;
  23071. _newupvalue(i6, HEAP32[i4 + 72 >> 2] | 0, i7) | 0;
  23072. _luaX_next(i4);
  23073. i5 = i4 + 16 | 0;
  23074. L7 : while (1) {
  23075. i6 = HEAP32[i5 >> 2] | 0;
  23076. switch (i6 | 0) {
  23077. case 277:
  23078. case 286:
  23079. case 262:
  23080. case 261:
  23081. case 260:
  23082. {
  23083. break L7;
  23084. }
  23085. default:
  23086. {}
  23087. }
  23088. _statement(i4);
  23089. if ((i6 | 0) == 274) {
  23090. i1 = 8;
  23091. break;
  23092. }
  23093. }
  23094. if ((i1 | 0) == 8) {
  23095. i6 = HEAP32[i5 >> 2] | 0;
  23096. }
  23097. if ((i6 | 0) == 286) {
  23098. _close_func(i4);
  23099. STACKTOP = i2;
  23100. return i3 | 0;
  23101. } else {
  23102. _error_expected(i4, 286);
  23103. }
  23104. return 0;
  23105. }
  23106. function _luaV_lessthan(i5, i4, i2) {
  23107. i5 = i5 | 0;
  23108. i4 = i4 | 0;
  23109. i2 = i2 | 0;
  23110. var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  23111. i1 = STACKTOP;
  23112. i6 = i4 + 8 | 0;
  23113. i7 = HEAP32[i6 >> 2] | 0;
  23114. if ((i7 | 0) == 3) {
  23115. if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
  23116. i9 = +HEAPF64[i4 >> 3] < +HEAPF64[i2 >> 3] | 0;
  23117. STACKTOP = i1;
  23118. return i9 | 0;
  23119. }
  23120. } else {
  23121. if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
  23122. i6 = HEAP32[i4 >> 2] | 0;
  23123. i4 = HEAP32[i2 >> 2] | 0;
  23124. i3 = i6 + 16 | 0;
  23125. i5 = i4 + 16 | 0;
  23126. i7 = _strcmp(i3, i5) | 0;
  23127. L8 : do {
  23128. if ((i7 | 0) == 0) {
  23129. i2 = HEAP32[i6 + 12 >> 2] | 0;
  23130. i4 = HEAP32[i4 + 12 >> 2] | 0;
  23131. while (1) {
  23132. i7 = _strlen(i3 | 0) | 0;
  23133. i6 = (i7 | 0) == (i2 | 0);
  23134. if ((i7 | 0) == (i4 | 0)) {
  23135. break;
  23136. }
  23137. if (i6) {
  23138. i7 = -1;
  23139. break L8;
  23140. }
  23141. i6 = i7 + 1 | 0;
  23142. i3 = i3 + i6 | 0;
  23143. i5 = i5 + i6 | 0;
  23144. i7 = _strcmp(i3, i5) | 0;
  23145. if ((i7 | 0) == 0) {
  23146. i2 = i2 - i6 | 0;
  23147. i4 = i4 - i6 | 0;
  23148. } else {
  23149. break L8;
  23150. }
  23151. }
  23152. i7 = i6 & 1 ^ 1;
  23153. }
  23154. } while (0);
  23155. i9 = i7 >>> 31;
  23156. STACKTOP = i1;
  23157. return i9 | 0;
  23158. }
  23159. }
  23160. i8 = i5 + 8 | 0;
  23161. i7 = HEAP32[i8 >> 2] | 0;
  23162. i9 = _luaT_gettmbyobj(i5, i4, 13) | 0;
  23163. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  23164. i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
  23165. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  23166. _luaG_ordererror(i5, i4, i2);
  23167. } else {
  23168. i3 = i9;
  23169. }
  23170. } else {
  23171. i3 = i9;
  23172. }
  23173. i10 = i5 + 28 | 0;
  23174. i9 = i7 - (HEAP32[i10 >> 2] | 0) | 0;
  23175. i11 = HEAP32[i8 >> 2] | 0;
  23176. HEAP32[i8 >> 2] = i11 + 16;
  23177. i13 = i3;
  23178. i12 = HEAP32[i13 + 4 >> 2] | 0;
  23179. i7 = i11;
  23180. HEAP32[i7 >> 2] = HEAP32[i13 >> 2];
  23181. HEAP32[i7 + 4 >> 2] = i12;
  23182. HEAP32[i11 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
  23183. i3 = HEAP32[i8 >> 2] | 0;
  23184. HEAP32[i8 >> 2] = i3 + 16;
  23185. i11 = i4;
  23186. i7 = HEAP32[i11 + 4 >> 2] | 0;
  23187. i4 = i3;
  23188. HEAP32[i4 >> 2] = HEAP32[i11 >> 2];
  23189. HEAP32[i4 + 4 >> 2] = i7;
  23190. HEAP32[i3 + 8 >> 2] = HEAP32[i6 >> 2];
  23191. i3 = HEAP32[i8 >> 2] | 0;
  23192. HEAP32[i8 >> 2] = i3 + 16;
  23193. i4 = i2;
  23194. i7 = HEAP32[i4 + 4 >> 2] | 0;
  23195. i6 = i3;
  23196. HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
  23197. HEAP32[i6 + 4 >> 2] = i7;
  23198. HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
  23199. _luaD_call(i5, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
  23200. i2 = HEAP32[i10 >> 2] | 0;
  23201. i3 = HEAP32[i8 >> 2] | 0;
  23202. i5 = i3 + -16 | 0;
  23203. HEAP32[i8 >> 2] = i5;
  23204. i6 = HEAP32[i5 + 4 >> 2] | 0;
  23205. i7 = i2 + i9 | 0;
  23206. HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
  23207. HEAP32[i7 + 4 >> 2] = i6;
  23208. HEAP32[i2 + (i9 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
  23209. i2 = HEAP32[i8 >> 2] | 0;
  23210. i3 = HEAP32[i2 + 8 >> 2] | 0;
  23211. if ((i3 | 0) != 0) {
  23212. if ((i3 | 0) == 1) {
  23213. i2 = (HEAP32[i2 >> 2] | 0) != 0;
  23214. } else {
  23215. i2 = 1;
  23216. }
  23217. } else {
  23218. i2 = 0;
  23219. }
  23220. i13 = i2 & 1;
  23221. STACKTOP = i1;
  23222. return i13 | 0;
  23223. }
  23224. function _discharge2reg(i4, i3, i1) {
  23225. i4 = i4 | 0;
  23226. i3 = i3 | 0;
  23227. i1 = i1 | 0;
  23228. var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
  23229. i2 = STACKTOP;
  23230. STACKTOP = STACKTOP + 32 | 0;
  23231. i9 = i2 + 16 | 0;
  23232. i8 = i2;
  23233. _luaK_dischargevars(i4, i3);
  23234. i10 = HEAP32[i3 >> 2] | 0;
  23235. L1 : do {
  23236. switch (i10 | 0) {
  23237. case 5:
  23238. {
  23239. d11 = +HEAPF64[i3 + 8 >> 3];
  23240. HEAPF64[i9 >> 3] = d11;
  23241. i5 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0;
  23242. HEAPF64[i8 >> 3] = d11;
  23243. HEAP32[i8 + 8 >> 2] = 3;
  23244. if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
  23245. i10 = i5 + 8 | 0;
  23246. i7 = HEAP32[i10 >> 2] | 0;
  23247. HEAP32[i10 >> 2] = i7 + 16;
  23248. i5 = _luaS_newlstr(i5, i9, 8) | 0;
  23249. HEAP32[i7 >> 2] = i5;
  23250. HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
  23251. i5 = _addk(i4, (HEAP32[i10 >> 2] | 0) + -16 | 0, i8) | 0;
  23252. HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
  23253. } else {
  23254. i5 = _addk(i4, i8, i8) | 0;
  23255. }
  23256. i6 = i1 << 6;
  23257. if ((i5 | 0) < 262144) {
  23258. _luaK_code(i4, i6 | i5 << 14 | 1) | 0;
  23259. break L1;
  23260. } else {
  23261. _luaK_code(i4, i6 | 2) | 0;
  23262. _luaK_code(i4, i5 << 6 | 39) | 0;
  23263. break L1;
  23264. }
  23265. }
  23266. case 2:
  23267. case 3:
  23268. {
  23269. _luaK_code(i4, i1 << 6 | ((i10 | 0) == 2) << 23 | 3) | 0;
  23270. break;
  23271. }
  23272. case 4:
  23273. {
  23274. i6 = HEAP32[i3 + 8 >> 2] | 0;
  23275. i5 = i1 << 6;
  23276. if ((i6 | 0) < 262144) {
  23277. _luaK_code(i4, i5 | i6 << 14 | 1) | 0;
  23278. break L1;
  23279. } else {
  23280. _luaK_code(i4, i5 | 2) | 0;
  23281. _luaK_code(i4, i6 << 6 | 39) | 0;
  23282. break L1;
  23283. }
  23284. }
  23285. case 1:
  23286. {
  23287. i9 = i1 + 1 | 0;
  23288. i8 = HEAP32[i4 + 20 >> 2] | 0;
  23289. do {
  23290. if ((i8 | 0) > (HEAP32[i4 + 24 >> 2] | 0) ? (i5 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (i8 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (i6 & 63 | 0) == 4) : 0) {
  23291. i10 = i6 >>> 6 & 255;
  23292. i8 = i10 + (i6 >>> 23) | 0;
  23293. if (!((i10 | 0) <= (i1 | 0) ? (i8 + 1 | 0) >= (i1 | 0) : 0)) {
  23294. i7 = 6;
  23295. }
  23296. if ((i7 | 0) == 6 ? (i10 | 0) < (i1 | 0) | (i10 | 0) > (i9 | 0) : 0) {
  23297. break;
  23298. }
  23299. i4 = (i10 | 0) < (i1 | 0) ? i10 : i1;
  23300. HEAP32[i5 >> 2] = i4 << 6 & 16320 | i6 & 8372287 | ((i8 | 0) > (i1 | 0) ? i8 : i1) - i4 << 23;
  23301. break L1;
  23302. }
  23303. } while (0);
  23304. _luaK_code(i4, i1 << 6 | 4) | 0;
  23305. break;
  23306. }
  23307. case 6:
  23308. {
  23309. i5 = HEAP32[i3 + 8 >> 2] | 0;
  23310. if ((i5 | 0) != (i1 | 0)) {
  23311. _luaK_code(i4, i5 << 23 | i1 << 6) | 0;
  23312. }
  23313. break;
  23314. }
  23315. case 11:
  23316. {
  23317. i10 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i3 + 8 >> 2] << 2) | 0;
  23318. HEAP32[i10 >> 2] = HEAP32[i10 >> 2] & -16321 | i1 << 6 & 16320;
  23319. break;
  23320. }
  23321. default:
  23322. {
  23323. STACKTOP = i2;
  23324. return;
  23325. }
  23326. }
  23327. } while (0);
  23328. HEAP32[i3 + 8 >> 2] = i1;
  23329. HEAP32[i3 >> 2] = 6;
  23330. STACKTOP = i2;
  23331. return;
  23332. }
  23333. function _unroll(i3, i4) {
  23334. i3 = i3 | 0;
  23335. i4 = i4 | 0;
  23336. var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
  23337. i9 = STACKTOP;
  23338. i11 = i3 + 16 | 0;
  23339. i13 = HEAP32[i11 >> 2] | 0;
  23340. i5 = i3 + 72 | 0;
  23341. if ((i13 | 0) == (i5 | 0)) {
  23342. STACKTOP = i9;
  23343. return;
  23344. }
  23345. i6 = i3 + 8 | 0;
  23346. i10 = i3 + 40 | 0;
  23347. i7 = i3 + 20 | 0;
  23348. i8 = i3 + 28 | 0;
  23349. i4 = i3 + 68 | 0;
  23350. do {
  23351. i12 = i13 + 18 | 0;
  23352. i14 = HEAP8[i12] | 0;
  23353. if ((i14 & 1) == 0) {
  23354. i14 = i14 & 255;
  23355. if ((i14 & 16 | 0) != 0) {
  23356. HEAP8[i12] = i14 & 239;
  23357. HEAP32[i4 >> 2] = HEAP32[i13 + 32 >> 2];
  23358. }
  23359. if ((HEAP16[i13 + 16 >> 1] | 0) == -1 ? (i2 = (HEAP32[i11 >> 2] | 0) + 4 | 0, i1 = HEAP32[i6 >> 2] | 0, (HEAP32[i2 >> 2] | 0) >>> 0 < i1 >>> 0) : 0) {
  23360. HEAP32[i2 >> 2] = i1;
  23361. }
  23362. i14 = HEAP8[i12] | 0;
  23363. if ((i14 & 32) == 0) {
  23364. HEAP8[i13 + 37 | 0] = 1;
  23365. }
  23366. HEAP8[i12] = i14 & 199 | 8;
  23367. i14 = FUNCTION_TABLE_ii[HEAP32[i13 + 28 >> 2] & 255](i3) | 0;
  23368. i14 = (HEAP32[i6 >> 2] | 0) + (0 - i14 << 4) | 0;
  23369. i13 = HEAP32[i11 >> 2] | 0;
  23370. i12 = HEAPU8[i10] | 0;
  23371. if ((i12 & 6 | 0) == 0) {
  23372. i15 = i13 + 8 | 0;
  23373. } else {
  23374. if ((i12 & 2 | 0) != 0) {
  23375. i14 = i14 - (HEAP32[i8 >> 2] | 0) | 0;
  23376. _luaD_hook(i3, 1, -1);
  23377. i14 = (HEAP32[i8 >> 2] | 0) + i14 | 0;
  23378. }
  23379. i15 = i13 + 8 | 0;
  23380. HEAP32[i7 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 28 >> 2];
  23381. }
  23382. i12 = HEAP32[i13 >> 2] | 0;
  23383. i13 = HEAP16[i13 + 16 >> 1] | 0;
  23384. HEAP32[i11 >> 2] = HEAP32[i15 >> 2];
  23385. L25 : do {
  23386. if (!(i13 << 16 >> 16 == 0)) {
  23387. i15 = i13 << 16 >> 16;
  23388. if (i14 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
  23389. i13 = i14;
  23390. i14 = i15;
  23391. i15 = i12;
  23392. while (1) {
  23393. i12 = i15 + 16 | 0;
  23394. i18 = i13;
  23395. i17 = HEAP32[i18 + 4 >> 2] | 0;
  23396. i16 = i15;
  23397. HEAP32[i16 >> 2] = HEAP32[i18 >> 2];
  23398. HEAP32[i16 + 4 >> 2] = i17;
  23399. HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
  23400. i14 = i14 + -1 | 0;
  23401. i13 = i13 + 16 | 0;
  23402. if ((i14 | 0) == 0) {
  23403. break L25;
  23404. }
  23405. if (i13 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
  23406. i15 = i12;
  23407. } else {
  23408. i13 = i14;
  23409. break;
  23410. }
  23411. }
  23412. } else {
  23413. i13 = i15;
  23414. }
  23415. if ((i13 | 0) > 0) {
  23416. i14 = i13;
  23417. i15 = i12;
  23418. while (1) {
  23419. i14 = i14 + -1 | 0;
  23420. HEAP32[i15 + 8 >> 2] = 0;
  23421. if ((i14 | 0) <= 0) {
  23422. break;
  23423. } else {
  23424. i15 = i15 + 16 | 0;
  23425. }
  23426. }
  23427. i12 = i12 + (i13 << 4) | 0;
  23428. }
  23429. }
  23430. } while (0);
  23431. HEAP32[i6 >> 2] = i12;
  23432. } else {
  23433. _luaV_finishOp(i3);
  23434. _luaV_execute(i3);
  23435. }
  23436. i13 = HEAP32[i11 >> 2] | 0;
  23437. } while ((i13 | 0) != (i5 | 0));
  23438. STACKTOP = i9;
  23439. return;
  23440. }
  23441. function _traverseephemeron(i1, i2) {
  23442. i1 = i1 | 0;
  23443. i2 = i2 | 0;
  23444. var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  23445. i3 = STACKTOP;
  23446. i11 = i2 + 16 | 0;
  23447. i9 = HEAP32[i11 >> 2] | 0;
  23448. i5 = i9 + (1 << (HEAPU8[i2 + 7 | 0] | 0) << 5) | 0;
  23449. i10 = i2 + 28 | 0;
  23450. i13 = HEAP32[i10 >> 2] | 0;
  23451. if ((i13 | 0) > 0) {
  23452. i9 = i2 + 12 | 0;
  23453. i12 = 0;
  23454. i8 = 0;
  23455. do {
  23456. i14 = HEAP32[i9 >> 2] | 0;
  23457. if ((HEAP32[i14 + (i12 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i7 = HEAP32[i14 + (i12 << 4) >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
  23458. _reallymarkobject(i1, i7);
  23459. i13 = HEAP32[i10 >> 2] | 0;
  23460. i8 = 1;
  23461. }
  23462. i12 = i12 + 1 | 0;
  23463. } while ((i12 | 0) < (i13 | 0));
  23464. i9 = HEAP32[i11 >> 2] | 0;
  23465. } else {
  23466. i8 = 0;
  23467. }
  23468. if (i9 >>> 0 < i5 >>> 0) {
  23469. i7 = 0;
  23470. i10 = 0;
  23471. do {
  23472. i11 = i9 + 8 | 0;
  23473. i12 = HEAP32[i11 >> 2] | 0;
  23474. i14 = i9 + 24 | 0;
  23475. i13 = HEAP32[i14 >> 2] | 0;
  23476. i15 = (i13 & 64 | 0) == 0;
  23477. L14 : do {
  23478. if ((i12 | 0) == 0) {
  23479. if (!i15 ? !((HEAP8[(HEAP32[i9 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
  23480. HEAP32[i14 >> 2] = 11;
  23481. }
  23482. } else {
  23483. do {
  23484. if (i15) {
  23485. i6 = i12;
  23486. i4 = 18;
  23487. } else {
  23488. i14 = HEAP32[i9 + 16 >> 2] | 0;
  23489. if ((i13 & 15 | 0) == 4) {
  23490. if ((i14 | 0) == 0) {
  23491. i6 = i12;
  23492. i4 = 18;
  23493. break;
  23494. }
  23495. if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
  23496. i6 = i12;
  23497. i4 = 18;
  23498. break;
  23499. }
  23500. _reallymarkobject(i1, i14);
  23501. i6 = HEAP32[i11 >> 2] | 0;
  23502. i4 = 18;
  23503. break;
  23504. }
  23505. i11 = (i12 & 64 | 0) == 0;
  23506. if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
  23507. if (i11) {
  23508. break L14;
  23509. } else {
  23510. break;
  23511. }
  23512. }
  23513. if (i11) {
  23514. i7 = 1;
  23515. break L14;
  23516. }
  23517. i7 = 1;
  23518. i10 = (HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0 ? i10 : 1;
  23519. break L14;
  23520. }
  23521. } while (0);
  23522. if ((i4 | 0) == 18 ? (i4 = 0, (i6 & 64 | 0) == 0) : 0) {
  23523. break;
  23524. }
  23525. i11 = HEAP32[i9 >> 2] | 0;
  23526. if (!((HEAP8[i11 + 5 | 0] & 3) == 0)) {
  23527. _reallymarkobject(i1, i11);
  23528. i8 = 1;
  23529. }
  23530. }
  23531. } while (0);
  23532. i9 = i9 + 32 | 0;
  23533. } while (i9 >>> 0 < i5 >>> 0);
  23534. if ((i10 | 0) != 0) {
  23535. i15 = i1 + 96 | 0;
  23536. HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
  23537. HEAP32[i15 >> 2] = i2;
  23538. i15 = i8;
  23539. STACKTOP = i3;
  23540. return i15 | 0;
  23541. }
  23542. if ((i7 | 0) != 0) {
  23543. i15 = i1 + 100 | 0;
  23544. HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
  23545. HEAP32[i15 >> 2] = i2;
  23546. i15 = i8;
  23547. STACKTOP = i3;
  23548. return i15 | 0;
  23549. }
  23550. }
  23551. i15 = i1 + 88 | 0;
  23552. HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
  23553. HEAP32[i15 >> 2] = i2;
  23554. i15 = i8;
  23555. STACKTOP = i3;
  23556. return i15 | 0;
  23557. }
  23558. function _luaV_gettable(i2, i7, i5, i1) {
  23559. i2 = i2 | 0;
  23560. i7 = i7 | 0;
  23561. i5 = i5 | 0;
  23562. i1 = i1 | 0;
  23563. var i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  23564. i6 = STACKTOP;
  23565. STACKTOP = STACKTOP + 16 | 0;
  23566. i4 = i6;
  23567. i8 = i2 + 12 | 0;
  23568. i3 = i7;
  23569. i10 = HEAP32[i7 + 8 >> 2] | 0;
  23570. i9 = 0;
  23571. while (1) {
  23572. i7 = i3 + 8 | 0;
  23573. if ((i10 | 0) != 69) {
  23574. i12 = _luaT_gettmbyobj(i2, i3, 0) | 0;
  23575. i10 = HEAP32[i12 + 8 >> 2] | 0;
  23576. if ((i10 | 0) == 0) {
  23577. i8 = 11;
  23578. break;
  23579. }
  23580. } else {
  23581. i12 = HEAP32[i3 >> 2] | 0;
  23582. i11 = _luaH_get(i12, i5) | 0;
  23583. i10 = i11 + 8 | 0;
  23584. if ((HEAP32[i10 >> 2] | 0) != 0) {
  23585. i8 = 9;
  23586. break;
  23587. }
  23588. i12 = HEAP32[i12 + 8 >> 2] | 0;
  23589. if ((i12 | 0) == 0) {
  23590. i8 = 9;
  23591. break;
  23592. }
  23593. if (!((HEAP8[i12 + 6 | 0] & 1) == 0)) {
  23594. i8 = 9;
  23595. break;
  23596. }
  23597. i12 = _luaT_gettm(i12, 0, HEAP32[(HEAP32[i8 >> 2] | 0) + 184 >> 2] | 0) | 0;
  23598. if ((i12 | 0) == 0) {
  23599. i8 = 9;
  23600. break;
  23601. }
  23602. i10 = HEAP32[i12 + 8 >> 2] | 0;
  23603. }
  23604. i9 = i9 + 1 | 0;
  23605. if ((i10 & 15 | 0) == 6) {
  23606. i8 = 13;
  23607. break;
  23608. }
  23609. if ((i9 | 0) < 100) {
  23610. i3 = i12;
  23611. } else {
  23612. i8 = 14;
  23613. break;
  23614. }
  23615. }
  23616. if ((i8 | 0) == 9) {
  23617. i9 = i11;
  23618. i11 = HEAP32[i9 + 4 >> 2] | 0;
  23619. i12 = i1;
  23620. HEAP32[i12 >> 2] = HEAP32[i9 >> 2];
  23621. HEAP32[i12 + 4 >> 2] = i11;
  23622. HEAP32[i1 + 8 >> 2] = HEAP32[i10 >> 2];
  23623. STACKTOP = i6;
  23624. return;
  23625. } else if ((i8 | 0) == 11) {
  23626. _luaG_typeerror(i2, i3, 8944);
  23627. } else if ((i8 | 0) == 13) {
  23628. i10 = i2 + 28 | 0;
  23629. i11 = i1 - (HEAP32[i10 >> 2] | 0) | 0;
  23630. i8 = i2 + 8 | 0;
  23631. i9 = HEAP32[i8 >> 2] | 0;
  23632. HEAP32[i8 >> 2] = i9 + 16;
  23633. i13 = i12;
  23634. i1 = HEAP32[i13 + 4 >> 2] | 0;
  23635. i4 = i9;
  23636. HEAP32[i4 >> 2] = HEAP32[i13 >> 2];
  23637. HEAP32[i4 + 4 >> 2] = i1;
  23638. HEAP32[i9 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
  23639. i12 = HEAP32[i8 >> 2] | 0;
  23640. HEAP32[i8 >> 2] = i12 + 16;
  23641. i9 = HEAP32[i3 + 4 >> 2] | 0;
  23642. i4 = i12;
  23643. HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
  23644. HEAP32[i4 + 4 >> 2] = i9;
  23645. HEAP32[i12 + 8 >> 2] = HEAP32[i7 >> 2];
  23646. i12 = HEAP32[i8 >> 2] | 0;
  23647. HEAP32[i8 >> 2] = i12 + 16;
  23648. i4 = i5;
  23649. i9 = HEAP32[i4 + 4 >> 2] | 0;
  23650. i7 = i12;
  23651. HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
  23652. HEAP32[i7 + 4 >> 2] = i9;
  23653. HEAP32[i12 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
  23654. _luaD_call(i2, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
  23655. i12 = HEAP32[i10 >> 2] | 0;
  23656. i10 = HEAP32[i8 >> 2] | 0;
  23657. i7 = i10 + -16 | 0;
  23658. HEAP32[i8 >> 2] = i7;
  23659. i8 = HEAP32[i7 + 4 >> 2] | 0;
  23660. i9 = i12 + i11 | 0;
  23661. HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
  23662. HEAP32[i9 + 4 >> 2] = i8;
  23663. HEAP32[i12 + (i11 + 8) >> 2] = HEAP32[i10 + -8 >> 2];
  23664. STACKTOP = i6;
  23665. return;
  23666. } else if ((i8 | 0) == 14) {
  23667. _luaG_runerror(i2, 8952, i4);
  23668. }
  23669. }
  23670. function _db_getinfo(i1) {
  23671. i1 = i1 | 0;
  23672. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  23673. i2 = STACKTOP;
  23674. STACKTOP = STACKTOP + 112 | 0;
  23675. i3 = i2;
  23676. if ((_lua_type(i1, 1) | 0) == 8) {
  23677. i4 = _lua_tothread(i1, 1) | 0;
  23678. i7 = 1;
  23679. } else {
  23680. i4 = i1;
  23681. i7 = 0;
  23682. }
  23683. i5 = i7 | 2;
  23684. i6 = _luaL_optlstring(i1, i5, 11784, 0) | 0;
  23685. i7 = i7 + 1 | 0;
  23686. do {
  23687. if ((_lua_isnumber(i1, i7) | 0) != 0) {
  23688. if ((_lua_getstack(i4, _lua_tointegerx(i1, i7, 0) | 0, i3) | 0) == 0) {
  23689. _lua_pushnil(i1);
  23690. i7 = 1;
  23691. STACKTOP = i2;
  23692. return i7 | 0;
  23693. }
  23694. } else {
  23695. if ((_lua_type(i1, i7) | 0) == 6) {
  23696. HEAP32[i3 >> 2] = i6;
  23697. _lua_pushfstring(i1, 11792, i3) | 0;
  23698. i6 = _lua_tolstring(i1, -1, 0) | 0;
  23699. _lua_pushvalue(i1, i7);
  23700. _lua_xmove(i1, i4, 1);
  23701. break;
  23702. }
  23703. i7 = _luaL_argerror(i1, i7, 11800) | 0;
  23704. STACKTOP = i2;
  23705. return i7 | 0;
  23706. }
  23707. } while (0);
  23708. if ((_lua_getinfo(i4, i6, i3) | 0) == 0) {
  23709. i7 = _luaL_argerror(i1, i5, 11832) | 0;
  23710. STACKTOP = i2;
  23711. return i7 | 0;
  23712. }
  23713. _lua_createtable(i1, 0, 2);
  23714. if ((_strchr(i6, 83) | 0) != 0) {
  23715. _lua_pushstring(i1, HEAP32[i3 + 16 >> 2] | 0) | 0;
  23716. _lua_setfield(i1, -2, 11848);
  23717. _lua_pushstring(i1, i3 + 36 | 0) | 0;
  23718. _lua_setfield(i1, -2, 11856);
  23719. _lua_pushinteger(i1, HEAP32[i3 + 24 >> 2] | 0);
  23720. _lua_setfield(i1, -2, 11872);
  23721. _lua_pushinteger(i1, HEAP32[i3 + 28 >> 2] | 0);
  23722. _lua_setfield(i1, -2, 11888);
  23723. _lua_pushstring(i1, HEAP32[i3 + 12 >> 2] | 0) | 0;
  23724. _lua_setfield(i1, -2, 11904);
  23725. }
  23726. if ((_strchr(i6, 108) | 0) != 0) {
  23727. _lua_pushinteger(i1, HEAP32[i3 + 20 >> 2] | 0);
  23728. _lua_setfield(i1, -2, 11912);
  23729. }
  23730. if ((_strchr(i6, 117) | 0) != 0) {
  23731. _lua_pushinteger(i1, HEAPU8[i3 + 32 | 0] | 0);
  23732. _lua_setfield(i1, -2, 11928);
  23733. _lua_pushinteger(i1, HEAPU8[i3 + 33 | 0] | 0);
  23734. _lua_setfield(i1, -2, 11936);
  23735. _lua_pushboolean(i1, HEAP8[i3 + 34 | 0] | 0);
  23736. _lua_setfield(i1, -2, 11944);
  23737. }
  23738. if ((_strchr(i6, 110) | 0) != 0) {
  23739. _lua_pushstring(i1, HEAP32[i3 + 4 >> 2] | 0) | 0;
  23740. _lua_setfield(i1, -2, 11960);
  23741. _lua_pushstring(i1, HEAP32[i3 + 8 >> 2] | 0) | 0;
  23742. _lua_setfield(i1, -2, 11968);
  23743. }
  23744. if ((_strchr(i6, 116) | 0) != 0) {
  23745. _lua_pushboolean(i1, HEAP8[i3 + 35 | 0] | 0);
  23746. _lua_setfield(i1, -2, 11984);
  23747. }
  23748. if ((_strchr(i6, 76) | 0) != 0) {
  23749. if ((i4 | 0) == (i1 | 0)) {
  23750. _lua_pushvalue(i1, -2);
  23751. _lua_remove(i1, -3);
  23752. } else {
  23753. _lua_xmove(i4, i1, 1);
  23754. }
  23755. _lua_setfield(i1, -2, 12e3);
  23756. }
  23757. if ((_strchr(i6, 102) | 0) == 0) {
  23758. i7 = 1;
  23759. STACKTOP = i2;
  23760. return i7 | 0;
  23761. }
  23762. if ((i4 | 0) == (i1 | 0)) {
  23763. _lua_pushvalue(i1, -2);
  23764. _lua_remove(i1, -3);
  23765. } else {
  23766. _lua_xmove(i4, i1, 1);
  23767. }
  23768. _lua_setfield(i1, -2, 12016);
  23769. i7 = 1;
  23770. STACKTOP = i2;
  23771. return i7 | 0;
  23772. }
  23773. function _luaL_traceback(i4, i1, i9, i7) {
  23774. i4 = i4 | 0;
  23775. i1 = i1 | 0;
  23776. i9 = i9 | 0;
  23777. i7 = i7 | 0;
  23778. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
  23779. i3 = STACKTOP;
  23780. STACKTOP = STACKTOP + 208 | 0;
  23781. i6 = i3;
  23782. i5 = i3 + 100 | 0;
  23783. i2 = _lua_gettop(i4) | 0;
  23784. i8 = 1;
  23785. i10 = 1;
  23786. while (1) {
  23787. if ((_lua_getstack(i1, i8, i6) | 0) == 0) {
  23788. break;
  23789. } else {
  23790. i10 = i8;
  23791. i8 = i8 << 1;
  23792. }
  23793. }
  23794. if ((i10 | 0) < (i8 | 0)) {
  23795. while (1) {
  23796. i11 = (i8 + i10 | 0) / 2 | 0;
  23797. i12 = (_lua_getstack(i1, i11, i6) | 0) == 0;
  23798. i8 = i12 ? i11 : i8;
  23799. i10 = i12 ? i10 : i11 + 1 | 0;
  23800. if ((i10 | 0) >= (i8 | 0)) {
  23801. i10 = i8;
  23802. break;
  23803. }
  23804. }
  23805. } else {
  23806. i10 = i8;
  23807. }
  23808. i8 = (i10 + -1 | 0) > 22 ? 12 : 0;
  23809. if ((i9 | 0) != 0) {
  23810. HEAP32[i6 >> 2] = i9;
  23811. _lua_pushfstring(i4, 944, i6) | 0;
  23812. }
  23813. _lua_pushlstring(i4, 952, 16) | 0;
  23814. if ((_lua_getstack(i1, i7, i5) | 0) == 0) {
  23815. i17 = _lua_gettop(i4) | 0;
  23816. i17 = i17 - i2 | 0;
  23817. _lua_concat(i4, i17);
  23818. STACKTOP = i3;
  23819. return;
  23820. }
  23821. i10 = i10 + -11 | 0;
  23822. i13 = i5 + 36 | 0;
  23823. i9 = i5 + 20 | 0;
  23824. i16 = i5 + 8 | 0;
  23825. i12 = i5 + 12 | 0;
  23826. i15 = i5 + 24 | 0;
  23827. i14 = i5 + 35 | 0;
  23828. i11 = i5 + 4 | 0;
  23829. do {
  23830. i7 = i7 + 1 | 0;
  23831. if ((i7 | 0) == (i8 | 0)) {
  23832. _lua_pushlstring(i4, 976, 5) | 0;
  23833. i7 = i10;
  23834. } else {
  23835. _lua_getinfo(i1, 984, i5) | 0;
  23836. HEAP32[i6 >> 2] = i13;
  23837. _lua_pushfstring(i4, 992, i6) | 0;
  23838. i17 = HEAP32[i9 >> 2] | 0;
  23839. if ((i17 | 0) > 0) {
  23840. HEAP32[i6 >> 2] = i17;
  23841. _lua_pushfstring(i4, 1e3, i6) | 0;
  23842. }
  23843. _lua_pushlstring(i4, 1008, 4) | 0;
  23844. do {
  23845. if ((HEAP8[HEAP32[i16 >> 2] | 0] | 0) == 0) {
  23846. i17 = HEAP8[HEAP32[i12 >> 2] | 0] | 0;
  23847. if (i17 << 24 >> 24 == 109) {
  23848. _lua_pushlstring(i4, 1800, 10) | 0;
  23849. break;
  23850. } else if (i17 << 24 >> 24 == 67) {
  23851. if ((_pushglobalfuncname(i4, i5) | 0) == 0) {
  23852. _lua_pushlstring(i4, 1112, 1) | 0;
  23853. break;
  23854. } else {
  23855. HEAP32[i6 >> 2] = _lua_tolstring(i4, -1, 0) | 0;
  23856. _lua_pushfstring(i4, 1784, i6) | 0;
  23857. _lua_remove(i4, -2);
  23858. break;
  23859. }
  23860. } else {
  23861. i17 = HEAP32[i15 >> 2] | 0;
  23862. HEAP32[i6 >> 2] = i13;
  23863. HEAP32[i6 + 4 >> 2] = i17;
  23864. _lua_pushfstring(i4, 1816, i6) | 0;
  23865. break;
  23866. }
  23867. } else {
  23868. HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
  23869. _lua_pushfstring(i4, 1784, i6) | 0;
  23870. }
  23871. } while (0);
  23872. if ((HEAP8[i14] | 0) != 0) {
  23873. _lua_pushlstring(i4, 1016, 20) | 0;
  23874. }
  23875. _lua_concat(i4, (_lua_gettop(i4) | 0) - i2 | 0);
  23876. }
  23877. } while ((_lua_getstack(i1, i7, i5) | 0) != 0);
  23878. i17 = _lua_gettop(i4) | 0;
  23879. i17 = i17 - i2 | 0;
  23880. _lua_concat(i4, i17);
  23881. STACKTOP = i3;
  23882. return;
  23883. }
  23884. function _luaK_exp2RK(i3, i1) {
  23885. i3 = i3 | 0;
  23886. i1 = i1 | 0;
  23887. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0;
  23888. i2 = STACKTOP;
  23889. STACKTOP = STACKTOP + 32 | 0;
  23890. i7 = i2 + 16 | 0;
  23891. i6 = i2;
  23892. i4 = i1 + 16 | 0;
  23893. i5 = i1 + 20 | 0;
  23894. i10 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0);
  23895. _luaK_dischargevars(i3, i1);
  23896. do {
  23897. if (!i10) {
  23898. if ((HEAP32[i1 >> 2] | 0) == 6) {
  23899. i10 = HEAP32[i1 + 8 >> 2] | 0;
  23900. if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
  23901. break;
  23902. }
  23903. if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
  23904. _exp2reg(i3, i1, i10);
  23905. break;
  23906. }
  23907. }
  23908. _luaK_exp2nextreg(i3, i1);
  23909. }
  23910. } while (0);
  23911. i10 = HEAP32[i1 >> 2] | 0;
  23912. switch (i10 | 0) {
  23913. case 4:
  23914. {
  23915. i8 = HEAP32[i1 + 8 >> 2] | 0;
  23916. i9 = 18;
  23917. break;
  23918. }
  23919. case 1:
  23920. case 3:
  23921. case 2:
  23922. {
  23923. if ((HEAP32[i3 + 32 >> 2] | 0) < 256) {
  23924. if ((i10 | 0) == 1) {
  23925. HEAP32[i6 + 8 >> 2] = 0;
  23926. HEAP32[i7 >> 2] = HEAP32[i3 + 4 >> 2];
  23927. HEAP32[i7 + 8 >> 2] = 69;
  23928. i3 = _addk(i3, i7, i6) | 0;
  23929. } else {
  23930. HEAP32[i7 >> 2] = (i10 | 0) == 2;
  23931. HEAP32[i7 + 8 >> 2] = 1;
  23932. i3 = _addk(i3, i7, i7) | 0;
  23933. }
  23934. HEAP32[i1 + 8 >> 2] = i3;
  23935. HEAP32[i1 >> 2] = 4;
  23936. i10 = i3 | 256;
  23937. STACKTOP = i2;
  23938. return i10 | 0;
  23939. }
  23940. break;
  23941. }
  23942. case 5:
  23943. {
  23944. i9 = i1 + 8 | 0;
  23945. d11 = +HEAPF64[i9 >> 3];
  23946. HEAPF64[i7 >> 3] = d11;
  23947. i8 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0;
  23948. HEAPF64[i6 >> 3] = d11;
  23949. HEAP32[i6 + 8 >> 2] = 3;
  23950. if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
  23951. i10 = i8 + 8 | 0;
  23952. i12 = HEAP32[i10 >> 2] | 0;
  23953. HEAP32[i10 >> 2] = i12 + 16;
  23954. i8 = _luaS_newlstr(i8, i7, 8) | 0;
  23955. HEAP32[i12 >> 2] = i8;
  23956. HEAP32[i12 + 8 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
  23957. i8 = _addk(i3, (HEAP32[i10 >> 2] | 0) + -16 | 0, i6) | 0;
  23958. HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
  23959. } else {
  23960. i8 = _addk(i3, i6, i6) | 0;
  23961. }
  23962. HEAP32[i9 >> 2] = i8;
  23963. HEAP32[i1 >> 2] = 4;
  23964. i9 = 18;
  23965. break;
  23966. }
  23967. default:
  23968. {}
  23969. }
  23970. if ((i9 | 0) == 18 ? (i8 | 0) < 256 : 0) {
  23971. i12 = i8 | 256;
  23972. STACKTOP = i2;
  23973. return i12 | 0;
  23974. }
  23975. _luaK_dischargevars(i3, i1);
  23976. if ((HEAP32[i1 >> 2] | 0) == 6) {
  23977. i7 = i1 + 8 | 0;
  23978. i6 = HEAP32[i7 >> 2] | 0;
  23979. if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
  23980. i12 = i6;
  23981. STACKTOP = i2;
  23982. return i12 | 0;
  23983. }
  23984. if ((i6 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
  23985. _exp2reg(i3, i1, i6);
  23986. i12 = HEAP32[i7 >> 2] | 0;
  23987. STACKTOP = i2;
  23988. return i12 | 0;
  23989. }
  23990. } else {
  23991. i7 = i1 + 8 | 0;
  23992. }
  23993. _luaK_exp2nextreg(i3, i1);
  23994. i12 = HEAP32[i7 >> 2] | 0;
  23995. STACKTOP = i2;
  23996. return i12 | 0;
  23997. }
  23998. function _os_date(i1) {
  23999. i1 = i1 | 0;
  24000. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
  24001. i2 = STACKTOP;
  24002. STACKTOP = STACKTOP + 1264 | 0;
  24003. i4 = i2;
  24004. i7 = i2 + 1048 | 0;
  24005. i6 = i2 + 1256 | 0;
  24006. i3 = i2 + 8 | 0;
  24007. i5 = i2 + 1056 | 0;
  24008. i12 = _luaL_optlstring(i1, 1, 6064, 0) | 0;
  24009. if ((_lua_type(i1, 2) | 0) < 1) {
  24010. i8 = _time(0) | 0;
  24011. } else {
  24012. i8 = ~~+_luaL_checknumber(i1, 2);
  24013. }
  24014. HEAP32[i7 >> 2] = i8;
  24015. if ((HEAP8[i12] | 0) == 33) {
  24016. i12 = i12 + 1 | 0;
  24017. i10 = _gmtime(i7 | 0) | 0;
  24018. } else {
  24019. i10 = _localtime(i7 | 0) | 0;
  24020. }
  24021. if ((i10 | 0) == 0) {
  24022. _lua_pushnil(i1);
  24023. STACKTOP = i2;
  24024. return 1;
  24025. }
  24026. if ((_strcmp(i12, 6072) | 0) == 0) {
  24027. _lua_createtable(i1, 0, 9);
  24028. _lua_pushinteger(i1, HEAP32[i10 >> 2] | 0);
  24029. _lua_setfield(i1, -2, 5864);
  24030. _lua_pushinteger(i1, HEAP32[i10 + 4 >> 2] | 0);
  24031. _lua_setfield(i1, -2, 5872);
  24032. _lua_pushinteger(i1, HEAP32[i10 + 8 >> 2] | 0);
  24033. _lua_setfield(i1, -2, 5880);
  24034. _lua_pushinteger(i1, HEAP32[i10 + 12 >> 2] | 0);
  24035. _lua_setfield(i1, -2, 5888);
  24036. _lua_pushinteger(i1, (HEAP32[i10 + 16 >> 2] | 0) + 1 | 0);
  24037. _lua_setfield(i1, -2, 5896);
  24038. _lua_pushinteger(i1, (HEAP32[i10 + 20 >> 2] | 0) + 1900 | 0);
  24039. _lua_setfield(i1, -2, 5904);
  24040. _lua_pushinteger(i1, (HEAP32[i10 + 24 >> 2] | 0) + 1 | 0);
  24041. _lua_setfield(i1, -2, 6080);
  24042. _lua_pushinteger(i1, (HEAP32[i10 + 28 >> 2] | 0) + 1 | 0);
  24043. _lua_setfield(i1, -2, 6088);
  24044. i3 = HEAP32[i10 + 32 >> 2] | 0;
  24045. if ((i3 | 0) < 0) {
  24046. STACKTOP = i2;
  24047. return 1;
  24048. }
  24049. _lua_pushboolean(i1, i3);
  24050. _lua_setfield(i1, -2, 5912);
  24051. STACKTOP = i2;
  24052. return 1;
  24053. }
  24054. HEAP8[i6] = 37;
  24055. _luaL_buffinit(i1, i3);
  24056. i11 = i3 + 8 | 0;
  24057. i9 = i3 + 4 | 0;
  24058. i8 = i6 + 1 | 0;
  24059. i7 = i6 + 2 | 0;
  24060. while (1) {
  24061. i14 = HEAP8[i12] | 0;
  24062. if (i14 << 24 >> 24 == 0) {
  24063. break;
  24064. } else if (!(i14 << 24 >> 24 == 37)) {
  24065. i13 = HEAP32[i11 >> 2] | 0;
  24066. if (!(i13 >>> 0 < (HEAP32[i9 >> 2] | 0) >>> 0)) {
  24067. _luaL_prepbuffsize(i3, 1) | 0;
  24068. i13 = HEAP32[i11 >> 2] | 0;
  24069. i14 = HEAP8[i12] | 0;
  24070. }
  24071. HEAP32[i11 >> 2] = i13 + 1;
  24072. HEAP8[(HEAP32[i3 >> 2] | 0) + i13 | 0] = i14;
  24073. i12 = i12 + 1 | 0;
  24074. continue;
  24075. }
  24076. i13 = i12 + 1 | 0;
  24077. i12 = i12 + 2 | 0;
  24078. i14 = HEAP8[i13] | 0;
  24079. if (!(i14 << 24 >> 24 == 0) ? (_memchr(6096, i14 << 24 >> 24, 23) | 0) != 0 : 0) {
  24080. HEAP8[i8] = i14;
  24081. HEAP8[i7] = 0;
  24082. } else {
  24083. HEAP32[i4 >> 2] = i13;
  24084. _luaL_argerror(i1, 1, _lua_pushfstring(i1, 6120, i4) | 0) | 0;
  24085. i12 = i13;
  24086. }
  24087. _luaL_addlstring(i3, i5, _strftime(i5 | 0, 200, i6 | 0, i10 | 0) | 0);
  24088. }
  24089. _luaL_pushresult(i3);
  24090. STACKTOP = i2;
  24091. return 1;
  24092. }
  24093. function _luaV_finishOp(i3) {
  24094. i3 = i3 | 0;
  24095. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  24096. i1 = STACKTOP;
  24097. i8 = HEAP32[i3 + 16 >> 2] | 0;
  24098. i7 = i8 + 24 | 0;
  24099. i4 = HEAP32[i7 >> 2] | 0;
  24100. i5 = i8 + 28 | 0;
  24101. i2 = HEAP32[(HEAP32[i5 >> 2] | 0) + -4 >> 2] | 0;
  24102. i6 = i2 & 63;
  24103. switch (i6 | 0) {
  24104. case 34:
  24105. {
  24106. HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
  24107. STACKTOP = i1;
  24108. return;
  24109. }
  24110. case 24:
  24111. case 25:
  24112. case 26:
  24113. {
  24114. i7 = i3 + 8 | 0;
  24115. i8 = HEAP32[i7 >> 2] | 0;
  24116. i9 = HEAP32[i8 + -8 >> 2] | 0;
  24117. if ((i9 | 0) != 0) {
  24118. if ((i9 | 0) == 1) {
  24119. i9 = (HEAP32[i8 + -16 >> 2] | 0) == 0;
  24120. } else {
  24121. i9 = 0;
  24122. }
  24123. } else {
  24124. i9 = 1;
  24125. }
  24126. i9 = i9 & 1;
  24127. i10 = i9 ^ 1;
  24128. HEAP32[i7 >> 2] = i8 + -16;
  24129. if ((i6 | 0) == 26) {
  24130. i8 = (HEAP32[(_luaT_gettmbyobj(i3, i4 + (i2 >>> 23 << 4) | 0, 14) | 0) + 8 >> 2] | 0) == 0;
  24131. i10 = i8 ? i9 : i10;
  24132. }
  24133. if ((i10 | 0) == (i2 >>> 6 & 255 | 0)) {
  24134. STACKTOP = i1;
  24135. return;
  24136. }
  24137. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 4;
  24138. STACKTOP = i1;
  24139. return;
  24140. }
  24141. case 22:
  24142. {
  24143. i5 = i3 + 8 | 0;
  24144. i10 = HEAP32[i5 >> 2] | 0;
  24145. i6 = i10 + -32 | 0;
  24146. i4 = i6 - (i4 + (i2 >>> 23 << 4)) | 0;
  24147. i12 = i10 + -16 | 0;
  24148. i11 = HEAP32[i12 + 4 >> 2] | 0;
  24149. i9 = i10 + -48 | 0;
  24150. HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
  24151. HEAP32[i9 + 4 >> 2] = i11;
  24152. HEAP32[i10 + -40 >> 2] = HEAP32[i10 + -8 >> 2];
  24153. if ((i4 | 0) > 16) {
  24154. HEAP32[i5 >> 2] = i6;
  24155. _luaV_concat(i3, i4 >> 4);
  24156. }
  24157. i10 = HEAP32[i5 >> 2] | 0;
  24158. i11 = HEAP32[i7 >> 2] | 0;
  24159. i12 = i2 >>> 6 & 255;
  24160. i6 = i10 + -16 | 0;
  24161. i7 = HEAP32[i6 + 4 >> 2] | 0;
  24162. i9 = i11 + (i12 << 4) | 0;
  24163. HEAP32[i9 >> 2] = HEAP32[i6 >> 2];
  24164. HEAP32[i9 + 4 >> 2] = i7;
  24165. HEAP32[i11 + (i12 << 4) + 8 >> 2] = HEAP32[i10 + -8 >> 2];
  24166. HEAP32[i5 >> 2] = HEAP32[i8 + 4 >> 2];
  24167. STACKTOP = i1;
  24168. return;
  24169. }
  24170. case 12:
  24171. case 7:
  24172. case 6:
  24173. case 21:
  24174. case 19:
  24175. case 18:
  24176. case 17:
  24177. case 16:
  24178. case 15:
  24179. case 14:
  24180. case 13:
  24181. {
  24182. i12 = i3 + 8 | 0;
  24183. i11 = HEAP32[i12 >> 2] | 0;
  24184. i8 = i11 + -16 | 0;
  24185. HEAP32[i12 >> 2] = i8;
  24186. i12 = i2 >>> 6 & 255;
  24187. i9 = HEAP32[i8 + 4 >> 2] | 0;
  24188. i10 = i4 + (i12 << 4) | 0;
  24189. HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
  24190. HEAP32[i10 + 4 >> 2] = i9;
  24191. HEAP32[i4 + (i12 << 4) + 8 >> 2] = HEAP32[i11 + -8 >> 2];
  24192. STACKTOP = i1;
  24193. return;
  24194. }
  24195. case 29:
  24196. {
  24197. if ((i2 & 8372224 | 0) == 0) {
  24198. STACKTOP = i1;
  24199. return;
  24200. }
  24201. HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
  24202. STACKTOP = i1;
  24203. return;
  24204. }
  24205. default:
  24206. {
  24207. STACKTOP = i1;
  24208. return;
  24209. }
  24210. }
  24211. }
  24212. function _auxsort(i2, i4, i5) {
  24213. i2 = i2 | 0;
  24214. i4 = i4 | 0;
  24215. i5 = i5 | 0;
  24216. var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  24217. i1 = STACKTOP;
  24218. STACKTOP = STACKTOP + 16 | 0;
  24219. i3 = i1;
  24220. if ((i4 | 0) >= (i5 | 0)) {
  24221. STACKTOP = i1;
  24222. return;
  24223. }
  24224. while (1) {
  24225. _lua_rawgeti(i2, 1, i4);
  24226. _lua_rawgeti(i2, 1, i5);
  24227. if ((_sort_comp(i2, -1, -2) | 0) == 0) {
  24228. _lua_settop(i2, -3);
  24229. } else {
  24230. _lua_rawseti(i2, 1, i4);
  24231. _lua_rawseti(i2, 1, i5);
  24232. }
  24233. i6 = i5 - i4 | 0;
  24234. if ((i6 | 0) == 1) {
  24235. i2 = 24;
  24236. break;
  24237. }
  24238. i7 = (i5 + i4 | 0) / 2 | 0;
  24239. _lua_rawgeti(i2, 1, i7);
  24240. _lua_rawgeti(i2, 1, i4);
  24241. do {
  24242. if ((_sort_comp(i2, -2, -1) | 0) == 0) {
  24243. _lua_settop(i2, -2);
  24244. _lua_rawgeti(i2, 1, i5);
  24245. if ((_sort_comp(i2, -1, -2) | 0) == 0) {
  24246. _lua_settop(i2, -3);
  24247. break;
  24248. } else {
  24249. _lua_rawseti(i2, 1, i7);
  24250. _lua_rawseti(i2, 1, i5);
  24251. break;
  24252. }
  24253. } else {
  24254. _lua_rawseti(i2, 1, i7);
  24255. _lua_rawseti(i2, 1, i4);
  24256. }
  24257. } while (0);
  24258. if ((i6 | 0) == 2) {
  24259. i2 = 24;
  24260. break;
  24261. }
  24262. _lua_rawgeti(i2, 1, i7);
  24263. _lua_pushvalue(i2, -1);
  24264. i6 = i5 + -1 | 0;
  24265. _lua_rawgeti(i2, 1, i6);
  24266. _lua_rawseti(i2, 1, i7);
  24267. _lua_rawseti(i2, 1, i6);
  24268. i7 = i4;
  24269. i9 = i6;
  24270. while (1) {
  24271. i8 = i7 + 1 | 0;
  24272. _lua_rawgeti(i2, 1, i8);
  24273. if ((_sort_comp(i2, -1, -2) | 0) != 0) {
  24274. i7 = i8;
  24275. while (1) {
  24276. if ((i7 | 0) >= (i5 | 0)) {
  24277. _luaL_error(i2, 8216, i3) | 0;
  24278. }
  24279. _lua_settop(i2, -2);
  24280. i8 = i7 + 1 | 0;
  24281. _lua_rawgeti(i2, 1, i8);
  24282. if ((_sort_comp(i2, -1, -2) | 0) == 0) {
  24283. break;
  24284. } else {
  24285. i7 = i8;
  24286. }
  24287. }
  24288. }
  24289. i10 = i9 + -1 | 0;
  24290. _lua_rawgeti(i2, 1, i10);
  24291. if ((_sort_comp(i2, -3, -1) | 0) != 0) {
  24292. i9 = i10;
  24293. while (1) {
  24294. if ((i9 | 0) <= (i4 | 0)) {
  24295. _luaL_error(i2, 8216, i3) | 0;
  24296. }
  24297. _lua_settop(i2, -2);
  24298. i10 = i9 + -1 | 0;
  24299. _lua_rawgeti(i2, 1, i10);
  24300. if ((_sort_comp(i2, -3, -1) | 0) == 0) {
  24301. break;
  24302. } else {
  24303. i9 = i10;
  24304. }
  24305. }
  24306. }
  24307. if ((i9 | 0) <= (i8 | 0)) {
  24308. break;
  24309. }
  24310. _lua_rawseti(i2, 1, i8);
  24311. _lua_rawseti(i2, 1, i10);
  24312. i7 = i8;
  24313. i9 = i10;
  24314. }
  24315. _lua_settop(i2, -4);
  24316. _lua_rawgeti(i2, 1, i6);
  24317. _lua_rawgeti(i2, 1, i8);
  24318. _lua_rawseti(i2, 1, i6);
  24319. _lua_rawseti(i2, 1, i8);
  24320. i8 = (i8 - i4 | 0) < (i5 - i8 | 0);
  24321. i9 = i7 + 2 | 0;
  24322. i10 = i8 ? i9 : i4;
  24323. i6 = i8 ? i5 : i7;
  24324. _auxsort(i2, i8 ? i4 : i9, i8 ? i7 : i5);
  24325. if ((i10 | 0) < (i6 | 0)) {
  24326. i4 = i10;
  24327. i5 = i6;
  24328. } else {
  24329. i2 = 24;
  24330. break;
  24331. }
  24332. }
  24333. if ((i2 | 0) == 24) {
  24334. STACKTOP = i1;
  24335. return;
  24336. }
  24337. }
  24338. function _skip_sep(i3) {
  24339. i3 = i3 | 0;
  24340. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  24341. i1 = STACKTOP;
  24342. i2 = HEAP32[i3 >> 2] | 0;
  24343. i4 = i3 + 60 | 0;
  24344. i10 = HEAP32[i4 >> 2] | 0;
  24345. i8 = i10 + 4 | 0;
  24346. i11 = HEAP32[i8 >> 2] | 0;
  24347. i7 = i10 + 8 | 0;
  24348. i5 = HEAP32[i7 >> 2] | 0;
  24349. do {
  24350. if ((i11 + 1 | 0) >>> 0 > i5 >>> 0) {
  24351. if (i5 >>> 0 > 2147483645) {
  24352. _lexerror(i3, 12368, 0);
  24353. }
  24354. i12 = i5 << 1;
  24355. i11 = HEAP32[i3 + 52 >> 2] | 0;
  24356. if ((i12 | 0) == -2) {
  24357. _luaM_toobig(i11);
  24358. } else {
  24359. i9 = _luaM_realloc_(i11, HEAP32[i10 >> 2] | 0, i5, i12) | 0;
  24360. HEAP32[i10 >> 2] = i9;
  24361. HEAP32[i7 >> 2] = i12;
  24362. i6 = HEAP32[i8 >> 2] | 0;
  24363. break;
  24364. }
  24365. } else {
  24366. i6 = i11;
  24367. i9 = HEAP32[i10 >> 2] | 0;
  24368. }
  24369. } while (0);
  24370. HEAP32[i8 >> 2] = i6 + 1;
  24371. HEAP8[i9 + i6 | 0] = i2;
  24372. i5 = i3 + 56 | 0;
  24373. i6 = HEAP32[i5 >> 2] | 0;
  24374. i13 = HEAP32[i6 >> 2] | 0;
  24375. HEAP32[i6 >> 2] = i13 + -1;
  24376. if ((i13 | 0) == 0) {
  24377. i6 = _luaZ_fill(i6) | 0;
  24378. } else {
  24379. i13 = i6 + 4 | 0;
  24380. i6 = HEAP32[i13 >> 2] | 0;
  24381. HEAP32[i13 >> 2] = i6 + 1;
  24382. i6 = HEAPU8[i6] | 0;
  24383. }
  24384. HEAP32[i3 >> 2] = i6;
  24385. if ((i6 | 0) != 61) {
  24386. i12 = i6;
  24387. i13 = 0;
  24388. i12 = (i12 | 0) != (i2 | 0);
  24389. i12 = i12 << 31 >> 31;
  24390. i13 = i12 ^ i13;
  24391. STACKTOP = i1;
  24392. return i13 | 0;
  24393. }
  24394. i6 = i3 + 52 | 0;
  24395. i7 = 0;
  24396. while (1) {
  24397. i9 = HEAP32[i4 >> 2] | 0;
  24398. i8 = i9 + 4 | 0;
  24399. i10 = HEAP32[i8 >> 2] | 0;
  24400. i11 = i9 + 8 | 0;
  24401. i12 = HEAP32[i11 >> 2] | 0;
  24402. if ((i10 + 1 | 0) >>> 0 > i12 >>> 0) {
  24403. if (i12 >>> 0 > 2147483645) {
  24404. i4 = 16;
  24405. break;
  24406. }
  24407. i13 = i12 << 1;
  24408. i10 = HEAP32[i6 >> 2] | 0;
  24409. if ((i13 | 0) == -2) {
  24410. i4 = 18;
  24411. break;
  24412. }
  24413. i12 = _luaM_realloc_(i10, HEAP32[i9 >> 2] | 0, i12, i13) | 0;
  24414. HEAP32[i9 >> 2] = i12;
  24415. HEAP32[i11 >> 2] = i13;
  24416. i10 = HEAP32[i8 >> 2] | 0;
  24417. i9 = i12;
  24418. } else {
  24419. i9 = HEAP32[i9 >> 2] | 0;
  24420. }
  24421. HEAP32[i8 >> 2] = i10 + 1;
  24422. HEAP8[i9 + i10 | 0] = 61;
  24423. i8 = HEAP32[i5 >> 2] | 0;
  24424. i13 = HEAP32[i8 >> 2] | 0;
  24425. HEAP32[i8 >> 2] = i13 + -1;
  24426. if ((i13 | 0) == 0) {
  24427. i8 = _luaZ_fill(i8) | 0;
  24428. } else {
  24429. i13 = i8 + 4 | 0;
  24430. i8 = HEAP32[i13 >> 2] | 0;
  24431. HEAP32[i13 >> 2] = i8 + 1;
  24432. i8 = HEAPU8[i8] | 0;
  24433. }
  24434. HEAP32[i3 >> 2] = i8;
  24435. i7 = i7 + 1 | 0;
  24436. if ((i8 | 0) != 61) {
  24437. i4 = 24;
  24438. break;
  24439. }
  24440. }
  24441. if ((i4 | 0) == 16) {
  24442. _lexerror(i3, 12368, 0);
  24443. } else if ((i4 | 0) == 18) {
  24444. _luaM_toobig(i10);
  24445. } else if ((i4 | 0) == 24) {
  24446. i13 = (i8 | 0) != (i2 | 0);
  24447. i13 = i13 << 31 >> 31;
  24448. i13 = i13 ^ i7;
  24449. STACKTOP = i1;
  24450. return i13 | 0;
  24451. }
  24452. return 0;
  24453. }
  24454. function _luaV_arith(i8, i2, i3, i5, i4) {
  24455. i8 = i8 | 0;
  24456. i2 = i2 | 0;
  24457. i3 = i3 | 0;
  24458. i5 = i5 | 0;
  24459. i4 = i4 | 0;
  24460. var i1 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
  24461. i1 = STACKTOP;
  24462. STACKTOP = STACKTOP + 32 | 0;
  24463. i9 = i1 + 24 | 0;
  24464. i13 = i1 + 16 | 0;
  24465. i12 = i1;
  24466. i6 = i3 + 8 | 0;
  24467. i11 = HEAP32[i6 >> 2] | 0;
  24468. if ((i11 | 0) != 3) {
  24469. if ((i11 & 15 | 0) == 4 ? (i11 = HEAP32[i3 >> 2] | 0, (_luaO_str2d(i11 + 16 | 0, HEAP32[i11 + 12 >> 2] | 0, i13) | 0) != 0) : 0) {
  24470. HEAPF64[i12 >> 3] = +HEAPF64[i13 >> 3];
  24471. HEAP32[i12 + 8 >> 2] = 3;
  24472. i10 = 5;
  24473. }
  24474. } else {
  24475. i12 = i3;
  24476. i10 = 5;
  24477. }
  24478. do {
  24479. if ((i10 | 0) == 5) {
  24480. i10 = HEAP32[i5 + 8 >> 2] | 0;
  24481. if ((i10 | 0) == 3) {
  24482. if ((i5 | 0) == 0) {
  24483. break;
  24484. }
  24485. d14 = +HEAPF64[i5 >> 3];
  24486. } else {
  24487. if ((i10 & 15 | 0) != 4) {
  24488. break;
  24489. }
  24490. i13 = HEAP32[i5 >> 2] | 0;
  24491. if ((_luaO_str2d(i13 + 16 | 0, HEAP32[i13 + 12 >> 2] | 0, i9) | 0) == 0) {
  24492. break;
  24493. }
  24494. d14 = +HEAPF64[i9 >> 3];
  24495. }
  24496. HEAPF64[i2 >> 3] = +_luaO_arith(i4 + -6 | 0, +HEAPF64[i12 >> 3], d14);
  24497. HEAP32[i2 + 8 >> 2] = 3;
  24498. STACKTOP = i1;
  24499. return;
  24500. }
  24501. } while (0);
  24502. i9 = _luaT_gettmbyobj(i8, i3, i4) | 0;
  24503. if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
  24504. i4 = _luaT_gettmbyobj(i8, i5, i4) | 0;
  24505. if ((HEAP32[i4 + 8 >> 2] | 0) == 0) {
  24506. _luaG_aritherror(i8, i3, i5);
  24507. } else {
  24508. i7 = i4;
  24509. }
  24510. } else {
  24511. i7 = i9;
  24512. }
  24513. i12 = i8 + 28 | 0;
  24514. i13 = i2 - (HEAP32[i12 >> 2] | 0) | 0;
  24515. i9 = i8 + 8 | 0;
  24516. i11 = HEAP32[i9 >> 2] | 0;
  24517. HEAP32[i9 >> 2] = i11 + 16;
  24518. i2 = i7;
  24519. i10 = HEAP32[i2 + 4 >> 2] | 0;
  24520. i4 = i11;
  24521. HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
  24522. HEAP32[i4 + 4 >> 2] = i10;
  24523. HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
  24524. i11 = HEAP32[i9 >> 2] | 0;
  24525. HEAP32[i9 >> 2] = i11 + 16;
  24526. i4 = i3;
  24527. i10 = HEAP32[i4 + 4 >> 2] | 0;
  24528. i7 = i11;
  24529. HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
  24530. HEAP32[i7 + 4 >> 2] = i10;
  24531. HEAP32[i11 + 8 >> 2] = HEAP32[i6 >> 2];
  24532. i11 = HEAP32[i9 >> 2] | 0;
  24533. HEAP32[i9 >> 2] = i11 + 16;
  24534. i6 = i5;
  24535. i7 = HEAP32[i6 + 4 >> 2] | 0;
  24536. i10 = i11;
  24537. HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
  24538. HEAP32[i10 + 4 >> 2] = i7;
  24539. HEAP32[i11 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
  24540. _luaD_call(i8, (HEAP32[i9 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i8 + 16 >> 2] | 0) + 18 | 0] & 1);
  24541. i12 = HEAP32[i12 >> 2] | 0;
  24542. i11 = HEAP32[i9 >> 2] | 0;
  24543. i8 = i11 + -16 | 0;
  24544. HEAP32[i9 >> 2] = i8;
  24545. i9 = HEAP32[i8 + 4 >> 2] | 0;
  24546. i10 = i12 + i13 | 0;
  24547. HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
  24548. HEAP32[i10 + 4 >> 2] = i9;
  24549. HEAP32[i12 + (i13 + 8) >> 2] = HEAP32[i11 + -8 >> 2];
  24550. STACKTOP = i1;
  24551. return;
  24552. }
  24553. function _new_localvar(i1, i8) {
  24554. i1 = i1 | 0;
  24555. i8 = i8 | 0;
  24556. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  24557. i3 = STACKTOP;
  24558. STACKTOP = STACKTOP + 16 | 0;
  24559. i4 = i3;
  24560. i5 = HEAP32[i1 + 48 >> 2] | 0;
  24561. i2 = HEAP32[i1 + 64 >> 2] | 0;
  24562. i7 = HEAP32[i5 >> 2] | 0;
  24563. i10 = i7 + 60 | 0;
  24564. i11 = HEAP32[i10 >> 2] | 0;
  24565. i6 = i5 + 44 | 0;
  24566. if ((HEAP16[i6 >> 1] | 0) < (i11 | 0)) {
  24567. i9 = i7 + 24 | 0;
  24568. i10 = i11;
  24569. } else {
  24570. i9 = i7 + 24 | 0;
  24571. HEAP32[i9 >> 2] = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 12, 32767, 6496) | 0;
  24572. i10 = HEAP32[i10 >> 2] | 0;
  24573. }
  24574. if ((i11 | 0) < (i10 | 0)) {
  24575. i12 = i11;
  24576. while (1) {
  24577. i11 = i12 + 1 | 0;
  24578. HEAP32[(HEAP32[i9 >> 2] | 0) + (i12 * 12 | 0) >> 2] = 0;
  24579. if ((i11 | 0) == (i10 | 0)) {
  24580. break;
  24581. } else {
  24582. i12 = i11;
  24583. }
  24584. }
  24585. }
  24586. i10 = HEAP16[i6 >> 1] | 0;
  24587. HEAP32[(HEAP32[i9 >> 2] | 0) + ((i10 << 16 >> 16) * 12 | 0) >> 2] = i8;
  24588. if (!((HEAP8[i8 + 5 | 0] & 3) == 0) ? !((HEAP8[i7 + 5 | 0] & 4) == 0) : 0) {
  24589. _luaC_barrier_(HEAP32[i1 + 52 >> 2] | 0, i7, i8);
  24590. i7 = HEAP16[i6 >> 1] | 0;
  24591. } else {
  24592. i7 = i10;
  24593. }
  24594. HEAP16[i6 >> 1] = i7 + 1 << 16 >> 16;
  24595. i6 = i2 + 4 | 0;
  24596. i8 = HEAP32[i6 >> 2] | 0;
  24597. if ((i8 + 1 - (HEAP32[i5 + 40 >> 2] | 0) | 0) > 200) {
  24598. i10 = i5 + 12 | 0;
  24599. i9 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
  24600. i5 = HEAP32[(HEAP32[i5 >> 2] | 0) + 64 >> 2] | 0;
  24601. if ((i5 | 0) == 0) {
  24602. i11 = 6552;
  24603. HEAP32[i4 >> 2] = 6496;
  24604. i12 = i4 + 4 | 0;
  24605. HEAP32[i12 >> 2] = 200;
  24606. i12 = i4 + 8 | 0;
  24607. HEAP32[i12 >> 2] = i11;
  24608. i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
  24609. i11 = HEAP32[i10 >> 2] | 0;
  24610. _luaX_syntaxerror(i11, i12);
  24611. }
  24612. HEAP32[i4 >> 2] = i5;
  24613. i11 = _luaO_pushfstring(i9, 6568, i4) | 0;
  24614. HEAP32[i4 >> 2] = 6496;
  24615. i12 = i4 + 4 | 0;
  24616. HEAP32[i12 >> 2] = 200;
  24617. i12 = i4 + 8 | 0;
  24618. HEAP32[i12 >> 2] = i11;
  24619. i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
  24620. i11 = HEAP32[i10 >> 2] | 0;
  24621. _luaX_syntaxerror(i11, i12);
  24622. }
  24623. i4 = i2 + 8 | 0;
  24624. if ((i8 + 2 | 0) > (HEAP32[i4 >> 2] | 0)) {
  24625. i11 = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i2 >> 2] | 0, i4, 2, 2147483645, 6496) | 0;
  24626. HEAP32[i2 >> 2] = i11;
  24627. i12 = HEAP32[i6 >> 2] | 0;
  24628. i10 = i12 + 1 | 0;
  24629. HEAP32[i6 >> 2] = i10;
  24630. i12 = i11 + (i12 << 1) | 0;
  24631. HEAP16[i12 >> 1] = i7;
  24632. STACKTOP = i3;
  24633. return;
  24634. } else {
  24635. i12 = i8;
  24636. i11 = HEAP32[i2 >> 2] | 0;
  24637. i10 = i12 + 1 | 0;
  24638. HEAP32[i6 >> 2] = i10;
  24639. i12 = i11 + (i12 << 1) | 0;
  24640. HEAP16[i12 >> 1] = i7;
  24641. STACKTOP = i3;
  24642. return;
  24643. }
  24644. }
  24645. function _luaC_fullgc(i1, i5) {
  24646. i1 = i1 | 0;
  24647. i5 = i5 | 0;
  24648. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
  24649. i2 = STACKTOP;
  24650. i4 = i1 + 12 | 0;
  24651. i3 = HEAP32[i4 >> 2] | 0;
  24652. i6 = i3 + 62 | 0;
  24653. i8 = HEAP8[i6] | 0;
  24654. i5 = (i5 | 0) != 0;
  24655. if (!i5) {
  24656. HEAP8[i6] = 0;
  24657. i9 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
  24658. i10 = HEAP32[i9 >> 2] | 0;
  24659. if ((i10 | 0) != 0) {
  24660. do {
  24661. i11 = i10 + 5 | 0;
  24662. HEAP8[i11] = HEAP8[i11] & 191;
  24663. _GCTM(i1, 1);
  24664. i10 = HEAP32[i9 >> 2] | 0;
  24665. } while ((i10 | 0) != 0);
  24666. if ((HEAP8[i6] | 0) == 2) {
  24667. i9 = 7;
  24668. } else {
  24669. i9 = 6;
  24670. }
  24671. } else {
  24672. i9 = 6;
  24673. }
  24674. } else {
  24675. HEAP8[i6] = 1;
  24676. i9 = 6;
  24677. }
  24678. if ((i9 | 0) == 6 ? (HEAPU8[i3 + 61 | 0] | 0) < 2 : 0) {
  24679. i9 = 7;
  24680. }
  24681. if ((i9 | 0) == 7) {
  24682. i9 = HEAP32[i4 >> 2] | 0;
  24683. HEAP8[i9 + 61 | 0] = 2;
  24684. HEAP32[i9 + 64 >> 2] = 0;
  24685. i10 = i9 + 72 | 0;
  24686. do {
  24687. i11 = _sweeplist(i1, i10, 1) | 0;
  24688. } while ((i11 | 0) == (i10 | 0));
  24689. HEAP32[i9 + 80 >> 2] = i11;
  24690. i11 = i9 + 68 | 0;
  24691. do {
  24692. i10 = _sweeplist(i1, i11, 1) | 0;
  24693. } while ((i10 | 0) == (i11 | 0));
  24694. HEAP32[i9 + 76 >> 2] = i10;
  24695. }
  24696. i11 = HEAP32[i4 >> 2] | 0;
  24697. i9 = i11 + 61 | 0;
  24698. if ((HEAP8[i9] | 0) == 5) {
  24699. i9 = 5;
  24700. } else {
  24701. do {
  24702. _singlestep(i1) | 0;
  24703. } while ((HEAP8[i9] | 0) != 5);
  24704. i9 = HEAP32[i4 >> 2] | 0;
  24705. i11 = i9;
  24706. i9 = HEAP8[i9 + 61 | 0] | 0;
  24707. }
  24708. i10 = i11 + 61 | 0;
  24709. if ((1 << (i9 & 255) & -33 | 0) == 0) {
  24710. do {
  24711. _singlestep(i1) | 0;
  24712. } while ((1 << HEAPU8[i10] & -33 | 0) == 0);
  24713. i9 = HEAP32[i4 >> 2] | 0;
  24714. i11 = i9;
  24715. i9 = HEAP8[i9 + 61 | 0] | 0;
  24716. }
  24717. i10 = i11 + 61 | 0;
  24718. if (!(i9 << 24 >> 24 == 5)) {
  24719. do {
  24720. _singlestep(i1) | 0;
  24721. } while ((HEAP8[i10] | 0) != 5);
  24722. }
  24723. if (i8 << 24 >> 24 == 2 ? (i7 = (HEAP32[i4 >> 2] | 0) + 61 | 0, (HEAP8[i7] | 0) != 0) : 0) {
  24724. do {
  24725. _singlestep(i1) | 0;
  24726. } while ((HEAP8[i7] | 0) != 0);
  24727. }
  24728. HEAP8[i6] = i8;
  24729. i6 = HEAP32[i3 + 8 >> 2] | 0;
  24730. i7 = HEAP32[i3 + 12 >> 2] | 0;
  24731. i8 = (i7 + i6 | 0) / 100 | 0;
  24732. i9 = HEAP32[i3 + 156 >> 2] | 0;
  24733. if ((i9 | 0) < (2147483644 / (i8 | 0) | 0 | 0)) {
  24734. i8 = Math_imul(i9, i8) | 0;
  24735. } else {
  24736. i8 = 2147483644;
  24737. }
  24738. _luaE_setdebt(i3, i6 - i8 + i7 | 0);
  24739. if (i5) {
  24740. STACKTOP = i2;
  24741. return;
  24742. }
  24743. i3 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
  24744. i4 = HEAP32[i3 >> 2] | 0;
  24745. if ((i4 | 0) == 0) {
  24746. STACKTOP = i2;
  24747. return;
  24748. }
  24749. do {
  24750. i11 = i4 + 5 | 0;
  24751. HEAP8[i11] = HEAP8[i11] & 191;
  24752. _GCTM(i1, 1);
  24753. i4 = HEAP32[i3 >> 2] | 0;
  24754. } while ((i4 | 0) != 0);
  24755. STACKTOP = i2;
  24756. return;
  24757. }
  24758. function _scanexp(i3, i6) {
  24759. i3 = i3 | 0;
  24760. i6 = i6 | 0;
  24761. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  24762. i1 = STACKTOP;
  24763. i2 = i3 + 4 | 0;
  24764. i5 = HEAP32[i2 >> 2] | 0;
  24765. i4 = i3 + 100 | 0;
  24766. if (i5 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
  24767. HEAP32[i2 >> 2] = i5 + 1;
  24768. i8 = HEAPU8[i5] | 0;
  24769. } else {
  24770. i8 = ___shgetc(i3) | 0;
  24771. }
  24772. if ((i8 | 0) == 43 | (i8 | 0) == 45) {
  24773. i5 = (i8 | 0) == 45 | 0;
  24774. i7 = HEAP32[i2 >> 2] | 0;
  24775. if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
  24776. HEAP32[i2 >> 2] = i7 + 1;
  24777. i8 = HEAPU8[i7] | 0;
  24778. } else {
  24779. i8 = ___shgetc(i3) | 0;
  24780. }
  24781. if (!((i8 + -48 | 0) >>> 0 < 10 | (i6 | 0) == 0) ? (HEAP32[i4 >> 2] | 0) != 0 : 0) {
  24782. HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
  24783. }
  24784. } else {
  24785. i5 = 0;
  24786. }
  24787. if ((i8 + -48 | 0) >>> 0 > 9) {
  24788. if ((HEAP32[i4 >> 2] | 0) == 0) {
  24789. i7 = -2147483648;
  24790. i8 = 0;
  24791. tempRet0 = i7;
  24792. STACKTOP = i1;
  24793. return i8 | 0;
  24794. }
  24795. HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
  24796. i7 = -2147483648;
  24797. i8 = 0;
  24798. tempRet0 = i7;
  24799. STACKTOP = i1;
  24800. return i8 | 0;
  24801. } else {
  24802. i6 = 0;
  24803. }
  24804. while (1) {
  24805. i6 = i8 + -48 + i6 | 0;
  24806. i7 = HEAP32[i2 >> 2] | 0;
  24807. if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
  24808. HEAP32[i2 >> 2] = i7 + 1;
  24809. i8 = HEAPU8[i7] | 0;
  24810. } else {
  24811. i8 = ___shgetc(i3) | 0;
  24812. }
  24813. if (!((i8 + -48 | 0) >>> 0 < 10 & (i6 | 0) < 214748364)) {
  24814. break;
  24815. }
  24816. i6 = i6 * 10 | 0;
  24817. }
  24818. i7 = ((i6 | 0) < 0) << 31 >> 31;
  24819. if ((i8 + -48 | 0) >>> 0 < 10) {
  24820. do {
  24821. i7 = ___muldi3(i6 | 0, i7 | 0, 10, 0) | 0;
  24822. i6 = tempRet0;
  24823. i8 = _i64Add(i8 | 0, ((i8 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0;
  24824. i6 = _i64Add(i8 | 0, tempRet0 | 0, i7 | 0, i6 | 0) | 0;
  24825. i7 = tempRet0;
  24826. i8 = HEAP32[i2 >> 2] | 0;
  24827. if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
  24828. HEAP32[i2 >> 2] = i8 + 1;
  24829. i8 = HEAPU8[i8] | 0;
  24830. } else {
  24831. i8 = ___shgetc(i3) | 0;
  24832. }
  24833. } while ((i8 + -48 | 0) >>> 0 < 10 & ((i7 | 0) < 21474836 | (i7 | 0) == 21474836 & i6 >>> 0 < 2061584302));
  24834. }
  24835. if ((i8 + -48 | 0) >>> 0 < 10) {
  24836. do {
  24837. i8 = HEAP32[i2 >> 2] | 0;
  24838. if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
  24839. HEAP32[i2 >> 2] = i8 + 1;
  24840. i8 = HEAPU8[i8] | 0;
  24841. } else {
  24842. i8 = ___shgetc(i3) | 0;
  24843. }
  24844. } while ((i8 + -48 | 0) >>> 0 < 10);
  24845. }
  24846. if ((HEAP32[i4 >> 2] | 0) != 0) {
  24847. HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
  24848. }
  24849. i3 = (i5 | 0) != 0;
  24850. i2 = _i64Subtract(0, 0, i6 | 0, i7 | 0) | 0;
  24851. i4 = i3 ? tempRet0 : i7;
  24852. i8 = i3 ? i2 : i6;
  24853. tempRet0 = i4;
  24854. STACKTOP = i1;
  24855. return i8 | 0;
  24856. }
  24857. function _sweeplist(i3, i8, i9) {
  24858. i3 = i3 | 0;
  24859. i8 = i8 | 0;
  24860. i9 = i9 | 0;
  24861. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0, i12 = 0;
  24862. i1 = STACKTOP;
  24863. i5 = i3 + 12 | 0;
  24864. i7 = HEAP32[i5 >> 2] | 0;
  24865. i6 = HEAPU8[i7 + 60 | 0] | 0;
  24866. i2 = i6 ^ 3;
  24867. i7 = (HEAP8[i7 + 62 | 0] | 0) == 2;
  24868. i4 = i7 ? 255 : 184;
  24869. i6 = i7 ? 64 : i6 & 3;
  24870. i7 = i7 ? 64 : 0;
  24871. i10 = HEAP32[i8 >> 2] | 0;
  24872. L1 : do {
  24873. if ((i10 | 0) == 0) {
  24874. i10 = 0;
  24875. } else {
  24876. i11 = i9;
  24877. L2 : while (1) {
  24878. i9 = i11 + -1 | 0;
  24879. if ((i11 | 0) == 0) {
  24880. break L1;
  24881. }
  24882. i11 = i10 + 5 | 0;
  24883. i12 = HEAPU8[i11] | 0;
  24884. L5 : do {
  24885. if (((i12 ^ 3) & i2 | 0) == 0) {
  24886. HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
  24887. switch (HEAPU8[i10 + 4 | 0] | 0) {
  24888. case 4:
  24889. {
  24890. i12 = (HEAP32[i5 >> 2] | 0) + 28 | 0;
  24891. HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + -1;
  24892. break;
  24893. }
  24894. case 38:
  24895. {
  24896. _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 4) + 16 | 0, 0) | 0;
  24897. break L5;
  24898. }
  24899. case 6:
  24900. {
  24901. _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 2) + 16 | 0, 0) | 0;
  24902. break L5;
  24903. }
  24904. case 20:
  24905. {
  24906. break;
  24907. }
  24908. case 5:
  24909. {
  24910. _luaH_free(i3, i10);
  24911. break L5;
  24912. }
  24913. case 10:
  24914. {
  24915. _luaF_freeupval(i3, i10);
  24916. break L5;
  24917. }
  24918. case 8:
  24919. {
  24920. _luaE_freethread(i3, i10);
  24921. break L5;
  24922. }
  24923. case 9:
  24924. {
  24925. _luaF_freeproto(i3, i10);
  24926. break L5;
  24927. }
  24928. case 7:
  24929. {
  24930. _luaM_realloc_(i3, i10, (HEAP32[i10 + 16 >> 2] | 0) + 24 | 0, 0) | 0;
  24931. break L5;
  24932. }
  24933. default:
  24934. {
  24935. break L5;
  24936. }
  24937. }
  24938. _luaM_realloc_(i3, i10, (HEAP32[i10 + 12 >> 2] | 0) + 17 | 0, 0) | 0;
  24939. } else {
  24940. if ((i12 & i7 | 0) != 0) {
  24941. i2 = 0;
  24942. break L2;
  24943. }
  24944. if (((HEAP8[i10 + 4 | 0] | 0) == 8 ? (HEAP32[i10 + 28 >> 2] | 0) != 0 : 0) ? (_sweeplist(i3, i10 + 56 | 0, -3) | 0, _luaE_freeCI(i10), (HEAP8[(HEAP32[i5 >> 2] | 0) + 62 | 0] | 0) != 1) : 0) {
  24945. _luaD_shrinkstack(i10);
  24946. }
  24947. HEAP8[i11] = i12 & i4 | i6;
  24948. i8 = i10;
  24949. }
  24950. } while (0);
  24951. i10 = HEAP32[i8 >> 2] | 0;
  24952. if ((i10 | 0) == 0) {
  24953. i10 = 0;
  24954. break L1;
  24955. } else {
  24956. i11 = i9;
  24957. }
  24958. }
  24959. STACKTOP = i1;
  24960. return i2 | 0;
  24961. }
  24962. } while (0);
  24963. i12 = (i10 | 0) == 0 ? 0 : i8;
  24964. STACKTOP = i1;
  24965. return i12 | 0;
  24966. }
  24967. function _resume(i1, i6) {
  24968. i1 = i1 | 0;
  24969. i6 = i6 | 0;
  24970. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  24971. i2 = STACKTOP;
  24972. i3 = i1 + 16 | 0;
  24973. i5 = HEAP32[i3 >> 2] | 0;
  24974. if ((HEAPU16[i1 + 38 >> 1] | 0) > 199) {
  24975. _resume_error(i1, 2240, i6);
  24976. }
  24977. i4 = i1 + 6 | 0;
  24978. i7 = HEAP8[i4] | 0;
  24979. if (i7 << 24 >> 24 == 0) {
  24980. if ((i5 | 0) != (i1 + 72 | 0)) {
  24981. _resume_error(i1, 2448, i6);
  24982. }
  24983. if ((_luaD_precall(i1, i6 + -16 | 0, -1) | 0) != 0) {
  24984. STACKTOP = i2;
  24985. return;
  24986. }
  24987. _luaV_execute(i1);
  24988. STACKTOP = i2;
  24989. return;
  24990. } else if (i7 << 24 >> 24 == 1) {
  24991. HEAP8[i4] = 0;
  24992. i4 = i1 + 28 | 0;
  24993. HEAP32[i5 >> 2] = (HEAP32[i4 >> 2] | 0) + (HEAP32[i5 + 20 >> 2] | 0);
  24994. i8 = i5 + 18 | 0;
  24995. i7 = HEAP8[i8] | 0;
  24996. if ((i7 & 1) == 0) {
  24997. i9 = HEAP32[i5 + 28 >> 2] | 0;
  24998. if ((i9 | 0) != 0) {
  24999. HEAP8[i5 + 37 | 0] = 1;
  25000. HEAP8[i8] = i7 & 255 | 8;
  25001. i6 = FUNCTION_TABLE_ii[i9 & 255](i1) | 0;
  25002. i6 = (HEAP32[i1 + 8 >> 2] | 0) + (0 - i6 << 4) | 0;
  25003. }
  25004. i5 = HEAP32[i3 >> 2] | 0;
  25005. i7 = HEAPU8[i1 + 40 | 0] | 0;
  25006. if ((i7 & 6 | 0) == 0) {
  25007. i7 = i5 + 8 | 0;
  25008. } else {
  25009. if ((i7 & 2 | 0) != 0) {
  25010. i6 = i6 - (HEAP32[i4 >> 2] | 0) | 0;
  25011. _luaD_hook(i1, 1, -1);
  25012. i6 = (HEAP32[i4 >> 2] | 0) + i6 | 0;
  25013. }
  25014. i7 = i5 + 8 | 0;
  25015. HEAP32[i1 + 20 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2];
  25016. }
  25017. i4 = HEAP32[i5 >> 2] | 0;
  25018. i5 = HEAP16[i5 + 16 >> 1] | 0;
  25019. HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
  25020. i3 = i1 + 8 | 0;
  25021. L27 : do {
  25022. if (!(i5 << 16 >> 16 == 0)) {
  25023. i5 = i5 << 16 >> 16;
  25024. while (1) {
  25025. if (!(i6 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0)) {
  25026. break;
  25027. }
  25028. i7 = i4 + 16 | 0;
  25029. i10 = i6;
  25030. i8 = HEAP32[i10 + 4 >> 2] | 0;
  25031. i9 = i4;
  25032. HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
  25033. HEAP32[i9 + 4 >> 2] = i8;
  25034. HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
  25035. i5 = i5 + -1 | 0;
  25036. if ((i5 | 0) == 0) {
  25037. i4 = i7;
  25038. break L27;
  25039. }
  25040. i6 = i6 + 16 | 0;
  25041. i4 = i7;
  25042. }
  25043. if ((i5 | 0) > 0) {
  25044. i7 = i5;
  25045. i6 = i4;
  25046. while (1) {
  25047. i7 = i7 + -1 | 0;
  25048. HEAP32[i6 + 8 >> 2] = 0;
  25049. if ((i7 | 0) <= 0) {
  25050. break;
  25051. } else {
  25052. i6 = i6 + 16 | 0;
  25053. }
  25054. }
  25055. i4 = i4 + (i5 << 4) | 0;
  25056. }
  25057. }
  25058. } while (0);
  25059. HEAP32[i3 >> 2] = i4;
  25060. } else {
  25061. _luaV_execute(i1);
  25062. }
  25063. _unroll(i1, 0);
  25064. STACKTOP = i2;
  25065. return;
  25066. } else {
  25067. _resume_error(i1, 2488, i6);
  25068. }
  25069. }
  25070. function _lua_setupvalue(i1, i5, i3) {
  25071. i1 = i1 | 0;
  25072. i5 = i5 | 0;
  25073. i3 = i3 | 0;
  25074. var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  25075. i2 = STACKTOP;
  25076. i6 = HEAP32[i1 + 16 >> 2] | 0;
  25077. do {
  25078. if ((i5 | 0) <= 0) {
  25079. if (!((i5 | 0) < -1000999)) {
  25080. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  25081. break;
  25082. }
  25083. if ((i5 | 0) == -1001e3) {
  25084. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  25085. break;
  25086. }
  25087. i5 = -1001e3 - i5 | 0;
  25088. i6 = HEAP32[i6 >> 2] | 0;
  25089. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  25090. i5 = i4 + (i5 + -1 << 4) + 16 | 0;
  25091. } else {
  25092. i5 = 5192;
  25093. }
  25094. } else {
  25095. i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
  25096. i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  25097. }
  25098. } while (0);
  25099. i4 = HEAP32[i5 + 8 >> 2] & 63;
  25100. do {
  25101. if ((i4 | 0) == 6) {
  25102. i5 = HEAP32[i5 >> 2] | 0;
  25103. i4 = HEAP32[i5 + 12 >> 2] | 0;
  25104. if ((i3 | 0) <= 0) {
  25105. i6 = 0;
  25106. STACKTOP = i2;
  25107. return i6 | 0;
  25108. }
  25109. if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
  25110. i6 = 0;
  25111. STACKTOP = i2;
  25112. return i6 | 0;
  25113. }
  25114. i6 = i3 + -1 | 0;
  25115. i3 = HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0;
  25116. i5 = HEAP32[i3 + 8 >> 2] | 0;
  25117. i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
  25118. if ((i4 | 0) == 0) {
  25119. i4 = 936;
  25120. } else {
  25121. i4 = i4 + 16 | 0;
  25122. }
  25123. } else if ((i4 | 0) == 38) {
  25124. i6 = HEAP32[i5 >> 2] | 0;
  25125. if ((i3 | 0) <= 0) {
  25126. i6 = 0;
  25127. STACKTOP = i2;
  25128. return i6 | 0;
  25129. }
  25130. if ((HEAPU8[i6 + 6 | 0] | 0 | 0) >= (i3 | 0)) {
  25131. i4 = 936;
  25132. i5 = i6 + (i3 + -1 << 4) + 16 | 0;
  25133. i3 = i6;
  25134. break;
  25135. } else {
  25136. i6 = 0;
  25137. STACKTOP = i2;
  25138. return i6 | 0;
  25139. }
  25140. } else {
  25141. i6 = 0;
  25142. STACKTOP = i2;
  25143. return i6 | 0;
  25144. }
  25145. } while (0);
  25146. i6 = i1 + 8 | 0;
  25147. i7 = HEAP32[i6 >> 2] | 0;
  25148. i10 = i7 + -16 | 0;
  25149. HEAP32[i6 >> 2] = i10;
  25150. i9 = HEAP32[i10 + 4 >> 2] | 0;
  25151. i8 = i5;
  25152. HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
  25153. HEAP32[i8 + 4 >> 2] = i9;
  25154. HEAP32[i5 + 8 >> 2] = HEAP32[i7 + -8 >> 2];
  25155. i5 = HEAP32[i6 >> 2] | 0;
  25156. if ((HEAP32[i5 + 8 >> 2] & 64 | 0) == 0) {
  25157. i10 = i4;
  25158. STACKTOP = i2;
  25159. return i10 | 0;
  25160. }
  25161. i5 = HEAP32[i5 >> 2] | 0;
  25162. if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
  25163. i10 = i4;
  25164. STACKTOP = i2;
  25165. return i10 | 0;
  25166. }
  25167. if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
  25168. i10 = i4;
  25169. STACKTOP = i2;
  25170. return i10 | 0;
  25171. }
  25172. _luaC_barrier_(i1, i3, i5);
  25173. i10 = i4;
  25174. STACKTOP = i2;
  25175. return i10 | 0;
  25176. }
  25177. function _luaC_forcestep(i2) {
  25178. i2 = i2 | 0;
  25179. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  25180. i1 = STACKTOP;
  25181. i3 = HEAP32[i2 + 12 >> 2] | 0;
  25182. do {
  25183. if ((HEAP8[i3 + 62 | 0] | 0) == 2) {
  25184. i4 = i3 + 20 | 0;
  25185. i6 = HEAP32[i4 >> 2] | 0;
  25186. do {
  25187. if ((i6 | 0) != 0) {
  25188. i5 = i3 + 61 | 0;
  25189. if ((HEAP8[i5] | 0) != 5) {
  25190. do {
  25191. _singlestep(i2) | 0;
  25192. } while ((HEAP8[i5] | 0) != 5);
  25193. }
  25194. HEAP8[i5] = 0;
  25195. i5 = HEAP32[i3 + 8 >> 2] | 0;
  25196. i7 = HEAP32[i3 + 12 >> 2] | 0;
  25197. if ((i7 + i5 | 0) >>> 0 > (Math_imul(HEAP32[i3 + 160 >> 2] | 0, (i6 >>> 0) / 100 | 0) | 0) >>> 0) {
  25198. HEAP32[i4 >> 2] = 0;
  25199. break;
  25200. } else {
  25201. HEAP32[i4 >> 2] = i6;
  25202. break;
  25203. }
  25204. } else {
  25205. _luaC_fullgc(i2, 0);
  25206. i5 = HEAP32[i3 + 8 >> 2] | 0;
  25207. i7 = HEAP32[i3 + 12 >> 2] | 0;
  25208. HEAP32[i4 >> 2] = i7 + i5;
  25209. }
  25210. } while (0);
  25211. i4 = i5 + i7 | 0;
  25212. i5 = (i4 | 0) / 100 | 0;
  25213. i6 = HEAP32[i3 + 156 >> 2] | 0;
  25214. if ((i6 | 0) < (2147483644 / (i5 | 0) | 0 | 0)) {
  25215. i5 = Math_imul(i6, i5) | 0;
  25216. } else {
  25217. i5 = 2147483644;
  25218. }
  25219. _luaE_setdebt(i3, i4 - i5 | 0);
  25220. i5 = i3 + 61 | 0;
  25221. } else {
  25222. i4 = i3 + 12 | 0;
  25223. i5 = HEAP32[i3 + 164 >> 2] | 0;
  25224. i7 = (i5 | 0) < 40 ? 40 : i5;
  25225. i5 = ((HEAP32[i4 >> 2] | 0) / 200 | 0) + 1 | 0;
  25226. if ((i5 | 0) < (2147483644 / (i7 | 0) | 0 | 0)) {
  25227. i8 = Math_imul(i5, i7) | 0;
  25228. } else {
  25229. i8 = 2147483644;
  25230. }
  25231. i5 = i3 + 61 | 0;
  25232. do {
  25233. i8 = i8 - (_singlestep(i2) | 0) | 0;
  25234. i9 = (HEAP8[i5] | 0) == 5;
  25235. if (!((i8 | 0) > -1600)) {
  25236. i6 = 17;
  25237. break;
  25238. }
  25239. } while (!i9);
  25240. if ((i6 | 0) == 17 ? !i9 : 0) {
  25241. _luaE_setdebt(i3, ((i8 | 0) / (i7 | 0) | 0) * 200 | 0);
  25242. break;
  25243. }
  25244. i6 = (HEAP32[i3 + 20 >> 2] | 0) / 100 | 0;
  25245. i7 = HEAP32[i3 + 156 >> 2] | 0;
  25246. if ((i7 | 0) < (2147483644 / (i6 | 0) | 0 | 0)) {
  25247. i6 = Math_imul(i7, i6) | 0;
  25248. } else {
  25249. i6 = 2147483644;
  25250. }
  25251. _luaE_setdebt(i3, (HEAP32[i3 + 8 >> 2] | 0) - i6 + (HEAP32[i4 >> 2] | 0) | 0);
  25252. }
  25253. } while (0);
  25254. i3 = i3 + 104 | 0;
  25255. if ((HEAP32[i3 >> 2] | 0) == 0) {
  25256. STACKTOP = i1;
  25257. return;
  25258. } else {
  25259. i4 = 0;
  25260. }
  25261. while (1) {
  25262. if ((i4 | 0) >= 4 ? (HEAP8[i5] | 0) != 5 : 0) {
  25263. i6 = 26;
  25264. break;
  25265. }
  25266. _GCTM(i2, 1);
  25267. if ((HEAP32[i3 >> 2] | 0) == 0) {
  25268. i6 = 26;
  25269. break;
  25270. } else {
  25271. i4 = i4 + 1 | 0;
  25272. }
  25273. }
  25274. if ((i6 | 0) == 26) {
  25275. STACKTOP = i1;
  25276. return;
  25277. }
  25278. }
  25279. function _luaL_loadfilex(i1, i9, i7) {
  25280. i1 = i1 | 0;
  25281. i9 = i9 | 0;
  25282. i7 = i7 | 0;
  25283. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0;
  25284. i5 = STACKTOP;
  25285. STACKTOP = STACKTOP + 1056 | 0;
  25286. i3 = i5;
  25287. i6 = i5 + 16 | 0;
  25288. i8 = i5 + 12 | 0;
  25289. i2 = (_lua_gettop(i1) | 0) + 1 | 0;
  25290. i4 = (i9 | 0) == 0;
  25291. if (!i4) {
  25292. HEAP32[i3 >> 2] = i9;
  25293. _lua_pushfstring(i1, 1304, i3) | 0;
  25294. i10 = _fopen(i9 | 0, 1312) | 0;
  25295. HEAP32[i6 + 4 >> 2] = i10;
  25296. if ((i10 | 0) == 0) {
  25297. i10 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
  25298. i9 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
  25299. HEAP32[i3 >> 2] = 1320;
  25300. HEAP32[i3 + 4 >> 2] = i9;
  25301. HEAP32[i3 + 8 >> 2] = i10;
  25302. _lua_pushfstring(i1, 1720, i3) | 0;
  25303. _lua_remove(i1, i2);
  25304. i10 = 7;
  25305. STACKTOP = i5;
  25306. return i10 | 0;
  25307. }
  25308. } else {
  25309. _lua_pushlstring(i1, 1296, 6) | 0;
  25310. HEAP32[i6 + 4 >> 2] = HEAP32[_stdin >> 2];
  25311. }
  25312. if ((_skipcomment(i6, i8) | 0) != 0) {
  25313. i10 = HEAP32[i6 >> 2] | 0;
  25314. HEAP32[i6 >> 2] = i10 + 1;
  25315. HEAP8[i6 + i10 + 8 | 0] = 10;
  25316. }
  25317. i10 = HEAP32[i8 >> 2] | 0;
  25318. do {
  25319. if (!((i10 | 0) != 27 | i4)) {
  25320. i11 = i6 + 4 | 0;
  25321. i10 = _freopen(i9 | 0, 1328, HEAP32[i11 >> 2] | 0) | 0;
  25322. HEAP32[i11 >> 2] = i10;
  25323. if ((i10 | 0) != 0) {
  25324. _skipcomment(i6, i8) | 0;
  25325. i10 = HEAP32[i8 >> 2] | 0;
  25326. break;
  25327. }
  25328. i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
  25329. i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
  25330. HEAP32[i3 >> 2] = 1336;
  25331. HEAP32[i3 + 4 >> 2] = i10;
  25332. HEAP32[i3 + 8 >> 2] = i11;
  25333. _lua_pushfstring(i1, 1720, i3) | 0;
  25334. _lua_remove(i1, i2);
  25335. i11 = 7;
  25336. STACKTOP = i5;
  25337. return i11 | 0;
  25338. }
  25339. } while (0);
  25340. if (!((i10 | 0) == -1)) {
  25341. i11 = HEAP32[i6 >> 2] | 0;
  25342. HEAP32[i6 >> 2] = i11 + 1;
  25343. HEAP8[i6 + i11 + 8 | 0] = i10;
  25344. }
  25345. i7 = _lua_load(i1, 1, i6, _lua_tolstring(i1, -1, 0) | 0, i7) | 0;
  25346. i8 = HEAP32[i6 + 4 >> 2] | 0;
  25347. i6 = _ferror(i8 | 0) | 0;
  25348. if (!i4) {
  25349. _fclose(i8 | 0) | 0;
  25350. }
  25351. if ((i6 | 0) == 0) {
  25352. _lua_remove(i1, i2);
  25353. i11 = i7;
  25354. STACKTOP = i5;
  25355. return i11 | 0;
  25356. } else {
  25357. _lua_settop(i1, i2);
  25358. i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
  25359. i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
  25360. HEAP32[i3 >> 2] = 1344;
  25361. HEAP32[i3 + 4 >> 2] = i10;
  25362. HEAP32[i3 + 8 >> 2] = i11;
  25363. _lua_pushfstring(i1, 1720, i3) | 0;
  25364. _lua_remove(i1, i2);
  25365. i11 = 7;
  25366. STACKTOP = i5;
  25367. return i11 | 0;
  25368. }
  25369. return 0;
  25370. }
  25371. function _newupvalue(i3, i1, i2) {
  25372. i3 = i3 | 0;
  25373. i1 = i1 | 0;
  25374. i2 = i2 | 0;
  25375. var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  25376. i4 = STACKTOP;
  25377. STACKTOP = STACKTOP + 16 | 0;
  25378. i12 = i4;
  25379. i5 = HEAP32[i3 >> 2] | 0;
  25380. i9 = i5 + 40 | 0;
  25381. i7 = HEAP32[i9 >> 2] | 0;
  25382. i6 = i3 + 47 | 0;
  25383. i10 = HEAPU8[i6] | 0;
  25384. if ((i10 + 1 | 0) >>> 0 > 255) {
  25385. i11 = i3 + 12 | 0;
  25386. i8 = HEAP32[(HEAP32[i11 >> 2] | 0) + 52 >> 2] | 0;
  25387. i13 = HEAP32[i5 + 64 >> 2] | 0;
  25388. if ((i13 | 0) == 0) {
  25389. i15 = 6552;
  25390. HEAP32[i12 >> 2] = 6880;
  25391. i14 = i12 + 4 | 0;
  25392. HEAP32[i14 >> 2] = 255;
  25393. i14 = i12 + 8 | 0;
  25394. HEAP32[i14 >> 2] = i15;
  25395. i14 = _luaO_pushfstring(i8, 6592, i12) | 0;
  25396. i15 = HEAP32[i11 >> 2] | 0;
  25397. _luaX_syntaxerror(i15, i14);
  25398. }
  25399. HEAP32[i12 >> 2] = i13;
  25400. i14 = _luaO_pushfstring(i8, 6568, i12) | 0;
  25401. HEAP32[i12 >> 2] = 6880;
  25402. i15 = i12 + 4 | 0;
  25403. HEAP32[i15 >> 2] = 255;
  25404. i15 = i12 + 8 | 0;
  25405. HEAP32[i15 >> 2] = i14;
  25406. i15 = _luaO_pushfstring(i8, 6592, i12) | 0;
  25407. i14 = HEAP32[i11 >> 2] | 0;
  25408. _luaX_syntaxerror(i14, i15);
  25409. }
  25410. if ((i10 | 0) < (i7 | 0)) {
  25411. i8 = i7;
  25412. } else {
  25413. i8 = i5 + 28 | 0;
  25414. HEAP32[i8 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i8 >> 2] | 0, i9, 8, 255, 6880) | 0;
  25415. i8 = HEAP32[i9 >> 2] | 0;
  25416. }
  25417. i9 = i5 + 28 | 0;
  25418. if ((i7 | 0) < (i8 | 0)) {
  25419. while (1) {
  25420. i10 = i7 + 1 | 0;
  25421. HEAP32[(HEAP32[i9 >> 2] | 0) + (i7 << 3) >> 2] = 0;
  25422. if ((i10 | 0) < (i8 | 0)) {
  25423. i7 = i10;
  25424. } else {
  25425. break;
  25426. }
  25427. }
  25428. }
  25429. HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 4 | 0] = (HEAP32[i2 >> 2] | 0) == 7 | 0;
  25430. HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 5 | 0] = HEAP32[i2 + 8 >> 2];
  25431. HEAP32[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) >> 2] = i1;
  25432. if ((HEAP8[i1 + 5 | 0] & 3) == 0) {
  25433. i15 = HEAP8[i6] | 0;
  25434. i14 = i15 + 1 << 24 >> 24;
  25435. HEAP8[i6] = i14;
  25436. i15 = i15 & 255;
  25437. STACKTOP = i4;
  25438. return i15 | 0;
  25439. }
  25440. if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
  25441. i15 = HEAP8[i6] | 0;
  25442. i14 = i15 + 1 << 24 >> 24;
  25443. HEAP8[i6] = i14;
  25444. i15 = i15 & 255;
  25445. STACKTOP = i4;
  25446. return i15 | 0;
  25447. }
  25448. _luaC_barrier_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, i5, i1);
  25449. i15 = HEAP8[i6] | 0;
  25450. i14 = i15 + 1 << 24 >> 24;
  25451. HEAP8[i6] = i14;
  25452. i15 = i15 & 255;
  25453. STACKTOP = i4;
  25454. return i15 | 0;
  25455. }
  25456. function _close_func(i1) {
  25457. i1 = i1 | 0;
  25458. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  25459. i6 = STACKTOP;
  25460. i2 = HEAP32[i1 + 52 >> 2] | 0;
  25461. i5 = i1 + 48 | 0;
  25462. i4 = HEAP32[i5 >> 2] | 0;
  25463. i3 = HEAP32[i4 >> 2] | 0;
  25464. _luaK_ret(i4, 0, 0);
  25465. _leaveblock(i4);
  25466. i7 = i4 + 20 | 0;
  25467. i8 = HEAP32[i7 >> 2] | 0;
  25468. if ((i8 + 1 | 0) >>> 0 > 1073741823) {
  25469. _luaM_toobig(i2);
  25470. }
  25471. i10 = i3 + 12 | 0;
  25472. i9 = i3 + 48 | 0;
  25473. HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 2, i8 << 2) | 0;
  25474. HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
  25475. i8 = HEAP32[i7 >> 2] | 0;
  25476. if ((i8 + 1 | 0) >>> 0 > 1073741823) {
  25477. _luaM_toobig(i2);
  25478. }
  25479. i9 = i3 + 20 | 0;
  25480. i10 = i3 + 52 | 0;
  25481. HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i8 << 2) | 0;
  25482. HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
  25483. i8 = i4 + 32 | 0;
  25484. i7 = HEAP32[i8 >> 2] | 0;
  25485. if ((i7 + 1 | 0) >>> 0 > 268435455) {
  25486. _luaM_toobig(i2);
  25487. }
  25488. i9 = i3 + 8 | 0;
  25489. i10 = i3 + 44 | 0;
  25490. HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 4, i7 << 4) | 0;
  25491. HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
  25492. i8 = i4 + 36 | 0;
  25493. i7 = HEAP32[i8 >> 2] | 0;
  25494. if ((i7 + 1 | 0) >>> 0 > 1073741823) {
  25495. _luaM_toobig(i2);
  25496. }
  25497. i9 = i3 + 16 | 0;
  25498. i10 = i3 + 56 | 0;
  25499. HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i7 << 2) | 0;
  25500. HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
  25501. i7 = i4 + 44 | 0;
  25502. i8 = HEAP16[i7 >> 1] | 0;
  25503. if ((i8 + 1 | 0) >>> 0 > 357913941) {
  25504. _luaM_toobig(i2);
  25505. }
  25506. i10 = i3 + 24 | 0;
  25507. i9 = i3 + 60 | 0;
  25508. HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, (HEAP32[i9 >> 2] | 0) * 12 | 0, i8 * 12 | 0) | 0;
  25509. HEAP32[i9 >> 2] = HEAP16[i7 >> 1] | 0;
  25510. i9 = i4 + 47 | 0;
  25511. i8 = i3 + 28 | 0;
  25512. i10 = i3 + 40 | 0;
  25513. HEAP32[i8 >> 2] = _luaM_realloc_(i2, HEAP32[i8 >> 2] | 0, HEAP32[i10 >> 2] << 3, HEAPU8[i9] << 3) | 0;
  25514. HEAP32[i10 >> 2] = HEAPU8[i9] | 0;
  25515. HEAP32[i5 >> 2] = HEAP32[i4 + 8 >> 2];
  25516. if (((HEAP32[i1 + 16 >> 2] | 0) + -288 | 0) >>> 0 < 2) {
  25517. i10 = HEAP32[i1 + 24 >> 2] | 0;
  25518. _luaX_newstring(i1, i10 + 16 | 0, HEAP32[i10 + 12 >> 2] | 0) | 0;
  25519. }
  25520. i10 = i2 + 8 | 0;
  25521. HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
  25522. if ((HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) <= 0) {
  25523. STACKTOP = i6;
  25524. return;
  25525. }
  25526. _luaC_step(i2);
  25527. STACKTOP = i6;
  25528. return;
  25529. }
  25530. function _lua_topointer(i3, i6) {
  25531. i3 = i3 | 0;
  25532. i6 = i6 | 0;
  25533. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
  25534. i1 = STACKTOP;
  25535. i4 = HEAP32[i3 + 16 >> 2] | 0;
  25536. i5 = (i6 | 0) > 0;
  25537. do {
  25538. if (!i5) {
  25539. if (!((i6 | 0) < -1000999)) {
  25540. i7 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
  25541. break;
  25542. }
  25543. if ((i6 | 0) == -1001e3) {
  25544. i7 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  25545. break;
  25546. }
  25547. i8 = -1001e3 - i6 | 0;
  25548. i9 = HEAP32[i4 >> 2] | 0;
  25549. if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
  25550. i7 = i7 + (i8 + -1 << 4) + 16 | 0;
  25551. } else {
  25552. i7 = 5192;
  25553. }
  25554. } else {
  25555. i7 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
  25556. i7 = i7 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
  25557. }
  25558. } while (0);
  25559. switch (HEAP32[i7 + 8 >> 2] & 63 | 0) {
  25560. case 22:
  25561. {
  25562. i9 = HEAP32[i7 >> 2] | 0;
  25563. STACKTOP = i1;
  25564. return i9 | 0;
  25565. }
  25566. case 2:
  25567. case 7:
  25568. {
  25569. do {
  25570. if (!i5) {
  25571. if (!((i6 | 0) < -1000999)) {
  25572. i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
  25573. break;
  25574. }
  25575. if ((i6 | 0) == -1001e3) {
  25576. i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  25577. break;
  25578. }
  25579. i3 = -1001e3 - i6 | 0;
  25580. i4 = HEAP32[i4 >> 2] | 0;
  25581. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  25582. i2 = i2 + (i3 + -1 << 4) + 16 | 0;
  25583. } else {
  25584. i2 = 5192;
  25585. }
  25586. } else {
  25587. i2 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
  25588. i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  25589. }
  25590. } while (0);
  25591. i3 = HEAP32[i2 + 8 >> 2] & 15;
  25592. if ((i3 | 0) == 7) {
  25593. i9 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
  25594. STACKTOP = i1;
  25595. return i9 | 0;
  25596. } else if ((i3 | 0) == 2) {
  25597. i9 = HEAP32[i2 >> 2] | 0;
  25598. STACKTOP = i1;
  25599. return i9 | 0;
  25600. } else {
  25601. i9 = 0;
  25602. STACKTOP = i1;
  25603. return i9 | 0;
  25604. }
  25605. }
  25606. case 8:
  25607. {
  25608. i9 = HEAP32[i7 >> 2] | 0;
  25609. STACKTOP = i1;
  25610. return i9 | 0;
  25611. }
  25612. case 5:
  25613. {
  25614. i9 = HEAP32[i7 >> 2] | 0;
  25615. STACKTOP = i1;
  25616. return i9 | 0;
  25617. }
  25618. case 38:
  25619. {
  25620. i9 = HEAP32[i7 >> 2] | 0;
  25621. STACKTOP = i1;
  25622. return i9 | 0;
  25623. }
  25624. case 6:
  25625. {
  25626. i9 = HEAP32[i7 >> 2] | 0;
  25627. STACKTOP = i1;
  25628. return i9 | 0;
  25629. }
  25630. default:
  25631. {
  25632. i9 = 0;
  25633. STACKTOP = i1;
  25634. return i9 | 0;
  25635. }
  25636. }
  25637. return 0;
  25638. }
  25639. function _luaH_get(i4, i6) {
  25640. i4 = i4 | 0;
  25641. i6 = i6 | 0;
  25642. var i1 = 0, i2 = 0, i3 = 0, d5 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
  25643. i3 = STACKTOP;
  25644. STACKTOP = STACKTOP + 16 | 0;
  25645. i8 = i3 + 8 | 0;
  25646. i9 = i3;
  25647. i7 = i6 + 8 | 0;
  25648. i10 = HEAP32[i7 >> 2] & 63;
  25649. if ((i10 | 0) == 4) {
  25650. i6 = HEAP32[i6 >> 2] | 0;
  25651. i7 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i6 + 8 >> 2]) << 5) | 0;
  25652. while (1) {
  25653. if ((HEAP32[i7 + 24 >> 2] | 0) == 68 ? (HEAP32[i7 + 16 >> 2] | 0) == (i6 | 0) : 0) {
  25654. break;
  25655. }
  25656. i4 = HEAP32[i7 + 28 >> 2] | 0;
  25657. if ((i4 | 0) == 0) {
  25658. i2 = 5192;
  25659. i1 = 22;
  25660. break;
  25661. } else {
  25662. i7 = i4;
  25663. }
  25664. }
  25665. if ((i1 | 0) == 22) {
  25666. STACKTOP = i3;
  25667. return i2 | 0;
  25668. }
  25669. i10 = i7;
  25670. STACKTOP = i3;
  25671. return i10 | 0;
  25672. } else if ((i10 | 0) == 3) {
  25673. d11 = +HEAPF64[i6 >> 3];
  25674. HEAPF64[i9 >> 3] = d11 + 6755399441055744.0;
  25675. i9 = HEAP32[i9 >> 2] | 0;
  25676. d5 = +(i9 | 0);
  25677. if (d5 == d11) {
  25678. i6 = i9 + -1 | 0;
  25679. if (i6 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
  25680. i10 = (HEAP32[i4 + 12 >> 2] | 0) + (i6 << 4) | 0;
  25681. STACKTOP = i3;
  25682. return i10 | 0;
  25683. }
  25684. HEAPF64[i8 >> 3] = d5 + 1.0;
  25685. i6 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
  25686. if ((i6 | 0) < 0) {
  25687. i7 = 0 - i6 | 0;
  25688. i6 = (i6 | 0) == (i7 | 0) ? 0 : i7;
  25689. }
  25690. i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i6 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  25691. while (1) {
  25692. if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d5 : 0) {
  25693. break;
  25694. }
  25695. i6 = HEAP32[i4 + 28 >> 2] | 0;
  25696. if ((i6 | 0) == 0) {
  25697. i2 = 5192;
  25698. i1 = 22;
  25699. break;
  25700. } else {
  25701. i4 = i6;
  25702. }
  25703. }
  25704. if ((i1 | 0) == 22) {
  25705. STACKTOP = i3;
  25706. return i2 | 0;
  25707. }
  25708. i10 = i4;
  25709. STACKTOP = i3;
  25710. return i10 | 0;
  25711. }
  25712. } else if ((i10 | 0) == 0) {
  25713. i10 = 5192;
  25714. STACKTOP = i3;
  25715. return i10 | 0;
  25716. }
  25717. i8 = _mainposition(i4, i6) | 0;
  25718. while (1) {
  25719. if ((HEAP32[i8 + 24 >> 2] | 0) == (HEAP32[i7 >> 2] | 0) ? (_luaV_equalobj_(0, i8 + 16 | 0, i6) | 0) != 0 : 0) {
  25720. break;
  25721. }
  25722. i4 = HEAP32[i8 + 28 >> 2] | 0;
  25723. if ((i4 | 0) == 0) {
  25724. i2 = 5192;
  25725. i1 = 22;
  25726. break;
  25727. } else {
  25728. i8 = i4;
  25729. }
  25730. }
  25731. if ((i1 | 0) == 22) {
  25732. STACKTOP = i3;
  25733. return i2 | 0;
  25734. }
  25735. i10 = i8;
  25736. STACKTOP = i3;
  25737. return i10 | 0;
  25738. }
  25739. function _suffixedexp(i1, i8) {
  25740. i1 = i1 | 0;
  25741. i8 = i8 | 0;
  25742. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
  25743. i2 = STACKTOP;
  25744. STACKTOP = STACKTOP + 80 | 0;
  25745. i10 = i2 + 48 | 0;
  25746. i3 = i2 + 24 | 0;
  25747. i6 = i2;
  25748. i4 = i1 + 48 | 0;
  25749. i9 = HEAP32[i4 >> 2] | 0;
  25750. i5 = HEAP32[i1 + 4 >> 2] | 0;
  25751. i7 = i1 + 16 | 0;
  25752. i12 = HEAP32[i7 >> 2] | 0;
  25753. if ((i12 | 0) == 40) {
  25754. _luaX_next(i1);
  25755. _subexpr(i1, i8, 0) | 0;
  25756. _check_match(i1, 41, 40, i5);
  25757. _luaK_dischargevars(HEAP32[i4 >> 2] | 0, i8);
  25758. i11 = i1 + 24 | 0;
  25759. } else if ((i12 | 0) == 288) {
  25760. i11 = i1 + 24 | 0;
  25761. i13 = HEAP32[i11 >> 2] | 0;
  25762. _luaX_next(i1);
  25763. i12 = HEAP32[i4 >> 2] | 0;
  25764. if ((_singlevaraux(i12, i13, i8, 1) | 0) == 0) {
  25765. _singlevaraux(i12, HEAP32[i1 + 72 >> 2] | 0, i8, 1) | 0;
  25766. i13 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i13) | 0;
  25767. HEAP32[i10 + 16 >> 2] = -1;
  25768. HEAP32[i10 + 20 >> 2] = -1;
  25769. HEAP32[i10 >> 2] = 4;
  25770. HEAP32[i10 + 8 >> 2] = i13;
  25771. _luaK_indexed(i12, i8, i10);
  25772. }
  25773. } else {
  25774. _luaX_syntaxerror(i1, 6656);
  25775. }
  25776. i10 = i6 + 16 | 0;
  25777. i12 = i6 + 20 | 0;
  25778. i13 = i6 + 8 | 0;
  25779. L7 : while (1) {
  25780. switch (HEAP32[i7 >> 2] | 0) {
  25781. case 46:
  25782. {
  25783. _fieldsel(i1, i8);
  25784. continue L7;
  25785. }
  25786. case 91:
  25787. {
  25788. _luaK_exp2anyregup(i9, i8);
  25789. _luaX_next(i1);
  25790. _subexpr(i1, i3, 0) | 0;
  25791. _luaK_exp2val(HEAP32[i4 >> 2] | 0, i3);
  25792. if ((HEAP32[i7 >> 2] | 0) != 93) {
  25793. i3 = 10;
  25794. break L7;
  25795. }
  25796. _luaX_next(i1);
  25797. _luaK_indexed(i9, i8, i3);
  25798. continue L7;
  25799. }
  25800. case 58:
  25801. {
  25802. _luaX_next(i1);
  25803. if ((HEAP32[i7 >> 2] | 0) != 288) {
  25804. i3 = 13;
  25805. break L7;
  25806. }
  25807. i14 = HEAP32[i11 >> 2] | 0;
  25808. _luaX_next(i1);
  25809. i14 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i14) | 0;
  25810. HEAP32[i10 >> 2] = -1;
  25811. HEAP32[i12 >> 2] = -1;
  25812. HEAP32[i6 >> 2] = 4;
  25813. HEAP32[i13 >> 2] = i14;
  25814. _luaK_self(i9, i8, i6);
  25815. _funcargs(i1, i8, i5);
  25816. continue L7;
  25817. }
  25818. case 123:
  25819. case 289:
  25820. case 40:
  25821. {
  25822. _luaK_exp2nextreg(i9, i8);
  25823. _funcargs(i1, i8, i5);
  25824. continue L7;
  25825. }
  25826. default:
  25827. {
  25828. i3 = 16;
  25829. break L7;
  25830. }
  25831. }
  25832. }
  25833. if ((i3 | 0) == 10) {
  25834. _error_expected(i1, 93);
  25835. } else if ((i3 | 0) == 13) {
  25836. _error_expected(i1, 288);
  25837. } else if ((i3 | 0) == 16) {
  25838. STACKTOP = i2;
  25839. return;
  25840. }
  25841. }
  25842. function _luaK_patchlist(i2, i7, i3) {
  25843. i2 = i2 | 0;
  25844. i7 = i7 | 0;
  25845. i3 = i3 | 0;
  25846. var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  25847. i1 = STACKTOP;
  25848. if ((HEAP32[i2 + 20 >> 2] | 0) == (i3 | 0)) {
  25849. HEAP32[i2 + 24 >> 2] = i3;
  25850. i3 = i2 + 28 | 0;
  25851. if ((i7 | 0) == -1) {
  25852. STACKTOP = i1;
  25853. return;
  25854. }
  25855. i6 = HEAP32[i3 >> 2] | 0;
  25856. if ((i6 | 0) == -1) {
  25857. HEAP32[i3 >> 2] = i7;
  25858. STACKTOP = i1;
  25859. return;
  25860. }
  25861. i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
  25862. while (1) {
  25863. i3 = i5 + (i6 << 2) | 0;
  25864. i4 = HEAP32[i3 >> 2] | 0;
  25865. i8 = (i4 >>> 14) + -131071 | 0;
  25866. if ((i8 | 0) == -1) {
  25867. break;
  25868. }
  25869. i8 = i6 + 1 + i8 | 0;
  25870. if ((i8 | 0) == -1) {
  25871. break;
  25872. } else {
  25873. i6 = i8;
  25874. }
  25875. }
  25876. i5 = ~i6 + i7 | 0;
  25877. if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
  25878. _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
  25879. }
  25880. HEAP32[i3 >> 2] = (i5 << 14) + 2147467264 | i4 & 16383;
  25881. STACKTOP = i1;
  25882. return;
  25883. }
  25884. if ((i7 | 0) == -1) {
  25885. STACKTOP = i1;
  25886. return;
  25887. }
  25888. i6 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
  25889. i10 = i7;
  25890. while (1) {
  25891. i7 = i6 + (i10 << 2) | 0;
  25892. i9 = HEAP32[i7 >> 2] | 0;
  25893. i8 = (i9 >>> 14) + -131071 | 0;
  25894. if ((i8 | 0) == -1) {
  25895. i8 = -1;
  25896. } else {
  25897. i8 = i10 + 1 + i8 | 0;
  25898. }
  25899. if ((i10 | 0) > 0 ? (i4 = i6 + (i10 + -1 << 2) | 0, i5 = HEAP32[i4 >> 2] | 0, (HEAP8[5584 + (i5 & 63) | 0] | 0) < 0) : 0) {
  25900. i12 = i4;
  25901. i11 = i5;
  25902. } else {
  25903. i12 = i7;
  25904. i11 = i9;
  25905. }
  25906. if ((i11 & 63 | 0) == 28) {
  25907. HEAP32[i12 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
  25908. i9 = ~i10 + i3 | 0;
  25909. if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
  25910. i3 = 20;
  25911. break;
  25912. }
  25913. i9 = HEAP32[i7 >> 2] & 16383 | (i9 << 14) + 2147467264;
  25914. } else {
  25915. i10 = ~i10 + i3 | 0;
  25916. if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
  25917. i3 = 23;
  25918. break;
  25919. }
  25920. i9 = i9 & 16383 | (i10 << 14) + 2147467264;
  25921. }
  25922. HEAP32[i7 >> 2] = i9;
  25923. if ((i8 | 0) == -1) {
  25924. i3 = 26;
  25925. break;
  25926. } else {
  25927. i10 = i8;
  25928. }
  25929. }
  25930. if ((i3 | 0) == 20) {
  25931. _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
  25932. } else if ((i3 | 0) == 23) {
  25933. _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
  25934. } else if ((i3 | 0) == 26) {
  25935. STACKTOP = i1;
  25936. return;
  25937. }
  25938. }
  25939. function _luaG_typeerror(i5, i6, i1) {
  25940. i5 = i5 | 0;
  25941. i6 = i6 | 0;
  25942. i1 = i1 | 0;
  25943. var i2 = 0, i3 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  25944. i2 = STACKTOP;
  25945. STACKTOP = STACKTOP + 32 | 0;
  25946. i3 = i2;
  25947. i2 = i2 + 16 | 0;
  25948. i8 = HEAP32[i5 + 16 >> 2] | 0;
  25949. HEAP32[i2 >> 2] = 0;
  25950. i4 = HEAP32[8528 + ((HEAP32[i6 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
  25951. L1 : do {
  25952. if (!((HEAP8[i8 + 18 | 0] & 1) == 0)) {
  25953. i7 = HEAP32[HEAP32[i8 >> 2] >> 2] | 0;
  25954. i10 = HEAP8[i7 + 6 | 0] | 0;
  25955. L3 : do {
  25956. if (!(i10 << 24 >> 24 == 0)) {
  25957. i9 = i7 + 16 | 0;
  25958. i11 = i10 & 255;
  25959. i10 = 0;
  25960. while (1) {
  25961. i12 = i10 + 1 | 0;
  25962. if ((HEAP32[(HEAP32[i9 + (i10 << 2) >> 2] | 0) + 8 >> 2] | 0) == (i6 | 0)) {
  25963. break;
  25964. }
  25965. if ((i12 | 0) < (i11 | 0)) {
  25966. i10 = i12;
  25967. } else {
  25968. break L3;
  25969. }
  25970. }
  25971. i9 = HEAP32[(HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 28 >> 2] | 0) + (i10 << 3) >> 2] | 0;
  25972. if ((i9 | 0) == 0) {
  25973. i9 = 2104;
  25974. } else {
  25975. i9 = i9 + 16 | 0;
  25976. }
  25977. HEAP32[i2 >> 2] = i9;
  25978. i11 = i9;
  25979. i10 = 2072;
  25980. HEAP32[i3 >> 2] = i1;
  25981. i12 = i3 + 4 | 0;
  25982. HEAP32[i12 >> 2] = i10;
  25983. i12 = i3 + 8 | 0;
  25984. HEAP32[i12 >> 2] = i11;
  25985. i12 = i3 + 12 | 0;
  25986. HEAP32[i12 >> 2] = i4;
  25987. _luaG_runerror(i5, 1840, i3);
  25988. }
  25989. } while (0);
  25990. i9 = HEAP32[i8 + 24 >> 2] | 0;
  25991. i10 = HEAP32[i8 + 4 >> 2] | 0;
  25992. if (i9 >>> 0 < i10 >>> 0) {
  25993. i12 = i9;
  25994. while (1) {
  25995. i11 = i12 + 16 | 0;
  25996. if ((i12 | 0) == (i6 | 0)) {
  25997. break;
  25998. }
  25999. if (i11 >>> 0 < i10 >>> 0) {
  26000. i12 = i11;
  26001. } else {
  26002. break L1;
  26003. }
  26004. }
  26005. i12 = HEAP32[i7 + 12 >> 2] | 0;
  26006. i6 = _getobjname(i12, ((HEAP32[i8 + 28 >> 2] | 0) - (HEAP32[i12 + 12 >> 2] | 0) >> 2) + -1 | 0, i6 - i9 >> 4, i2) | 0;
  26007. if ((i6 | 0) != 0) {
  26008. i11 = HEAP32[i2 >> 2] | 0;
  26009. i10 = i6;
  26010. HEAP32[i3 >> 2] = i1;
  26011. i12 = i3 + 4 | 0;
  26012. HEAP32[i12 >> 2] = i10;
  26013. i12 = i3 + 8 | 0;
  26014. HEAP32[i12 >> 2] = i11;
  26015. i12 = i3 + 12 | 0;
  26016. HEAP32[i12 >> 2] = i4;
  26017. _luaG_runerror(i5, 1840, i3);
  26018. }
  26019. }
  26020. }
  26021. } while (0);
  26022. HEAP32[i3 >> 2] = i1;
  26023. HEAP32[i3 + 4 >> 2] = i4;
  26024. _luaG_runerror(i5, 1880, i3);
  26025. }
  26026. function _lua_setmetatable(i1, i7) {
  26027. i1 = i1 | 0;
  26028. i7 = i7 | 0;
  26029. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
  26030. i4 = STACKTOP;
  26031. i6 = HEAP32[i1 + 16 >> 2] | 0;
  26032. do {
  26033. if ((i7 | 0) <= 0) {
  26034. if (!((i7 | 0) < -1000999)) {
  26035. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i7 << 4) | 0;
  26036. break;
  26037. }
  26038. if ((i7 | 0) == -1001e3) {
  26039. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  26040. break;
  26041. }
  26042. i7 = -1001e3 - i7 | 0;
  26043. i6 = HEAP32[i6 >> 2] | 0;
  26044. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
  26045. i5 = i5 + (i7 + -1 << 4) + 16 | 0;
  26046. } else {
  26047. i5 = 5192;
  26048. }
  26049. } else {
  26050. i5 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
  26051. i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
  26052. }
  26053. } while (0);
  26054. i6 = i1 + 8 | 0;
  26055. i7 = HEAP32[i6 >> 2] | 0;
  26056. if ((HEAP32[i7 + -8 >> 2] | 0) == 0) {
  26057. i7 = 0;
  26058. } else {
  26059. i7 = HEAP32[i7 + -16 >> 2] | 0;
  26060. }
  26061. i8 = HEAP32[i5 + 8 >> 2] & 15;
  26062. if ((i8 | 0) == 5) {
  26063. HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
  26064. if ((i7 | 0) == 0) {
  26065. i8 = HEAP32[i6 >> 2] | 0;
  26066. i8 = i8 + -16 | 0;
  26067. HEAP32[i6 >> 2] = i8;
  26068. STACKTOP = i4;
  26069. return 1;
  26070. }
  26071. if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
  26072. _luaC_barrierback_(i1, i2);
  26073. }
  26074. _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
  26075. i8 = HEAP32[i6 >> 2] | 0;
  26076. i8 = i8 + -16 | 0;
  26077. HEAP32[i6 >> 2] = i8;
  26078. STACKTOP = i4;
  26079. return 1;
  26080. } else if ((i8 | 0) == 7) {
  26081. HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
  26082. if ((i7 | 0) == 0) {
  26083. i8 = HEAP32[i6 >> 2] | 0;
  26084. i8 = i8 + -16 | 0;
  26085. HEAP32[i6 >> 2] = i8;
  26086. STACKTOP = i4;
  26087. return 1;
  26088. }
  26089. if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i3 = HEAP32[i5 >> 2] | 0, !((HEAP8[i3 + 5 | 0] & 4) == 0)) : 0) {
  26090. _luaC_barrier_(i1, i3, i7);
  26091. }
  26092. _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
  26093. i8 = HEAP32[i6 >> 2] | 0;
  26094. i8 = i8 + -16 | 0;
  26095. HEAP32[i6 >> 2] = i8;
  26096. STACKTOP = i4;
  26097. return 1;
  26098. } else {
  26099. HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i8 << 2) + 252 >> 2] = i7;
  26100. i8 = HEAP32[i6 >> 2] | 0;
  26101. i8 = i8 + -16 | 0;
  26102. HEAP32[i6 >> 2] = i8;
  26103. STACKTOP = i4;
  26104. return 1;
  26105. }
  26106. return 0;
  26107. }
  26108. function _recfield(i2, i10) {
  26109. i2 = i2 | 0;
  26110. i10 = i10 | 0;
  26111. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
  26112. i1 = STACKTOP;
  26113. STACKTOP = STACKTOP + 64 | 0;
  26114. i9 = i1 + 48 | 0;
  26115. i6 = i1 + 24 | 0;
  26116. i3 = i1;
  26117. i13 = i2 + 48 | 0;
  26118. i8 = HEAP32[i13 >> 2] | 0;
  26119. i5 = i8 + 48 | 0;
  26120. i4 = HEAP8[i5] | 0;
  26121. i7 = i2 + 16 | 0;
  26122. do {
  26123. if ((HEAP32[i7 >> 2] | 0) != 288) {
  26124. _luaX_next(i2);
  26125. _subexpr(i2, i6, 0) | 0;
  26126. _luaK_exp2val(HEAP32[i13 >> 2] | 0, i6);
  26127. if ((HEAP32[i7 >> 2] | 0) == 93) {
  26128. _luaX_next(i2);
  26129. i11 = i10 + 28 | 0;
  26130. break;
  26131. } else {
  26132. _error_expected(i2, 93);
  26133. }
  26134. } else {
  26135. i12 = i10 + 28 | 0;
  26136. if ((HEAP32[i12 >> 2] | 0) <= 2147483645) {
  26137. i11 = HEAP32[i2 + 24 >> 2] | 0;
  26138. _luaX_next(i2);
  26139. i11 = _luaK_stringK(HEAP32[i13 >> 2] | 0, i11) | 0;
  26140. HEAP32[i6 + 16 >> 2] = -1;
  26141. HEAP32[i6 + 20 >> 2] = -1;
  26142. HEAP32[i6 >> 2] = 4;
  26143. HEAP32[i6 + 8 >> 2] = i11;
  26144. i11 = i12;
  26145. break;
  26146. }
  26147. i14 = i8 + 12 | 0;
  26148. i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 52 >> 2] | 0;
  26149. i12 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
  26150. if ((i12 | 0) == 0) {
  26151. i16 = 6552;
  26152. HEAP32[i9 >> 2] = 6528;
  26153. i15 = i9 + 4 | 0;
  26154. HEAP32[i15 >> 2] = 2147483645;
  26155. i15 = i9 + 8 | 0;
  26156. HEAP32[i15 >> 2] = i16;
  26157. i15 = _luaO_pushfstring(i13, 6592, i9) | 0;
  26158. i16 = HEAP32[i14 >> 2] | 0;
  26159. _luaX_syntaxerror(i16, i15);
  26160. }
  26161. HEAP32[i9 >> 2] = i12;
  26162. i15 = _luaO_pushfstring(i13, 6568, i9) | 0;
  26163. HEAP32[i9 >> 2] = 6528;
  26164. i16 = i9 + 4 | 0;
  26165. HEAP32[i16 >> 2] = 2147483645;
  26166. i16 = i9 + 8 | 0;
  26167. HEAP32[i16 >> 2] = i15;
  26168. i16 = _luaO_pushfstring(i13, 6592, i9) | 0;
  26169. i15 = HEAP32[i14 >> 2] | 0;
  26170. _luaX_syntaxerror(i15, i16);
  26171. }
  26172. } while (0);
  26173. HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1;
  26174. if ((HEAP32[i7 >> 2] | 0) == 61) {
  26175. _luaX_next(i2);
  26176. i16 = _luaK_exp2RK(i8, i6) | 0;
  26177. _subexpr(i2, i3, 0) | 0;
  26178. i15 = HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + 8 >> 2] | 0;
  26179. _luaK_codeABC(i8, 10, i15, i16, _luaK_exp2RK(i8, i3) | 0) | 0;
  26180. HEAP8[i5] = i4;
  26181. STACKTOP = i1;
  26182. return;
  26183. } else {
  26184. _error_expected(i2, 61);
  26185. }
  26186. }
  26187. function _lua_newstate(i3, i6) {
  26188. i3 = i3 | 0;
  26189. i6 = i6 | 0;
  26190. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0;
  26191. i1 = STACKTOP;
  26192. STACKTOP = STACKTOP + 32 | 0;
  26193. i5 = i1 + 8 | 0;
  26194. i4 = i1;
  26195. i2 = FUNCTION_TABLE_iiiii[i3 & 3](i6, 0, 8, 400) | 0;
  26196. if ((i2 | 0) == 0) {
  26197. i6 = 0;
  26198. STACKTOP = i1;
  26199. return i6 | 0;
  26200. }
  26201. i7 = i2 + 112 | 0;
  26202. HEAP32[i2 >> 2] = 0;
  26203. HEAP8[i2 + 4 | 0] = 8;
  26204. HEAP8[i2 + 172 | 0] = 33;
  26205. HEAP8[i2 + 5 | 0] = 1;
  26206. HEAP8[i2 + 174 | 0] = 0;
  26207. HEAP32[i2 + 12 >> 2] = i7;
  26208. HEAP32[i2 + 28 >> 2] = 0;
  26209. HEAP32[i2 + 16 >> 2] = 0;
  26210. HEAP32[i2 + 32 >> 2] = 0;
  26211. HEAP32[i2 + 64 >> 2] = 0;
  26212. HEAP16[i2 + 38 >> 1] = 0;
  26213. HEAP32[i2 + 52 >> 2] = 0;
  26214. HEAP8[i2 + 40 | 0] = 0;
  26215. HEAP32[i2 + 44 >> 2] = 0;
  26216. HEAP8[i2 + 41 | 0] = 1;
  26217. HEAP32[i2 + 48 >> 2] = 0;
  26218. HEAP32[i2 + 56 >> 2] = 0;
  26219. HEAP16[i2 + 36 >> 1] = 1;
  26220. HEAP8[i2 + 6 | 0] = 0;
  26221. HEAP32[i2 + 68 >> 2] = 0;
  26222. HEAP32[i7 >> 2] = i3;
  26223. HEAP32[i2 + 116 >> 2] = i6;
  26224. HEAP32[i2 + 284 >> 2] = i2;
  26225. i3 = _time(0) | 0;
  26226. HEAP32[i4 >> 2] = i3;
  26227. HEAP32[i5 >> 2] = i2;
  26228. HEAP32[i5 + 4 >> 2] = i4;
  26229. HEAP32[i5 + 8 >> 2] = 5192;
  26230. HEAP32[i5 + 12 >> 2] = 1;
  26231. HEAP32[i2 + 168 >> 2] = _luaS_hash(i5, 16, i3) | 0;
  26232. i4 = i2 + 224 | 0;
  26233. HEAP32[i2 + 240 >> 2] = i4;
  26234. HEAP32[i2 + 244 >> 2] = i4;
  26235. HEAP8[i2 + 175 | 0] = 0;
  26236. i4 = i2 + 132 | 0;
  26237. HEAP32[i2 + 160 >> 2] = 0;
  26238. HEAP32[i2 + 256 >> 2] = 0;
  26239. HEAP32[i2 + 264 >> 2] = 0;
  26240. HEAP32[i2 + 280 >> 2] = 0;
  26241. HEAP32[i4 + 0 >> 2] = 0;
  26242. HEAP32[i4 + 4 >> 2] = 0;
  26243. HEAP32[i4 + 8 >> 2] = 0;
  26244. HEAP32[i4 + 12 >> 2] = 0;
  26245. HEAP32[i2 + 288 >> 2] = _lua_version(0) | 0;
  26246. HEAP8[i2 + 173 | 0] = 5;
  26247. i4 = i2 + 120 | 0;
  26248. i5 = i2 + 180 | 0;
  26249. i3 = i5 + 40 | 0;
  26250. do {
  26251. HEAP32[i5 >> 2] = 0;
  26252. i5 = i5 + 4 | 0;
  26253. } while ((i5 | 0) < (i3 | 0));
  26254. HEAP32[i4 >> 2] = 400;
  26255. HEAP32[i2 + 124 >> 2] = 0;
  26256. HEAP32[i2 + 268 >> 2] = 200;
  26257. HEAP32[i2 + 272 >> 2] = 200;
  26258. HEAP32[i2 + 276 >> 2] = 200;
  26259. i5 = i2 + 364 | 0;
  26260. i3 = i5 + 36 | 0;
  26261. do {
  26262. HEAP32[i5 >> 2] = 0;
  26263. i5 = i5 + 4 | 0;
  26264. } while ((i5 | 0) < (i3 | 0));
  26265. if ((_luaD_rawrunprotected(i2, 8, 0) | 0) == 0) {
  26266. i7 = i2;
  26267. STACKTOP = i1;
  26268. return i7 | 0;
  26269. }
  26270. _close_state(i2);
  26271. i7 = 0;
  26272. STACKTOP = i1;
  26273. return i7 | 0;
  26274. }
  26275. function _luaU_undump(i1, i7, i8, i9) {
  26276. i1 = i1 | 0;
  26277. i7 = i7 | 0;
  26278. i8 = i8 | 0;
  26279. i9 = i9 | 0;
  26280. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  26281. i2 = STACKTOP;
  26282. STACKTOP = STACKTOP + 64 | 0;
  26283. i4 = i2 + 16 | 0;
  26284. i5 = i2 + 34 | 0;
  26285. i3 = i2;
  26286. i6 = HEAP8[i9] | 0;
  26287. if (i6 << 24 >> 24 == 27) {
  26288. HEAP32[i3 + 12 >> 2] = 8800;
  26289. } else if (i6 << 24 >> 24 == 61 | i6 << 24 >> 24 == 64) {
  26290. HEAP32[i3 + 12 >> 2] = i9 + 1;
  26291. } else {
  26292. HEAP32[i3 + 12 >> 2] = i9;
  26293. }
  26294. HEAP32[i3 >> 2] = i1;
  26295. HEAP32[i3 + 4 >> 2] = i7;
  26296. HEAP32[i3 + 8 >> 2] = i8;
  26297. HEAP32[i4 >> 2] = 1635077147;
  26298. HEAP8[i4 + 4 | 0] = 82;
  26299. HEAP8[i4 + 5 | 0] = 0;
  26300. HEAP8[i4 + 6 | 0] = 1;
  26301. HEAP8[i4 + 7 | 0] = 4;
  26302. HEAP8[i4 + 8 | 0] = 4;
  26303. HEAP8[i4 + 9 | 0] = 4;
  26304. HEAP8[i4 + 10 | 0] = 8;
  26305. i9 = i4 + 12 | 0;
  26306. HEAP8[i4 + 11 | 0] = 0;
  26307. HEAP8[i9 + 0 | 0] = HEAP8[8816 | 0] | 0;
  26308. HEAP8[i9 + 1 | 0] = HEAP8[8817 | 0] | 0;
  26309. HEAP8[i9 + 2 | 0] = HEAP8[8818 | 0] | 0;
  26310. HEAP8[i9 + 3 | 0] = HEAP8[8819 | 0] | 0;
  26311. HEAP8[i9 + 4 | 0] = HEAP8[8820 | 0] | 0;
  26312. HEAP8[i9 + 5 | 0] = HEAP8[8821 | 0] | 0;
  26313. HEAP8[i5] = 27;
  26314. if ((_luaZ_read(i7, i5 + 1 | 0, 17) | 0) != 0) {
  26315. _error(i3, 8824);
  26316. }
  26317. if ((_memcmp(i4, i5, 18) | 0) == 0) {
  26318. i4 = _luaF_newLclosure(i1, 1) | 0;
  26319. i5 = i1 + 8 | 0;
  26320. i9 = HEAP32[i5 >> 2] | 0;
  26321. HEAP32[i9 >> 2] = i4;
  26322. HEAP32[i9 + 8 >> 2] = 70;
  26323. i9 = (HEAP32[i5 >> 2] | 0) + 16 | 0;
  26324. HEAP32[i5 >> 2] = i9;
  26325. if (((HEAP32[i1 + 24 >> 2] | 0) - i9 | 0) < 16) {
  26326. _luaD_growstack(i1, 0);
  26327. }
  26328. i9 = _luaF_newproto(i1) | 0;
  26329. i6 = i4 + 12 | 0;
  26330. HEAP32[i6 >> 2] = i9;
  26331. _LoadFunction(i3, i9);
  26332. i6 = HEAP32[i6 >> 2] | 0;
  26333. i3 = HEAP32[i6 + 40 >> 2] | 0;
  26334. if ((i3 | 0) == 1) {
  26335. i9 = i4;
  26336. STACKTOP = i2;
  26337. return i9 | 0;
  26338. }
  26339. i9 = _luaF_newLclosure(i1, i3) | 0;
  26340. HEAP32[i9 + 12 >> 2] = i6;
  26341. i8 = HEAP32[i5 >> 2] | 0;
  26342. HEAP32[i8 + -16 >> 2] = i9;
  26343. HEAP32[i8 + -8 >> 2] = 70;
  26344. STACKTOP = i2;
  26345. return i9 | 0;
  26346. }
  26347. if ((_memcmp(i4, i5, 4) | 0) != 0) {
  26348. _error(i3, 8888);
  26349. }
  26350. if ((_memcmp(i4, i5, 6) | 0) != 0) {
  26351. _error(i3, 8896);
  26352. }
  26353. if ((_memcmp(i4, i5, 12) | 0) == 0) {
  26354. _error(i3, 8872);
  26355. } else {
  26356. _error(i3, 8920);
  26357. }
  26358. return 0;
  26359. }
  26360. function _lua_compare(i2, i7, i5, i3) {
  26361. i2 = i2 | 0;
  26362. i7 = i7 | 0;
  26363. i5 = i5 | 0;
  26364. i3 = i3 | 0;
  26365. var i1 = 0, i4 = 0, i6 = 0, i8 = 0;
  26366. i1 = STACKTOP;
  26367. i4 = HEAP32[i2 + 16 >> 2] | 0;
  26368. do {
  26369. if ((i7 | 0) <= 0) {
  26370. if (!((i7 | 0) < -1000999)) {
  26371. i6 = (HEAP32[i2 + 8 >> 2] | 0) + (i7 << 4) | 0;
  26372. break;
  26373. }
  26374. if ((i7 | 0) == -1001e3) {
  26375. i6 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  26376. break;
  26377. }
  26378. i7 = -1001e3 - i7 | 0;
  26379. i8 = HEAP32[i4 >> 2] | 0;
  26380. if ((HEAP32[i8 + 8 >> 2] | 0) != 22 ? (i6 = HEAP32[i8 >> 2] | 0, (i7 | 0) <= (HEAPU8[i6 + 6 | 0] | 0 | 0)) : 0) {
  26381. i6 = i6 + (i7 + -1 << 4) + 16 | 0;
  26382. } else {
  26383. i6 = 5192;
  26384. }
  26385. } else {
  26386. i6 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
  26387. i6 = i6 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i6 : 5192;
  26388. }
  26389. } while (0);
  26390. do {
  26391. if ((i5 | 0) <= 0) {
  26392. if (!((i5 | 0) < -1000999)) {
  26393. i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
  26394. break;
  26395. }
  26396. if ((i5 | 0) == -1001e3) {
  26397. i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  26398. break;
  26399. }
  26400. i5 = -1001e3 - i5 | 0;
  26401. i4 = HEAP32[i4 >> 2] | 0;
  26402. if ((HEAP32[i4 + 8 >> 2] | 0) == 22) {
  26403. i8 = 0;
  26404. STACKTOP = i1;
  26405. return i8 | 0;
  26406. }
  26407. i4 = HEAP32[i4 >> 2] | 0;
  26408. if ((i5 | 0) > (HEAPU8[i4 + 6 | 0] | 0 | 0)) {
  26409. i8 = 0;
  26410. STACKTOP = i1;
  26411. return i8 | 0;
  26412. } else {
  26413. i4 = i4 + (i5 + -1 << 4) + 16 | 0;
  26414. break;
  26415. }
  26416. } else {
  26417. i4 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  26418. i4 = i4 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  26419. }
  26420. } while (0);
  26421. if ((i6 | 0) == 5192 | (i4 | 0) == 5192) {
  26422. i8 = 0;
  26423. STACKTOP = i1;
  26424. return i8 | 0;
  26425. }
  26426. if ((i3 | 0) == 1) {
  26427. i8 = _luaV_lessthan(i2, i6, i4) | 0;
  26428. STACKTOP = i1;
  26429. return i8 | 0;
  26430. } else if ((i3 | 0) == 2) {
  26431. i8 = _luaV_lessequal(i2, i6, i4) | 0;
  26432. STACKTOP = i1;
  26433. return i8 | 0;
  26434. } else if ((i3 | 0) == 0) {
  26435. if ((HEAP32[i6 + 8 >> 2] | 0) == (HEAP32[i4 + 8 >> 2] | 0)) {
  26436. i2 = (_luaV_equalobj_(i2, i6, i4) | 0) != 0;
  26437. } else {
  26438. i2 = 0;
  26439. }
  26440. i8 = i2 & 1;
  26441. STACKTOP = i1;
  26442. return i8 | 0;
  26443. } else {
  26444. i8 = 0;
  26445. STACKTOP = i1;
  26446. return i8 | 0;
  26447. }
  26448. return 0;
  26449. }
  26450. function _lexerror(i7, i3, i8) {
  26451. i7 = i7 | 0;
  26452. i3 = i3 | 0;
  26453. i8 = i8 | 0;
  26454. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  26455. i12 = STACKTOP;
  26456. STACKTOP = STACKTOP + 80 | 0;
  26457. i2 = i12;
  26458. i12 = i12 + 12 | 0;
  26459. _luaO_chunkid(i12, (HEAP32[i7 + 68 >> 2] | 0) + 16 | 0, 60);
  26460. i1 = i7 + 52 | 0;
  26461. i4 = HEAP32[i1 >> 2] | 0;
  26462. i13 = HEAP32[i7 + 4 >> 2] | 0;
  26463. HEAP32[i2 >> 2] = i12;
  26464. HEAP32[i2 + 4 >> 2] = i13;
  26465. HEAP32[i2 + 8 >> 2] = i3;
  26466. i4 = _luaO_pushfstring(i4, 12592, i2) | 0;
  26467. if ((i8 | 0) == 0) {
  26468. i13 = HEAP32[i1 >> 2] | 0;
  26469. _luaD_throw(i13, 3);
  26470. }
  26471. i3 = HEAP32[i1 >> 2] | 0;
  26472. do {
  26473. if (!((i8 + -287 | 0) >>> 0 < 3)) {
  26474. if ((i8 | 0) >= 257) {
  26475. i5 = HEAP32[12096 + (i8 + -257 << 2) >> 2] | 0;
  26476. if ((i8 | 0) >= 286) {
  26477. break;
  26478. }
  26479. HEAP32[i2 >> 2] = i5;
  26480. i5 = _luaO_pushfstring(i3, 12256, i2) | 0;
  26481. break;
  26482. }
  26483. if ((HEAP8[i8 + 10913 | 0] & 4) == 0) {
  26484. HEAP32[i2 >> 2] = i8;
  26485. i5 = _luaO_pushfstring(i3, 12240, i2) | 0;
  26486. break;
  26487. } else {
  26488. HEAP32[i2 >> 2] = i8;
  26489. i5 = _luaO_pushfstring(i3, 12232, i2) | 0;
  26490. break;
  26491. }
  26492. } else {
  26493. i11 = i7 + 60 | 0;
  26494. i12 = HEAP32[i11 >> 2] | 0;
  26495. i10 = i12 + 4 | 0;
  26496. i13 = HEAP32[i10 >> 2] | 0;
  26497. i8 = i12 + 8 | 0;
  26498. i9 = HEAP32[i8 >> 2] | 0;
  26499. do {
  26500. if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
  26501. if (i9 >>> 0 > 2147483645) {
  26502. _lexerror(i7, 12368, 0);
  26503. }
  26504. i7 = i9 << 1;
  26505. if ((i7 | 0) == -2) {
  26506. _luaM_toobig(i3);
  26507. } else {
  26508. i6 = _luaM_realloc_(i3, HEAP32[i12 >> 2] | 0, i9, i7) | 0;
  26509. HEAP32[i12 >> 2] = i6;
  26510. HEAP32[i8 >> 2] = i7;
  26511. i5 = HEAP32[i10 >> 2] | 0;
  26512. break;
  26513. }
  26514. } else {
  26515. i5 = i13;
  26516. i6 = HEAP32[i12 >> 2] | 0;
  26517. }
  26518. } while (0);
  26519. HEAP32[i10 >> 2] = i5 + 1;
  26520. HEAP8[i6 + i5 | 0] = 0;
  26521. i5 = HEAP32[i1 >> 2] | 0;
  26522. HEAP32[i2 >> 2] = HEAP32[HEAP32[i11 >> 2] >> 2];
  26523. i5 = _luaO_pushfstring(i5, 12256, i2) | 0;
  26524. }
  26525. } while (0);
  26526. HEAP32[i2 >> 2] = i4;
  26527. HEAP32[i2 + 4 >> 2] = i5;
  26528. _luaO_pushfstring(i3, 12608, i2) | 0;
  26529. i13 = HEAP32[i1 >> 2] | 0;
  26530. _luaD_throw(i13, 3);
  26531. }
  26532. function _luaV_objlen(i2, i5, i1) {
  26533. i2 = i2 | 0;
  26534. i5 = i5 | 0;
  26535. i1 = i1 | 0;
  26536. var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
  26537. i3 = STACKTOP;
  26538. i4 = i1 + 8 | 0;
  26539. i8 = HEAP32[i4 >> 2] & 15;
  26540. do {
  26541. if ((i8 | 0) == 5) {
  26542. i7 = HEAP32[i1 >> 2] | 0;
  26543. i8 = HEAP32[i7 + 8 >> 2] | 0;
  26544. if (((i8 | 0) != 0 ? (HEAP8[i8 + 6 | 0] & 16) == 0 : 0) ? (i6 = _luaT_gettm(i8, 4, HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 200 >> 2] | 0) | 0, (i6 | 0) != 0) : 0) {
  26545. i7 = i6;
  26546. break;
  26547. }
  26548. HEAPF64[i5 >> 3] = +(_luaH_getn(i7) | 0);
  26549. HEAP32[i5 + 8 >> 2] = 3;
  26550. STACKTOP = i3;
  26551. return;
  26552. } else if ((i8 | 0) != 4) {
  26553. i6 = _luaT_gettmbyobj(i2, i1, 4) | 0;
  26554. if ((HEAP32[i6 + 8 >> 2] | 0) == 0) {
  26555. _luaG_typeerror(i2, i1, 9024);
  26556. } else {
  26557. i7 = i6;
  26558. }
  26559. } else {
  26560. HEAPF64[i5 >> 3] = +((HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) >>> 0);
  26561. HEAP32[i5 + 8 >> 2] = 3;
  26562. STACKTOP = i3;
  26563. return;
  26564. }
  26565. } while (0);
  26566. i6 = i2 + 28 | 0;
  26567. i8 = i5 - (HEAP32[i6 >> 2] | 0) | 0;
  26568. i5 = i2 + 8 | 0;
  26569. i11 = HEAP32[i5 >> 2] | 0;
  26570. HEAP32[i5 >> 2] = i11 + 16;
  26571. i12 = i7;
  26572. i10 = HEAP32[i12 + 4 >> 2] | 0;
  26573. i9 = i11;
  26574. HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
  26575. HEAP32[i9 + 4 >> 2] = i10;
  26576. HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
  26577. i7 = HEAP32[i5 >> 2] | 0;
  26578. HEAP32[i5 >> 2] = i7 + 16;
  26579. i11 = i1;
  26580. i9 = HEAP32[i11 + 4 >> 2] | 0;
  26581. i10 = i7;
  26582. HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
  26583. HEAP32[i10 + 4 >> 2] = i9;
  26584. HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
  26585. i7 = HEAP32[i5 >> 2] | 0;
  26586. HEAP32[i5 >> 2] = i7 + 16;
  26587. i10 = i1;
  26588. i9 = HEAP32[i10 + 4 >> 2] | 0;
  26589. i1 = i7;
  26590. HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
  26591. HEAP32[i1 + 4 >> 2] = i9;
  26592. HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
  26593. _luaD_call(i2, (HEAP32[i5 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
  26594. i7 = HEAP32[i6 >> 2] | 0;
  26595. i6 = HEAP32[i5 >> 2] | 0;
  26596. i2 = i6 + -16 | 0;
  26597. HEAP32[i5 >> 2] = i2;
  26598. i4 = HEAP32[i2 + 4 >> 2] | 0;
  26599. i5 = i7 + i8 | 0;
  26600. HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
  26601. HEAP32[i5 + 4 >> 2] = i4;
  26602. HEAP32[i7 + (i8 + 8) >> 2] = HEAP32[i6 + -8 >> 2];
  26603. STACKTOP = i3;
  26604. return;
  26605. }
  26606. function _get_equalTM(i6, i5, i4) {
  26607. i6 = i6 | 0;
  26608. i5 = i5 | 0;
  26609. i4 = i4 | 0;
  26610. var i1 = 0, i2 = 0, i3 = 0, i7 = 0;
  26611. i1 = STACKTOP;
  26612. L1 : do {
  26613. if (((i5 | 0) != 0 ? (HEAP8[i5 + 6 | 0] & 32) == 0 : 0) ? (i7 = i6 + 12 | 0, i2 = _luaT_gettm(i5, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i2 | 0) != 0) : 0) {
  26614. if ((i5 | 0) != (i4 | 0)) {
  26615. if (((i4 | 0) != 0 ? (HEAP8[i4 + 6 | 0] & 32) == 0 : 0) ? (i3 = _luaT_gettm(i4, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i3 | 0) != 0) : 0) {
  26616. i4 = HEAP32[i2 + 8 >> 2] | 0;
  26617. L9 : do {
  26618. if ((i4 | 0) == (HEAP32[i3 + 8 >> 2] | 0)) {
  26619. switch (i4 & 63 | 0) {
  26620. case 3:
  26621. {
  26622. i3 = +HEAPF64[i2 >> 3] == +HEAPF64[i3 >> 3] | 0;
  26623. break;
  26624. }
  26625. case 22:
  26626. {
  26627. i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
  26628. break;
  26629. }
  26630. case 5:
  26631. {
  26632. if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
  26633. break L1;
  26634. } else {
  26635. break L9;
  26636. }
  26637. }
  26638. case 1:
  26639. {
  26640. i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
  26641. break;
  26642. }
  26643. case 4:
  26644. {
  26645. i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
  26646. break;
  26647. }
  26648. case 0:
  26649. {
  26650. break L1;
  26651. }
  26652. case 7:
  26653. {
  26654. if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
  26655. break L1;
  26656. } else {
  26657. break L9;
  26658. }
  26659. }
  26660. case 2:
  26661. {
  26662. i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
  26663. break;
  26664. }
  26665. case 20:
  26666. {
  26667. i3 = _luaS_eqlngstr(HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] | 0) | 0;
  26668. break;
  26669. }
  26670. default:
  26671. {
  26672. i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
  26673. }
  26674. }
  26675. if ((i3 | 0) != 0) {
  26676. break L1;
  26677. }
  26678. }
  26679. } while (0);
  26680. i2 = 0;
  26681. } else {
  26682. i2 = 0;
  26683. }
  26684. }
  26685. } else {
  26686. i2 = 0;
  26687. }
  26688. } while (0);
  26689. STACKTOP = i1;
  26690. return i2 | 0;
  26691. }
  26692. function _luaS_newlstr(i2, i4, i3) {
  26693. i2 = i2 | 0;
  26694. i4 = i4 | 0;
  26695. i3 = i3 | 0;
  26696. var i1 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
  26697. i1 = STACKTOP;
  26698. if (!(i3 >>> 0 < 41)) {
  26699. if ((i3 + 1 | 0) >>> 0 > 4294967277) {
  26700. _luaM_toobig(i2);
  26701. }
  26702. i10 = HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 56 >> 2] | 0;
  26703. i11 = _luaC_newobj(i2, 20, i3 + 17 | 0, 0, 0) | 0;
  26704. HEAP32[i11 + 12 >> 2] = i3;
  26705. HEAP32[i11 + 8 >> 2] = i10;
  26706. HEAP8[i11 + 6 | 0] = 0;
  26707. i10 = i11 + 16 | 0;
  26708. _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
  26709. HEAP8[i10 + i3 | 0] = 0;
  26710. STACKTOP = i1;
  26711. return i11 | 0;
  26712. }
  26713. i5 = HEAP32[i2 + 12 >> 2] | 0;
  26714. i6 = HEAP32[i5 + 56 >> 2] ^ i3;
  26715. i7 = (i3 >>> 5) + 1 | 0;
  26716. if (!(i7 >>> 0 > i3 >>> 0)) {
  26717. i8 = i3;
  26718. do {
  26719. i6 = (i6 << 5) + (i6 >>> 2) + (HEAPU8[i4 + (i8 + -1) | 0] | 0) ^ i6;
  26720. i8 = i8 - i7 | 0;
  26721. } while (!(i8 >>> 0 < i7 >>> 0));
  26722. }
  26723. i10 = i5 + 32 | 0;
  26724. i9 = HEAP32[i10 >> 2] | 0;
  26725. i7 = i5 + 24 | 0;
  26726. i8 = HEAP32[i7 >> 2] | 0;
  26727. i11 = HEAP32[i8 + ((i9 + -1 & i6) << 2) >> 2] | 0;
  26728. L12 : do {
  26729. if ((i11 | 0) != 0) {
  26730. while (1) {
  26731. if (((i6 | 0) == (HEAP32[i11 + 8 >> 2] | 0) ? (HEAP32[i11 + 12 >> 2] | 0) == (i3 | 0) : 0) ? (_memcmp(i4, i11 + 16 | 0, i3) | 0) == 0 : 0) {
  26732. break;
  26733. }
  26734. i11 = HEAP32[i11 >> 2] | 0;
  26735. if ((i11 | 0) == 0) {
  26736. break L12;
  26737. }
  26738. }
  26739. i2 = i11 + 5 | 0;
  26740. i3 = (HEAPU8[i2] | 0) ^ 3;
  26741. if ((((HEAPU8[i5 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
  26742. STACKTOP = i1;
  26743. return i11 | 0;
  26744. }
  26745. HEAP8[i2] = i3;
  26746. STACKTOP = i1;
  26747. return i11 | 0;
  26748. }
  26749. } while (0);
  26750. i5 = i5 + 28 | 0;
  26751. if ((HEAP32[i5 >> 2] | 0) >>> 0 >= i9 >>> 0 & (i9 | 0) < 1073741823) {
  26752. _luaS_resize(i2, i9 << 1);
  26753. i9 = HEAP32[i10 >> 2] | 0;
  26754. i8 = HEAP32[i7 >> 2] | 0;
  26755. }
  26756. i11 = _luaC_newobj(i2, 4, i3 + 17 | 0, i8 + ((i9 + -1 & i6) << 2) | 0, 0) | 0;
  26757. HEAP32[i11 + 12 >> 2] = i3;
  26758. HEAP32[i11 + 8 >> 2] = i6;
  26759. HEAP8[i11 + 6 | 0] = 0;
  26760. i10 = i11 + 16 | 0;
  26761. _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
  26762. HEAP8[i10 + i3 | 0] = 0;
  26763. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
  26764. STACKTOP = i1;
  26765. return i11 | 0;
  26766. }
  26767. function _lua_pcallk(i3, i7, i2, i9, i6, i5) {
  26768. i3 = i3 | 0;
  26769. i7 = i7 | 0;
  26770. i2 = i2 | 0;
  26771. i9 = i9 | 0;
  26772. i6 = i6 | 0;
  26773. i5 = i5 | 0;
  26774. var i1 = 0, i4 = 0, i8 = 0, i10 = 0, i11 = 0;
  26775. i1 = STACKTOP;
  26776. STACKTOP = STACKTOP + 16 | 0;
  26777. i4 = i1;
  26778. if ((i9 | 0) == 0) {
  26779. i9 = 0;
  26780. } else {
  26781. i10 = HEAP32[i3 + 16 >> 2] | 0;
  26782. do {
  26783. if ((i9 | 0) <= 0) {
  26784. if (!((i9 | 0) < -1000999)) {
  26785. i8 = (HEAP32[i3 + 8 >> 2] | 0) + (i9 << 4) | 0;
  26786. break;
  26787. }
  26788. if ((i9 | 0) == -1001e3) {
  26789. i8 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  26790. break;
  26791. }
  26792. i9 = -1001e3 - i9 | 0;
  26793. i10 = HEAP32[i10 >> 2] | 0;
  26794. if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0)) : 0) {
  26795. i8 = i8 + (i9 + -1 << 4) + 16 | 0;
  26796. } else {
  26797. i8 = 5192;
  26798. }
  26799. } else {
  26800. i8 = (HEAP32[i10 >> 2] | 0) + (i9 << 4) | 0;
  26801. i8 = i8 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
  26802. }
  26803. } while (0);
  26804. i9 = i8 - (HEAP32[i3 + 28 >> 2] | 0) | 0;
  26805. }
  26806. i8 = i3 + 8 | 0;
  26807. i7 = (HEAP32[i8 >> 2] | 0) + (~i7 << 4) | 0;
  26808. HEAP32[i4 >> 2] = i7;
  26809. if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
  26810. i11 = HEAP32[i3 + 16 >> 2] | 0;
  26811. HEAP32[i11 + 28 >> 2] = i5;
  26812. HEAP32[i11 + 24 >> 2] = i6;
  26813. HEAP32[i11 + 20 >> 2] = (HEAP32[i4 >> 2] | 0) - (HEAP32[i3 + 28 >> 2] | 0);
  26814. HEAP8[i11 + 36 | 0] = HEAP8[i3 + 41 | 0] | 0;
  26815. i10 = i3 + 68 | 0;
  26816. i7 = i11 + 32 | 0;
  26817. HEAP32[i7 >> 2] = HEAP32[i10 >> 2];
  26818. HEAP32[i10 >> 2] = i9;
  26819. i9 = i11 + 18 | 0;
  26820. HEAP8[i9] = HEAPU8[i9] | 16;
  26821. _luaD_call(i3, HEAP32[i4 >> 2] | 0, i2, 1);
  26822. HEAP8[i9] = HEAP8[i9] & 239;
  26823. HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
  26824. i4 = 0;
  26825. } else {
  26826. HEAP32[i4 + 4 >> 2] = i2;
  26827. i4 = _luaD_pcall(i3, 3, i4, i7 - (HEAP32[i3 + 28 >> 2] | 0) | 0, i9) | 0;
  26828. }
  26829. if (!((i2 | 0) == -1)) {
  26830. STACKTOP = i1;
  26831. return i4 | 0;
  26832. }
  26833. i2 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
  26834. i3 = HEAP32[i8 >> 2] | 0;
  26835. if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i3 >>> 0)) {
  26836. STACKTOP = i1;
  26837. return i4 | 0;
  26838. }
  26839. HEAP32[i2 >> 2] = i3;
  26840. STACKTOP = i1;
  26841. return i4 | 0;
  26842. }
  26843. function _lua_getupvalue(i1, i6, i3) {
  26844. i1 = i1 | 0;
  26845. i6 = i6 | 0;
  26846. i3 = i3 | 0;
  26847. var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  26848. i2 = STACKTOP;
  26849. i5 = HEAP32[i1 + 16 >> 2] | 0;
  26850. do {
  26851. if ((i6 | 0) <= 0) {
  26852. if (!((i6 | 0) < -1000999)) {
  26853. i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
  26854. break;
  26855. }
  26856. if ((i6 | 0) == -1001e3) {
  26857. i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  26858. break;
  26859. }
  26860. i6 = -1001e3 - i6 | 0;
  26861. i5 = HEAP32[i5 >> 2] | 0;
  26862. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  26863. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  26864. } else {
  26865. i4 = 5192;
  26866. }
  26867. } else {
  26868. i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  26869. i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  26870. }
  26871. } while (0);
  26872. i5 = HEAP32[i4 + 8 >> 2] & 63;
  26873. do {
  26874. if ((i5 | 0) == 38) {
  26875. i5 = HEAP32[i4 >> 2] | 0;
  26876. if ((i3 | 0) <= 0) {
  26877. i6 = 0;
  26878. STACKTOP = i2;
  26879. return i6 | 0;
  26880. }
  26881. if ((HEAPU8[i5 + 6 | 0] | 0 | 0) < (i3 | 0)) {
  26882. i6 = 0;
  26883. STACKTOP = i2;
  26884. return i6 | 0;
  26885. } else {
  26886. i4 = 936;
  26887. i3 = i5 + (i3 + -1 << 4) + 16 | 0;
  26888. break;
  26889. }
  26890. } else if ((i5 | 0) == 6) {
  26891. i5 = HEAP32[i4 >> 2] | 0;
  26892. i4 = HEAP32[i5 + 12 >> 2] | 0;
  26893. if ((i3 | 0) <= 0) {
  26894. i6 = 0;
  26895. STACKTOP = i2;
  26896. return i6 | 0;
  26897. }
  26898. if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
  26899. i6 = 0;
  26900. STACKTOP = i2;
  26901. return i6 | 0;
  26902. }
  26903. i6 = i3 + -1 | 0;
  26904. i3 = HEAP32[(HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0) + 8 >> 2] | 0;
  26905. i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
  26906. if ((i4 | 0) == 0) {
  26907. i4 = 936;
  26908. } else {
  26909. i4 = i4 + 16 | 0;
  26910. }
  26911. } else {
  26912. i6 = 0;
  26913. STACKTOP = i2;
  26914. return i6 | 0;
  26915. }
  26916. } while (0);
  26917. i6 = i1 + 8 | 0;
  26918. i5 = HEAP32[i6 >> 2] | 0;
  26919. i8 = i3;
  26920. i7 = HEAP32[i8 + 4 >> 2] | 0;
  26921. i1 = i5;
  26922. HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
  26923. HEAP32[i1 + 4 >> 2] = i7;
  26924. HEAP32[i5 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
  26925. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
  26926. i6 = i4;
  26927. STACKTOP = i2;
  26928. return i6 | 0;
  26929. }
  26930. function _lua_copy(i1, i8, i4) {
  26931. i1 = i1 | 0;
  26932. i8 = i8 | 0;
  26933. i4 = i4 | 0;
  26934. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0;
  26935. i2 = STACKTOP;
  26936. i3 = i1 + 16 | 0;
  26937. i6 = HEAP32[i3 >> 2] | 0;
  26938. do {
  26939. if ((i8 | 0) <= 0) {
  26940. if (!((i8 | 0) < -1000999)) {
  26941. i7 = (HEAP32[i1 + 8 >> 2] | 0) + (i8 << 4) | 0;
  26942. break;
  26943. }
  26944. if ((i8 | 0) == -1001e3) {
  26945. i7 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  26946. break;
  26947. }
  26948. i8 = -1001e3 - i8 | 0;
  26949. i9 = HEAP32[i6 >> 2] | 0;
  26950. if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
  26951. i7 = i7 + (i8 + -1 << 4) + 16 | 0;
  26952. } else {
  26953. i7 = 5192;
  26954. }
  26955. } else {
  26956. i7 = (HEAP32[i6 >> 2] | 0) + (i8 << 4) | 0;
  26957. i7 = i7 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
  26958. }
  26959. } while (0);
  26960. do {
  26961. if ((i4 | 0) <= 0) {
  26962. if (!((i4 | 0) < -1000999)) {
  26963. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
  26964. break;
  26965. }
  26966. if ((i4 | 0) == -1001e3) {
  26967. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  26968. break;
  26969. }
  26970. i8 = -1001e3 - i4 | 0;
  26971. i6 = HEAP32[i6 >> 2] | 0;
  26972. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i8 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
  26973. i5 = i5 + (i8 + -1 << 4) + 16 | 0;
  26974. } else {
  26975. i5 = 5192;
  26976. }
  26977. } else {
  26978. i5 = (HEAP32[i6 >> 2] | 0) + (i4 << 4) | 0;
  26979. i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
  26980. }
  26981. } while (0);
  26982. i8 = i7;
  26983. i9 = HEAP32[i8 + 4 >> 2] | 0;
  26984. i6 = i5;
  26985. HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
  26986. HEAP32[i6 + 4 >> 2] = i9;
  26987. i6 = i7 + 8 | 0;
  26988. HEAP32[i5 + 8 >> 2] = HEAP32[i6 >> 2];
  26989. if (!((i4 | 0) < -1001e3)) {
  26990. STACKTOP = i2;
  26991. return;
  26992. }
  26993. if ((HEAP32[i6 >> 2] & 64 | 0) == 0) {
  26994. STACKTOP = i2;
  26995. return;
  26996. }
  26997. i4 = HEAP32[i7 >> 2] | 0;
  26998. if ((HEAP8[i4 + 5 | 0] & 3) == 0) {
  26999. STACKTOP = i2;
  27000. return;
  27001. }
  27002. i3 = HEAP32[HEAP32[HEAP32[i3 >> 2] >> 2] >> 2] | 0;
  27003. if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
  27004. STACKTOP = i2;
  27005. return;
  27006. }
  27007. _luaC_barrier_(i1, i3, i4);
  27008. STACKTOP = i2;
  27009. return;
  27010. }
  27011. function _lua_tolstring(i4, i5, i1) {
  27012. i4 = i4 | 0;
  27013. i5 = i5 | 0;
  27014. i1 = i1 | 0;
  27015. var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  27016. i2 = STACKTOP;
  27017. i7 = i4 + 16 | 0;
  27018. i10 = HEAP32[i7 >> 2] | 0;
  27019. i6 = (i5 | 0) > 0;
  27020. do {
  27021. if (!i6) {
  27022. if (!((i5 | 0) < -1000999)) {
  27023. i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
  27024. break;
  27025. }
  27026. if ((i5 | 0) == -1001e3) {
  27027. i8 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
  27028. break;
  27029. }
  27030. i9 = -1001e3 - i5 | 0;
  27031. i10 = HEAP32[i10 >> 2] | 0;
  27032. if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
  27033. i8 = i8 + (i9 + -1 << 4) + 16 | 0;
  27034. } else {
  27035. i8 = 5192;
  27036. }
  27037. } else {
  27038. i8 = (HEAP32[i10 >> 2] | 0) + (i5 << 4) | 0;
  27039. i8 = i8 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
  27040. }
  27041. } while (0);
  27042. do {
  27043. if ((HEAP32[i8 + 8 >> 2] & 15 | 0) != 4) {
  27044. if ((_luaV_tostring(i4, i8) | 0) == 0) {
  27045. if ((i1 | 0) == 0) {
  27046. i10 = 0;
  27047. STACKTOP = i2;
  27048. return i10 | 0;
  27049. }
  27050. HEAP32[i1 >> 2] = 0;
  27051. i10 = 0;
  27052. STACKTOP = i2;
  27053. return i10 | 0;
  27054. }
  27055. i8 = i4 + 12 | 0;
  27056. if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  27057. _luaC_step(i4);
  27058. }
  27059. i7 = HEAP32[i7 >> 2] | 0;
  27060. if (i6) {
  27061. i3 = (HEAP32[i7 >> 2] | 0) + (i5 << 4) | 0;
  27062. i8 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  27063. break;
  27064. }
  27065. if (!((i5 | 0) < -1000999)) {
  27066. i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
  27067. break;
  27068. }
  27069. if ((i5 | 0) == -1001e3) {
  27070. i8 = (HEAP32[i8 >> 2] | 0) + 40 | 0;
  27071. break;
  27072. }
  27073. i4 = -1001e3 - i5 | 0;
  27074. i5 = HEAP32[i7 >> 2] | 0;
  27075. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  27076. i8 = i3 + (i4 + -1 << 4) + 16 | 0;
  27077. } else {
  27078. i8 = 5192;
  27079. }
  27080. }
  27081. } while (0);
  27082. i3 = HEAP32[i8 >> 2] | 0;
  27083. if ((i1 | 0) != 0) {
  27084. HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2];
  27085. }
  27086. i10 = i3 + 16 | 0;
  27087. STACKTOP = i2;
  27088. return i10 | 0;
  27089. }
  27090. function _luaD_pcall(i3, i6, i5, i13, i14) {
  27091. i3 = i3 | 0;
  27092. i6 = i6 | 0;
  27093. i5 = i5 | 0;
  27094. i13 = i13 | 0;
  27095. i14 = i14 | 0;
  27096. var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
  27097. i1 = STACKTOP;
  27098. i10 = i3 + 16 | 0;
  27099. i11 = HEAP32[i10 >> 2] | 0;
  27100. i12 = i3 + 41 | 0;
  27101. i7 = HEAP8[i12] | 0;
  27102. i9 = i3 + 36 | 0;
  27103. i8 = HEAP16[i9 >> 1] | 0;
  27104. i4 = i3 + 68 | 0;
  27105. i2 = HEAP32[i4 >> 2] | 0;
  27106. HEAP32[i4 >> 2] = i14;
  27107. i5 = _luaD_rawrunprotected(i3, i6, i5) | 0;
  27108. if ((i5 | 0) == 0) {
  27109. HEAP32[i4 >> 2] = i2;
  27110. STACKTOP = i1;
  27111. return i5 | 0;
  27112. }
  27113. i6 = i3 + 28 | 0;
  27114. i14 = HEAP32[i6 >> 2] | 0;
  27115. i15 = i14 + i13 | 0;
  27116. _luaF_close(i3, i15);
  27117. if ((i5 | 0) == 6) {
  27118. i16 = _luaS_newlstr(i3, 2424, 23) | 0;
  27119. HEAP32[i15 >> 2] = i16;
  27120. HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
  27121. } else if ((i5 | 0) == 4) {
  27122. i16 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 180 >> 2] | 0;
  27123. HEAP32[i15 >> 2] = i16;
  27124. HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
  27125. } else {
  27126. i16 = HEAP32[i3 + 8 >> 2] | 0;
  27127. i18 = i16 + -16 | 0;
  27128. i17 = HEAP32[i18 + 4 >> 2] | 0;
  27129. HEAP32[i15 >> 2] = HEAP32[i18 >> 2];
  27130. HEAP32[i15 + 4 >> 2] = i17;
  27131. HEAP32[i14 + (i13 + 8) >> 2] = HEAP32[i16 + -8 >> 2];
  27132. }
  27133. i13 = i14 + (i13 + 16) | 0;
  27134. HEAP32[i3 + 8 >> 2] = i13;
  27135. HEAP32[i10 >> 2] = i11;
  27136. HEAP8[i12] = i7;
  27137. HEAP16[i9 >> 1] = i8;
  27138. if ((i11 | 0) != 0) {
  27139. do {
  27140. i7 = HEAP32[i11 + 4 >> 2] | 0;
  27141. i13 = i13 >>> 0 < i7 >>> 0 ? i7 : i13;
  27142. i11 = HEAP32[i11 + 8 >> 2] | 0;
  27143. } while ((i11 | 0) != 0);
  27144. }
  27145. i6 = i13 - (HEAP32[i6 >> 2] | 0) | 0;
  27146. i7 = (i6 >> 4) + 1 | 0;
  27147. i7 = ((i7 | 0) / 8 | 0) + 10 + i7 | 0;
  27148. i7 = (i7 | 0) > 1e6 ? 1e6 : i7;
  27149. if ((i6 | 0) > 15999984) {
  27150. HEAP32[i4 >> 2] = i2;
  27151. STACKTOP = i1;
  27152. return i5 | 0;
  27153. }
  27154. if ((i7 | 0) >= (HEAP32[i3 + 32 >> 2] | 0)) {
  27155. HEAP32[i4 >> 2] = i2;
  27156. STACKTOP = i1;
  27157. return i5 | 0;
  27158. }
  27159. _luaD_reallocstack(i3, i7);
  27160. HEAP32[i4 >> 2] = i2;
  27161. STACKTOP = i1;
  27162. return i5 | 0;
  27163. }
  27164. function _luaH_resize(i1, i4, i6, i9) {
  27165. i1 = i1 | 0;
  27166. i4 = i4 | 0;
  27167. i6 = i6 | 0;
  27168. i9 = i9 | 0;
  27169. var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0;
  27170. i3 = STACKTOP;
  27171. i8 = i4 + 28 | 0;
  27172. i5 = HEAP32[i8 >> 2] | 0;
  27173. i7 = HEAPU8[i4 + 7 | 0] | 0;
  27174. i2 = HEAP32[i4 + 16 >> 2] | 0;
  27175. if ((i5 | 0) < (i6 | 0)) {
  27176. if ((i6 + 1 | 0) >>> 0 > 268435455) {
  27177. _luaM_toobig(i1);
  27178. }
  27179. i11 = i4 + 12 | 0;
  27180. i10 = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
  27181. HEAP32[i11 >> 2] = i10;
  27182. i11 = HEAP32[i8 >> 2] | 0;
  27183. if ((i11 | 0) < (i6 | 0)) {
  27184. do {
  27185. HEAP32[i10 + (i11 << 4) + 8 >> 2] = 0;
  27186. i11 = i11 + 1 | 0;
  27187. } while ((i11 | 0) != (i6 | 0));
  27188. }
  27189. HEAP32[i8 >> 2] = i6;
  27190. }
  27191. _setnodevector(i1, i4, i9);
  27192. do {
  27193. if ((i5 | 0) > (i6 | 0)) {
  27194. HEAP32[i8 >> 2] = i6;
  27195. i8 = i4 + 12 | 0;
  27196. i9 = i6;
  27197. do {
  27198. i10 = HEAP32[i8 >> 2] | 0;
  27199. if ((HEAP32[i10 + (i9 << 4) + 8 >> 2] | 0) == 0) {
  27200. i9 = i9 + 1 | 0;
  27201. } else {
  27202. i11 = i9 + 1 | 0;
  27203. _luaH_setint(i1, i4, i11, i10 + (i9 << 4) | 0);
  27204. i9 = i11;
  27205. }
  27206. } while ((i9 | 0) != (i5 | 0));
  27207. if ((i6 + 1 | 0) >>> 0 > 268435455) {
  27208. _luaM_toobig(i1);
  27209. } else {
  27210. i11 = i4 + 12 | 0;
  27211. HEAP32[i11 >> 2] = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
  27212. break;
  27213. }
  27214. }
  27215. } while (0);
  27216. i5 = 1 << i7;
  27217. if ((i5 | 0) > 0) {
  27218. i6 = i5;
  27219. do {
  27220. i6 = i6 + -1 | 0;
  27221. i7 = i2 + (i6 << 5) + 8 | 0;
  27222. if ((HEAP32[i7 >> 2] | 0) != 0) {
  27223. i8 = i2 + (i6 << 5) + 16 | 0;
  27224. i9 = _luaH_get(i4, i8) | 0;
  27225. if ((i9 | 0) == 5192) {
  27226. i9 = _luaH_newkey(i1, i4, i8) | 0;
  27227. }
  27228. i8 = i2 + (i6 << 5) | 0;
  27229. i10 = HEAP32[i8 + 4 >> 2] | 0;
  27230. i11 = i9;
  27231. HEAP32[i11 >> 2] = HEAP32[i8 >> 2];
  27232. HEAP32[i11 + 4 >> 2] = i10;
  27233. HEAP32[i9 + 8 >> 2] = HEAP32[i7 >> 2];
  27234. }
  27235. } while ((i6 | 0) > 0);
  27236. }
  27237. if ((i2 | 0) == 8016) {
  27238. STACKTOP = i3;
  27239. return;
  27240. }
  27241. _luaM_realloc_(i1, i2, i5 << 5, 0) | 0;
  27242. STACKTOP = i3;
  27243. return;
  27244. }
  27245. function _codearith(i4, i3, i2, i6, i5) {
  27246. i4 = i4 | 0;
  27247. i3 = i3 | 0;
  27248. i2 = i2 | 0;
  27249. i6 = i6 | 0;
  27250. i5 = i5 | 0;
  27251. var i1 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0;
  27252. i7 = STACKTOP;
  27253. if (((((((HEAP32[i2 >> 2] | 0) == 5 ? (HEAP32[i2 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i2 + 20 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 >> 2] | 0) == 5 : 0) ? (HEAP32[i6 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 + 20 >> 2] | 0) == -1 : 0) ? (d13 = +HEAPF64[i6 + 8 >> 3], !((i3 & -2 | 0) == 16 & d13 == 0.0)) : 0) {
  27254. i12 = i2 + 8 | 0;
  27255. HEAPF64[i12 >> 3] = +_luaO_arith(i3 + -13 | 0, +HEAPF64[i12 >> 3], d13);
  27256. STACKTOP = i7;
  27257. return;
  27258. }
  27259. if ((i3 | 0) == 19 | (i3 | 0) == 21) {
  27260. i11 = 0;
  27261. } else {
  27262. i11 = _luaK_exp2RK(i4, i6) | 0;
  27263. }
  27264. i12 = _luaK_exp2RK(i4, i2) | 0;
  27265. if ((i12 | 0) > (i11 | 0)) {
  27266. if (((HEAP32[i2 >> 2] | 0) == 6 ? (i8 = HEAP32[i2 + 8 >> 2] | 0, (i8 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
  27267. i10 = i4 + 48 | 0;
  27268. HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
  27269. }
  27270. if (((HEAP32[i6 >> 2] | 0) == 6 ? (i1 = HEAP32[i6 + 8 >> 2] | 0, (i1 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i1 | 0) : 0) {
  27271. i10 = i4 + 48 | 0;
  27272. HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
  27273. }
  27274. } else {
  27275. if (((HEAP32[i6 >> 2] | 0) == 6 ? (i10 = HEAP32[i6 + 8 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
  27276. i10 = i4 + 48 | 0;
  27277. HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
  27278. }
  27279. if (((HEAP32[i2 >> 2] | 0) == 6 ? (i9 = HEAP32[i2 + 8 >> 2] | 0, (i9 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i9 | 0) : 0) {
  27280. i10 = i4 + 48 | 0;
  27281. HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
  27282. }
  27283. }
  27284. HEAP32[i2 + 8 >> 2] = _luaK_code(i4, i11 << 14 | i3 | i12 << 23) | 0;
  27285. HEAP32[i2 >> 2] = 11;
  27286. HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i4 + 20 >> 2] | 0) + -1 << 2) >> 2] = i5;
  27287. STACKTOP = i7;
  27288. return;
  27289. }
  27290. function _GCTM(i1, i3) {
  27291. i1 = i1 | 0;
  27292. i3 = i3 | 0;
  27293. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
  27294. i4 = STACKTOP;
  27295. STACKTOP = STACKTOP + 32 | 0;
  27296. i2 = i4 + 16 | 0;
  27297. i5 = i4;
  27298. i6 = HEAP32[i1 + 12 >> 2] | 0;
  27299. i9 = i6 + 104 | 0;
  27300. i8 = HEAP32[i9 >> 2] | 0;
  27301. HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
  27302. i9 = i6 + 68 | 0;
  27303. HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
  27304. HEAP32[i9 >> 2] = i8;
  27305. i9 = i8 + 5 | 0;
  27306. i7 = HEAPU8[i9] | 0;
  27307. HEAP8[i9] = i7 & 239;
  27308. if ((HEAPU8[i6 + 61 | 0] | 0) >= 2) {
  27309. HEAP8[i9] = HEAP8[i6 + 60 | 0] & 3 | i7 & 168;
  27310. }
  27311. HEAP32[i5 >> 2] = i8;
  27312. i7 = i5 + 8 | 0;
  27313. HEAP32[i7 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
  27314. i8 = _luaT_gettmbyobj(i1, i5, 2) | 0;
  27315. if ((i8 | 0) == 0) {
  27316. STACKTOP = i4;
  27317. return;
  27318. }
  27319. i9 = i8 + 8 | 0;
  27320. if ((HEAP32[i9 >> 2] & 15 | 0) != 6) {
  27321. STACKTOP = i4;
  27322. return;
  27323. }
  27324. i12 = i1 + 41 | 0;
  27325. i13 = HEAP8[i12] | 0;
  27326. i10 = i6 + 63 | 0;
  27327. i11 = HEAP8[i10] | 0;
  27328. HEAP8[i12] = 0;
  27329. HEAP8[i10] = 0;
  27330. i6 = i1 + 8 | 0;
  27331. i14 = HEAP32[i6 >> 2] | 0;
  27332. i16 = i8;
  27333. i15 = HEAP32[i16 + 4 >> 2] | 0;
  27334. i8 = i14;
  27335. HEAP32[i8 >> 2] = HEAP32[i16 >> 2];
  27336. HEAP32[i8 + 4 >> 2] = i15;
  27337. HEAP32[i14 + 8 >> 2] = HEAP32[i9 >> 2];
  27338. i9 = HEAP32[i6 >> 2] | 0;
  27339. i14 = i5;
  27340. i8 = HEAP32[i14 + 4 >> 2] | 0;
  27341. i5 = i9 + 16 | 0;
  27342. HEAP32[i5 >> 2] = HEAP32[i14 >> 2];
  27343. HEAP32[i5 + 4 >> 2] = i8;
  27344. HEAP32[i9 + 24 >> 2] = HEAP32[i7 >> 2];
  27345. i5 = HEAP32[i6 >> 2] | 0;
  27346. HEAP32[i6 >> 2] = i5 + 32;
  27347. i5 = _luaD_pcall(i1, 7, 0, i5 - (HEAP32[i1 + 28 >> 2] | 0) | 0, 0) | 0;
  27348. HEAP8[i12] = i13;
  27349. HEAP8[i10] = i11;
  27350. if ((i5 | 0) == 0 | (i3 | 0) == 0) {
  27351. STACKTOP = i4;
  27352. return;
  27353. }
  27354. if ((i5 | 0) != 2) {
  27355. i16 = i5;
  27356. _luaD_throw(i1, i16);
  27357. }
  27358. i3 = HEAP32[i6 >> 2] | 0;
  27359. if ((HEAP32[i3 + -8 >> 2] & 15 | 0) == 4) {
  27360. i3 = (HEAP32[i3 + -16 >> 2] | 0) + 16 | 0;
  27361. } else {
  27362. i3 = 2528;
  27363. }
  27364. HEAP32[i2 >> 2] = i3;
  27365. _luaO_pushfstring(i1, 2544, i2) | 0;
  27366. i16 = 5;
  27367. _luaD_throw(i1, i16);
  27368. }
  27369. function _lua_gc(i3, i5, i4) {
  27370. i3 = i3 | 0;
  27371. i5 = i5 | 0;
  27372. i4 = i4 | 0;
  27373. var i1 = 0, i2 = 0;
  27374. i1 = STACKTOP;
  27375. i2 = HEAP32[i3 + 12 >> 2] | 0;
  27376. L1 : do {
  27377. switch (i5 | 0) {
  27378. case 8:
  27379. {
  27380. i5 = i2 + 160 | 0;
  27381. i2 = HEAP32[i5 >> 2] | 0;
  27382. HEAP32[i5 >> 2] = i4;
  27383. break;
  27384. }
  27385. case 11:
  27386. {
  27387. _luaC_changemode(i3, 0);
  27388. i2 = 0;
  27389. break;
  27390. }
  27391. case 2:
  27392. {
  27393. _luaC_fullgc(i3, 0);
  27394. i2 = 0;
  27395. break;
  27396. }
  27397. case 5:
  27398. {
  27399. if ((HEAP8[i2 + 62 | 0] | 0) == 2) {
  27400. i2 = (HEAP32[i2 + 20 >> 2] | 0) == 0 | 0;
  27401. _luaC_forcestep(i3);
  27402. break L1;
  27403. }
  27404. i4 = (i4 << 10) + -1600 | 0;
  27405. if ((HEAP8[i2 + 63 | 0] | 0) == 0) {
  27406. i5 = i4;
  27407. _luaE_setdebt(i2, i5);
  27408. _luaC_forcestep(i3);
  27409. i5 = i2 + 61 | 0;
  27410. i5 = HEAP8[i5] | 0;
  27411. i5 = i5 << 24 >> 24 == 5;
  27412. i5 = i5 & 1;
  27413. STACKTOP = i1;
  27414. return i5 | 0;
  27415. }
  27416. i5 = (HEAP32[i2 + 12 >> 2] | 0) + i4 | 0;
  27417. _luaE_setdebt(i2, i5);
  27418. _luaC_forcestep(i3);
  27419. i5 = i2 + 61 | 0;
  27420. i5 = HEAP8[i5] | 0;
  27421. i5 = i5 << 24 >> 24 == 5;
  27422. i5 = i5 & 1;
  27423. STACKTOP = i1;
  27424. return i5 | 0;
  27425. }
  27426. case 4:
  27427. {
  27428. i2 = (HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) & 1023;
  27429. break;
  27430. }
  27431. case 1:
  27432. {
  27433. _luaE_setdebt(i2, 0);
  27434. HEAP8[i2 + 63 | 0] = 1;
  27435. i2 = 0;
  27436. break;
  27437. }
  27438. case 3:
  27439. {
  27440. i2 = ((HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) | 0) >>> 10;
  27441. break;
  27442. }
  27443. case 7:
  27444. {
  27445. i5 = i2 + 164 | 0;
  27446. i2 = HEAP32[i5 >> 2] | 0;
  27447. HEAP32[i5 >> 2] = i4;
  27448. break;
  27449. }
  27450. case 0:
  27451. {
  27452. HEAP8[i2 + 63 | 0] = 0;
  27453. i2 = 0;
  27454. break;
  27455. }
  27456. case 6:
  27457. {
  27458. i5 = i2 + 156 | 0;
  27459. i2 = HEAP32[i5 >> 2] | 0;
  27460. HEAP32[i5 >> 2] = i4;
  27461. break;
  27462. }
  27463. case 9:
  27464. {
  27465. i2 = HEAPU8[i2 + 63 | 0] | 0;
  27466. break;
  27467. }
  27468. case 10:
  27469. {
  27470. _luaC_changemode(i3, 2);
  27471. i2 = 0;
  27472. break;
  27473. }
  27474. default:
  27475. {
  27476. i2 = -1;
  27477. }
  27478. }
  27479. } while (0);
  27480. STACKTOP = i1;
  27481. return i2 | 0;
  27482. }
  27483. function _os_time(i1) {
  27484. i1 = i1 | 0;
  27485. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  27486. i2 = STACKTOP;
  27487. STACKTOP = STACKTOP + 64 | 0;
  27488. i4 = i2;
  27489. i5 = i2 + 48 | 0;
  27490. i3 = i2 + 4 | 0;
  27491. if ((_lua_type(i1, 1) | 0) < 1) {
  27492. i3 = _time(0) | 0;
  27493. } else {
  27494. _luaL_checktype(i1, 1, 5);
  27495. _lua_settop(i1, 1);
  27496. _lua_getfield(i1, -1, 5864);
  27497. i6 = _lua_tointegerx(i1, -1, i4) | 0;
  27498. i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
  27499. _lua_settop(i1, -2);
  27500. HEAP32[i3 >> 2] = i6;
  27501. _lua_getfield(i1, -1, 5872);
  27502. i6 = _lua_tointegerx(i1, -1, i4) | 0;
  27503. i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
  27504. _lua_settop(i1, -2);
  27505. HEAP32[i3 + 4 >> 2] = i6;
  27506. _lua_getfield(i1, -1, 5880);
  27507. i6 = _lua_tointegerx(i1, -1, i4) | 0;
  27508. i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 12 : i6;
  27509. _lua_settop(i1, -2);
  27510. HEAP32[i3 + 8 >> 2] = i6;
  27511. _lua_getfield(i1, -1, 5888);
  27512. i6 = _lua_tointegerx(i1, -1, i5) | 0;
  27513. if ((HEAP32[i5 >> 2] | 0) == 0) {
  27514. HEAP32[i4 >> 2] = 5888;
  27515. i6 = _luaL_error(i1, 5920, i4) | 0;
  27516. } else {
  27517. _lua_settop(i1, -2);
  27518. }
  27519. HEAP32[i3 + 12 >> 2] = i6;
  27520. _lua_getfield(i1, -1, 5896);
  27521. i6 = _lua_tointegerx(i1, -1, i5) | 0;
  27522. if ((HEAP32[i5 >> 2] | 0) == 0) {
  27523. HEAP32[i4 >> 2] = 5896;
  27524. i6 = _luaL_error(i1, 5920, i4) | 0;
  27525. } else {
  27526. _lua_settop(i1, -2);
  27527. }
  27528. HEAP32[i3 + 16 >> 2] = i6 + -1;
  27529. _lua_getfield(i1, -1, 5904);
  27530. i6 = _lua_tointegerx(i1, -1, i5) | 0;
  27531. if ((HEAP32[i5 >> 2] | 0) == 0) {
  27532. HEAP32[i4 >> 2] = 5904;
  27533. i6 = _luaL_error(i1, 5920, i4) | 0;
  27534. } else {
  27535. _lua_settop(i1, -2);
  27536. }
  27537. HEAP32[i3 + 20 >> 2] = i6 + -1900;
  27538. _lua_getfield(i1, -1, 5912);
  27539. if ((_lua_type(i1, -1) | 0) == 0) {
  27540. i4 = -1;
  27541. } else {
  27542. i4 = _lua_toboolean(i1, -1) | 0;
  27543. }
  27544. _lua_settop(i1, -2);
  27545. HEAP32[i3 + 32 >> 2] = i4;
  27546. i3 = _mktime(i3 | 0) | 0;
  27547. }
  27548. if ((i3 | 0) == -1) {
  27549. _lua_pushnil(i1);
  27550. STACKTOP = i2;
  27551. return 1;
  27552. } else {
  27553. _lua_pushnumber(i1, +(i3 | 0));
  27554. STACKTOP = i2;
  27555. return 1;
  27556. }
  27557. return 0;
  27558. }
  27559. function _addk(i6, i4, i3) {
  27560. i6 = i6 | 0;
  27561. i4 = i4 | 0;
  27562. i3 = i3 | 0;
  27563. var i1 = 0, i2 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  27564. i1 = STACKTOP;
  27565. STACKTOP = STACKTOP + 16 | 0;
  27566. i10 = i1;
  27567. i2 = HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 52 >> 2] | 0;
  27568. i8 = _luaH_set(i2, HEAP32[i6 + 4 >> 2] | 0, i4) | 0;
  27569. i4 = HEAP32[i6 >> 2] | 0;
  27570. i9 = i8 + 8 | 0;
  27571. if (((HEAP32[i9 >> 2] | 0) == 3 ? (HEAPF64[i10 >> 3] = +HEAPF64[i8 >> 3] + 6755399441055744.0, i7 = HEAP32[i10 >> 2] | 0, i5 = HEAP32[i4 + 8 >> 2] | 0, (HEAP32[i5 + (i7 << 4) + 8 >> 2] | 0) == (HEAP32[i3 + 8 >> 2] | 0)) : 0) ? (_luaV_equalobj_(0, i5 + (i7 << 4) | 0, i3) | 0) != 0 : 0) {
  27572. i10 = i7;
  27573. STACKTOP = i1;
  27574. return i10 | 0;
  27575. }
  27576. i5 = i4 + 44 | 0;
  27577. i10 = HEAP32[i5 >> 2] | 0;
  27578. i7 = i6 + 32 | 0;
  27579. i6 = HEAP32[i7 >> 2] | 0;
  27580. HEAPF64[i8 >> 3] = +(i6 | 0);
  27581. HEAP32[i9 >> 2] = 3;
  27582. i9 = HEAP32[i5 >> 2] | 0;
  27583. if ((i6 | 0) >= (i9 | 0)) {
  27584. i9 = i4 + 8 | 0;
  27585. HEAP32[i9 >> 2] = _luaM_growaux_(i2, HEAP32[i9 >> 2] | 0, i5, 16, 67108863, 10600) | 0;
  27586. i9 = HEAP32[i5 >> 2] | 0;
  27587. }
  27588. i8 = HEAP32[i4 + 8 >> 2] | 0;
  27589. if ((i10 | 0) < (i9 | 0)) {
  27590. while (1) {
  27591. i9 = i10 + 1 | 0;
  27592. HEAP32[i8 + (i10 << 4) + 8 >> 2] = 0;
  27593. if ((i9 | 0) < (HEAP32[i5 >> 2] | 0)) {
  27594. i10 = i9;
  27595. } else {
  27596. break;
  27597. }
  27598. }
  27599. }
  27600. i5 = i3;
  27601. i9 = HEAP32[i5 + 4 >> 2] | 0;
  27602. i10 = i8 + (i6 << 4) | 0;
  27603. HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
  27604. HEAP32[i10 + 4 >> 2] = i9;
  27605. i10 = i3 + 8 | 0;
  27606. HEAP32[i8 + (i6 << 4) + 8 >> 2] = HEAP32[i10 >> 2];
  27607. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
  27608. if ((HEAP32[i10 >> 2] & 64 | 0) == 0) {
  27609. i10 = i6;
  27610. STACKTOP = i1;
  27611. return i10 | 0;
  27612. }
  27613. i3 = HEAP32[i3 >> 2] | 0;
  27614. if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
  27615. i10 = i6;
  27616. STACKTOP = i1;
  27617. return i10 | 0;
  27618. }
  27619. if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
  27620. i10 = i6;
  27621. STACKTOP = i1;
  27622. return i10 | 0;
  27623. }
  27624. _luaC_barrier_(i2, i4, i3);
  27625. i10 = i6;
  27626. STACKTOP = i1;
  27627. return i10 | 0;
  27628. }
  27629. function _singlevaraux(i5, i4, i2, i11) {
  27630. i5 = i5 | 0;
  27631. i4 = i4 | 0;
  27632. i2 = i2 | 0;
  27633. i11 = i11 | 0;
  27634. var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  27635. i1 = STACKTOP;
  27636. if ((i5 | 0) == 0) {
  27637. i11 = 0;
  27638. STACKTOP = i1;
  27639. return i11 | 0;
  27640. }
  27641. i7 = i5 + 12 | 0;
  27642. i8 = i5 + 40 | 0;
  27643. i9 = HEAPU8[i5 + 46 | 0] | 0;
  27644. while (1) {
  27645. i6 = i9 + -1 | 0;
  27646. i10 = HEAP32[i5 >> 2] | 0;
  27647. if ((i9 | 0) <= 0) {
  27648. break;
  27649. }
  27650. if ((_luaS_eqstr(i4, HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i8 >> 2] | 0) + i6 << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) | 0) == 0) {
  27651. i9 = i6;
  27652. } else {
  27653. i3 = 5;
  27654. break;
  27655. }
  27656. }
  27657. if ((i3 | 0) == 5) {
  27658. HEAP32[i2 + 16 >> 2] = -1;
  27659. HEAP32[i2 + 20 >> 2] = -1;
  27660. HEAP32[i2 >> 2] = 7;
  27661. HEAP32[i2 + 8 >> 2] = i6;
  27662. if ((i11 | 0) != 0) {
  27663. i11 = 7;
  27664. STACKTOP = i1;
  27665. return i11 | 0;
  27666. }
  27667. i2 = i5 + 16 | 0;
  27668. do {
  27669. i2 = HEAP32[i2 >> 2] | 0;
  27670. } while ((HEAPU8[i2 + 8 | 0] | 0) > (i6 | 0));
  27671. HEAP8[i2 + 9 | 0] = 1;
  27672. i11 = 7;
  27673. STACKTOP = i1;
  27674. return i11 | 0;
  27675. }
  27676. i7 = HEAP32[i10 + 28 >> 2] | 0;
  27677. i6 = i5 + 47 | 0;
  27678. L17 : do {
  27679. if ((HEAP8[i6] | 0) != 0) {
  27680. i8 = 0;
  27681. while (1) {
  27682. i9 = i8 + 1 | 0;
  27683. if ((_luaS_eqstr(HEAP32[i7 + (i8 << 3) >> 2] | 0, i4) | 0) != 0) {
  27684. break;
  27685. }
  27686. if ((i9 | 0) < (HEAPU8[i6] | 0)) {
  27687. i8 = i9;
  27688. } else {
  27689. i3 = 13;
  27690. break L17;
  27691. }
  27692. }
  27693. if ((i8 | 0) < 0) {
  27694. i3 = 13;
  27695. }
  27696. } else {
  27697. i3 = 13;
  27698. }
  27699. } while (0);
  27700. do {
  27701. if ((i3 | 0) == 13) {
  27702. if ((_singlevaraux(HEAP32[i5 + 8 >> 2] | 0, i4, i2, 0) | 0) == 0) {
  27703. i11 = 0;
  27704. STACKTOP = i1;
  27705. return i11 | 0;
  27706. } else {
  27707. i8 = _newupvalue(i5, i4, i2) | 0;
  27708. break;
  27709. }
  27710. }
  27711. } while (0);
  27712. HEAP32[i2 + 16 >> 2] = -1;
  27713. HEAP32[i2 + 20 >> 2] = -1;
  27714. HEAP32[i2 >> 2] = 8;
  27715. HEAP32[i2 + 8 >> 2] = i8;
  27716. i11 = 8;
  27717. STACKTOP = i1;
  27718. return i11 | 0;
  27719. }
  27720. function _mainposition(i1, i3) {
  27721. i1 = i1 | 0;
  27722. i3 = i3 | 0;
  27723. var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
  27724. i2 = STACKTOP;
  27725. STACKTOP = STACKTOP + 16 | 0;
  27726. i4 = i2;
  27727. switch (HEAP32[i3 + 8 >> 2] & 63 | 0) {
  27728. case 3:
  27729. {
  27730. HEAPF64[i4 >> 3] = +HEAPF64[i3 >> 3] + 1.0;
  27731. i3 = (HEAP32[i4 + 4 >> 2] | 0) + (HEAP32[i4 >> 2] | 0) | 0;
  27732. if ((i3 | 0) < 0) {
  27733. i4 = 0 - i3 | 0;
  27734. i3 = (i3 | 0) == (i4 | 0) ? 0 : i4;
  27735. }
  27736. i5 = (HEAP32[i1 + 16 >> 2] | 0) + (((i3 | 0) % ((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1 | 0) | 0) << 5) | 0;
  27737. STACKTOP = i2;
  27738. return i5 | 0;
  27739. }
  27740. case 2:
  27741. {
  27742. i5 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
  27743. STACKTOP = i2;
  27744. return i5 | 0;
  27745. }
  27746. case 20:
  27747. {
  27748. i5 = HEAP32[i3 >> 2] | 0;
  27749. i4 = i5 + 6 | 0;
  27750. if ((HEAP8[i4] | 0) == 0) {
  27751. i6 = i5 + 8 | 0;
  27752. HEAP32[i6 >> 2] = _luaS_hash(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0;
  27753. HEAP8[i4] = 1;
  27754. i5 = HEAP32[i3 >> 2] | 0;
  27755. }
  27756. i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i5 + 8 >> 2]) << 5) | 0;
  27757. STACKTOP = i2;
  27758. return i6 | 0;
  27759. }
  27760. case 22:
  27761. {
  27762. i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
  27763. STACKTOP = i2;
  27764. return i6 | 0;
  27765. }
  27766. case 4:
  27767. {
  27768. i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2]) << 5) | 0;
  27769. STACKTOP = i2;
  27770. return i6 | 0;
  27771. }
  27772. case 1:
  27773. {
  27774. i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i3 >> 2]) << 5) | 0;
  27775. STACKTOP = i2;
  27776. return i6 | 0;
  27777. }
  27778. default:
  27779. {
  27780. i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
  27781. STACKTOP = i2;
  27782. return i6 | 0;
  27783. }
  27784. }
  27785. return 0;
  27786. }
  27787. function _clearvalues(i2, i5, i1) {
  27788. i2 = i2 | 0;
  27789. i5 = i5 | 0;
  27790. i1 = i1 | 0;
  27791. var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  27792. i4 = STACKTOP;
  27793. if ((i5 | 0) == (i1 | 0)) {
  27794. STACKTOP = i4;
  27795. return;
  27796. }
  27797. do {
  27798. i7 = i5 + 16 | 0;
  27799. i9 = HEAP32[i7 >> 2] | 0;
  27800. i6 = i9 + (1 << (HEAPU8[i5 + 7 | 0] | 0) << 5) | 0;
  27801. i8 = i5 + 28 | 0;
  27802. if ((HEAP32[i8 >> 2] | 0) > 0) {
  27803. i11 = i5 + 12 | 0;
  27804. i12 = 0;
  27805. do {
  27806. i13 = HEAP32[i11 >> 2] | 0;
  27807. i10 = i13 + (i12 << 4) + 8 | 0;
  27808. i9 = HEAP32[i10 >> 2] | 0;
  27809. do {
  27810. if ((i9 & 64 | 0) != 0) {
  27811. i13 = HEAP32[i13 + (i12 << 4) >> 2] | 0;
  27812. if ((i9 & 15 | 0) != 4) {
  27813. if ((HEAP8[i13 + 5 | 0] & 3) == 0) {
  27814. break;
  27815. }
  27816. HEAP32[i10 >> 2] = 0;
  27817. break;
  27818. }
  27819. if ((i13 | 0) != 0 ? !((HEAP8[i13 + 5 | 0] & 3) == 0) : 0) {
  27820. _reallymarkobject(i2, i13);
  27821. }
  27822. }
  27823. } while (0);
  27824. i12 = i12 + 1 | 0;
  27825. } while ((i12 | 0) < (HEAP32[i8 >> 2] | 0));
  27826. i7 = HEAP32[i7 >> 2] | 0;
  27827. } else {
  27828. i7 = i9;
  27829. }
  27830. if (i7 >>> 0 < i6 >>> 0) {
  27831. do {
  27832. i8 = i7 + 8 | 0;
  27833. i9 = HEAP32[i8 >> 2] | 0;
  27834. do {
  27835. if (!((i9 | 0) == 0 | (i9 & 64 | 0) == 0)) {
  27836. i10 = HEAP32[i7 >> 2] | 0;
  27837. if ((i9 & 15 | 0) == 4) {
  27838. if ((i10 | 0) == 0) {
  27839. break;
  27840. }
  27841. if ((HEAP8[i10 + 5 | 0] & 3) == 0) {
  27842. break;
  27843. }
  27844. _reallymarkobject(i2, i10);
  27845. break;
  27846. }
  27847. if ((!((HEAP8[i10 + 5 | 0] & 3) == 0) ? (HEAP32[i8 >> 2] = 0, i3 = i7 + 24 | 0, (HEAP32[i3 >> 2] & 64 | 0) != 0) : 0) ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
  27848. HEAP32[i3 >> 2] = 11;
  27849. }
  27850. }
  27851. } while (0);
  27852. i7 = i7 + 32 | 0;
  27853. } while (i7 >>> 0 < i6 >>> 0);
  27854. }
  27855. i5 = HEAP32[i5 + 24 >> 2] | 0;
  27856. } while ((i5 | 0) != (i1 | 0));
  27857. STACKTOP = i4;
  27858. return;
  27859. }
  27860. function _reallymarkobject(i1, i4) {
  27861. i1 = i1 | 0;
  27862. i4 = i4 | 0;
  27863. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
  27864. i3 = STACKTOP;
  27865. i2 = i4 + 5 | 0;
  27866. HEAP8[i2] = HEAP8[i2] & 252;
  27867. switch (HEAPU8[i4 + 4 | 0] | 0 | 0) {
  27868. case 6:
  27869. {
  27870. i7 = i1 + 84 | 0;
  27871. HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
  27872. HEAP32[i7 >> 2] = i4;
  27873. STACKTOP = i3;
  27874. return;
  27875. }
  27876. case 20:
  27877. case 4:
  27878. {
  27879. i4 = (HEAP32[i4 + 12 >> 2] | 0) + 17 | 0;
  27880. break;
  27881. }
  27882. case 7:
  27883. {
  27884. i5 = HEAP32[i4 + 8 >> 2] | 0;
  27885. if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
  27886. _reallymarkobject(i1, i5);
  27887. }
  27888. i5 = HEAP32[i4 + 12 >> 2] | 0;
  27889. if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
  27890. _reallymarkobject(i1, i5);
  27891. }
  27892. i4 = (HEAP32[i4 + 16 >> 2] | 0) + 24 | 0;
  27893. break;
  27894. }
  27895. case 8:
  27896. {
  27897. i7 = i1 + 84 | 0;
  27898. HEAP32[i4 + 60 >> 2] = HEAP32[i7 >> 2];
  27899. HEAP32[i7 >> 2] = i4;
  27900. STACKTOP = i3;
  27901. return;
  27902. }
  27903. case 10:
  27904. {
  27905. i6 = i4 + 8 | 0;
  27906. i7 = HEAP32[i6 >> 2] | 0;
  27907. if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i5 = HEAP32[i7 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
  27908. _reallymarkobject(i1, i5);
  27909. i7 = HEAP32[i6 >> 2] | 0;
  27910. }
  27911. if ((i7 | 0) == (i4 + 16 | 0)) {
  27912. i4 = 32;
  27913. } else {
  27914. STACKTOP = i3;
  27915. return;
  27916. }
  27917. break;
  27918. }
  27919. case 5:
  27920. {
  27921. i7 = i1 + 84 | 0;
  27922. HEAP32[i4 + 24 >> 2] = HEAP32[i7 >> 2];
  27923. HEAP32[i7 >> 2] = i4;
  27924. STACKTOP = i3;
  27925. return;
  27926. }
  27927. case 38:
  27928. {
  27929. i7 = i1 + 84 | 0;
  27930. HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
  27931. HEAP32[i7 >> 2] = i4;
  27932. STACKTOP = i3;
  27933. return;
  27934. }
  27935. case 9:
  27936. {
  27937. i7 = i1 + 84 | 0;
  27938. HEAP32[i4 + 72 >> 2] = HEAP32[i7 >> 2];
  27939. HEAP32[i7 >> 2] = i4;
  27940. STACKTOP = i3;
  27941. return;
  27942. }
  27943. default:
  27944. {
  27945. STACKTOP = i3;
  27946. return;
  27947. }
  27948. }
  27949. HEAP8[i2] = HEAPU8[i2] | 0 | 4;
  27950. i7 = i1 + 16 | 0;
  27951. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + i4;
  27952. STACKTOP = i3;
  27953. return;
  27954. }
  27955. function _lua_upvaluejoin(i1, i9, i7, i6, i3) {
  27956. i1 = i1 | 0;
  27957. i9 = i9 | 0;
  27958. i7 = i7 | 0;
  27959. i6 = i6 | 0;
  27960. i3 = i3 | 0;
  27961. var i2 = 0, i4 = 0, i5 = 0, i8 = 0, i10 = 0;
  27962. i2 = STACKTOP;
  27963. i5 = HEAP32[i1 + 16 >> 2] | 0;
  27964. do {
  27965. if ((i9 | 0) <= 0) {
  27966. if (!((i9 | 0) < -1000999)) {
  27967. i8 = (HEAP32[i1 + 8 >> 2] | 0) + (i9 << 4) | 0;
  27968. break;
  27969. }
  27970. if ((i9 | 0) == -1001e3) {
  27971. i8 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  27972. break;
  27973. }
  27974. i10 = -1001e3 - i9 | 0;
  27975. i9 = HEAP32[i5 >> 2] | 0;
  27976. if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
  27977. i8 = i8 + (i10 + -1 << 4) + 16 | 0;
  27978. } else {
  27979. i8 = 5192;
  27980. }
  27981. } else {
  27982. i8 = (HEAP32[i5 >> 2] | 0) + (i9 << 4) | 0;
  27983. i8 = i8 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
  27984. }
  27985. } while (0);
  27986. i8 = HEAP32[i8 >> 2] | 0;
  27987. i7 = i8 + 16 + (i7 + -1 << 2) | 0;
  27988. do {
  27989. if ((i6 | 0) <= 0) {
  27990. if (!((i6 | 0) < -1000999)) {
  27991. i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
  27992. break;
  27993. }
  27994. if ((i6 | 0) == -1001e3) {
  27995. i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  27996. break;
  27997. }
  27998. i6 = -1001e3 - i6 | 0;
  27999. i5 = HEAP32[i5 >> 2] | 0;
  28000. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  28001. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  28002. } else {
  28003. i4 = 5192;
  28004. }
  28005. } else {
  28006. i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  28007. i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  28008. }
  28009. } while (0);
  28010. i3 = (HEAP32[i4 >> 2] | 0) + 16 + (i3 + -1 << 2) | 0;
  28011. HEAP32[i7 >> 2] = HEAP32[i3 >> 2];
  28012. i3 = HEAP32[i3 >> 2] | 0;
  28013. if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
  28014. STACKTOP = i2;
  28015. return;
  28016. }
  28017. if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
  28018. STACKTOP = i2;
  28019. return;
  28020. }
  28021. _luaC_barrier_(i1, i8, i3);
  28022. STACKTOP = i2;
  28023. return;
  28024. }
  28025. function _lua_upvalueid(i5, i7, i1) {
  28026. i5 = i5 | 0;
  28027. i7 = i7 | 0;
  28028. i1 = i1 | 0;
  28029. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0;
  28030. i2 = STACKTOP;
  28031. i4 = HEAP32[i5 + 16 >> 2] | 0;
  28032. i6 = (i7 | 0) > 0;
  28033. do {
  28034. if (!i6) {
  28035. if (!((i7 | 0) < -1000999)) {
  28036. i8 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
  28037. break;
  28038. }
  28039. if ((i7 | 0) == -1001e3) {
  28040. i8 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
  28041. break;
  28042. }
  28043. i10 = -1001e3 - i7 | 0;
  28044. i9 = HEAP32[i4 >> 2] | 0;
  28045. if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
  28046. i8 = i8 + (i10 + -1 << 4) + 16 | 0;
  28047. } else {
  28048. i8 = 5192;
  28049. }
  28050. } else {
  28051. i8 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
  28052. i8 = i8 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
  28053. }
  28054. } while (0);
  28055. i9 = HEAP32[i8 + 8 >> 2] & 63;
  28056. if ((i9 | 0) == 38) {
  28057. i10 = (HEAP32[i8 >> 2] | 0) + (i1 + -1 << 4) + 16 | 0;
  28058. STACKTOP = i2;
  28059. return i10 | 0;
  28060. } else if ((i9 | 0) == 6) {
  28061. do {
  28062. if (!i6) {
  28063. if (!((i7 | 0) < -1000999)) {
  28064. i3 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
  28065. break;
  28066. }
  28067. if ((i7 | 0) == -1001e3) {
  28068. i3 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
  28069. break;
  28070. }
  28071. i5 = -1001e3 - i7 | 0;
  28072. i4 = HEAP32[i4 >> 2] | 0;
  28073. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  28074. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  28075. } else {
  28076. i3 = 5192;
  28077. }
  28078. } else {
  28079. i3 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
  28080. i3 = i3 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  28081. }
  28082. } while (0);
  28083. i10 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 + (i1 + -1 << 2) >> 2] | 0;
  28084. STACKTOP = i2;
  28085. return i10 | 0;
  28086. } else {
  28087. i10 = 0;
  28088. STACKTOP = i2;
  28089. return i10 | 0;
  28090. }
  28091. return 0;
  28092. }
  28093. function _lua_rawequal(i2, i6, i4) {
  28094. i2 = i2 | 0;
  28095. i6 = i6 | 0;
  28096. i4 = i4 | 0;
  28097. var i1 = 0, i3 = 0, i5 = 0, i7 = 0;
  28098. i1 = STACKTOP;
  28099. i3 = HEAP32[i2 + 16 >> 2] | 0;
  28100. do {
  28101. if ((i6 | 0) <= 0) {
  28102. if (!((i6 | 0) < -1000999)) {
  28103. i5 = (HEAP32[i2 + 8 >> 2] | 0) + (i6 << 4) | 0;
  28104. break;
  28105. }
  28106. if ((i6 | 0) == -1001e3) {
  28107. i5 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  28108. break;
  28109. }
  28110. i7 = -1001e3 - i6 | 0;
  28111. i6 = HEAP32[i3 >> 2] | 0;
  28112. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
  28113. i5 = i5 + (i7 + -1 << 4) + 16 | 0;
  28114. } else {
  28115. i5 = 5192;
  28116. }
  28117. } else {
  28118. i5 = (HEAP32[i3 >> 2] | 0) + (i6 << 4) | 0;
  28119. i5 = i5 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
  28120. }
  28121. } while (0);
  28122. do {
  28123. if ((i4 | 0) <= 0) {
  28124. if (!((i4 | 0) < -1000999)) {
  28125. i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
  28126. break;
  28127. }
  28128. if ((i4 | 0) == -1001e3) {
  28129. i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  28130. break;
  28131. }
  28132. i2 = -1001e3 - i4 | 0;
  28133. i3 = HEAP32[i3 >> 2] | 0;
  28134. if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
  28135. i7 = 0;
  28136. STACKTOP = i1;
  28137. return i7 | 0;
  28138. }
  28139. i3 = HEAP32[i3 >> 2] | 0;
  28140. if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
  28141. i7 = 0;
  28142. STACKTOP = i1;
  28143. return i7 | 0;
  28144. } else {
  28145. i2 = i3 + (i2 + -1 << 4) + 16 | 0;
  28146. break;
  28147. }
  28148. } else {
  28149. i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
  28150. i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  28151. }
  28152. } while (0);
  28153. if ((i5 | 0) == 5192 | (i2 | 0) == 5192) {
  28154. i7 = 0;
  28155. STACKTOP = i1;
  28156. return i7 | 0;
  28157. }
  28158. if ((HEAP32[i5 + 8 >> 2] | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
  28159. i2 = (_luaV_equalobj_(0, i5, i2) | 0) != 0;
  28160. } else {
  28161. i2 = 0;
  28162. }
  28163. i7 = i2 & 1;
  28164. STACKTOP = i1;
  28165. return i7 | 0;
  28166. }
  28167. function _luaO_chunkid(i1, i4, i6) {
  28168. i1 = i1 | 0;
  28169. i4 = i4 | 0;
  28170. i6 = i6 | 0;
  28171. var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
  28172. i2 = STACKTOP;
  28173. i3 = _strlen(i4 | 0) | 0;
  28174. i5 = HEAP8[i4] | 0;
  28175. if (i5 << 24 >> 24 == 64) {
  28176. if (i3 >>> 0 > i6 >>> 0) {
  28177. HEAP8[i1 + 0 | 0] = HEAP8[5552 | 0] | 0;
  28178. HEAP8[i1 + 1 | 0] = HEAP8[5553 | 0] | 0;
  28179. HEAP8[i1 + 2 | 0] = HEAP8[5554 | 0] | 0;
  28180. _memcpy(i1 + 3 | 0, i4 + (4 - i6 + i3) | 0, i6 + -3 | 0) | 0;
  28181. STACKTOP = i2;
  28182. return;
  28183. } else {
  28184. _memcpy(i1 | 0, i4 + 1 | 0, i3 | 0) | 0;
  28185. STACKTOP = i2;
  28186. return;
  28187. }
  28188. } else if (i5 << 24 >> 24 == 61) {
  28189. i4 = i4 + 1 | 0;
  28190. if (i3 >>> 0 > i6 >>> 0) {
  28191. i9 = i6 + -1 | 0;
  28192. _memcpy(i1 | 0, i4 | 0, i9 | 0) | 0;
  28193. HEAP8[i1 + i9 | 0] = 0;
  28194. STACKTOP = i2;
  28195. return;
  28196. } else {
  28197. _memcpy(i1 | 0, i4 | 0, i3 | 0) | 0;
  28198. STACKTOP = i2;
  28199. return;
  28200. }
  28201. } else {
  28202. i5 = _strchr(i4, 10) | 0;
  28203. i9 = i1 + 0 | 0;
  28204. i8 = 5560 | 0;
  28205. i7 = i9 + 9 | 0;
  28206. do {
  28207. HEAP8[i9] = HEAP8[i8] | 0;
  28208. i9 = i9 + 1 | 0;
  28209. i8 = i8 + 1 | 0;
  28210. } while ((i9 | 0) < (i7 | 0));
  28211. i7 = i1 + 9 | 0;
  28212. i6 = i6 + -15 | 0;
  28213. i8 = (i5 | 0) == 0;
  28214. if (i3 >>> 0 < i6 >>> 0 & i8) {
  28215. _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
  28216. i3 = i3 + 9 | 0;
  28217. } else {
  28218. if (!i8) {
  28219. i3 = i5 - i4 | 0;
  28220. }
  28221. i3 = i3 >>> 0 > i6 >>> 0 ? i6 : i3;
  28222. _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
  28223. i9 = i1 + (i3 + 9) | 0;
  28224. HEAP8[i9 + 0 | 0] = HEAP8[5552 | 0] | 0;
  28225. HEAP8[i9 + 1 | 0] = HEAP8[5553 | 0] | 0;
  28226. HEAP8[i9 + 2 | 0] = HEAP8[5554 | 0] | 0;
  28227. i3 = i3 + 12 | 0;
  28228. }
  28229. i9 = i1 + i3 | 0;
  28230. HEAP8[i9 + 0 | 0] = HEAP8[5576 | 0] | 0;
  28231. HEAP8[i9 + 1 | 0] = HEAP8[5577 | 0] | 0;
  28232. HEAP8[i9 + 2 | 0] = HEAP8[5578 | 0] | 0;
  28233. STACKTOP = i2;
  28234. return;
  28235. }
  28236. }
  28237. function _luaS_resize(i4, i1) {
  28238. i4 = i4 | 0;
  28239. i1 = i1 | 0;
  28240. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  28241. i3 = STACKTOP;
  28242. i5 = HEAP32[i4 + 12 >> 2] | 0;
  28243. i2 = i5 + 24 | 0;
  28244. _luaC_runtilstate(i4, -5);
  28245. i5 = i5 + 32 | 0;
  28246. i8 = HEAP32[i5 >> 2] | 0;
  28247. L1 : do {
  28248. if ((i8 | 0) < (i1 | 0)) {
  28249. if ((i1 + 1 | 0) >>> 0 > 1073741823) {
  28250. _luaM_toobig(i4);
  28251. }
  28252. i7 = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
  28253. HEAP32[i2 >> 2] = i7;
  28254. i6 = HEAP32[i5 >> 2] | 0;
  28255. if ((i6 | 0) < (i1 | 0)) {
  28256. i8 = i6;
  28257. while (1) {
  28258. HEAP32[i7 + (i8 << 2) >> 2] = 0;
  28259. i8 = i8 + 1 | 0;
  28260. if ((i8 | 0) == (i1 | 0)) {
  28261. i8 = i6;
  28262. break L1;
  28263. }
  28264. i7 = HEAP32[i2 >> 2] | 0;
  28265. }
  28266. } else {
  28267. i8 = i6;
  28268. }
  28269. }
  28270. } while (0);
  28271. if ((i8 | 0) > 0) {
  28272. i6 = i1 + -1 | 0;
  28273. i7 = 0;
  28274. do {
  28275. i10 = (HEAP32[i2 >> 2] | 0) + (i7 << 2) | 0;
  28276. i9 = HEAP32[i10 >> 2] | 0;
  28277. HEAP32[i10 >> 2] = 0;
  28278. if ((i9 | 0) != 0) {
  28279. while (1) {
  28280. i8 = HEAP32[i9 >> 2] | 0;
  28281. i10 = HEAP32[i9 + 8 >> 2] & i6;
  28282. HEAP32[i9 >> 2] = HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2];
  28283. HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2] = i9;
  28284. i10 = i9 + 5 | 0;
  28285. HEAP8[i10] = HEAP8[i10] & 191;
  28286. if ((i8 | 0) == 0) {
  28287. break;
  28288. } else {
  28289. i9 = i8;
  28290. }
  28291. }
  28292. i8 = HEAP32[i5 >> 2] | 0;
  28293. }
  28294. i7 = i7 + 1 | 0;
  28295. } while ((i7 | 0) < (i8 | 0));
  28296. }
  28297. if ((i8 | 0) <= (i1 | 0)) {
  28298. HEAP32[i5 >> 2] = i1;
  28299. STACKTOP = i3;
  28300. return;
  28301. }
  28302. if ((i1 + 1 | 0) >>> 0 > 1073741823) {
  28303. _luaM_toobig(i4);
  28304. }
  28305. HEAP32[i2 >> 2] = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
  28306. HEAP32[i5 >> 2] = i1;
  28307. STACKTOP = i3;
  28308. return;
  28309. }
  28310. function _luaD_poscall(i6, i7) {
  28311. i6 = i6 | 0;
  28312. i7 = i7 | 0;
  28313. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
  28314. i1 = STACKTOP;
  28315. i4 = i6 + 16 | 0;
  28316. i3 = HEAP32[i4 >> 2] | 0;
  28317. i5 = HEAPU8[i6 + 40 | 0] | 0;
  28318. if ((i5 & 6 | 0) == 0) {
  28319. i8 = i3 + 8 | 0;
  28320. } else {
  28321. if ((i5 & 2 | 0) != 0) {
  28322. i8 = i6 + 28 | 0;
  28323. i7 = i7 - (HEAP32[i8 >> 2] | 0) | 0;
  28324. _luaD_hook(i6, 1, -1);
  28325. i7 = (HEAP32[i8 >> 2] | 0) + i7 | 0;
  28326. }
  28327. i8 = i3 + 8 | 0;
  28328. HEAP32[i6 + 20 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2];
  28329. }
  28330. i5 = HEAP32[i3 >> 2] | 0;
  28331. i9 = HEAP16[i3 + 16 >> 1] | 0;
  28332. i3 = i9 << 16 >> 16;
  28333. HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
  28334. i4 = i6 + 8 | 0;
  28335. if (i9 << 16 >> 16 == 0) {
  28336. i9 = i5;
  28337. HEAP32[i4 >> 2] = i9;
  28338. i9 = i3 + 1 | 0;
  28339. STACKTOP = i1;
  28340. return i9 | 0;
  28341. } else {
  28342. i6 = i3;
  28343. }
  28344. while (1) {
  28345. if (!(i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0)) {
  28346. break;
  28347. }
  28348. i8 = i5 + 16 | 0;
  28349. i11 = i7;
  28350. i10 = HEAP32[i11 + 4 >> 2] | 0;
  28351. i9 = i5;
  28352. HEAP32[i9 >> 2] = HEAP32[i11 >> 2];
  28353. HEAP32[i9 + 4 >> 2] = i10;
  28354. HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
  28355. i6 = i6 + -1 | 0;
  28356. if ((i6 | 0) == 0) {
  28357. i2 = 12;
  28358. break;
  28359. } else {
  28360. i7 = i7 + 16 | 0;
  28361. i5 = i8;
  28362. }
  28363. }
  28364. if ((i2 | 0) == 12) {
  28365. HEAP32[i4 >> 2] = i8;
  28366. i11 = i3 + 1 | 0;
  28367. STACKTOP = i1;
  28368. return i11 | 0;
  28369. }
  28370. if ((i6 | 0) > 0) {
  28371. i2 = i6;
  28372. i7 = i5;
  28373. } else {
  28374. i11 = i5;
  28375. HEAP32[i4 >> 2] = i11;
  28376. i11 = i3 + 1 | 0;
  28377. STACKTOP = i1;
  28378. return i11 | 0;
  28379. }
  28380. while (1) {
  28381. i2 = i2 + -1 | 0;
  28382. HEAP32[i7 + 8 >> 2] = 0;
  28383. if ((i2 | 0) <= 0) {
  28384. break;
  28385. } else {
  28386. i7 = i7 + 16 | 0;
  28387. }
  28388. }
  28389. i11 = i5 + (i6 << 4) | 0;
  28390. HEAP32[i4 >> 2] = i11;
  28391. i11 = i3 + 1 | 0;
  28392. STACKTOP = i1;
  28393. return i11 | 0;
  28394. }
  28395. function _lua_rawset(i1, i4) {
  28396. i1 = i1 | 0;
  28397. i4 = i4 | 0;
  28398. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  28399. i2 = STACKTOP;
  28400. i5 = HEAP32[i1 + 16 >> 2] | 0;
  28401. do {
  28402. if ((i4 | 0) <= 0) {
  28403. if (!((i4 | 0) < -1000999)) {
  28404. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
  28405. break;
  28406. }
  28407. if ((i4 | 0) == -1001e3) {
  28408. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  28409. break;
  28410. }
  28411. i4 = -1001e3 - i4 | 0;
  28412. i5 = HEAP32[i5 >> 2] | 0;
  28413. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  28414. i5 = i3 + (i4 + -1 << 4) + 16 | 0;
  28415. } else {
  28416. i5 = 5192;
  28417. }
  28418. } else {
  28419. i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
  28420. i5 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  28421. }
  28422. } while (0);
  28423. i4 = i1 + 8 | 0;
  28424. i6 = HEAP32[i4 >> 2] | 0;
  28425. i3 = _luaH_set(i1, HEAP32[i5 >> 2] | 0, i6 + -32 | 0) | 0;
  28426. i9 = i6 + -16 | 0;
  28427. i8 = HEAP32[i9 + 4 >> 2] | 0;
  28428. i7 = i3;
  28429. HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
  28430. HEAP32[i7 + 4 >> 2] = i8;
  28431. HEAP32[i3 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
  28432. HEAP8[(HEAP32[i5 >> 2] | 0) + 6 | 0] = 0;
  28433. i3 = HEAP32[i4 >> 2] | 0;
  28434. if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
  28435. i9 = i3;
  28436. i9 = i9 + -32 | 0;
  28437. HEAP32[i4 >> 2] = i9;
  28438. STACKTOP = i2;
  28439. return;
  28440. }
  28441. if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
  28442. i9 = i3;
  28443. i9 = i9 + -32 | 0;
  28444. HEAP32[i4 >> 2] = i9;
  28445. STACKTOP = i2;
  28446. return;
  28447. }
  28448. i5 = HEAP32[i5 >> 2] | 0;
  28449. if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
  28450. i9 = i3;
  28451. i9 = i9 + -32 | 0;
  28452. HEAP32[i4 >> 2] = i9;
  28453. STACKTOP = i2;
  28454. return;
  28455. }
  28456. _luaC_barrierback_(i1, i5);
  28457. i9 = HEAP32[i4 >> 2] | 0;
  28458. i9 = i9 + -32 | 0;
  28459. HEAP32[i4 >> 2] = i9;
  28460. STACKTOP = i2;
  28461. return;
  28462. }
  28463. function _saveSetjmp(i4, i3, i1) {
  28464. i4 = i4 | 0;
  28465. i3 = i3 | 0;
  28466. i1 = i1 | 0;
  28467. var i2 = 0;
  28468. setjmpId = setjmpId + 1 | 0;
  28469. HEAP32[i4 >> 2] = setjmpId;
  28470. while ((i2 | 0) < 40) {
  28471. if ((HEAP32[i1 + (i2 << 2) >> 2] | 0) == 0) {
  28472. HEAP32[i1 + (i2 << 2) >> 2] = setjmpId;
  28473. HEAP32[i1 + ((i2 << 2) + 4) >> 2] = i3;
  28474. HEAP32[i1 + ((i2 << 2) + 8) >> 2] = 0;
  28475. return 0;
  28476. }
  28477. i2 = i2 + 2 | 0;
  28478. }
  28479. _putchar(116);
  28480. _putchar(111);
  28481. _putchar(111);
  28482. _putchar(32);
  28483. _putchar(109);
  28484. _putchar(97);
  28485. _putchar(110);
  28486. _putchar(121);
  28487. _putchar(32);
  28488. _putchar(115);
  28489. _putchar(101);
  28490. _putchar(116);
  28491. _putchar(106);
  28492. _putchar(109);
  28493. _putchar(112);
  28494. _putchar(115);
  28495. _putchar(32);
  28496. _putchar(105);
  28497. _putchar(110);
  28498. _putchar(32);
  28499. _putchar(97);
  28500. _putchar(32);
  28501. _putchar(102);
  28502. _putchar(117);
  28503. _putchar(110);
  28504. _putchar(99);
  28505. _putchar(116);
  28506. _putchar(105);
  28507. _putchar(111);
  28508. _putchar(110);
  28509. _putchar(32);
  28510. _putchar(99);
  28511. _putchar(97);
  28512. _putchar(108);
  28513. _putchar(108);
  28514. _putchar(44);
  28515. _putchar(32);
  28516. _putchar(98);
  28517. _putchar(117);
  28518. _putchar(105);
  28519. _putchar(108);
  28520. _putchar(100);
  28521. _putchar(32);
  28522. _putchar(119);
  28523. _putchar(105);
  28524. _putchar(116);
  28525. _putchar(104);
  28526. _putchar(32);
  28527. _putchar(97);
  28528. _putchar(32);
  28529. _putchar(104);
  28530. _putchar(105);
  28531. _putchar(103);
  28532. _putchar(104);
  28533. _putchar(101);
  28534. _putchar(114);
  28535. _putchar(32);
  28536. _putchar(118);
  28537. _putchar(97);
  28538. _putchar(108);
  28539. _putchar(117);
  28540. _putchar(101);
  28541. _putchar(32);
  28542. _putchar(102);
  28543. _putchar(111);
  28544. _putchar(114);
  28545. _putchar(32);
  28546. _putchar(77);
  28547. _putchar(65);
  28548. _putchar(88);
  28549. _putchar(95);
  28550. _putchar(83);
  28551. _putchar(69);
  28552. _putchar(84);
  28553. _putchar(74);
  28554. _putchar(77);
  28555. _putchar(80);
  28556. _putchar(83);
  28557. _putchar(10);
  28558. abort(0);
  28559. return 0;
  28560. }
  28561. function _lua_newthread(i5) {
  28562. i5 = i5 | 0;
  28563. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  28564. i1 = STACKTOP;
  28565. i3 = i5 + 12 | 0;
  28566. if ((HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  28567. _luaC_step(i5);
  28568. }
  28569. i2 = _luaC_newobj(i5, 8, 112, 0, 0) | 0;
  28570. i6 = i5 + 8 | 0;
  28571. i4 = HEAP32[i6 >> 2] | 0;
  28572. HEAP32[i4 >> 2] = i2;
  28573. HEAP32[i4 + 8 >> 2] = 72;
  28574. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
  28575. HEAP32[i2 + 12 >> 2] = HEAP32[i3 >> 2];
  28576. i6 = i2 + 28 | 0;
  28577. HEAP32[i6 >> 2] = 0;
  28578. i4 = i2 + 16 | 0;
  28579. HEAP32[i4 >> 2] = 0;
  28580. i3 = i2 + 32 | 0;
  28581. HEAP32[i3 >> 2] = 0;
  28582. HEAP32[i2 + 64 >> 2] = 0;
  28583. HEAP16[i2 + 38 >> 1] = 0;
  28584. i9 = i2 + 52 | 0;
  28585. HEAP32[i9 >> 2] = 0;
  28586. i8 = i2 + 40 | 0;
  28587. HEAP8[i8] = 0;
  28588. i10 = i2 + 44 | 0;
  28589. HEAP32[i10 >> 2] = 0;
  28590. HEAP8[i2 + 41 | 0] = 1;
  28591. i7 = i2 + 48 | 0;
  28592. HEAP32[i7 >> 2] = 0;
  28593. HEAP32[i2 + 56 >> 2] = 0;
  28594. HEAP16[i2 + 36 >> 1] = 1;
  28595. HEAP8[i2 + 6 | 0] = 0;
  28596. HEAP32[i2 + 68 >> 2] = 0;
  28597. HEAP8[i8] = HEAP8[i5 + 40 | 0] | 0;
  28598. i8 = HEAP32[i5 + 44 >> 2] | 0;
  28599. HEAP32[i10 >> 2] = i8;
  28600. HEAP32[i9 >> 2] = HEAP32[i5 + 52 >> 2];
  28601. HEAP32[i7 >> 2] = i8;
  28602. i5 = _luaM_realloc_(i5, 0, 0, 640) | 0;
  28603. HEAP32[i6 >> 2] = i5;
  28604. HEAP32[i3 >> 2] = 40;
  28605. i6 = 0;
  28606. do {
  28607. HEAP32[i5 + (i6 << 4) + 8 >> 2] = 0;
  28608. i6 = i6 + 1 | 0;
  28609. } while ((i6 | 0) != 40);
  28610. HEAP32[i2 + 24 >> 2] = i5 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
  28611. i10 = i2 + 72 | 0;
  28612. HEAP32[i2 + 80 >> 2] = 0;
  28613. HEAP32[i2 + 84 >> 2] = 0;
  28614. HEAP8[i2 + 90 | 0] = 0;
  28615. HEAP32[i10 >> 2] = i5;
  28616. HEAP32[i2 + 8 >> 2] = i5 + 16;
  28617. HEAP32[i5 + 8 >> 2] = 0;
  28618. HEAP32[i2 + 76 >> 2] = i5 + 336;
  28619. HEAP32[i4 >> 2] = i10;
  28620. STACKTOP = i1;
  28621. return i2 | 0;
  28622. }
  28623. function _luaK_self(i2, i5, i3) {
  28624. i2 = i2 | 0;
  28625. i5 = i5 | 0;
  28626. i3 = i3 | 0;
  28627. var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  28628. i1 = STACKTOP;
  28629. _luaK_dischargevars(i2, i5);
  28630. if ((HEAP32[i5 >> 2] | 0) == 6) {
  28631. i6 = i5 + 8 | 0;
  28632. i8 = HEAP32[i6 >> 2] | 0;
  28633. if ((HEAP32[i5 + 16 >> 2] | 0) != (HEAP32[i5 + 20 >> 2] | 0)) {
  28634. if ((i8 | 0) < (HEAPU8[i2 + 46 | 0] | 0 | 0)) {
  28635. i7 = 6;
  28636. } else {
  28637. _exp2reg(i2, i5, i8);
  28638. }
  28639. }
  28640. } else {
  28641. i6 = i5 + 8 | 0;
  28642. i7 = 6;
  28643. }
  28644. if ((i7 | 0) == 6) {
  28645. _luaK_exp2nextreg(i2, i5);
  28646. }
  28647. i8 = HEAP32[i6 >> 2] | 0;
  28648. if (((HEAP32[i5 >> 2] | 0) == 6 ? (i8 & 256 | 0) == 0 : 0) ? (HEAPU8[i2 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
  28649. i10 = i2 + 48 | 0;
  28650. HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
  28651. }
  28652. i7 = i2 + 48 | 0;
  28653. HEAP32[i6 >> 2] = HEAPU8[i7] | 0;
  28654. HEAP32[i5 >> 2] = 6;
  28655. i10 = HEAP8[i7] | 0;
  28656. i5 = (i10 & 255) + 2 | 0;
  28657. i9 = (HEAP32[i2 >> 2] | 0) + 78 | 0;
  28658. do {
  28659. if (i5 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
  28660. if (i5 >>> 0 > 249) {
  28661. _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10536);
  28662. } else {
  28663. HEAP8[i9] = i5;
  28664. i4 = HEAP8[i7] | 0;
  28665. break;
  28666. }
  28667. } else {
  28668. i4 = i10;
  28669. }
  28670. } while (0);
  28671. HEAP8[i7] = (i4 & 255) + 2;
  28672. i10 = HEAP32[i6 >> 2] | 0;
  28673. _luaK_code(i2, i8 << 23 | i10 << 6 | (_luaK_exp2RK(i2, i3) | 0) << 14 | 12) | 0;
  28674. if ((HEAP32[i3 >> 2] | 0) != 6) {
  28675. STACKTOP = i1;
  28676. return;
  28677. }
  28678. i3 = HEAP32[i3 + 8 >> 2] | 0;
  28679. if ((i3 & 256 | 0) != 0) {
  28680. STACKTOP = i1;
  28681. return;
  28682. }
  28683. if ((HEAPU8[i2 + 46 | 0] | 0 | 0) > (i3 | 0)) {
  28684. STACKTOP = i1;
  28685. return;
  28686. }
  28687. HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
  28688. STACKTOP = i1;
  28689. return;
  28690. }
  28691. function _luaD_rawrunprotected(i10, i9, i11) {
  28692. i10 = i10 | 0;
  28693. i9 = i9 | 0;
  28694. i11 = i11 | 0;
  28695. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i12 = 0, i13 = 0;
  28696. i7 = STACKTOP;
  28697. STACKTOP = STACKTOP + 176 | 0;
  28698. i8 = STACKTOP;
  28699. STACKTOP = STACKTOP + 168 | 0;
  28700. HEAP32[i8 >> 2] = 0;
  28701. i6 = i7;
  28702. i5 = i10 + 38 | 0;
  28703. i4 = HEAP16[i5 >> 1] | 0;
  28704. i1 = i6 + 160 | 0;
  28705. HEAP32[i1 >> 2] = 0;
  28706. i3 = i10 + 64 | 0;
  28707. HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
  28708. HEAP32[i3 >> 2] = i6;
  28709. _saveSetjmp(i6 + 4 | 0, 1, i8 | 0) | 0;
  28710. __THREW__ = 0;
  28711. i13 = __THREW__;
  28712. __THREW__ = 0;
  28713. if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
  28714. i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
  28715. if ((i12 | 0) == 0) {
  28716. _longjmp(i13 | 0, threwValue | 0);
  28717. }
  28718. tempRet0 = threwValue;
  28719. } else {
  28720. i12 = -1;
  28721. }
  28722. if ((i12 | 0) == 1) {
  28723. i12 = tempRet0;
  28724. } else {
  28725. i12 = 0;
  28726. }
  28727. while (1) {
  28728. if ((i12 | 0) != 0) {
  28729. i2 = 6;
  28730. break;
  28731. }
  28732. __THREW__ = 0;
  28733. invoke_vii(i9 | 0, i10 | 0, i11 | 0);
  28734. i13 = __THREW__;
  28735. __THREW__ = 0;
  28736. if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
  28737. i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
  28738. if ((i12 | 0) == 0) {
  28739. _longjmp(i13 | 0, threwValue | 0);
  28740. }
  28741. tempRet0 = threwValue;
  28742. } else {
  28743. i12 = -1;
  28744. }
  28745. if ((i12 | 0) == 1) {
  28746. i12 = tempRet0;
  28747. } else {
  28748. break;
  28749. }
  28750. }
  28751. if ((i2 | 0) == 6) {
  28752. i13 = HEAP32[i6 >> 2] | 0;
  28753. HEAP32[i3 >> 2] = i13;
  28754. HEAP16[i5 >> 1] = i4;
  28755. i13 = HEAP32[i1 >> 2] | 0;
  28756. STACKTOP = i7;
  28757. return i13 | 0;
  28758. }
  28759. i13 = HEAP32[i6 >> 2] | 0;
  28760. HEAP32[i3 >> 2] = i13;
  28761. HEAP16[i5 >> 1] = i4;
  28762. i13 = HEAP32[i1 >> 2] | 0;
  28763. STACKTOP = i7;
  28764. return i13 | 0;
  28765. }
  28766. function _luaB_tonumber(i1) {
  28767. i1 = i1 | 0;
  28768. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0;
  28769. i2 = STACKTOP;
  28770. STACKTOP = STACKTOP + 16 | 0;
  28771. i3 = i2 + 4 | 0;
  28772. i4 = i2;
  28773. do {
  28774. if ((_lua_type(i1, 2) | 0) >= 1) {
  28775. i9 = _luaL_checklstring(i1, 1, i4) | 0;
  28776. i3 = i9 + (HEAP32[i4 >> 2] | 0) | 0;
  28777. i5 = _luaL_checkinteger(i1, 2) | 0;
  28778. if (!((i5 + -2 | 0) >>> 0 < 35)) {
  28779. _luaL_argerror(i1, 2, 9648) | 0;
  28780. }
  28781. i10 = _strspn(i9, 9672) | 0;
  28782. i7 = i9 + i10 | 0;
  28783. i4 = HEAP8[i7] | 0;
  28784. if (i4 << 24 >> 24 == 43) {
  28785. i4 = 0;
  28786. i7 = i9 + (i10 + 1) | 0;
  28787. } else if (i4 << 24 >> 24 == 45) {
  28788. i4 = 1;
  28789. i7 = i9 + (i10 + 1) | 0;
  28790. } else {
  28791. i4 = 0;
  28792. }
  28793. if ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0) {
  28794. d6 = +(i5 | 0);
  28795. d8 = 0.0;
  28796. do {
  28797. i9 = HEAP8[i7] | 0;
  28798. i10 = i9 & 255;
  28799. if ((i10 + -48 | 0) >>> 0 < 10) {
  28800. i9 = (i9 << 24 >> 24) + -48 | 0;
  28801. } else {
  28802. i9 = (_toupper(i10 | 0) | 0) + -55 | 0;
  28803. }
  28804. if ((i9 | 0) >= (i5 | 0)) {
  28805. break;
  28806. }
  28807. d8 = d6 * d8 + +(i9 | 0);
  28808. i7 = i7 + 1 | 0;
  28809. } while ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0);
  28810. if ((i7 + (_strspn(i7, 9672) | 0) | 0) == (i3 | 0)) {
  28811. if ((i4 | 0) != 0) {
  28812. d8 = -d8;
  28813. }
  28814. _lua_pushnumber(i1, d8);
  28815. STACKTOP = i2;
  28816. return 1;
  28817. }
  28818. }
  28819. } else {
  28820. d6 = +_lua_tonumberx(i1, 1, i3);
  28821. if ((HEAP32[i3 >> 2] | 0) == 0) {
  28822. _luaL_checkany(i1, 1);
  28823. break;
  28824. }
  28825. _lua_pushnumber(i1, d6);
  28826. STACKTOP = i2;
  28827. return 1;
  28828. }
  28829. } while (0);
  28830. _lua_pushnil(i1);
  28831. STACKTOP = i2;
  28832. return 1;
  28833. }
  28834. function _luaK_storevar(i1, i5, i3) {
  28835. i1 = i1 | 0;
  28836. i5 = i5 | 0;
  28837. i3 = i3 | 0;
  28838. var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
  28839. i2 = STACKTOP;
  28840. i7 = HEAP32[i5 >> 2] | 0;
  28841. if ((i7 | 0) == 7) {
  28842. if (((HEAP32[i3 >> 2] | 0) == 6 ? (i6 = HEAP32[i3 + 8 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i6 | 0) : 0) {
  28843. i7 = i1 + 48 | 0;
  28844. HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
  28845. }
  28846. _exp2reg(i1, i3, HEAP32[i5 + 8 >> 2] | 0);
  28847. STACKTOP = i2;
  28848. return;
  28849. } else if ((i7 | 0) == 9) {
  28850. i4 = i5 + 8 | 0;
  28851. i7 = (HEAP8[i4 + 3 | 0] | 0) == 7 ? 10 : 8;
  28852. i6 = _luaK_exp2RK(i1, i3) | 0;
  28853. _luaK_code(i1, i6 << 14 | i7 | HEAPU8[i4 + 2 | 0] << 6 | HEAPU16[i4 >> 1] << 23) | 0;
  28854. } else if ((i7 | 0) == 8) {
  28855. _luaK_dischargevars(i1, i3);
  28856. if ((HEAP32[i3 >> 2] | 0) == 6) {
  28857. i6 = i3 + 8 | 0;
  28858. i7 = HEAP32[i6 >> 2] | 0;
  28859. if ((HEAP32[i3 + 16 >> 2] | 0) != (HEAP32[i3 + 20 >> 2] | 0)) {
  28860. if ((i7 | 0) < (HEAPU8[i1 + 46 | 0] | 0)) {
  28861. i4 = 12;
  28862. } else {
  28863. _exp2reg(i1, i3, i7);
  28864. i7 = HEAP32[i6 >> 2] | 0;
  28865. }
  28866. }
  28867. } else {
  28868. i6 = i3 + 8 | 0;
  28869. i4 = 12;
  28870. }
  28871. if ((i4 | 0) == 12) {
  28872. _luaK_exp2nextreg(i1, i3);
  28873. i7 = HEAP32[i6 >> 2] | 0;
  28874. }
  28875. _luaK_code(i1, i7 << 6 | HEAP32[i5 + 8 >> 2] << 23 | 9) | 0;
  28876. }
  28877. if ((HEAP32[i3 >> 2] | 0) != 6) {
  28878. STACKTOP = i2;
  28879. return;
  28880. }
  28881. i3 = HEAP32[i3 + 8 >> 2] | 0;
  28882. if ((i3 & 256 | 0) != 0) {
  28883. STACKTOP = i2;
  28884. return;
  28885. }
  28886. if ((HEAPU8[i1 + 46 | 0] | 0) > (i3 | 0)) {
  28887. STACKTOP = i2;
  28888. return;
  28889. }
  28890. i7 = i1 + 48 | 0;
  28891. HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
  28892. STACKTOP = i2;
  28893. return;
  28894. }
  28895. function _closegoto(i10, i3, i9) {
  28896. i10 = i10 | 0;
  28897. i3 = i3 | 0;
  28898. i9 = i9 | 0;
  28899. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i11 = 0, i12 = 0;
  28900. i1 = STACKTOP;
  28901. STACKTOP = STACKTOP + 16 | 0;
  28902. i7 = i1;
  28903. i4 = HEAP32[i10 + 48 >> 2] | 0;
  28904. i6 = HEAP32[i10 + 64 >> 2] | 0;
  28905. i2 = i6 + 12 | 0;
  28906. i5 = HEAP32[i2 >> 2] | 0;
  28907. i8 = HEAP8[i5 + (i3 << 4) + 12 | 0] | 0;
  28908. if ((i8 & 255) < (HEAPU8[i9 + 12 | 0] | 0)) {
  28909. i11 = HEAP32[i10 + 52 >> 2] | 0;
  28910. i12 = HEAP32[i5 + (i3 << 4) + 8 >> 2] | 0;
  28911. i8 = (HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i4 + 40 >> 2] | 0) + (i8 & 255) << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) + 16 | 0;
  28912. HEAP32[i7 >> 2] = (HEAP32[i5 + (i3 << 4) >> 2] | 0) + 16;
  28913. HEAP32[i7 + 4 >> 2] = i12;
  28914. HEAP32[i7 + 8 >> 2] = i8;
  28915. _semerror(i10, _luaO_pushfstring(i11, 6248, i7) | 0);
  28916. }
  28917. _luaK_patchlist(i4, HEAP32[i5 + (i3 << 4) + 4 >> 2] | 0, HEAP32[i9 + 4 >> 2] | 0);
  28918. i4 = i6 + 16 | 0;
  28919. i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
  28920. if ((i5 | 0) <= (i3 | 0)) {
  28921. i12 = i5;
  28922. HEAP32[i4 >> 2] = i12;
  28923. STACKTOP = i1;
  28924. return;
  28925. }
  28926. do {
  28927. i12 = HEAP32[i2 >> 2] | 0;
  28928. i5 = i12 + (i3 << 4) | 0;
  28929. i3 = i3 + 1 | 0;
  28930. i12 = i12 + (i3 << 4) | 0;
  28931. HEAP32[i5 + 0 >> 2] = HEAP32[i12 + 0 >> 2];
  28932. HEAP32[i5 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
  28933. HEAP32[i5 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
  28934. HEAP32[i5 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
  28935. i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
  28936. } while ((i3 | 0) < (i5 | 0));
  28937. HEAP32[i4 >> 2] = i5;
  28938. STACKTOP = i1;
  28939. return;
  28940. }
  28941. function _luaM_growaux_(i4, i5, i1, i7, i8, i9) {
  28942. i4 = i4 | 0;
  28943. i5 = i5 | 0;
  28944. i1 = i1 | 0;
  28945. i7 = i7 | 0;
  28946. i8 = i8 | 0;
  28947. i9 = i9 | 0;
  28948. var i2 = 0, i3 = 0, i6 = 0, i10 = 0, i11 = 0;
  28949. i2 = STACKTOP;
  28950. STACKTOP = STACKTOP + 16 | 0;
  28951. i10 = i2;
  28952. i6 = HEAP32[i1 >> 2] | 0;
  28953. if ((i6 | 0) >= ((i8 | 0) / 2 | 0 | 0)) {
  28954. if ((i6 | 0) < (i8 | 0)) {
  28955. i3 = i8;
  28956. } else {
  28957. HEAP32[i10 >> 2] = i9;
  28958. HEAP32[i10 + 4 >> 2] = i8;
  28959. _luaG_runerror(i4, 4112, i10);
  28960. }
  28961. } else {
  28962. i3 = i6 << 1;
  28963. i3 = (i3 | 0) < 4 ? 4 : i3;
  28964. }
  28965. if ((i3 + 1 | 0) >>> 0 > (4294967293 / (i7 >>> 0) | 0) >>> 0) {
  28966. _luaM_toobig(i4);
  28967. }
  28968. i6 = Math_imul(i6, i7) | 0;
  28969. i8 = Math_imul(i3, i7) | 0;
  28970. i9 = HEAP32[i4 + 12 >> 2] | 0;
  28971. i7 = (i5 | 0) != 0;
  28972. i11 = i9 + 4 | 0;
  28973. i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
  28974. if ((i10 | 0) != 0 | (i8 | 0) == 0) {
  28975. i5 = i9 + 12 | 0;
  28976. i4 = HEAP32[i5 >> 2] | 0;
  28977. i6 = 0 - i6 | 0;
  28978. i11 = i7 ? i6 : 0;
  28979. i11 = i11 + i8 | 0;
  28980. i11 = i11 + i4 | 0;
  28981. HEAP32[i5 >> 2] = i11;
  28982. HEAP32[i1 >> 2] = i3;
  28983. STACKTOP = i2;
  28984. return i10 | 0;
  28985. }
  28986. if ((HEAP8[i9 + 63 | 0] | 0) == 0) {
  28987. _luaD_throw(i4, 4);
  28988. }
  28989. _luaC_fullgc(i4, 1);
  28990. i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
  28991. if ((i10 | 0) == 0) {
  28992. _luaD_throw(i4, 4);
  28993. } else {
  28994. i5 = i9 + 12 | 0;
  28995. i4 = HEAP32[i5 >> 2] | 0;
  28996. i6 = 0 - i6 | 0;
  28997. i11 = i7 ? i6 : 0;
  28998. i11 = i11 + i8 | 0;
  28999. i11 = i11 + i4 | 0;
  29000. HEAP32[i5 >> 2] = i11;
  29001. HEAP32[i1 >> 2] = i3;
  29002. STACKTOP = i2;
  29003. return i10 | 0;
  29004. }
  29005. return 0;
  29006. }
  29007. function _luaD_hook(i5, i14, i13) {
  29008. i5 = i5 | 0;
  29009. i14 = i14 | 0;
  29010. i13 = i13 | 0;
  29011. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0;
  29012. i11 = STACKTOP;
  29013. STACKTOP = STACKTOP + 112 | 0;
  29014. i4 = i11;
  29015. i3 = HEAP32[i5 + 52 >> 2] | 0;
  29016. if ((i3 | 0) == 0) {
  29017. STACKTOP = i11;
  29018. return;
  29019. }
  29020. i8 = i5 + 41 | 0;
  29021. if ((HEAP8[i8] | 0) == 0) {
  29022. STACKTOP = i11;
  29023. return;
  29024. }
  29025. i10 = HEAP32[i5 + 16 >> 2] | 0;
  29026. i6 = i5 + 8 | 0;
  29027. i15 = HEAP32[i6 >> 2] | 0;
  29028. i1 = i5 + 28 | 0;
  29029. i16 = i15;
  29030. i12 = HEAP32[i1 >> 2] | 0;
  29031. i7 = i16 - i12 | 0;
  29032. i9 = i10 + 4 | 0;
  29033. i12 = (HEAP32[i9 >> 2] | 0) - i12 | 0;
  29034. HEAP32[i4 >> 2] = i14;
  29035. HEAP32[i4 + 20 >> 2] = i13;
  29036. HEAP32[i4 + 96 >> 2] = i10;
  29037. do {
  29038. if (((HEAP32[i5 + 24 >> 2] | 0) - i16 | 0) < 336) {
  29039. i14 = HEAP32[i5 + 32 >> 2] | 0;
  29040. if ((i14 | 0) > 1e6) {
  29041. _luaD_throw(i5, 6);
  29042. }
  29043. i13 = (i7 >> 4) + 25 | 0;
  29044. i14 = i14 << 1;
  29045. i14 = (i14 | 0) > 1e6 ? 1e6 : i14;
  29046. i13 = (i14 | 0) < (i13 | 0) ? i13 : i14;
  29047. if ((i13 | 0) > 1e6) {
  29048. _luaD_reallocstack(i5, 1000200);
  29049. _luaG_runerror(i5, 2224, i4);
  29050. } else {
  29051. _luaD_reallocstack(i5, i13);
  29052. i2 = HEAP32[i6 >> 2] | 0;
  29053. break;
  29054. }
  29055. } else {
  29056. i2 = i15;
  29057. }
  29058. } while (0);
  29059. HEAP32[i9 >> 2] = i2 + 320;
  29060. HEAP8[i8] = 0;
  29061. i16 = i10 + 18 | 0;
  29062. HEAP8[i16] = HEAPU8[i16] | 2;
  29063. FUNCTION_TABLE_vii[i3 & 15](i5, i4);
  29064. HEAP8[i8] = 1;
  29065. HEAP32[i9 >> 2] = (HEAP32[i1 >> 2] | 0) + i12;
  29066. HEAP32[i6 >> 2] = (HEAP32[i1 >> 2] | 0) + i7;
  29067. HEAP8[i16] = HEAP8[i16] & 253;
  29068. STACKTOP = i11;
  29069. return;
  29070. }
  29071. function _funcargs(i10, i2, i1) {
  29072. i10 = i10 | 0;
  29073. i2 = i2 | 0;
  29074. i1 = i1 | 0;
  29075. var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  29076. i3 = STACKTOP;
  29077. STACKTOP = STACKTOP + 32 | 0;
  29078. i6 = i3;
  29079. i9 = i10 + 48 | 0;
  29080. i5 = HEAP32[i9 >> 2] | 0;
  29081. i7 = i10 + 16 | 0;
  29082. i8 = HEAP32[i7 >> 2] | 0;
  29083. if ((i8 | 0) == 289) {
  29084. i9 = _luaK_stringK(i5, HEAP32[i10 + 24 >> 2] | 0) | 0;
  29085. HEAP32[i6 + 16 >> 2] = -1;
  29086. HEAP32[i6 + 20 >> 2] = -1;
  29087. HEAP32[i6 >> 2] = 4;
  29088. HEAP32[i6 + 8 >> 2] = i9;
  29089. _luaX_next(i10);
  29090. } else if ((i8 | 0) == 40) {
  29091. _luaX_next(i10);
  29092. if ((HEAP32[i7 >> 2] | 0) == 41) {
  29093. HEAP32[i6 >> 2] = 0;
  29094. } else {
  29095. _subexpr(i10, i6, 0) | 0;
  29096. if ((HEAP32[i7 >> 2] | 0) == 44) {
  29097. do {
  29098. _luaX_next(i10);
  29099. _luaK_exp2nextreg(HEAP32[i9 >> 2] | 0, i6);
  29100. _subexpr(i10, i6, 0) | 0;
  29101. } while ((HEAP32[i7 >> 2] | 0) == 44);
  29102. }
  29103. _luaK_setreturns(i5, i6, -1);
  29104. }
  29105. _check_match(i10, 41, 40, i1);
  29106. } else if ((i8 | 0) == 123) {
  29107. _constructor(i10, i6);
  29108. } else {
  29109. _luaX_syntaxerror(i10, 6624);
  29110. }
  29111. i8 = i2 + 8 | 0;
  29112. i7 = HEAP32[i8 >> 2] | 0;
  29113. i9 = HEAP32[i6 >> 2] | 0;
  29114. if ((i9 | 0) == 0) {
  29115. i4 = 13;
  29116. } else if ((i9 | 0) == 13 | (i9 | 0) == 12) {
  29117. i6 = 0;
  29118. } else {
  29119. _luaK_exp2nextreg(i5, i6);
  29120. i4 = 13;
  29121. }
  29122. if ((i4 | 0) == 13) {
  29123. i6 = (HEAPU8[i5 + 48 | 0] | 0) - i7 | 0;
  29124. }
  29125. i10 = _luaK_codeABC(i5, 29, i7, i6, 2) | 0;
  29126. HEAP32[i2 + 16 >> 2] = -1;
  29127. HEAP32[i2 + 20 >> 2] = -1;
  29128. HEAP32[i2 >> 2] = 12;
  29129. HEAP32[i8 >> 2] = i10;
  29130. _luaK_fixline(i5, i1);
  29131. HEAP8[i5 + 48 | 0] = i7 + 1;
  29132. STACKTOP = i3;
  29133. return;
  29134. }
  29135. function _luaD_reallocstack(i3, i6) {
  29136. i3 = i3 | 0;
  29137. i6 = i6 | 0;
  29138. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
  29139. i1 = STACKTOP;
  29140. i2 = i3 + 28 | 0;
  29141. i8 = HEAP32[i2 >> 2] | 0;
  29142. i7 = i3 + 32 | 0;
  29143. i9 = HEAP32[i7 >> 2] | 0;
  29144. if ((i6 + 1 | 0) >>> 0 > 268435455) {
  29145. _luaM_toobig(i3);
  29146. }
  29147. i5 = _luaM_realloc_(i3, i8, i9 << 4, i6 << 4) | 0;
  29148. HEAP32[i2 >> 2] = i5;
  29149. if ((i9 | 0) < (i6 | 0)) {
  29150. do {
  29151. HEAP32[i5 + (i9 << 4) + 8 >> 2] = 0;
  29152. i9 = i9 + 1 | 0;
  29153. } while ((i9 | 0) != (i6 | 0));
  29154. }
  29155. HEAP32[i7 >> 2] = i6;
  29156. HEAP32[i3 + 24 >> 2] = i5 + (i6 + -5 << 4);
  29157. i6 = i3 + 8 | 0;
  29158. HEAP32[i6 >> 2] = i5 + ((HEAP32[i6 >> 2] | 0) - i8 >> 4 << 4);
  29159. i6 = HEAP32[i3 + 56 >> 2] | 0;
  29160. if ((i6 | 0) != 0 ? (i4 = i6 + 8 | 0, HEAP32[i4 >> 2] = i5 + ((HEAP32[i4 >> 2] | 0) - i8 >> 4 << 4), i4 = HEAP32[i6 >> 2] | 0, (i4 | 0) != 0) : 0) {
  29161. do {
  29162. i9 = i4 + 8 | 0;
  29163. HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
  29164. i4 = HEAP32[i4 >> 2] | 0;
  29165. } while ((i4 | 0) != 0);
  29166. }
  29167. i3 = HEAP32[i3 + 16 >> 2] | 0;
  29168. if ((i3 | 0) == 0) {
  29169. STACKTOP = i1;
  29170. return;
  29171. }
  29172. do {
  29173. i9 = i3 + 4 | 0;
  29174. HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
  29175. HEAP32[i3 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i3 >> 2] | 0) - i8 >> 4 << 4);
  29176. if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
  29177. i9 = i3 + 24 | 0;
  29178. HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
  29179. }
  29180. i3 = HEAP32[i3 + 8 >> 2] | 0;
  29181. } while ((i3 | 0) != 0);
  29182. STACKTOP = i1;
  29183. return;
  29184. }
  29185. function _luaF_close(i7, i6) {
  29186. i7 = i7 | 0;
  29187. i6 = i6 | 0;
  29188. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
  29189. i1 = STACKTOP;
  29190. i4 = HEAP32[i7 + 12 >> 2] | 0;
  29191. i3 = i7 + 56 | 0;
  29192. i8 = HEAP32[i3 >> 2] | 0;
  29193. if ((i8 | 0) == 0) {
  29194. STACKTOP = i1;
  29195. return;
  29196. }
  29197. i5 = i4 + 60 | 0;
  29198. i2 = i4 + 68 | 0;
  29199. while (1) {
  29200. i9 = i8 + 8 | 0;
  29201. if ((HEAP32[i9 >> 2] | 0) >>> 0 < i6 >>> 0) {
  29202. i2 = 10;
  29203. break;
  29204. }
  29205. HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
  29206. if ((((HEAPU8[i5] | 0) ^ 3) & ((HEAPU8[i8 + 5 | 0] | 0) ^ 3) | 0) == 0) {
  29207. if ((HEAP32[i9 >> 2] | 0) != (i8 + 16 | 0)) {
  29208. i9 = i8 + 16 | 0;
  29209. i10 = i9 + 4 | 0;
  29210. HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i9 >> 2];
  29211. HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
  29212. }
  29213. _luaM_realloc_(i7, i8, 32, 0) | 0;
  29214. } else {
  29215. i11 = i8 + 16 | 0;
  29216. i10 = i11 + 4 | 0;
  29217. HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i11 >> 2];
  29218. HEAP32[(HEAP32[i11 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
  29219. i11 = HEAP32[i9 >> 2] | 0;
  29220. i10 = i8 + 16 | 0;
  29221. i14 = i11;
  29222. i13 = HEAP32[i14 + 4 >> 2] | 0;
  29223. i12 = i10;
  29224. HEAP32[i12 >> 2] = HEAP32[i14 >> 2];
  29225. HEAP32[i12 + 4 >> 2] = i13;
  29226. HEAP32[i8 + 24 >> 2] = HEAP32[i11 + 8 >> 2];
  29227. HEAP32[i9 >> 2] = i10;
  29228. HEAP32[i8 >> 2] = HEAP32[i2 >> 2];
  29229. HEAP32[i2 >> 2] = i8;
  29230. _luaC_checkupvalcolor(i4, i8);
  29231. }
  29232. i8 = HEAP32[i3 >> 2] | 0;
  29233. if ((i8 | 0) == 0) {
  29234. i2 = 10;
  29235. break;
  29236. }
  29237. }
  29238. if ((i2 | 0) == 10) {
  29239. STACKTOP = i1;
  29240. return;
  29241. }
  29242. }
  29243. function _luaK_dischargevars(i3, i1) {
  29244. i3 = i3 | 0;
  29245. i1 = i1 | 0;
  29246. var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
  29247. i2 = STACKTOP;
  29248. switch (HEAP32[i1 >> 2] | 0) {
  29249. case 12:
  29250. {
  29251. HEAP32[i1 >> 2] = 6;
  29252. i6 = i1 + 8 | 0;
  29253. HEAP32[i6 >> 2] = (HEAP32[(HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i6 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
  29254. STACKTOP = i2;
  29255. return;
  29256. }
  29257. case 13:
  29258. {
  29259. i6 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i1 + 8 >> 2] << 2) | 0;
  29260. HEAP32[i6 >> 2] = HEAP32[i6 >> 2] & 8388607 | 16777216;
  29261. HEAP32[i1 >> 2] = 11;
  29262. STACKTOP = i2;
  29263. return;
  29264. }
  29265. case 9:
  29266. {
  29267. i4 = i1 + 8 | 0;
  29268. i5 = HEAP16[i4 >> 1] | 0;
  29269. if ((i5 & 256 | 0) == 0 ? (HEAPU8[i3 + 46 | 0] | 0) <= (i5 | 0) : 0) {
  29270. i6 = i3 + 48 | 0;
  29271. HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
  29272. }
  29273. i5 = i4 + 2 | 0;
  29274. if ((HEAP8[i4 + 3 | 0] | 0) == 7) {
  29275. if ((HEAPU8[i3 + 46 | 0] | 0) > (HEAPU8[i5] | 0)) {
  29276. i6 = 7;
  29277. } else {
  29278. i6 = i3 + 48 | 0;
  29279. HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
  29280. i6 = 7;
  29281. }
  29282. } else {
  29283. i6 = 6;
  29284. }
  29285. HEAP32[i4 >> 2] = _luaK_code(i3, HEAPU8[i5] << 23 | i6 | HEAP16[i4 >> 1] << 14) | 0;
  29286. HEAP32[i1 >> 2] = 11;
  29287. STACKTOP = i2;
  29288. return;
  29289. }
  29290. case 7:
  29291. {
  29292. HEAP32[i1 >> 2] = 6;
  29293. STACKTOP = i2;
  29294. return;
  29295. }
  29296. case 8:
  29297. {
  29298. i6 = i1 + 8 | 0;
  29299. HEAP32[i6 >> 2] = _luaK_code(i3, HEAP32[i6 >> 2] << 23 | 5) | 0;
  29300. HEAP32[i1 >> 2] = 11;
  29301. STACKTOP = i2;
  29302. return;
  29303. }
  29304. default:
  29305. {
  29306. STACKTOP = i2;
  29307. return;
  29308. }
  29309. }
  29310. }
  29311. function _gmatch_aux(i10) {
  29312. i10 = i10 | 0;
  29313. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0;
  29314. i1 = STACKTOP;
  29315. STACKTOP = STACKTOP + 288 | 0;
  29316. i2 = i1 + 8 | 0;
  29317. i12 = i1 + 4 | 0;
  29318. i3 = i1;
  29319. i8 = _lua_tolstring(i10, -1001001, i12) | 0;
  29320. i7 = _lua_tolstring(i10, -1001002, i3) | 0;
  29321. i5 = i2 + 16 | 0;
  29322. HEAP32[i5 >> 2] = i10;
  29323. HEAP32[i2 >> 2] = 200;
  29324. HEAP32[i2 + 4 >> 2] = i8;
  29325. i9 = i2 + 8 | 0;
  29326. HEAP32[i9 >> 2] = i8 + (HEAP32[i12 >> 2] | 0);
  29327. HEAP32[i2 + 12 >> 2] = i7 + (HEAP32[i3 >> 2] | 0);
  29328. i3 = i8 + (_lua_tointegerx(i10, -1001003, 0) | 0) | 0;
  29329. if (i3 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
  29330. i12 = 0;
  29331. STACKTOP = i1;
  29332. return i12 | 0;
  29333. }
  29334. i11 = i2 + 20 | 0;
  29335. while (1) {
  29336. HEAP32[i11 >> 2] = 0;
  29337. i4 = _match(i2, i3, i7) | 0;
  29338. i12 = i3 + 1 | 0;
  29339. if ((i4 | 0) != 0) {
  29340. break;
  29341. }
  29342. if (i12 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
  29343. i2 = 0;
  29344. i6 = 7;
  29345. break;
  29346. } else {
  29347. i3 = i12;
  29348. }
  29349. }
  29350. if ((i6 | 0) == 7) {
  29351. STACKTOP = i1;
  29352. return i2 | 0;
  29353. }
  29354. _lua_pushinteger(i10, i4 - i8 + ((i4 | 0) == (i3 | 0)) | 0);
  29355. _lua_replace(i10, -1001003);
  29356. i7 = HEAP32[i11 >> 2] | 0;
  29357. i6 = (i7 | 0) != 0 | (i3 | 0) == 0 ? i7 : 1;
  29358. _luaL_checkstack(HEAP32[i5 >> 2] | 0, i6, 7200);
  29359. if ((i6 | 0) > 0) {
  29360. i5 = 0;
  29361. } else {
  29362. i12 = i7;
  29363. STACKTOP = i1;
  29364. return i12 | 0;
  29365. }
  29366. while (1) {
  29367. _push_onecapture(i2, i5, i3, i4);
  29368. i5 = i5 + 1 | 0;
  29369. if ((i5 | 0) == (i6 | 0)) {
  29370. i2 = i6;
  29371. break;
  29372. }
  29373. }
  29374. STACKTOP = i1;
  29375. return i2 | 0;
  29376. }
  29377. function _lua_rawseti(i1, i5, i3) {
  29378. i1 = i1 | 0;
  29379. i5 = i5 | 0;
  29380. i3 = i3 | 0;
  29381. var i2 = 0, i4 = 0, i6 = 0;
  29382. i2 = STACKTOP;
  29383. i6 = HEAP32[i1 + 16 >> 2] | 0;
  29384. do {
  29385. if ((i5 | 0) <= 0) {
  29386. if (!((i5 | 0) < -1000999)) {
  29387. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  29388. break;
  29389. }
  29390. if ((i5 | 0) == -1001e3) {
  29391. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  29392. break;
  29393. }
  29394. i5 = -1001e3 - i5 | 0;
  29395. i6 = HEAP32[i6 >> 2] | 0;
  29396. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  29397. i5 = i4 + (i5 + -1 << 4) + 16 | 0;
  29398. } else {
  29399. i5 = 5192;
  29400. }
  29401. } else {
  29402. i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
  29403. i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  29404. }
  29405. } while (0);
  29406. i4 = i1 + 8 | 0;
  29407. _luaH_setint(i1, HEAP32[i5 >> 2] | 0, i3, (HEAP32[i4 >> 2] | 0) + -16 | 0);
  29408. i3 = HEAP32[i4 >> 2] | 0;
  29409. if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
  29410. i6 = i3;
  29411. i6 = i6 + -16 | 0;
  29412. HEAP32[i4 >> 2] = i6;
  29413. STACKTOP = i2;
  29414. return;
  29415. }
  29416. if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
  29417. i6 = i3;
  29418. i6 = i6 + -16 | 0;
  29419. HEAP32[i4 >> 2] = i6;
  29420. STACKTOP = i2;
  29421. return;
  29422. }
  29423. i5 = HEAP32[i5 >> 2] | 0;
  29424. if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
  29425. i6 = i3;
  29426. i6 = i6 + -16 | 0;
  29427. HEAP32[i4 >> 2] = i6;
  29428. STACKTOP = i2;
  29429. return;
  29430. }
  29431. _luaC_barrierback_(i1, i5);
  29432. i6 = HEAP32[i4 >> 2] | 0;
  29433. i6 = i6 + -16 | 0;
  29434. HEAP32[i4 >> 2] = i6;
  29435. STACKTOP = i2;
  29436. return;
  29437. }
  29438. function _ll_require(i1) {
  29439. i1 = i1 | 0;
  29440. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  29441. i2 = STACKTOP;
  29442. STACKTOP = STACKTOP + 1056 | 0;
  29443. i5 = i2;
  29444. i4 = i2 + 8 | 0;
  29445. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  29446. _lua_settop(i1, 1);
  29447. _lua_getfield(i1, -1001e3, 4576);
  29448. _lua_getfield(i1, 2, i3);
  29449. if ((_lua_toboolean(i1, -1) | 0) != 0) {
  29450. STACKTOP = i2;
  29451. return 1;
  29452. }
  29453. _lua_settop(i1, -2);
  29454. _luaL_buffinit(i1, i4);
  29455. _lua_getfield(i1, -1001001, 4240);
  29456. if ((_lua_type(i1, 3) | 0) == 5) {
  29457. i6 = 1;
  29458. } else {
  29459. _luaL_error(i1, 4656, i5) | 0;
  29460. i6 = 1;
  29461. }
  29462. while (1) {
  29463. _lua_rawgeti(i1, 3, i6);
  29464. if ((_lua_type(i1, -1) | 0) == 0) {
  29465. _lua_settop(i1, -2);
  29466. _luaL_pushresult(i4);
  29467. i7 = _lua_tolstring(i1, -1, 0) | 0;
  29468. HEAP32[i5 >> 2] = i3;
  29469. HEAP32[i5 + 4 >> 2] = i7;
  29470. _luaL_error(i1, 4696, i5) | 0;
  29471. }
  29472. _lua_pushstring(i1, i3) | 0;
  29473. _lua_callk(i1, 1, 2, 0, 0);
  29474. if ((_lua_type(i1, -2) | 0) == 6) {
  29475. break;
  29476. }
  29477. if ((_lua_isstring(i1, -2) | 0) == 0) {
  29478. _lua_settop(i1, -3);
  29479. } else {
  29480. _lua_settop(i1, -2);
  29481. _luaL_addvalue(i4);
  29482. }
  29483. i6 = i6 + 1 | 0;
  29484. }
  29485. _lua_pushstring(i1, i3) | 0;
  29486. _lua_insert(i1, -2);
  29487. _lua_callk(i1, 2, 1, 0, 0);
  29488. if ((_lua_type(i1, -1) | 0) != 0) {
  29489. _lua_setfield(i1, 2, i3);
  29490. }
  29491. _lua_getfield(i1, 2, i3);
  29492. if ((_lua_type(i1, -1) | 0) != 0) {
  29493. STACKTOP = i2;
  29494. return 1;
  29495. }
  29496. _lua_pushboolean(i1, 1);
  29497. _lua_pushvalue(i1, -1);
  29498. _lua_setfield(i1, 2, i3);
  29499. STACKTOP = i2;
  29500. return 1;
  29501. }
  29502. function _f_parser(i1, i3) {
  29503. i1 = i1 | 0;
  29504. i3 = i3 | 0;
  29505. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  29506. i2 = STACKTOP;
  29507. STACKTOP = STACKTOP + 16 | 0;
  29508. i4 = i2;
  29509. i5 = HEAP32[i3 >> 2] | 0;
  29510. i8 = HEAP32[i5 >> 2] | 0;
  29511. HEAP32[i5 >> 2] = i8 + -1;
  29512. if ((i8 | 0) == 0) {
  29513. i6 = _luaZ_fill(i5) | 0;
  29514. } else {
  29515. i8 = i5 + 4 | 0;
  29516. i6 = HEAP32[i8 >> 2] | 0;
  29517. HEAP32[i8 >> 2] = i6 + 1;
  29518. i6 = HEAPU8[i6] | 0;
  29519. }
  29520. i5 = HEAP32[i3 + 52 >> 2] | 0;
  29521. i7 = (i5 | 0) == 0;
  29522. if ((i6 | 0) == 27) {
  29523. if (!i7 ? (_strchr(i5, 98) | 0) == 0 : 0) {
  29524. HEAP32[i4 >> 2] = 2360;
  29525. HEAP32[i4 + 4 >> 2] = i5;
  29526. _luaO_pushfstring(i1, 2376, i4) | 0;
  29527. _luaD_throw(i1, 3);
  29528. }
  29529. i8 = _luaU_undump(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, HEAP32[i3 + 56 >> 2] | 0) | 0;
  29530. } else {
  29531. if (!i7 ? (_strchr(i5, 116) | 0) == 0 : 0) {
  29532. HEAP32[i4 >> 2] = 2368;
  29533. HEAP32[i4 + 4 >> 2] = i5;
  29534. _luaO_pushfstring(i1, 2376, i4) | 0;
  29535. _luaD_throw(i1, 3);
  29536. }
  29537. i8 = _luaY_parser(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, i3 + 16 | 0, HEAP32[i3 + 56 >> 2] | 0, i6) | 0;
  29538. }
  29539. i7 = i8 + 6 | 0;
  29540. if ((HEAP8[i7] | 0) == 0) {
  29541. STACKTOP = i2;
  29542. return;
  29543. }
  29544. i5 = i8 + 16 | 0;
  29545. i6 = i8 + 5 | 0;
  29546. i4 = 0;
  29547. do {
  29548. i3 = _luaF_newupval(i1) | 0;
  29549. HEAP32[i5 + (i4 << 2) >> 2] = i3;
  29550. if (!((HEAP8[i3 + 5 | 0] & 3) == 0) ? !((HEAP8[i6] & 4) == 0) : 0) {
  29551. _luaC_barrier_(i1, i8, i3);
  29552. }
  29553. i4 = i4 + 1 | 0;
  29554. } while ((i4 | 0) < (HEAPU8[i7] | 0));
  29555. STACKTOP = i2;
  29556. return;
  29557. }
  29558. function _str_rep(i9) {
  29559. i9 = i9 | 0;
  29560. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0;
  29561. i6 = STACKTOP;
  29562. STACKTOP = STACKTOP + 1056 | 0;
  29563. i4 = i6;
  29564. i2 = i6 + 1044 | 0;
  29565. i3 = i6 + 1040 | 0;
  29566. i1 = _luaL_checklstring(i9, 1, i2) | 0;
  29567. i8 = _luaL_checkinteger(i9, 2) | 0;
  29568. i5 = _luaL_optlstring(i9, 3, 7040, i3) | 0;
  29569. if ((i8 | 0) < 1) {
  29570. _lua_pushlstring(i9, 7040, 0) | 0;
  29571. i12 = 1;
  29572. STACKTOP = i6;
  29573. return i12 | 0;
  29574. }
  29575. i7 = HEAP32[i2 >> 2] | 0;
  29576. i10 = HEAP32[i3 >> 2] | 0;
  29577. i11 = i10 + i7 | 0;
  29578. if (!(i11 >>> 0 < i7 >>> 0) ? i11 >>> 0 < (2147483647 / (i8 >>> 0) | 0) >>> 0 : 0) {
  29579. i7 = (Math_imul(i10, i8 + -1 | 0) | 0) + (Math_imul(i7, i8) | 0) | 0;
  29580. i11 = _luaL_buffinitsize(i9, i4, i7) | 0;
  29581. _memcpy(i11 | 0, i1 | 0, HEAP32[i2 >> 2] | 0) | 0;
  29582. if ((i8 | 0) > 1) {
  29583. while (1) {
  29584. i8 = i8 + -1 | 0;
  29585. i9 = HEAP32[i2 >> 2] | 0;
  29586. i10 = i11 + i9 | 0;
  29587. i12 = HEAP32[i3 >> 2] | 0;
  29588. if ((i12 | 0) == 0) {
  29589. i12 = i9;
  29590. } else {
  29591. _memcpy(i10 | 0, i5 | 0, i12 | 0) | 0;
  29592. i12 = HEAP32[i2 >> 2] | 0;
  29593. i10 = i11 + ((HEAP32[i3 >> 2] | 0) + i9) | 0;
  29594. }
  29595. _memcpy(i10 | 0, i1 | 0, i12 | 0) | 0;
  29596. if ((i8 | 0) <= 1) {
  29597. break;
  29598. } else {
  29599. i11 = i10;
  29600. }
  29601. }
  29602. }
  29603. _luaL_pushresultsize(i4, i7);
  29604. i12 = 1;
  29605. STACKTOP = i6;
  29606. return i12 | 0;
  29607. }
  29608. i12 = _luaL_error(i9, 7168, i4) | 0;
  29609. STACKTOP = i6;
  29610. return i12 | 0;
  29611. }
  29612. function ___strchrnul(i6, i2) {
  29613. i6 = i6 | 0;
  29614. i2 = i2 | 0;
  29615. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
  29616. i1 = STACKTOP;
  29617. i3 = i2 & 255;
  29618. if ((i3 | 0) == 0) {
  29619. i7 = i6 + (_strlen(i6 | 0) | 0) | 0;
  29620. STACKTOP = i1;
  29621. return i7 | 0;
  29622. }
  29623. L5 : do {
  29624. if ((i6 & 3 | 0) != 0) {
  29625. i4 = i2 & 255;
  29626. while (1) {
  29627. i5 = HEAP8[i6] | 0;
  29628. if (i5 << 24 >> 24 == 0) {
  29629. i4 = i6;
  29630. i5 = 13;
  29631. break;
  29632. }
  29633. i7 = i6 + 1 | 0;
  29634. if (i5 << 24 >> 24 == i4 << 24 >> 24) {
  29635. i4 = i6;
  29636. i5 = 13;
  29637. break;
  29638. }
  29639. if ((i7 & 3 | 0) == 0) {
  29640. i4 = i7;
  29641. break L5;
  29642. } else {
  29643. i6 = i7;
  29644. }
  29645. }
  29646. if ((i5 | 0) == 13) {
  29647. STACKTOP = i1;
  29648. return i4 | 0;
  29649. }
  29650. } else {
  29651. i4 = i6;
  29652. }
  29653. } while (0);
  29654. i3 = Math_imul(i3, 16843009) | 0;
  29655. i6 = HEAP32[i4 >> 2] | 0;
  29656. L15 : do {
  29657. if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
  29658. while (1) {
  29659. i7 = i6 ^ i3;
  29660. i5 = i4 + 4 | 0;
  29661. if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
  29662. break L15;
  29663. }
  29664. i6 = HEAP32[i5 >> 2] | 0;
  29665. if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
  29666. i4 = i5;
  29667. } else {
  29668. i4 = i5;
  29669. break;
  29670. }
  29671. }
  29672. }
  29673. } while (0);
  29674. i2 = i2 & 255;
  29675. while (1) {
  29676. i7 = HEAP8[i4] | 0;
  29677. if (i7 << 24 >> 24 == 0 | i7 << 24 >> 24 == i2 << 24 >> 24) {
  29678. break;
  29679. } else {
  29680. i4 = i4 + 1 | 0;
  29681. }
  29682. }
  29683. STACKTOP = i1;
  29684. return i4 | 0;
  29685. }
  29686. function _lua_replace(i2, i6) {
  29687. i2 = i2 | 0;
  29688. i6 = i6 | 0;
  29689. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  29690. i3 = STACKTOP;
  29691. i7 = i2 + 8 | 0;
  29692. i9 = HEAP32[i7 >> 2] | 0;
  29693. i5 = i9 + -16 | 0;
  29694. i4 = i2 + 16 | 0;
  29695. i12 = HEAP32[i4 >> 2] | 0;
  29696. do {
  29697. if ((i6 | 0) <= 0) {
  29698. if (!((i6 | 0) < -1000999)) {
  29699. i10 = i9 + (i6 << 4) | 0;
  29700. break;
  29701. }
  29702. if ((i6 | 0) == -1001e3) {
  29703. i10 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  29704. break;
  29705. }
  29706. i11 = -1001e3 - i6 | 0;
  29707. i12 = HEAP32[i12 >> 2] | 0;
  29708. if ((HEAP32[i12 + 8 >> 2] | 0) != 22 ? (i10 = HEAP32[i12 >> 2] | 0, (i11 | 0) <= (HEAPU8[i10 + 6 | 0] | 0 | 0)) : 0) {
  29709. i10 = i10 + (i11 + -1 << 4) + 16 | 0;
  29710. } else {
  29711. i10 = 5192;
  29712. }
  29713. } else {
  29714. i10 = (HEAP32[i12 >> 2] | 0) + (i6 << 4) | 0;
  29715. i10 = i10 >>> 0 < i9 >>> 0 ? i10 : 5192;
  29716. }
  29717. } while (0);
  29718. i13 = i5;
  29719. i11 = HEAP32[i13 + 4 >> 2] | 0;
  29720. i12 = i10;
  29721. HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
  29722. HEAP32[i12 + 4 >> 2] = i11;
  29723. i9 = i9 + -8 | 0;
  29724. HEAP32[i10 + 8 >> 2] = HEAP32[i9 >> 2];
  29725. if ((((i6 | 0) < -1001e3 ? (HEAP32[i9 >> 2] & 64 | 0) != 0 : 0) ? (i1 = HEAP32[i5 >> 2] | 0, !((HEAP8[i1 + 5 | 0] & 3) == 0)) : 0) ? (i8 = HEAP32[HEAP32[HEAP32[i4 >> 2] >> 2] >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 4) == 0)) : 0) {
  29726. _luaC_barrier_(i2, i8, i1);
  29727. }
  29728. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
  29729. STACKTOP = i3;
  29730. return;
  29731. }
  29732. function _memchr(i4, i3, i6) {
  29733. i4 = i4 | 0;
  29734. i3 = i3 | 0;
  29735. i6 = i6 | 0;
  29736. var i1 = 0, i2 = 0, i5 = 0, i7 = 0;
  29737. i1 = STACKTOP;
  29738. i2 = i3 & 255;
  29739. i7 = (i6 | 0) == 0;
  29740. L1 : do {
  29741. if ((i4 & 3 | 0) == 0 | i7) {
  29742. i5 = i6;
  29743. i6 = 5;
  29744. } else {
  29745. i5 = i3 & 255;
  29746. while (1) {
  29747. if ((HEAP8[i4] | 0) == i5 << 24 >> 24) {
  29748. i5 = i6;
  29749. i6 = 6;
  29750. break L1;
  29751. }
  29752. i4 = i4 + 1 | 0;
  29753. i6 = i6 + -1 | 0;
  29754. i7 = (i6 | 0) == 0;
  29755. if ((i4 & 3 | 0) == 0 | i7) {
  29756. i5 = i6;
  29757. i6 = 5;
  29758. break;
  29759. }
  29760. }
  29761. }
  29762. } while (0);
  29763. if ((i6 | 0) == 5) {
  29764. if (i7) {
  29765. i5 = 0;
  29766. } else {
  29767. i6 = 6;
  29768. }
  29769. }
  29770. L8 : do {
  29771. if ((i6 | 0) == 6) {
  29772. i3 = i3 & 255;
  29773. if (!((HEAP8[i4] | 0) == i3 << 24 >> 24)) {
  29774. i2 = Math_imul(i2, 16843009) | 0;
  29775. L11 : do {
  29776. if (i5 >>> 0 > 3) {
  29777. do {
  29778. i7 = HEAP32[i4 >> 2] ^ i2;
  29779. if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
  29780. break L11;
  29781. }
  29782. i4 = i4 + 4 | 0;
  29783. i5 = i5 + -4 | 0;
  29784. } while (i5 >>> 0 > 3);
  29785. }
  29786. } while (0);
  29787. if ((i5 | 0) == 0) {
  29788. i5 = 0;
  29789. } else {
  29790. while (1) {
  29791. if ((HEAP8[i4] | 0) == i3 << 24 >> 24) {
  29792. break L8;
  29793. }
  29794. i4 = i4 + 1 | 0;
  29795. i5 = i5 + -1 | 0;
  29796. if ((i5 | 0) == 0) {
  29797. i5 = 0;
  29798. break;
  29799. }
  29800. }
  29801. }
  29802. }
  29803. }
  29804. } while (0);
  29805. STACKTOP = i1;
  29806. return ((i5 | 0) != 0 ? i4 : 0) | 0;
  29807. }
  29808. function _lua_insert(i2, i5) {
  29809. i2 = i2 | 0;
  29810. i5 = i5 | 0;
  29811. var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0;
  29812. i1 = STACKTOP;
  29813. i4 = HEAP32[i2 + 16 >> 2] | 0;
  29814. do {
  29815. if ((i5 | 0) <= 0) {
  29816. if (!((i5 | 0) < -1000999)) {
  29817. i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
  29818. break;
  29819. }
  29820. if ((i5 | 0) == -1001e3) {
  29821. i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  29822. break;
  29823. }
  29824. i5 = -1001e3 - i5 | 0;
  29825. i4 = HEAP32[i4 >> 2] | 0;
  29826. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  29827. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  29828. } else {
  29829. i3 = 5192;
  29830. }
  29831. } else {
  29832. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  29833. i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  29834. }
  29835. } while (0);
  29836. i2 = i2 + 8 | 0;
  29837. i4 = HEAP32[i2 >> 2] | 0;
  29838. if (i4 >>> 0 > i3 >>> 0) {
  29839. while (1) {
  29840. i5 = i4 + -16 | 0;
  29841. i8 = i5;
  29842. i7 = HEAP32[i8 + 4 >> 2] | 0;
  29843. i6 = i4;
  29844. HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
  29845. HEAP32[i6 + 4 >> 2] = i7;
  29846. HEAP32[i4 + 8 >> 2] = HEAP32[i4 + -8 >> 2];
  29847. if (i5 >>> 0 > i3 >>> 0) {
  29848. i4 = i5;
  29849. } else {
  29850. break;
  29851. }
  29852. }
  29853. i4 = HEAP32[i2 >> 2] | 0;
  29854. }
  29855. i6 = i4;
  29856. i7 = HEAP32[i6 + 4 >> 2] | 0;
  29857. i8 = i3;
  29858. HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
  29859. HEAP32[i8 + 4 >> 2] = i7;
  29860. HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
  29861. STACKTOP = i1;
  29862. return;
  29863. }
  29864. function _findlocal(i6, i4, i1, i2) {
  29865. i6 = i6 | 0;
  29866. i4 = i4 | 0;
  29867. i1 = i1 | 0;
  29868. i2 = i2 | 0;
  29869. var i3 = 0, i5 = 0, i7 = 0, i8 = 0;
  29870. i3 = STACKTOP;
  29871. do {
  29872. if ((HEAP8[i4 + 18 | 0] & 1) == 0) {
  29873. i7 = (HEAP32[i4 >> 2] | 0) + 16 | 0;
  29874. i5 = 7;
  29875. } else {
  29876. if ((i1 | 0) >= 0) {
  29877. i8 = HEAP32[i4 + 24 >> 2] | 0;
  29878. i7 = HEAP32[(HEAP32[HEAP32[i4 >> 2] >> 2] | 0) + 12 >> 2] | 0;
  29879. i7 = _luaF_getlocalname(i7, i1, ((HEAP32[i4 + 28 >> 2] | 0) - (HEAP32[i7 + 12 >> 2] | 0) >> 2) + -1 | 0) | 0;
  29880. if ((i7 | 0) == 0) {
  29881. i7 = i8;
  29882. i5 = 7;
  29883. break;
  29884. } else {
  29885. break;
  29886. }
  29887. }
  29888. i5 = HEAP32[i4 >> 2] | 0;
  29889. i6 = HEAPU8[(HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] | 0;
  29890. if ((((HEAP32[i4 + 24 >> 2] | 0) - i5 >> 4) - i6 | 0) <= (0 - i1 | 0)) {
  29891. i8 = 0;
  29892. STACKTOP = i3;
  29893. return i8 | 0;
  29894. }
  29895. HEAP32[i2 >> 2] = i5 + (i6 - i1 << 4);
  29896. i8 = 2208;
  29897. STACKTOP = i3;
  29898. return i8 | 0;
  29899. }
  29900. } while (0);
  29901. if ((i5 | 0) == 7) {
  29902. if ((HEAP32[i6 + 16 >> 2] | 0) == (i4 | 0)) {
  29903. i4 = i6 + 8 | 0;
  29904. } else {
  29905. i4 = HEAP32[i4 + 12 >> 2] | 0;
  29906. }
  29907. if (((HEAP32[i4 >> 2] | 0) - i7 >> 4 | 0) >= (i1 | 0) & (i1 | 0) > 0) {
  29908. i8 = i7;
  29909. i7 = 2192;
  29910. } else {
  29911. i8 = 0;
  29912. STACKTOP = i3;
  29913. return i8 | 0;
  29914. }
  29915. }
  29916. HEAP32[i2 >> 2] = i8 + (i1 + -1 << 4);
  29917. i8 = i7;
  29918. STACKTOP = i3;
  29919. return i8 | 0;
  29920. }
  29921. function _luaH_setint(i4, i5, i6, i1) {
  29922. i4 = i4 | 0;
  29923. i5 = i5 | 0;
  29924. i6 = i6 | 0;
  29925. i1 = i1 | 0;
  29926. var i2 = 0, i3 = 0, d7 = 0.0, i8 = 0, i9 = 0;
  29927. i2 = STACKTOP;
  29928. STACKTOP = STACKTOP + 32 | 0;
  29929. i8 = i2 + 16 | 0;
  29930. i3 = i2;
  29931. i9 = i6 + -1 | 0;
  29932. L1 : do {
  29933. if (i9 >>> 0 < (HEAP32[i5 + 28 >> 2] | 0) >>> 0) {
  29934. i9 = (HEAP32[i5 + 12 >> 2] | 0) + (i9 << 4) | 0;
  29935. i8 = 10;
  29936. } else {
  29937. d7 = +(i6 | 0);
  29938. HEAPF64[i8 >> 3] = d7 + 1.0;
  29939. i8 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
  29940. if ((i8 | 0) < 0) {
  29941. i9 = 0 - i8 | 0;
  29942. i8 = (i8 | 0) == (i9 | 0) ? 0 : i9;
  29943. }
  29944. i9 = (HEAP32[i5 + 16 >> 2] | 0) + (((i8 | 0) % ((1 << (HEAPU8[i5 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  29945. while (1) {
  29946. if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d7 : 0) {
  29947. break;
  29948. }
  29949. i9 = HEAP32[i9 + 28 >> 2] | 0;
  29950. if ((i9 | 0) == 0) {
  29951. i8 = 12;
  29952. break L1;
  29953. }
  29954. }
  29955. i8 = 10;
  29956. }
  29957. } while (0);
  29958. if ((i8 | 0) == 10) {
  29959. if ((i9 | 0) == 5192) {
  29960. d7 = +(i6 | 0);
  29961. i8 = 12;
  29962. }
  29963. }
  29964. if ((i8 | 0) == 12) {
  29965. HEAPF64[i3 >> 3] = d7;
  29966. HEAP32[i3 + 8 >> 2] = 3;
  29967. i9 = _luaH_newkey(i4, i5, i3) | 0;
  29968. }
  29969. i5 = i1;
  29970. i6 = HEAP32[i5 + 4 >> 2] | 0;
  29971. i8 = i9;
  29972. HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
  29973. HEAP32[i8 + 4 >> 2] = i6;
  29974. HEAP32[i9 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
  29975. STACKTOP = i2;
  29976. return;
  29977. }
  29978. function _lua_tounsignedx(i6, i8, i1) {
  29979. i6 = i6 | 0;
  29980. i8 = i8 | 0;
  29981. i1 = i1 | 0;
  29982. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
  29983. i2 = STACKTOP;
  29984. STACKTOP = STACKTOP + 32 | 0;
  29985. i4 = i2 + 8 | 0;
  29986. i3 = i2;
  29987. i7 = HEAP32[i6 + 16 >> 2] | 0;
  29988. do {
  29989. if ((i8 | 0) <= 0) {
  29990. if (!((i8 | 0) < -1000999)) {
  29991. i5 = (HEAP32[i6 + 8 >> 2] | 0) + (i8 << 4) | 0;
  29992. break;
  29993. }
  29994. if ((i8 | 0) == -1001e3) {
  29995. i5 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
  29996. break;
  29997. }
  29998. i6 = -1001e3 - i8 | 0;
  29999. i7 = HEAP32[i7 >> 2] | 0;
  30000. if ((HEAP32[i7 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i7 >> 2] | 0, (i6 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
  30001. i5 = i5 + (i6 + -1 << 4) + 16 | 0;
  30002. } else {
  30003. i5 = 5192;
  30004. }
  30005. } else {
  30006. i5 = (HEAP32[i7 >> 2] | 0) + (i8 << 4) | 0;
  30007. i5 = i5 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
  30008. }
  30009. } while (0);
  30010. if ((HEAP32[i5 + 8 >> 2] | 0) != 3) {
  30011. i5 = _luaV_tonumber(i5, i4) | 0;
  30012. if ((i5 | 0) == 0) {
  30013. if ((i1 | 0) == 0) {
  30014. i8 = 0;
  30015. STACKTOP = i2;
  30016. return i8 | 0;
  30017. }
  30018. HEAP32[i1 >> 2] = 0;
  30019. i8 = 0;
  30020. STACKTOP = i2;
  30021. return i8 | 0;
  30022. }
  30023. }
  30024. HEAPF64[i3 >> 3] = +HEAPF64[i5 >> 3] + 6755399441055744.0;
  30025. i3 = HEAP32[i3 >> 2] | 0;
  30026. if ((i1 | 0) == 0) {
  30027. i8 = i3;
  30028. STACKTOP = i2;
  30029. return i8 | 0;
  30030. }
  30031. HEAP32[i1 >> 2] = 1;
  30032. i8 = i3;
  30033. STACKTOP = i2;
  30034. return i8 | 0;
  30035. }
  30036. function _luaC_freeallobjects(i1) {
  30037. i1 = i1 | 0;
  30038. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  30039. i2 = STACKTOP;
  30040. i5 = i1 + 12 | 0;
  30041. i3 = HEAP32[i5 >> 2] | 0;
  30042. i7 = i3 + 104 | 0;
  30043. while (1) {
  30044. i4 = HEAP32[i7 >> 2] | 0;
  30045. if ((i4 | 0) == 0) {
  30046. break;
  30047. } else {
  30048. i7 = i4;
  30049. }
  30050. }
  30051. i4 = i3 + 72 | 0;
  30052. i6 = HEAP32[i4 >> 2] | 0;
  30053. if ((i6 | 0) == 0) {
  30054. i5 = i3;
  30055. } else {
  30056. while (1) {
  30057. i8 = i6 + 5 | 0;
  30058. HEAP8[i8] = HEAPU8[i8] | 0 | 8;
  30059. HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
  30060. HEAP32[i6 >> 2] = HEAP32[i7 >> 2];
  30061. HEAP32[i7 >> 2] = i6;
  30062. i7 = HEAP32[i4 >> 2] | 0;
  30063. if ((i7 | 0) == 0) {
  30064. break;
  30065. } else {
  30066. i8 = i6;
  30067. i6 = i7;
  30068. i7 = i8;
  30069. }
  30070. }
  30071. i5 = HEAP32[i5 >> 2] | 0;
  30072. }
  30073. i5 = i5 + 104 | 0;
  30074. i6 = HEAP32[i5 >> 2] | 0;
  30075. if ((i6 | 0) != 0) {
  30076. do {
  30077. i8 = i6 + 5 | 0;
  30078. HEAP8[i8] = HEAP8[i8] & 191;
  30079. _GCTM(i1, 0);
  30080. i6 = HEAP32[i5 >> 2] | 0;
  30081. } while ((i6 | 0) != 0);
  30082. }
  30083. HEAP8[i3 + 60 | 0] = 3;
  30084. HEAP8[i3 + 62 | 0] = 0;
  30085. _sweeplist(i1, i4, -3) | 0;
  30086. _sweeplist(i1, i3 + 68 | 0, -3) | 0;
  30087. i4 = i3 + 32 | 0;
  30088. if ((HEAP32[i4 >> 2] | 0) <= 0) {
  30089. STACKTOP = i2;
  30090. return;
  30091. }
  30092. i3 = i3 + 24 | 0;
  30093. i5 = 0;
  30094. do {
  30095. _sweeplist(i1, (HEAP32[i3 >> 2] | 0) + (i5 << 2) | 0, -3) | 0;
  30096. i5 = i5 + 1 | 0;
  30097. } while ((i5 | 0) < (HEAP32[i4 >> 2] | 0));
  30098. STACKTOP = i2;
  30099. return;
  30100. }
  30101. function _strspn(i1, i5) {
  30102. i1 = i1 | 0;
  30103. i5 = i5 | 0;
  30104. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  30105. i2 = STACKTOP;
  30106. STACKTOP = STACKTOP + 32 | 0;
  30107. i3 = i2;
  30108. HEAP32[i3 + 0 >> 2] = 0;
  30109. HEAP32[i3 + 4 >> 2] = 0;
  30110. HEAP32[i3 + 8 >> 2] = 0;
  30111. HEAP32[i3 + 12 >> 2] = 0;
  30112. HEAP32[i3 + 16 >> 2] = 0;
  30113. HEAP32[i3 + 20 >> 2] = 0;
  30114. HEAP32[i3 + 24 >> 2] = 0;
  30115. HEAP32[i3 + 28 >> 2] = 0;
  30116. i4 = HEAP8[i5] | 0;
  30117. if (i4 << 24 >> 24 == 0) {
  30118. i6 = 0;
  30119. STACKTOP = i2;
  30120. return i6 | 0;
  30121. }
  30122. if ((HEAP8[i5 + 1 | 0] | 0) == 0) {
  30123. i3 = i1;
  30124. while (1) {
  30125. if ((HEAP8[i3] | 0) == i4 << 24 >> 24) {
  30126. i3 = i3 + 1 | 0;
  30127. } else {
  30128. break;
  30129. }
  30130. }
  30131. i6 = i3 - i1 | 0;
  30132. STACKTOP = i2;
  30133. return i6 | 0;
  30134. }
  30135. do {
  30136. i7 = i4 & 255;
  30137. i6 = i3 + (i7 >>> 5 << 2) | 0;
  30138. HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
  30139. i5 = i5 + 1 | 0;
  30140. i4 = HEAP8[i5] | 0;
  30141. } while (!(i4 << 24 >> 24 == 0));
  30142. i5 = HEAP8[i1] | 0;
  30143. L12 : do {
  30144. if (i5 << 24 >> 24 == 0) {
  30145. i4 = i1;
  30146. } else {
  30147. i4 = i1;
  30148. while (1) {
  30149. i7 = i5 & 255;
  30150. i6 = i4 + 1 | 0;
  30151. if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) == 0) {
  30152. break L12;
  30153. }
  30154. i5 = HEAP8[i6] | 0;
  30155. if (i5 << 24 >> 24 == 0) {
  30156. i4 = i6;
  30157. break;
  30158. } else {
  30159. i4 = i6;
  30160. }
  30161. }
  30162. }
  30163. } while (0);
  30164. i7 = i4 - i1 | 0;
  30165. STACKTOP = i2;
  30166. return i7 | 0;
  30167. }
  30168. function _lua_remove(i2, i4) {
  30169. i2 = i2 | 0;
  30170. i4 = i4 | 0;
  30171. var i1 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
  30172. i1 = STACKTOP;
  30173. i5 = HEAP32[i2 + 16 >> 2] | 0;
  30174. do {
  30175. if ((i4 | 0) <= 0) {
  30176. if (!((i4 | 0) < -1000999)) {
  30177. i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
  30178. break;
  30179. }
  30180. if ((i4 | 0) == -1001e3) {
  30181. i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  30182. break;
  30183. }
  30184. i4 = -1001e3 - i4 | 0;
  30185. i5 = HEAP32[i5 >> 2] | 0;
  30186. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  30187. i3 = i3 + (i4 + -1 << 4) + 16 | 0;
  30188. } else {
  30189. i3 = 5192;
  30190. }
  30191. } else {
  30192. i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
  30193. i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  30194. }
  30195. } while (0);
  30196. i4 = i3 + 16 | 0;
  30197. i2 = i2 + 8 | 0;
  30198. i5 = HEAP32[i2 >> 2] | 0;
  30199. if (!(i4 >>> 0 < i5 >>> 0)) {
  30200. i5 = i5 + -16 | 0;
  30201. HEAP32[i2 >> 2] = i5;
  30202. STACKTOP = i1;
  30203. return;
  30204. }
  30205. while (1) {
  30206. i7 = i4;
  30207. i6 = HEAP32[i7 + 4 >> 2] | 0;
  30208. i5 = i3;
  30209. HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
  30210. HEAP32[i5 + 4 >> 2] = i6;
  30211. HEAP32[i3 + 8 >> 2] = HEAP32[i3 + 24 >> 2];
  30212. i5 = i4 + 16 | 0;
  30213. i3 = HEAP32[i2 >> 2] | 0;
  30214. if (i5 >>> 0 < i3 >>> 0) {
  30215. i3 = i4;
  30216. i4 = i5;
  30217. } else {
  30218. break;
  30219. }
  30220. }
  30221. i7 = i3 + -16 | 0;
  30222. HEAP32[i2 >> 2] = i7;
  30223. STACKTOP = i1;
  30224. return;
  30225. }
  30226. function _luaD_protectedparser(i1, i4, i3, i2) {
  30227. i1 = i1 | 0;
  30228. i4 = i4 | 0;
  30229. i3 = i3 | 0;
  30230. i2 = i2 | 0;
  30231. var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
  30232. i5 = STACKTOP;
  30233. STACKTOP = STACKTOP + 64 | 0;
  30234. i13 = i5;
  30235. i6 = i1 + 36 | 0;
  30236. HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + 1 << 16 >> 16;
  30237. HEAP32[i13 >> 2] = i4;
  30238. HEAP32[i13 + 56 >> 2] = i3;
  30239. HEAP32[i13 + 52 >> 2] = i2;
  30240. i10 = i13 + 16 | 0;
  30241. HEAP32[i10 >> 2] = 0;
  30242. i9 = i13 + 24 | 0;
  30243. HEAP32[i9 >> 2] = 0;
  30244. i8 = i13 + 28 | 0;
  30245. HEAP32[i8 >> 2] = 0;
  30246. i7 = i13 + 36 | 0;
  30247. HEAP32[i7 >> 2] = 0;
  30248. i2 = i13 + 40 | 0;
  30249. HEAP32[i2 >> 2] = 0;
  30250. i3 = i13 + 48 | 0;
  30251. HEAP32[i3 >> 2] = 0;
  30252. i12 = i13 + 4 | 0;
  30253. HEAP32[i12 >> 2] = 0;
  30254. i11 = i13 + 12 | 0;
  30255. HEAP32[i11 >> 2] = 0;
  30256. i4 = _luaD_pcall(i1, 6, i13, (HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) | 0, HEAP32[i1 + 68 >> 2] | 0) | 0;
  30257. HEAP32[i12 >> 2] = _luaM_realloc_(i1, HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0) | 0;
  30258. HEAP32[i11 >> 2] = 0;
  30259. _luaM_realloc_(i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 1, 0) | 0;
  30260. _luaM_realloc_(i1, HEAP32[i8 >> 2] | 0, HEAP32[i7 >> 2] << 4, 0) | 0;
  30261. _luaM_realloc_(i1, HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] << 4, 0) | 0;
  30262. HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + -1 << 16 >> 16;
  30263. STACKTOP = i5;
  30264. return i4 | 0;
  30265. }
  30266. function _markmt(i1) {
  30267. i1 = i1 | 0;
  30268. var i2 = 0, i3 = 0;
  30269. i2 = STACKTOP;
  30270. i3 = HEAP32[i1 + 252 >> 2] | 0;
  30271. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30272. _reallymarkobject(i1, i3);
  30273. }
  30274. i3 = HEAP32[i1 + 256 >> 2] | 0;
  30275. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30276. _reallymarkobject(i1, i3);
  30277. }
  30278. i3 = HEAP32[i1 + 260 >> 2] | 0;
  30279. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30280. _reallymarkobject(i1, i3);
  30281. }
  30282. i3 = HEAP32[i1 + 264 >> 2] | 0;
  30283. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30284. _reallymarkobject(i1, i3);
  30285. }
  30286. i3 = HEAP32[i1 + 268 >> 2] | 0;
  30287. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30288. _reallymarkobject(i1, i3);
  30289. }
  30290. i3 = HEAP32[i1 + 272 >> 2] | 0;
  30291. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30292. _reallymarkobject(i1, i3);
  30293. }
  30294. i3 = HEAP32[i1 + 276 >> 2] | 0;
  30295. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30296. _reallymarkobject(i1, i3);
  30297. }
  30298. i3 = HEAP32[i1 + 280 >> 2] | 0;
  30299. if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
  30300. _reallymarkobject(i1, i3);
  30301. }
  30302. i3 = HEAP32[i1 + 284 >> 2] | 0;
  30303. if ((i3 | 0) == 0) {
  30304. STACKTOP = i2;
  30305. return;
  30306. }
  30307. if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
  30308. STACKTOP = i2;
  30309. return;
  30310. }
  30311. _reallymarkobject(i1, i3);
  30312. STACKTOP = i2;
  30313. return;
  30314. }
  30315. function _findlabel(i9, i2) {
  30316. i9 = i9 | 0;
  30317. i2 = i2 | 0;
  30318. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
  30319. i1 = STACKTOP;
  30320. i3 = i9 + 48 | 0;
  30321. i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
  30322. i10 = HEAP32[i9 + 64 >> 2] | 0;
  30323. i4 = HEAP32[i10 + 12 >> 2] | 0;
  30324. i6 = i7 + 4 | 0;
  30325. i13 = HEAP16[i6 >> 1] | 0;
  30326. i5 = i10 + 28 | 0;
  30327. if ((i13 | 0) >= (HEAP32[i5 >> 2] | 0)) {
  30328. i15 = 0;
  30329. STACKTOP = i1;
  30330. return i15 | 0;
  30331. }
  30332. i10 = i10 + 24 | 0;
  30333. i11 = i4 + (i2 << 4) | 0;
  30334. while (1) {
  30335. i14 = HEAP32[i10 >> 2] | 0;
  30336. i12 = i14 + (i13 << 4) | 0;
  30337. i15 = i13 + 1 | 0;
  30338. if ((_luaS_eqstr(HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0) | 0) != 0) {
  30339. break;
  30340. }
  30341. if ((i15 | 0) < (HEAP32[i5 >> 2] | 0)) {
  30342. i13 = i15;
  30343. } else {
  30344. i2 = 0;
  30345. i8 = 10;
  30346. break;
  30347. }
  30348. }
  30349. if ((i8 | 0) == 10) {
  30350. STACKTOP = i1;
  30351. return i2 | 0;
  30352. }
  30353. i8 = HEAP8[i14 + (i13 << 4) + 12 | 0] | 0;
  30354. do {
  30355. if ((HEAPU8[i4 + (i2 << 4) + 12 | 0] | 0) > (i8 & 255)) {
  30356. if ((HEAP8[i7 + 9 | 0] | 0) == 0 ? (HEAP32[i5 >> 2] | 0) <= (HEAP16[i6 >> 1] | 0) : 0) {
  30357. break;
  30358. }
  30359. _luaK_patchclose(HEAP32[i3 >> 2] | 0, HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0, i8 & 255);
  30360. }
  30361. } while (0);
  30362. _closegoto(i9, i2, i12);
  30363. i15 = 1;
  30364. STACKTOP = i1;
  30365. return i15 | 0;
  30366. }
  30367. function _lua_getmetatable(i1, i5) {
  30368. i1 = i1 | 0;
  30369. i5 = i5 | 0;
  30370. var i2 = 0, i3 = 0, i4 = 0;
  30371. i2 = STACKTOP;
  30372. i4 = HEAP32[i1 + 16 >> 2] | 0;
  30373. do {
  30374. if ((i5 | 0) <= 0) {
  30375. if (!((i5 | 0) < -1000999)) {
  30376. i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  30377. break;
  30378. }
  30379. if ((i5 | 0) == -1001e3) {
  30380. i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  30381. break;
  30382. }
  30383. i5 = -1001e3 - i5 | 0;
  30384. i4 = HEAP32[i4 >> 2] | 0;
  30385. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  30386. i4 = i3 + (i5 + -1 << 4) + 16 | 0;
  30387. } else {
  30388. i4 = 5192;
  30389. }
  30390. } else {
  30391. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  30392. i4 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  30393. }
  30394. } while (0);
  30395. i3 = HEAP32[i4 + 8 >> 2] & 15;
  30396. if ((i3 | 0) == 7) {
  30397. i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
  30398. } else if ((i3 | 0) == 5) {
  30399. i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
  30400. } else {
  30401. i3 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 252 >> 2] | 0;
  30402. }
  30403. if ((i3 | 0) == 0) {
  30404. i5 = 0;
  30405. STACKTOP = i2;
  30406. return i5 | 0;
  30407. }
  30408. i5 = i1 + 8 | 0;
  30409. i4 = HEAP32[i5 >> 2] | 0;
  30410. HEAP32[i4 >> 2] = i3;
  30411. HEAP32[i4 + 8 >> 2] = 69;
  30412. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
  30413. i5 = 1;
  30414. STACKTOP = i2;
  30415. return i5 | 0;
  30416. }
  30417. function _str_byte(i2) {
  30418. i2 = i2 | 0;
  30419. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  30420. i1 = STACKTOP;
  30421. STACKTOP = STACKTOP + 16 | 0;
  30422. i6 = i1;
  30423. i4 = i1 + 4 | 0;
  30424. i3 = _luaL_checklstring(i2, 1, i4) | 0;
  30425. i5 = _luaL_optinteger(i2, 2, 1) | 0;
  30426. i7 = HEAP32[i4 >> 2] | 0;
  30427. if (!((i5 | 0) > -1)) {
  30428. if (i7 >>> 0 < (0 - i5 | 0) >>> 0) {
  30429. i5 = 0;
  30430. } else {
  30431. i5 = i5 + 1 + i7 | 0;
  30432. }
  30433. }
  30434. i8 = _luaL_optinteger(i2, 3, i5) | 0;
  30435. i7 = HEAP32[i4 >> 2] | 0;
  30436. if (!((i8 | 0) > -1)) {
  30437. if (i7 >>> 0 < (0 - i8 | 0) >>> 0) {
  30438. i8 = 0;
  30439. } else {
  30440. i8 = i8 + 1 + i7 | 0;
  30441. }
  30442. }
  30443. i9 = (i5 | 0) == 0 ? 1 : i5;
  30444. i10 = i8 >>> 0 > i7 >>> 0 ? i7 : i8;
  30445. if (i9 >>> 0 > i10 >>> 0) {
  30446. i10 = 0;
  30447. STACKTOP = i1;
  30448. return i10 | 0;
  30449. }
  30450. i4 = i10 - i9 + 1 | 0;
  30451. if ((i10 | 0) == -1) {
  30452. i10 = _luaL_error(i2, 7944, i6) | 0;
  30453. STACKTOP = i1;
  30454. return i10 | 0;
  30455. }
  30456. _luaL_checkstack(i2, i4, 7944);
  30457. if ((i4 | 0) <= 0) {
  30458. i10 = i4;
  30459. STACKTOP = i1;
  30460. return i10 | 0;
  30461. }
  30462. i6 = i9 + -1 | 0;
  30463. i8 = ~i8;
  30464. i7 = ~i7;
  30465. i5 = 0 - (i8 >>> 0 > i7 >>> 0 ? i8 : i7) - (i5 >>> 0 > 1 ? i5 : 1) | 0;
  30466. i7 = 0;
  30467. do {
  30468. _lua_pushinteger(i2, HEAPU8[i3 + (i6 + i7) | 0] | 0);
  30469. i7 = i7 + 1 | 0;
  30470. } while ((i7 | 0) != (i5 | 0));
  30471. STACKTOP = i1;
  30472. return i4 | 0;
  30473. }
  30474. function _lua_setuservalue(i1, i5) {
  30475. i1 = i1 | 0;
  30476. i5 = i5 | 0;
  30477. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  30478. i3 = STACKTOP;
  30479. i6 = HEAP32[i1 + 16 >> 2] | 0;
  30480. do {
  30481. if ((i5 | 0) <= 0) {
  30482. if (!((i5 | 0) < -1000999)) {
  30483. i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  30484. break;
  30485. }
  30486. if ((i5 | 0) == -1001e3) {
  30487. i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  30488. break;
  30489. }
  30490. i5 = -1001e3 - i5 | 0;
  30491. i6 = HEAP32[i6 >> 2] | 0;
  30492. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  30493. i5 = i4 + (i5 + -1 << 4) + 16 | 0;
  30494. } else {
  30495. i5 = 5192;
  30496. }
  30497. } else {
  30498. i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
  30499. i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  30500. }
  30501. } while (0);
  30502. i4 = i1 + 8 | 0;
  30503. i6 = HEAP32[i4 >> 2] | 0;
  30504. if ((HEAP32[i6 + -8 >> 2] | 0) != 0) {
  30505. HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = HEAP32[i6 + -16 >> 2];
  30506. i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + -16 >> 2] | 0;
  30507. if (!((HEAP8[i6 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
  30508. _luaC_barrier_(i1, i2, i6);
  30509. }
  30510. } else {
  30511. HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = 0;
  30512. }
  30513. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
  30514. STACKTOP = i3;
  30515. return;
  30516. }
  30517. function _f_luaopen(i1, i2) {
  30518. i1 = i1 | 0;
  30519. i2 = i2 | 0;
  30520. var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  30521. i6 = STACKTOP;
  30522. STACKTOP = STACKTOP + 16 | 0;
  30523. i5 = i6;
  30524. i4 = HEAP32[i1 + 12 >> 2] | 0;
  30525. i2 = _luaM_realloc_(i1, 0, 0, 640) | 0;
  30526. HEAP32[i1 + 28 >> 2] = i2;
  30527. i3 = i1 + 32 | 0;
  30528. HEAP32[i3 >> 2] = 40;
  30529. i7 = 0;
  30530. do {
  30531. HEAP32[i2 + (i7 << 4) + 8 >> 2] = 0;
  30532. i7 = i7 + 1 | 0;
  30533. } while ((i7 | 0) != 40);
  30534. HEAP32[i1 + 24 >> 2] = i2 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
  30535. i7 = i1 + 72 | 0;
  30536. HEAP32[i1 + 80 >> 2] = 0;
  30537. HEAP32[i1 + 84 >> 2] = 0;
  30538. HEAP8[i1 + 90 | 0] = 0;
  30539. HEAP32[i7 >> 2] = i2;
  30540. HEAP32[i1 + 8 >> 2] = i2 + 16;
  30541. HEAP32[i2 + 8 >> 2] = 0;
  30542. HEAP32[i1 + 76 >> 2] = i2 + 336;
  30543. HEAP32[i1 + 16 >> 2] = i7;
  30544. i7 = _luaH_new(i1) | 0;
  30545. HEAP32[i4 + 40 >> 2] = i7;
  30546. HEAP32[i4 + 48 >> 2] = 69;
  30547. _luaH_resize(i1, i7, 2, 0);
  30548. HEAP32[i5 >> 2] = i1;
  30549. i3 = i5 + 8 | 0;
  30550. HEAP32[i3 >> 2] = 72;
  30551. _luaH_setint(i1, i7, 1, i5);
  30552. HEAP32[i5 >> 2] = _luaH_new(i1) | 0;
  30553. HEAP32[i3 >> 2] = 69;
  30554. _luaH_setint(i1, i7, 2, i5);
  30555. _luaS_resize(i1, 32);
  30556. _luaT_init(i1);
  30557. _luaX_init(i1);
  30558. i7 = _luaS_newlstr(i1, 6896, 17) | 0;
  30559. HEAP32[i4 + 180 >> 2] = i7;
  30560. i7 = i7 + 5 | 0;
  30561. HEAP8[i7] = HEAPU8[i7] | 0 | 32;
  30562. HEAP8[i4 + 63 | 0] = 1;
  30563. STACKTOP = i6;
  30564. return;
  30565. }
  30566. function _lua_tointegerx(i6, i7, i1) {
  30567. i6 = i6 | 0;
  30568. i7 = i7 | 0;
  30569. i1 = i1 | 0;
  30570. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  30571. i2 = STACKTOP;
  30572. STACKTOP = STACKTOP + 16 | 0;
  30573. i3 = i2;
  30574. i5 = HEAP32[i6 + 16 >> 2] | 0;
  30575. do {
  30576. if ((i7 | 0) <= 0) {
  30577. if (!((i7 | 0) < -1000999)) {
  30578. i4 = (HEAP32[i6 + 8 >> 2] | 0) + (i7 << 4) | 0;
  30579. break;
  30580. }
  30581. if ((i7 | 0) == -1001e3) {
  30582. i4 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
  30583. break;
  30584. }
  30585. i6 = -1001e3 - i7 | 0;
  30586. i5 = HEAP32[i5 >> 2] | 0;
  30587. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  30588. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  30589. } else {
  30590. i4 = 5192;
  30591. }
  30592. } else {
  30593. i4 = (HEAP32[i5 >> 2] | 0) + (i7 << 4) | 0;
  30594. i4 = i4 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  30595. }
  30596. } while (0);
  30597. if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
  30598. i4 = _luaV_tonumber(i4, i3) | 0;
  30599. if ((i4 | 0) == 0) {
  30600. if ((i1 | 0) == 0) {
  30601. i7 = 0;
  30602. STACKTOP = i2;
  30603. return i7 | 0;
  30604. }
  30605. HEAP32[i1 >> 2] = 0;
  30606. i7 = 0;
  30607. STACKTOP = i2;
  30608. return i7 | 0;
  30609. }
  30610. }
  30611. i3 = ~~+HEAPF64[i4 >> 3];
  30612. if ((i1 | 0) == 0) {
  30613. i7 = i3;
  30614. STACKTOP = i2;
  30615. return i7 | 0;
  30616. }
  30617. HEAP32[i1 >> 2] = 1;
  30618. i7 = i3;
  30619. STACKTOP = i2;
  30620. return i7 | 0;
  30621. }
  30622. function _close_state(i1) {
  30623. i1 = i1 | 0;
  30624. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  30625. i2 = STACKTOP;
  30626. i6 = i1 + 12 | 0;
  30627. i3 = HEAP32[i6 >> 2] | 0;
  30628. i4 = i1 + 28 | 0;
  30629. _luaF_close(i1, HEAP32[i4 >> 2] | 0);
  30630. _luaC_freeallobjects(i1);
  30631. i6 = HEAP32[i6 >> 2] | 0;
  30632. _luaM_realloc_(i1, HEAP32[i6 + 24 >> 2] | 0, HEAP32[i6 + 32 >> 2] << 2, 0) | 0;
  30633. i6 = i3 + 144 | 0;
  30634. i5 = i3 + 152 | 0;
  30635. HEAP32[i6 >> 2] = _luaM_realloc_(i1, HEAP32[i6 >> 2] | 0, HEAP32[i5 >> 2] | 0, 0) | 0;
  30636. HEAP32[i5 >> 2] = 0;
  30637. i5 = HEAP32[i4 >> 2] | 0;
  30638. if ((i5 | 0) == 0) {
  30639. i5 = HEAP32[i3 >> 2] | 0;
  30640. i6 = i3 + 4 | 0;
  30641. i6 = HEAP32[i6 >> 2] | 0;
  30642. FUNCTION_TABLE_iiiii[i5 & 3](i6, i1, 400, 0) | 0;
  30643. STACKTOP = i2;
  30644. return;
  30645. }
  30646. HEAP32[i1 + 16 >> 2] = i1 + 72;
  30647. i7 = i1 + 84 | 0;
  30648. i6 = HEAP32[i7 >> 2] | 0;
  30649. HEAP32[i7 >> 2] = 0;
  30650. if ((i6 | 0) != 0) {
  30651. while (1) {
  30652. i5 = HEAP32[i6 + 12 >> 2] | 0;
  30653. _luaM_realloc_(i1, i6, 40, 0) | 0;
  30654. if ((i5 | 0) == 0) {
  30655. break;
  30656. } else {
  30657. i6 = i5;
  30658. }
  30659. }
  30660. i5 = HEAP32[i4 >> 2] | 0;
  30661. }
  30662. _luaM_realloc_(i1, i5, HEAP32[i1 + 32 >> 2] << 4, 0) | 0;
  30663. i6 = HEAP32[i3 >> 2] | 0;
  30664. i7 = i3 + 4 | 0;
  30665. i7 = HEAP32[i7 >> 2] | 0;
  30666. FUNCTION_TABLE_iiiii[i6 & 3](i7, i1, 400, 0) | 0;
  30667. STACKTOP = i2;
  30668. return;
  30669. }
  30670. function _ll_module(i1) {
  30671. i1 = i1 | 0;
  30672. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  30673. i2 = STACKTOP;
  30674. STACKTOP = STACKTOP + 112 | 0;
  30675. i4 = i2;
  30676. i5 = i2 + 4 | 0;
  30677. i6 = _luaL_checklstring(i1, 1, 0) | 0;
  30678. i3 = _lua_gettop(i1) | 0;
  30679. _luaL_pushmodule(i1, i6, 1);
  30680. _lua_getfield(i1, -1, 4728);
  30681. i7 = (_lua_type(i1, -1) | 0) == 0;
  30682. _lua_settop(i1, -2);
  30683. if (i7) {
  30684. _lua_pushvalue(i1, -1);
  30685. _lua_setfield(i1, -2, 4784);
  30686. _lua_pushstring(i1, i6) | 0;
  30687. _lua_setfield(i1, -2, 4728);
  30688. i7 = _strrchr(i6, 46) | 0;
  30689. _lua_pushlstring(i1, i6, ((i7 | 0) == 0 ? i6 : i7 + 1 | 0) - i6 | 0) | 0;
  30690. _lua_setfield(i1, -2, 4792);
  30691. }
  30692. _lua_pushvalue(i1, -1);
  30693. if (!(((_lua_getstack(i1, 1, i5) | 0) != 0 ? (_lua_getinfo(i1, 4736, i5) | 0) != 0 : 0) ? (_lua_iscfunction(i1, -1) | 0) == 0 : 0)) {
  30694. _luaL_error(i1, 4744, i4) | 0;
  30695. }
  30696. _lua_pushvalue(i1, -2);
  30697. _lua_setupvalue(i1, -2, 1) | 0;
  30698. _lua_settop(i1, -2);
  30699. if ((i3 | 0) < 2) {
  30700. STACKTOP = i2;
  30701. return 1;
  30702. } else {
  30703. i4 = 2;
  30704. }
  30705. while (1) {
  30706. if ((_lua_type(i1, i4) | 0) == 6) {
  30707. _lua_pushvalue(i1, i4);
  30708. _lua_pushvalue(i1, -2);
  30709. _lua_callk(i1, 1, 0, 0, 0);
  30710. }
  30711. if ((i4 | 0) == (i3 | 0)) {
  30712. break;
  30713. } else {
  30714. i4 = i4 + 1 | 0;
  30715. }
  30716. }
  30717. STACKTOP = i2;
  30718. return 1;
  30719. }
  30720. function _strcspn(i2, i5) {
  30721. i2 = i2 | 0;
  30722. i5 = i5 | 0;
  30723. var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  30724. i1 = STACKTOP;
  30725. STACKTOP = STACKTOP + 32 | 0;
  30726. i3 = i1;
  30727. i4 = HEAP8[i5] | 0;
  30728. if (!(i4 << 24 >> 24 == 0) ? (HEAP8[i5 + 1 | 0] | 0) != 0 : 0) {
  30729. HEAP32[i3 + 0 >> 2] = 0;
  30730. HEAP32[i3 + 4 >> 2] = 0;
  30731. HEAP32[i3 + 8 >> 2] = 0;
  30732. HEAP32[i3 + 12 >> 2] = 0;
  30733. HEAP32[i3 + 16 >> 2] = 0;
  30734. HEAP32[i3 + 20 >> 2] = 0;
  30735. HEAP32[i3 + 24 >> 2] = 0;
  30736. HEAP32[i3 + 28 >> 2] = 0;
  30737. do {
  30738. i7 = i4 & 255;
  30739. i6 = i3 + (i7 >>> 5 << 2) | 0;
  30740. HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
  30741. i5 = i5 + 1 | 0;
  30742. i4 = HEAP8[i5] | 0;
  30743. } while (!(i4 << 24 >> 24 == 0));
  30744. i5 = HEAP8[i2] | 0;
  30745. L7 : do {
  30746. if (i5 << 24 >> 24 == 0) {
  30747. i4 = i2;
  30748. } else {
  30749. i4 = i2;
  30750. while (1) {
  30751. i7 = i5 & 255;
  30752. i6 = i4 + 1 | 0;
  30753. if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) != 0) {
  30754. break L7;
  30755. }
  30756. i5 = HEAP8[i6] | 0;
  30757. if (i5 << 24 >> 24 == 0) {
  30758. i4 = i6;
  30759. break;
  30760. } else {
  30761. i4 = i6;
  30762. }
  30763. }
  30764. }
  30765. } while (0);
  30766. i7 = i4 - i2 | 0;
  30767. STACKTOP = i1;
  30768. return i7 | 0;
  30769. }
  30770. i7 = (___strchrnul(i2, i4 << 24 >> 24) | 0) - i2 | 0;
  30771. STACKTOP = i1;
  30772. return i7 | 0;
  30773. }
  30774. function _main(i4, i5) {
  30775. i4 = i4 | 0;
  30776. i5 = i5 | 0;
  30777. var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
  30778. i1 = STACKTOP;
  30779. STACKTOP = STACKTOP + 16 | 0;
  30780. i2 = i1;
  30781. i3 = _luaL_newstate() | 0;
  30782. if ((i3 | 0) == 0) {
  30783. i4 = HEAP32[i5 >> 2] | 0;
  30784. i3 = HEAP32[_stderr >> 2] | 0;
  30785. if ((i4 | 0) != 0) {
  30786. HEAP32[i2 >> 2] = i4;
  30787. _fprintf(i3 | 0, 496, i2 | 0) | 0;
  30788. _fflush(i3 | 0) | 0;
  30789. }
  30790. HEAP32[i2 >> 2] = 8;
  30791. _fprintf(i3 | 0, 912, i2 | 0) | 0;
  30792. _fflush(i3 | 0) | 0;
  30793. i8 = 1;
  30794. STACKTOP = i1;
  30795. return i8 | 0;
  30796. }
  30797. _lua_pushcclosure(i3, 141, 0);
  30798. _lua_pushinteger(i3, i4);
  30799. _lua_pushlightuserdata(i3, i5);
  30800. i6 = _lua_pcallk(i3, 2, 1, 0, 0, 0) | 0;
  30801. i7 = _lua_toboolean(i3, -1) | 0;
  30802. i6 = (i6 | 0) == 0;
  30803. if (!i6) {
  30804. if ((_lua_type(i3, -1) | 0) == 4) {
  30805. i8 = _lua_tolstring(i3, -1, 0) | 0;
  30806. } else {
  30807. i8 = 0;
  30808. }
  30809. i4 = HEAP32[20] | 0;
  30810. i5 = HEAP32[_stderr >> 2] | 0;
  30811. if ((i4 | 0) != 0) {
  30812. HEAP32[i2 >> 2] = i4;
  30813. _fprintf(i5 | 0, 496, i2 | 0) | 0;
  30814. _fflush(i5 | 0) | 0;
  30815. }
  30816. HEAP32[i2 >> 2] = (i8 | 0) == 0 ? 48 : i8;
  30817. _fprintf(i5 | 0, 912, i2 | 0) | 0;
  30818. _fflush(i5 | 0) | 0;
  30819. _lua_settop(i3, -2);
  30820. }
  30821. _lua_close(i3);
  30822. i8 = i6 & (i7 | 0) != 0 & 1 ^ 1;
  30823. STACKTOP = i1;
  30824. return i8 | 0;
  30825. }
  30826. function _db_sethook(i1) {
  30827. i1 = i1 | 0;
  30828. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  30829. i4 = STACKTOP;
  30830. if ((_lua_type(i1, 1) | 0) == 8) {
  30831. i2 = _lua_tothread(i1, 1) | 0;
  30832. i5 = 1;
  30833. } else {
  30834. i2 = i1;
  30835. i5 = 0;
  30836. }
  30837. i3 = i5 + 1 | 0;
  30838. if ((_lua_type(i1, i3) | 0) < 1) {
  30839. _lua_settop(i1, i3);
  30840. i6 = 0;
  30841. i7 = 0;
  30842. i5 = 0;
  30843. } else {
  30844. i6 = _luaL_checklstring(i1, i5 | 2, 0) | 0;
  30845. _luaL_checktype(i1, i3, 6);
  30846. i5 = _luaL_optinteger(i1, i5 + 3 | 0, 0) | 0;
  30847. i7 = (_strchr(i6, 99) | 0) != 0 | 0;
  30848. i8 = (_strchr(i6, 114) | 0) == 0;
  30849. i7 = i8 ? i7 : i7 | 2;
  30850. i8 = (_strchr(i6, 108) | 0) == 0;
  30851. i8 = i8 ? i7 : i7 | 4;
  30852. i6 = i5;
  30853. i7 = 9;
  30854. i5 = (i5 | 0) > 0 ? i8 | 8 : i8;
  30855. }
  30856. if ((_luaL_getsubtable(i1, -1001e3, 11584) | 0) != 0) {
  30857. _lua_pushthread(i2) | 0;
  30858. _lua_xmove(i2, i1, 1);
  30859. _lua_pushvalue(i1, i3);
  30860. _lua_rawset(i1, -3);
  30861. _lua_sethook(i2, i7, i5, i6) | 0;
  30862. STACKTOP = i4;
  30863. return 0;
  30864. }
  30865. _lua_pushstring(i1, 11592) | 0;
  30866. _lua_setfield(i1, -2, 11600);
  30867. _lua_pushvalue(i1, -1);
  30868. _lua_setmetatable(i1, -2) | 0;
  30869. _lua_pushthread(i2) | 0;
  30870. _lua_xmove(i2, i1, 1);
  30871. _lua_pushvalue(i1, i3);
  30872. _lua_rawset(i1, -3);
  30873. _lua_sethook(i2, i7, i5, i6) | 0;
  30874. STACKTOP = i4;
  30875. return 0;
  30876. }
  30877. function _tconcat(i1) {
  30878. i1 = i1 | 0;
  30879. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  30880. i3 = STACKTOP;
  30881. STACKTOP = STACKTOP + 1056 | 0;
  30882. i6 = i3;
  30883. i2 = i3 + 16 | 0;
  30884. i5 = i3 + 8 | 0;
  30885. i4 = _luaL_optlstring(i1, 2, 8208, i5) | 0;
  30886. _luaL_checktype(i1, 1, 5);
  30887. i8 = _luaL_optinteger(i1, 3, 1) | 0;
  30888. if ((_lua_type(i1, 4) | 0) < 1) {
  30889. i7 = _luaL_len(i1, 1) | 0;
  30890. } else {
  30891. i7 = _luaL_checkinteger(i1, 4) | 0;
  30892. }
  30893. _luaL_buffinit(i1, i2);
  30894. if ((i8 | 0) >= (i7 | 0)) {
  30895. if ((i8 | 0) != (i7 | 0)) {
  30896. _luaL_pushresult(i2);
  30897. STACKTOP = i3;
  30898. return 1;
  30899. }
  30900. } else {
  30901. do {
  30902. _lua_rawgeti(i1, 1, i8);
  30903. if ((_lua_isstring(i1, -1) | 0) == 0) {
  30904. HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
  30905. HEAP32[i6 + 4 >> 2] = i8;
  30906. _luaL_error(i1, 8360, i6) | 0;
  30907. }
  30908. _luaL_addvalue(i2);
  30909. _luaL_addlstring(i2, i4, HEAP32[i5 >> 2] | 0);
  30910. i8 = i8 + 1 | 0;
  30911. } while ((i8 | 0) != (i7 | 0));
  30912. }
  30913. _lua_rawgeti(i1, 1, i7);
  30914. if ((_lua_isstring(i1, -1) | 0) == 0) {
  30915. HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
  30916. HEAP32[i6 + 4 >> 2] = i7;
  30917. _luaL_error(i1, 8360, i6) | 0;
  30918. }
  30919. _luaL_addvalue(i2);
  30920. _luaL_pushresult(i2);
  30921. STACKTOP = i3;
  30922. return 1;
  30923. }
  30924. function _searcher_Croot(i1) {
  30925. i1 = i1 | 0;
  30926. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  30927. i2 = STACKTOP;
  30928. STACKTOP = STACKTOP + 16 | 0;
  30929. i3 = i2;
  30930. i4 = _luaL_checklstring(i1, 1, 0) | 0;
  30931. i5 = _strchr(i4, 46) | 0;
  30932. if ((i5 | 0) == 0) {
  30933. i6 = 0;
  30934. STACKTOP = i2;
  30935. return i6 | 0;
  30936. }
  30937. _lua_pushlstring(i1, i4, i5 - i4 | 0) | 0;
  30938. i5 = _lua_tolstring(i1, -1, 0) | 0;
  30939. _lua_getfield(i1, -1001001, 4440);
  30940. i6 = _lua_tolstring(i1, -1, 0) | 0;
  30941. if ((i6 | 0) == 0) {
  30942. HEAP32[i3 >> 2] = 4440;
  30943. _luaL_error(i1, 5032, i3) | 0;
  30944. }
  30945. i5 = _searchpath(i1, i5, i6, 4936, 4848) | 0;
  30946. if ((i5 | 0) == 0) {
  30947. i6 = 1;
  30948. STACKTOP = i2;
  30949. return i6 | 0;
  30950. }
  30951. i6 = _loadfunc(i1, i5, i4) | 0;
  30952. if ((i6 | 0) == 2) {
  30953. HEAP32[i3 >> 2] = i4;
  30954. HEAP32[i3 + 4 >> 2] = i5;
  30955. _lua_pushfstring(i1, 4856, i3) | 0;
  30956. i6 = 1;
  30957. STACKTOP = i2;
  30958. return i6 | 0;
  30959. } else if ((i6 | 0) == 0) {
  30960. _lua_pushstring(i1, i5) | 0;
  30961. i6 = 2;
  30962. STACKTOP = i2;
  30963. return i6 | 0;
  30964. } else {
  30965. i4 = _lua_tolstring(i1, 1, 0) | 0;
  30966. i6 = _lua_tolstring(i1, -1, 0) | 0;
  30967. HEAP32[i3 >> 2] = i4;
  30968. HEAP32[i3 + 4 >> 2] = i5;
  30969. HEAP32[i3 + 8 >> 2] = i6;
  30970. i6 = _luaL_error(i1, 4888, i3) | 0;
  30971. STACKTOP = i2;
  30972. return i6 | 0;
  30973. }
  30974. return 0;
  30975. }
  30976. function _lua_tonumberx(i5, i7, i1) {
  30977. i5 = i5 | 0;
  30978. i7 = i7 | 0;
  30979. i1 = i1 | 0;
  30980. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, d8 = 0.0;
  30981. i2 = STACKTOP;
  30982. STACKTOP = STACKTOP + 16 | 0;
  30983. i3 = i2;
  30984. i6 = HEAP32[i5 + 16 >> 2] | 0;
  30985. do {
  30986. if ((i7 | 0) <= 0) {
  30987. if (!((i7 | 0) < -1000999)) {
  30988. i4 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
  30989. break;
  30990. }
  30991. if ((i7 | 0) == -1001e3) {
  30992. i4 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
  30993. break;
  30994. }
  30995. i5 = -1001e3 - i7 | 0;
  30996. i6 = HEAP32[i6 >> 2] | 0;
  30997. if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  30998. i4 = i4 + (i5 + -1 << 4) + 16 | 0;
  30999. } else {
  31000. i4 = 5192;
  31001. }
  31002. } else {
  31003. i4 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
  31004. i4 = i4 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  31005. }
  31006. } while (0);
  31007. if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
  31008. i4 = _luaV_tonumber(i4, i3) | 0;
  31009. if ((i4 | 0) == 0) {
  31010. if ((i1 | 0) == 0) {
  31011. d8 = 0.0;
  31012. STACKTOP = i2;
  31013. return +d8;
  31014. }
  31015. HEAP32[i1 >> 2] = 0;
  31016. d8 = 0.0;
  31017. STACKTOP = i2;
  31018. return +d8;
  31019. }
  31020. }
  31021. if ((i1 | 0) != 0) {
  31022. HEAP32[i1 >> 2] = 1;
  31023. }
  31024. d8 = +HEAPF64[i4 >> 3];
  31025. STACKTOP = i2;
  31026. return +d8;
  31027. }
  31028. function _luaopen_package(i1) {
  31029. i1 = i1 | 0;
  31030. var i2 = 0;
  31031. i2 = STACKTOP;
  31032. _luaL_getsubtable(i1, -1001e3, 4184) | 0;
  31033. _lua_createtable(i1, 0, 1);
  31034. _lua_pushcclosure(i1, 158, 0);
  31035. _lua_setfield(i1, -2, 4192);
  31036. _lua_setmetatable(i1, -2) | 0;
  31037. _lua_createtable(i1, 0, 3);
  31038. _luaL_setfuncs(i1, 4200, 0);
  31039. _lua_createtable(i1, 4, 0);
  31040. _lua_pushvalue(i1, -2);
  31041. _lua_pushcclosure(i1, 159, 1);
  31042. _lua_rawseti(i1, -2, 1);
  31043. _lua_pushvalue(i1, -2);
  31044. _lua_pushcclosure(i1, 160, 1);
  31045. _lua_rawseti(i1, -2, 2);
  31046. _lua_pushvalue(i1, -2);
  31047. _lua_pushcclosure(i1, 161, 1);
  31048. _lua_rawseti(i1, -2, 3);
  31049. _lua_pushvalue(i1, -2);
  31050. _lua_pushcclosure(i1, 162, 1);
  31051. _lua_rawseti(i1, -2, 4);
  31052. _lua_pushvalue(i1, -1);
  31053. _lua_setfield(i1, -3, 4232);
  31054. _lua_setfield(i1, -2, 4240);
  31055. _setpath(i1, 4256, 4264, 4280, 4296);
  31056. _setpath(i1, 4440, 4448, 4464, 4480);
  31057. _lua_pushlstring(i1, 4552, 10) | 0;
  31058. _lua_setfield(i1, -2, 4568);
  31059. _luaL_getsubtable(i1, -1001e3, 4576) | 0;
  31060. _lua_setfield(i1, -2, 4584);
  31061. _luaL_getsubtable(i1, -1001e3, 4592) | 0;
  31062. _lua_setfield(i1, -2, 4608);
  31063. _lua_rawgeti(i1, -1001e3, 2);
  31064. _lua_pushvalue(i1, -2);
  31065. _luaL_setfuncs(i1, 4616, 1);
  31066. _lua_settop(i1, -2);
  31067. STACKTOP = i2;
  31068. return 1;
  31069. }
  31070. function _lua_rawlen(i3, i5) {
  31071. i3 = i3 | 0;
  31072. i5 = i5 | 0;
  31073. var i1 = 0, i2 = 0, i4 = 0;
  31074. i1 = STACKTOP;
  31075. i4 = HEAP32[i3 + 16 >> 2] | 0;
  31076. do {
  31077. if ((i5 | 0) <= 0) {
  31078. if (!((i5 | 0) < -1000999)) {
  31079. i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
  31080. break;
  31081. }
  31082. if ((i5 | 0) == -1001e3) {
  31083. i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  31084. break;
  31085. }
  31086. i3 = -1001e3 - i5 | 0;
  31087. i4 = HEAP32[i4 >> 2] | 0;
  31088. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  31089. i2 = i2 + (i3 + -1 << 4) + 16 | 0;
  31090. } else {
  31091. i2 = 5192;
  31092. }
  31093. } else {
  31094. i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  31095. i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  31096. }
  31097. } while (0);
  31098. i3 = HEAP32[i2 + 8 >> 2] & 15;
  31099. if ((i3 | 0) == 5) {
  31100. i5 = _luaH_getn(HEAP32[i2 >> 2] | 0) | 0;
  31101. STACKTOP = i1;
  31102. return i5 | 0;
  31103. } else if ((i3 | 0) == 4) {
  31104. i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
  31105. STACKTOP = i1;
  31106. return i5 | 0;
  31107. } else if ((i3 | 0) == 7) {
  31108. i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
  31109. STACKTOP = i1;
  31110. return i5 | 0;
  31111. } else {
  31112. i5 = 0;
  31113. STACKTOP = i1;
  31114. return i5 | 0;
  31115. }
  31116. return 0;
  31117. }
  31118. function _searchpath(i3, i5, i6, i7, i8) {
  31119. i3 = i3 | 0;
  31120. i5 = i5 | 0;
  31121. i6 = i6 | 0;
  31122. i7 = i7 | 0;
  31123. i8 = i8 | 0;
  31124. var i1 = 0, i2 = 0, i4 = 0;
  31125. i2 = STACKTOP;
  31126. STACKTOP = STACKTOP + 1056 | 0;
  31127. i4 = i2;
  31128. i1 = i2 + 8 | 0;
  31129. _luaL_buffinit(i3, i1);
  31130. if ((HEAP8[i7] | 0) != 0) {
  31131. i5 = _luaL_gsub(i3, i5, i7, i8) | 0;
  31132. }
  31133. while (1) {
  31134. i7 = HEAP8[i6] | 0;
  31135. if (i7 << 24 >> 24 == 59) {
  31136. i6 = i6 + 1 | 0;
  31137. continue;
  31138. } else if (i7 << 24 >> 24 == 0) {
  31139. i3 = 12;
  31140. break;
  31141. }
  31142. i8 = _strchr(i6, 59) | 0;
  31143. if ((i8 | 0) == 0) {
  31144. i8 = i6 + (_strlen(i6 | 0) | 0) | 0;
  31145. }
  31146. _lua_pushlstring(i3, i6, i8 - i6 | 0) | 0;
  31147. if ((i8 | 0) == 0) {
  31148. i3 = 12;
  31149. break;
  31150. }
  31151. i6 = _luaL_gsub(i3, _lua_tolstring(i3, -1, 0) | 0, 5064, i5) | 0;
  31152. _lua_remove(i3, -2);
  31153. i7 = _fopen(i6 | 0, 5088) | 0;
  31154. if ((i7 | 0) != 0) {
  31155. i3 = 10;
  31156. break;
  31157. }
  31158. HEAP32[i4 >> 2] = i6;
  31159. _lua_pushfstring(i3, 5072, i4) | 0;
  31160. _lua_remove(i3, -2);
  31161. _luaL_addvalue(i1);
  31162. i6 = i8;
  31163. }
  31164. if ((i3 | 0) == 10) {
  31165. _fclose(i7 | 0) | 0;
  31166. i8 = i6;
  31167. STACKTOP = i2;
  31168. return i8 | 0;
  31169. } else if ((i3 | 0) == 12) {
  31170. _luaL_pushresult(i1);
  31171. i8 = 0;
  31172. STACKTOP = i2;
  31173. return i8 | 0;
  31174. }
  31175. return 0;
  31176. }
  31177. function _io_readline(i1) {
  31178. i1 = i1 | 0;
  31179. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  31180. i2 = STACKTOP;
  31181. STACKTOP = STACKTOP + 16 | 0;
  31182. i3 = i2;
  31183. i4 = _lua_touserdata(i1, -1001001) | 0;
  31184. i5 = _lua_tointegerx(i1, -1001002, 0) | 0;
  31185. if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
  31186. i6 = _luaL_error(i1, 3344, i3) | 0;
  31187. STACKTOP = i2;
  31188. return i6 | 0;
  31189. }
  31190. _lua_settop(i1, 1);
  31191. if ((i5 | 0) >= 1) {
  31192. i6 = 1;
  31193. while (1) {
  31194. _lua_pushvalue(i1, -1001003 - i6 | 0);
  31195. if ((i6 | 0) == (i5 | 0)) {
  31196. break;
  31197. } else {
  31198. i6 = i6 + 1 | 0;
  31199. }
  31200. }
  31201. }
  31202. i4 = _g_read(i1, HEAP32[i4 >> 2] | 0, 2) | 0;
  31203. if ((_lua_type(i1, 0 - i4 | 0) | 0) != 0) {
  31204. i6 = i4;
  31205. STACKTOP = i2;
  31206. return i6 | 0;
  31207. }
  31208. if ((i4 | 0) > 1) {
  31209. HEAP32[i3 >> 2] = _lua_tolstring(i1, 1 - i4 | 0, 0) | 0;
  31210. i6 = _luaL_error(i1, 3368, i3) | 0;
  31211. STACKTOP = i2;
  31212. return i6 | 0;
  31213. }
  31214. if ((_lua_toboolean(i1, -1001003) | 0) == 0) {
  31215. i6 = 0;
  31216. STACKTOP = i2;
  31217. return i6 | 0;
  31218. }
  31219. _lua_settop(i1, 0);
  31220. _lua_pushvalue(i1, -1001001);
  31221. i5 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
  31222. i6 = HEAP32[i5 >> 2] | 0;
  31223. HEAP32[i5 >> 2] = 0;
  31224. FUNCTION_TABLE_ii[i6 & 255](i1) | 0;
  31225. i6 = 0;
  31226. STACKTOP = i2;
  31227. return i6 | 0;
  31228. }
  31229. function _luaK_setreturns(i3, i5, i6) {
  31230. i3 = i3 | 0;
  31231. i5 = i5 | 0;
  31232. i6 = i6 | 0;
  31233. var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0;
  31234. i2 = STACKTOP;
  31235. i4 = HEAP32[i5 >> 2] | 0;
  31236. if ((i4 | 0) == 13) {
  31237. i7 = i5 + 8 | 0;
  31238. i8 = HEAP32[i3 >> 2] | 0;
  31239. i4 = HEAP32[i8 + 12 >> 2] | 0;
  31240. i5 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
  31241. HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & 8388607 | (i6 << 23) + 8388608;
  31242. i7 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
  31243. i4 = i3 + 48 | 0;
  31244. HEAP32[i7 >> 2] = (HEAPU8[i4] | 0) << 6 | HEAP32[i7 >> 2] & -16321;
  31245. i7 = HEAP8[i4] | 0;
  31246. i5 = (i7 & 255) + 1 | 0;
  31247. i6 = i8 + 78 | 0;
  31248. do {
  31249. if (i5 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
  31250. if (i5 >>> 0 > 249) {
  31251. _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10536);
  31252. } else {
  31253. HEAP8[i6] = i5;
  31254. i1 = HEAP8[i4] | 0;
  31255. break;
  31256. }
  31257. } else {
  31258. i1 = i7;
  31259. }
  31260. } while (0);
  31261. HEAP8[i4] = (i1 & 255) + 1;
  31262. STACKTOP = i2;
  31263. return;
  31264. } else if ((i4 | 0) == 12) {
  31265. i8 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] << 2) | 0;
  31266. HEAP32[i8 >> 2] = HEAP32[i8 >> 2] & -8372225 | (i6 << 14) + 16384 & 8372224;
  31267. STACKTOP = i2;
  31268. return;
  31269. } else {
  31270. STACKTOP = i2;
  31271. return;
  31272. }
  31273. }
  31274. function _luaZ_read(i2, i9, i8) {
  31275. i2 = i2 | 0;
  31276. i9 = i9 | 0;
  31277. i8 = i8 | 0;
  31278. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0;
  31279. i1 = STACKTOP;
  31280. STACKTOP = STACKTOP + 16 | 0;
  31281. i3 = i1;
  31282. if ((i8 | 0) == 0) {
  31283. i11 = 0;
  31284. STACKTOP = i1;
  31285. return i11 | 0;
  31286. }
  31287. i7 = i2 + 16 | 0;
  31288. i6 = i2 + 8 | 0;
  31289. i4 = i2 + 12 | 0;
  31290. i5 = i2 + 4 | 0;
  31291. i11 = HEAP32[i2 >> 2] | 0;
  31292. while (1) {
  31293. if ((i11 | 0) == 0) {
  31294. i10 = FUNCTION_TABLE_iiii[HEAP32[i6 >> 2] & 3](HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, i3) | 0;
  31295. if ((i10 | 0) == 0) {
  31296. i2 = 9;
  31297. break;
  31298. }
  31299. i11 = HEAP32[i3 >> 2] | 0;
  31300. if ((i11 | 0) == 0) {
  31301. i2 = 9;
  31302. break;
  31303. }
  31304. HEAP32[i2 >> 2] = i11;
  31305. HEAP32[i5 >> 2] = i10;
  31306. } else {
  31307. i10 = HEAP32[i5 >> 2] | 0;
  31308. }
  31309. i11 = i8 >>> 0 > i11 >>> 0 ? i11 : i8;
  31310. _memcpy(i9 | 0, i10 | 0, i11 | 0) | 0;
  31311. i10 = (HEAP32[i2 >> 2] | 0) - i11 | 0;
  31312. HEAP32[i2 >> 2] = i10;
  31313. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i11;
  31314. if ((i8 | 0) == (i11 | 0)) {
  31315. i8 = 0;
  31316. i2 = 9;
  31317. break;
  31318. } else {
  31319. i8 = i8 - i11 | 0;
  31320. i9 = i9 + i11 | 0;
  31321. i11 = i10;
  31322. }
  31323. }
  31324. if ((i2 | 0) == 9) {
  31325. STACKTOP = i1;
  31326. return i8 | 0;
  31327. }
  31328. return 0;
  31329. }
  31330. function _lua_load(i1, i5, i4, i3, i6) {
  31331. i1 = i1 | 0;
  31332. i5 = i5 | 0;
  31333. i4 = i4 | 0;
  31334. i3 = i3 | 0;
  31335. i6 = i6 | 0;
  31336. var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
  31337. i2 = STACKTOP;
  31338. STACKTOP = STACKTOP + 32 | 0;
  31339. i7 = i2;
  31340. _luaZ_init(i1, i7, i5, i4);
  31341. i3 = _luaD_protectedparser(i1, i7, (i3 | 0) == 0 ? 928 : i3, i6) | 0;
  31342. if ((i3 | 0) != 0) {
  31343. STACKTOP = i2;
  31344. return i3 | 0;
  31345. }
  31346. i4 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + -16 >> 2] | 0;
  31347. if ((HEAP8[i4 + 6 | 0] | 0) != 1) {
  31348. STACKTOP = i2;
  31349. return i3 | 0;
  31350. }
  31351. i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
  31352. i4 = i4 + 16 | 0;
  31353. i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
  31354. i9 = i5;
  31355. i8 = HEAP32[i9 + 4 >> 2] | 0;
  31356. i7 = i6;
  31357. HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
  31358. HEAP32[i7 + 4 >> 2] = i8;
  31359. i7 = i5 + 8 | 0;
  31360. HEAP32[i6 + 8 >> 2] = HEAP32[i7 >> 2];
  31361. if ((HEAP32[i7 >> 2] & 64 | 0) == 0) {
  31362. STACKTOP = i2;
  31363. return i3 | 0;
  31364. }
  31365. i5 = HEAP32[i5 >> 2] | 0;
  31366. if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
  31367. STACKTOP = i2;
  31368. return i3 | 0;
  31369. }
  31370. i4 = HEAP32[i4 >> 2] | 0;
  31371. if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
  31372. STACKTOP = i2;
  31373. return i3 | 0;
  31374. }
  31375. _luaC_barrier_(i1, i4, i5);
  31376. STACKTOP = i2;
  31377. return i3 | 0;
  31378. }
  31379. function _g_write(i1, i4, i8) {
  31380. i1 = i1 | 0;
  31381. i4 = i4 | 0;
  31382. i8 = i8 | 0;
  31383. var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, d10 = 0.0;
  31384. i5 = STACKTOP;
  31385. STACKTOP = STACKTOP + 16 | 0;
  31386. i2 = i5;
  31387. i3 = i5 + 8 | 0;
  31388. i7 = _lua_gettop(i1) | 0;
  31389. if ((i7 | 0) == (i8 | 0)) {
  31390. i9 = 1;
  31391. STACKTOP = i5;
  31392. return i9 | 0;
  31393. }
  31394. i6 = i8;
  31395. i7 = i7 - i8 | 0;
  31396. i9 = 1;
  31397. while (1) {
  31398. i7 = i7 + -1 | 0;
  31399. if ((_lua_type(i1, i6) | 0) == 3) {
  31400. if ((i9 | 0) == 0) {
  31401. i8 = 0;
  31402. } else {
  31403. d10 = +_lua_tonumberx(i1, i6, 0);
  31404. HEAPF64[tempDoublePtr >> 3] = d10;
  31405. HEAP32[i2 >> 2] = HEAP32[tempDoublePtr >> 2];
  31406. HEAP32[i2 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  31407. i8 = (_fprintf(i4 | 0, 3072, i2 | 0) | 0) > 0;
  31408. }
  31409. } else {
  31410. i8 = _luaL_checklstring(i1, i6, i3) | 0;
  31411. if ((i9 | 0) == 0) {
  31412. i8 = 0;
  31413. } else {
  31414. i8 = _fwrite(i8 | 0, 1, HEAP32[i3 >> 2] | 0, i4 | 0) | 0;
  31415. i8 = (i8 | 0) == (HEAP32[i3 >> 2] | 0);
  31416. }
  31417. }
  31418. if ((i7 | 0) == 0) {
  31419. break;
  31420. } else {
  31421. i6 = i6 + 1 | 0;
  31422. i9 = i8 & 1;
  31423. }
  31424. }
  31425. if (i8) {
  31426. i9 = 1;
  31427. STACKTOP = i5;
  31428. return i9 | 0;
  31429. }
  31430. i9 = _luaL_fileresult(i1, 0, 0) | 0;
  31431. STACKTOP = i5;
  31432. return i9 | 0;
  31433. }
  31434. function _lua_getuservalue(i2, i5) {
  31435. i2 = i2 | 0;
  31436. i5 = i5 | 0;
  31437. var i1 = 0, i3 = 0, i4 = 0;
  31438. i1 = STACKTOP;
  31439. i4 = HEAP32[i2 + 16 >> 2] | 0;
  31440. do {
  31441. if ((i5 | 0) <= 0) {
  31442. if (!((i5 | 0) < -1000999)) {
  31443. i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
  31444. break;
  31445. }
  31446. if ((i5 | 0) == -1001e3) {
  31447. i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  31448. break;
  31449. }
  31450. i5 = -1001e3 - i5 | 0;
  31451. i4 = HEAP32[i4 >> 2] | 0;
  31452. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  31453. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  31454. } else {
  31455. i3 = 5192;
  31456. }
  31457. } else {
  31458. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  31459. i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  31460. }
  31461. } while (0);
  31462. i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
  31463. i2 = i2 + 8 | 0;
  31464. i4 = HEAP32[i2 >> 2] | 0;
  31465. if ((i3 | 0) == 0) {
  31466. HEAP32[i4 + 8 >> 2] = 0;
  31467. i5 = i4;
  31468. i5 = i5 + 16 | 0;
  31469. HEAP32[i2 >> 2] = i5;
  31470. STACKTOP = i1;
  31471. return;
  31472. } else {
  31473. HEAP32[i4 >> 2] = i3;
  31474. HEAP32[i4 + 8 >> 2] = 69;
  31475. i5 = HEAP32[i2 >> 2] | 0;
  31476. i5 = i5 + 16 | 0;
  31477. HEAP32[i2 >> 2] = i5;
  31478. STACKTOP = i1;
  31479. return;
  31480. }
  31481. }
  31482. function _luaL_addlstring(i7, i6, i1) {
  31483. i7 = i7 | 0;
  31484. i6 = i6 | 0;
  31485. i1 = i1 | 0;
  31486. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0;
  31487. i5 = STACKTOP;
  31488. STACKTOP = STACKTOP + 16 | 0;
  31489. i4 = HEAP32[i7 + 12 >> 2] | 0;
  31490. i3 = i7 + 4 | 0;
  31491. i9 = HEAP32[i3 >> 2] | 0;
  31492. i2 = i7 + 8 | 0;
  31493. i8 = HEAP32[i2 >> 2] | 0;
  31494. if (!((i9 - i8 | 0) >>> 0 < i1 >>> 0)) {
  31495. i7 = HEAP32[i7 >> 2] | 0;
  31496. i9 = i8;
  31497. i9 = i7 + i9 | 0;
  31498. _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
  31499. i9 = HEAP32[i2 >> 2] | 0;
  31500. i9 = i9 + i1 | 0;
  31501. HEAP32[i2 >> 2] = i9;
  31502. STACKTOP = i5;
  31503. return;
  31504. }
  31505. i9 = i9 << 1;
  31506. i9 = (i9 - i8 | 0) >>> 0 < i1 >>> 0 ? i8 + i1 | 0 : i9;
  31507. if (i9 >>> 0 < i8 >>> 0 | (i9 - i8 | 0) >>> 0 < i1 >>> 0) {
  31508. _luaL_error(i4, 1272, i5) | 0;
  31509. }
  31510. i8 = _lua_newuserdata(i4, i9) | 0;
  31511. _memcpy(i8 | 0, HEAP32[i7 >> 2] | 0, HEAP32[i2 >> 2] | 0) | 0;
  31512. if ((HEAP32[i7 >> 2] | 0) != (i7 + 16 | 0)) {
  31513. _lua_remove(i4, -2);
  31514. }
  31515. HEAP32[i7 >> 2] = i8;
  31516. HEAP32[i3 >> 2] = i9;
  31517. i9 = HEAP32[i2 >> 2] | 0;
  31518. i9 = i8 + i9 | 0;
  31519. _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
  31520. i9 = HEAP32[i2 >> 2] | 0;
  31521. i9 = i9 + i1 | 0;
  31522. HEAP32[i2 >> 2] = i9;
  31523. STACKTOP = i5;
  31524. return;
  31525. }
  31526. function _lua_rawgeti(i3, i6, i1) {
  31527. i3 = i3 | 0;
  31528. i6 = i6 | 0;
  31529. i1 = i1 | 0;
  31530. var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
  31531. i2 = STACKTOP;
  31532. i5 = HEAP32[i3 + 16 >> 2] | 0;
  31533. do {
  31534. if ((i6 | 0) <= 0) {
  31535. if (!((i6 | 0) < -1000999)) {
  31536. i4 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
  31537. break;
  31538. }
  31539. if ((i6 | 0) == -1001e3) {
  31540. i4 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  31541. break;
  31542. }
  31543. i6 = -1001e3 - i6 | 0;
  31544. i5 = HEAP32[i5 >> 2] | 0;
  31545. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  31546. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  31547. } else {
  31548. i4 = 5192;
  31549. }
  31550. } else {
  31551. i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  31552. i4 = i4 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  31553. }
  31554. } while (0);
  31555. i4 = _luaH_getint(HEAP32[i4 >> 2] | 0, i1) | 0;
  31556. i6 = i3 + 8 | 0;
  31557. i5 = HEAP32[i6 >> 2] | 0;
  31558. i7 = i4;
  31559. i1 = HEAP32[i7 + 4 >> 2] | 0;
  31560. i3 = i5;
  31561. HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
  31562. HEAP32[i3 + 4 >> 2] = i1;
  31563. HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
  31564. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
  31565. STACKTOP = i2;
  31566. return;
  31567. }
  31568. function _lua_setfield(i1, i6, i3) {
  31569. i1 = i1 | 0;
  31570. i6 = i6 | 0;
  31571. i3 = i3 | 0;
  31572. var i2 = 0, i4 = 0, i5 = 0;
  31573. i2 = STACKTOP;
  31574. i5 = HEAP32[i1 + 16 >> 2] | 0;
  31575. do {
  31576. if ((i6 | 0) <= 0) {
  31577. if (!((i6 | 0) < -1000999)) {
  31578. i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
  31579. break;
  31580. }
  31581. if ((i6 | 0) == -1001e3) {
  31582. i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  31583. break;
  31584. }
  31585. i6 = -1001e3 - i6 | 0;
  31586. i5 = HEAP32[i5 >> 2] | 0;
  31587. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  31588. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  31589. } else {
  31590. i4 = 5192;
  31591. }
  31592. } else {
  31593. i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  31594. i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  31595. }
  31596. } while (0);
  31597. i6 = i1 + 8 | 0;
  31598. i5 = HEAP32[i6 >> 2] | 0;
  31599. HEAP32[i6 >> 2] = i5 + 16;
  31600. i3 = _luaS_new(i1, i3) | 0;
  31601. HEAP32[i5 >> 2] = i3;
  31602. HEAP32[i5 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
  31603. i5 = HEAP32[i6 >> 2] | 0;
  31604. _luaV_settable(i1, i4, i5 + -16 | 0, i5 + -32 | 0);
  31605. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -32;
  31606. STACKTOP = i2;
  31607. return;
  31608. }
  31609. function _luaopen_io(i1) {
  31610. i1 = i1 | 0;
  31611. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  31612. i2 = STACKTOP;
  31613. _lua_createtable(i1, 0, 11);
  31614. _luaL_setfuncs(i1, 2680, 0);
  31615. _luaL_newmetatable(i1, 2832) | 0;
  31616. _lua_pushvalue(i1, -1);
  31617. _lua_setfield(i1, -2, 2872);
  31618. _luaL_setfuncs(i1, 2880, 0);
  31619. _lua_settop(i1, -2);
  31620. i5 = HEAP32[_stdin >> 2] | 0;
  31621. i4 = _lua_newuserdata(i1, 8) | 0;
  31622. i3 = i4 + 4 | 0;
  31623. HEAP32[i3 >> 2] = 0;
  31624. _luaL_setmetatable(i1, 2832);
  31625. HEAP32[i4 >> 2] = i5;
  31626. HEAP32[i3 >> 2] = 154;
  31627. _lua_pushvalue(i1, -1);
  31628. _lua_setfield(i1, -1001e3, 2776);
  31629. _lua_setfield(i1, -2, 2792);
  31630. i3 = HEAP32[_stdout >> 2] | 0;
  31631. i4 = _lua_newuserdata(i1, 8) | 0;
  31632. i5 = i4 + 4 | 0;
  31633. HEAP32[i5 >> 2] = 0;
  31634. _luaL_setmetatable(i1, 2832);
  31635. HEAP32[i4 >> 2] = i3;
  31636. HEAP32[i5 >> 2] = 154;
  31637. _lua_pushvalue(i1, -1);
  31638. _lua_setfield(i1, -1001e3, 2800);
  31639. _lua_setfield(i1, -2, 2816);
  31640. i5 = HEAP32[_stderr >> 2] | 0;
  31641. i4 = _lua_newuserdata(i1, 8) | 0;
  31642. i3 = i4 + 4 | 0;
  31643. HEAP32[i3 >> 2] = 0;
  31644. _luaL_setmetatable(i1, 2832);
  31645. HEAP32[i4 >> 2] = i5;
  31646. HEAP32[i3 >> 2] = 154;
  31647. _lua_setfield(i1, -2, 2824);
  31648. STACKTOP = i2;
  31649. return 1;
  31650. }
  31651. function _lua_pushcclosure(i1, i4, i5) {
  31652. i1 = i1 | 0;
  31653. i4 = i4 | 0;
  31654. i5 = i5 | 0;
  31655. var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  31656. i2 = STACKTOP;
  31657. if ((i5 | 0) == 0) {
  31658. i6 = HEAP32[i1 + 8 >> 2] | 0;
  31659. HEAP32[i6 >> 2] = i4;
  31660. HEAP32[i6 + 8 >> 2] = 22;
  31661. i6 = i1 + 8 | 0;
  31662. i5 = HEAP32[i6 >> 2] | 0;
  31663. i5 = i5 + 16 | 0;
  31664. HEAP32[i6 >> 2] = i5;
  31665. STACKTOP = i2;
  31666. return;
  31667. }
  31668. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  31669. _luaC_step(i1);
  31670. }
  31671. i3 = _luaF_newCclosure(i1, i5) | 0;
  31672. HEAP32[i3 + 12 >> 2] = i4;
  31673. i4 = i1 + 8 | 0;
  31674. i6 = (HEAP32[i4 >> 2] | 0) + (0 - i5 << 4) | 0;
  31675. HEAP32[i4 >> 2] = i6;
  31676. do {
  31677. i5 = i5 + -1 | 0;
  31678. i9 = i6 + (i5 << 4) | 0;
  31679. i8 = HEAP32[i9 + 4 >> 2] | 0;
  31680. i7 = i3 + (i5 << 4) + 16 | 0;
  31681. HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
  31682. HEAP32[i7 + 4 >> 2] = i8;
  31683. HEAP32[i3 + (i5 << 4) + 24 >> 2] = HEAP32[i6 + (i5 << 4) + 8 >> 2];
  31684. i6 = HEAP32[i4 >> 2] | 0;
  31685. } while ((i5 | 0) != 0);
  31686. HEAP32[i6 >> 2] = i3;
  31687. HEAP32[i6 + 8 >> 2] = 102;
  31688. i9 = i1 + 8 | 0;
  31689. i8 = HEAP32[i9 >> 2] | 0;
  31690. i8 = i8 + 16 | 0;
  31691. HEAP32[i9 >> 2] = i8;
  31692. STACKTOP = i2;
  31693. return;
  31694. }
  31695. function _luaF_findupval(i3, i4) {
  31696. i3 = i3 | 0;
  31697. i4 = i4 | 0;
  31698. var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0;
  31699. i1 = STACKTOP;
  31700. i2 = HEAP32[i3 + 12 >> 2] | 0;
  31701. i6 = i3 + 56 | 0;
  31702. i5 = HEAP32[i6 >> 2] | 0;
  31703. L1 : do {
  31704. if ((i5 | 0) == 0) {
  31705. i5 = i6;
  31706. } else {
  31707. while (1) {
  31708. i7 = HEAP32[i5 + 8 >> 2] | 0;
  31709. if (i7 >>> 0 < i4 >>> 0) {
  31710. i5 = i6;
  31711. break L1;
  31712. }
  31713. if ((i7 | 0) == (i4 | 0)) {
  31714. break;
  31715. }
  31716. i6 = HEAP32[i5 >> 2] | 0;
  31717. if ((i6 | 0) == 0) {
  31718. break L1;
  31719. } else {
  31720. i7 = i5;
  31721. i5 = i6;
  31722. i6 = i7;
  31723. }
  31724. }
  31725. i4 = i5 + 5 | 0;
  31726. i3 = (HEAPU8[i4] | 0) ^ 3;
  31727. if ((((HEAPU8[i2 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
  31728. i7 = i5;
  31729. STACKTOP = i1;
  31730. return i7 | 0;
  31731. }
  31732. HEAP8[i4] = i3;
  31733. i7 = i5;
  31734. STACKTOP = i1;
  31735. return i7 | 0;
  31736. }
  31737. } while (0);
  31738. i7 = _luaC_newobj(i3, 10, 32, i5, 0) | 0;
  31739. HEAP32[i7 + 8 >> 2] = i4;
  31740. i4 = i7 + 16 | 0;
  31741. HEAP32[i4 >> 2] = i2 + 112;
  31742. i6 = i2 + 132 | 0;
  31743. i5 = HEAP32[i6 >> 2] | 0;
  31744. HEAP32[i4 + 4 >> 2] = i5;
  31745. HEAP32[i5 + 16 >> 2] = i7;
  31746. HEAP32[i6 >> 2] = i7;
  31747. STACKTOP = i1;
  31748. return i7 | 0;
  31749. }
  31750. function _luaC_checkfinalizer(i5, i4, i6) {
  31751. i5 = i5 | 0;
  31752. i4 = i4 | 0;
  31753. i6 = i6 | 0;
  31754. var i1 = 0, i2 = 0, i3 = 0, i7 = 0, i8 = 0;
  31755. i3 = STACKTOP;
  31756. i1 = HEAP32[i5 + 12 >> 2] | 0;
  31757. i2 = i4 + 5 | 0;
  31758. if ((HEAP8[i2] & 24) != 0 | (i6 | 0) == 0) {
  31759. STACKTOP = i3;
  31760. return;
  31761. }
  31762. if (!((HEAP8[i6 + 6 | 0] & 4) == 0)) {
  31763. STACKTOP = i3;
  31764. return;
  31765. }
  31766. if ((_luaT_gettm(i6, 2, HEAP32[i1 + 192 >> 2] | 0) | 0) == 0) {
  31767. STACKTOP = i3;
  31768. return;
  31769. }
  31770. i7 = i1 + 76 | 0;
  31771. i8 = HEAP32[i7 >> 2] | 0;
  31772. if ((i8 | 0) == (i4 | 0)) {
  31773. do {
  31774. i6 = _sweeplist(i5, i8, 1) | 0;
  31775. } while ((i6 | 0) == (i8 | 0));
  31776. HEAP32[i7 >> 2] = i6;
  31777. }
  31778. i5 = i1 + 68 | 0;
  31779. while (1) {
  31780. i6 = HEAP32[i5 >> 2] | 0;
  31781. if ((i6 | 0) == (i4 | 0)) {
  31782. break;
  31783. } else {
  31784. i5 = i6;
  31785. }
  31786. }
  31787. HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
  31788. i8 = i1 + 72 | 0;
  31789. HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
  31790. HEAP32[i8 >> 2] = i4;
  31791. i4 = HEAPU8[i2] | 0 | 16;
  31792. HEAP8[i2] = i4;
  31793. if ((HEAPU8[i1 + 61 | 0] | 0) < 2) {
  31794. HEAP8[i2] = i4 & 191;
  31795. STACKTOP = i3;
  31796. return;
  31797. } else {
  31798. HEAP8[i2] = HEAP8[i1 + 60 | 0] & 3 | i4 & 184;
  31799. STACKTOP = i3;
  31800. return;
  31801. }
  31802. }
  31803. function _io_lines(i1) {
  31804. i1 = i1 | 0;
  31805. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  31806. i2 = STACKTOP;
  31807. STACKTOP = STACKTOP + 16 | 0;
  31808. i3 = i2;
  31809. if ((_lua_type(i1, 1) | 0) == -1) {
  31810. _lua_pushnil(i1);
  31811. }
  31812. if ((_lua_type(i1, 1) | 0) == 0) {
  31813. _lua_getfield(i1, -1001e3, 2776);
  31814. _lua_replace(i1, 1);
  31815. if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) != 0) {
  31816. i4 = 0;
  31817. _aux_lines(i1, i4);
  31818. STACKTOP = i2;
  31819. return 1;
  31820. }
  31821. _luaL_error(i1, 3080, i3) | 0;
  31822. i4 = 0;
  31823. _aux_lines(i1, i4);
  31824. STACKTOP = i2;
  31825. return 1;
  31826. } else {
  31827. i4 = _luaL_checklstring(i1, 1, 0) | 0;
  31828. i6 = _lua_newuserdata(i1, 8) | 0;
  31829. i5 = i6 + 4 | 0;
  31830. HEAP32[i5 >> 2] = 0;
  31831. _luaL_setmetatable(i1, 2832);
  31832. HEAP32[i6 >> 2] = 0;
  31833. HEAP32[i5 >> 2] = 156;
  31834. i5 = _fopen(i4 | 0, 3480) | 0;
  31835. HEAP32[i6 >> 2] = i5;
  31836. if ((i5 | 0) == 0) {
  31837. i6 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
  31838. HEAP32[i3 >> 2] = i4;
  31839. HEAP32[i3 + 4 >> 2] = i6;
  31840. _luaL_error(i1, 3520, i3) | 0;
  31841. }
  31842. _lua_replace(i1, 1);
  31843. i6 = 1;
  31844. _aux_lines(i1, i6);
  31845. STACKTOP = i2;
  31846. return 1;
  31847. }
  31848. return 0;
  31849. }
  31850. function _luaC_changemode(i2, i6) {
  31851. i2 = i2 | 0;
  31852. i6 = i6 | 0;
  31853. var i1 = 0, i3 = 0, i4 = 0, i5 = 0;
  31854. i1 = STACKTOP;
  31855. i3 = i2 + 12 | 0;
  31856. i5 = HEAP32[i3 >> 2] | 0;
  31857. i4 = i5 + 62 | 0;
  31858. if ((HEAPU8[i4] | 0) == (i6 | 0)) {
  31859. STACKTOP = i1;
  31860. return;
  31861. }
  31862. if ((i6 | 0) == 2) {
  31863. i3 = i5 + 61 | 0;
  31864. if ((HEAP8[i3] | 0) != 0) {
  31865. do {
  31866. _singlestep(i2) | 0;
  31867. } while ((HEAP8[i3] | 0) != 0);
  31868. }
  31869. HEAP32[i5 + 20 >> 2] = (HEAP32[i5 + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] | 0);
  31870. HEAP8[i4] = 2;
  31871. STACKTOP = i1;
  31872. return;
  31873. }
  31874. HEAP8[i4] = 0;
  31875. i4 = HEAP32[i3 >> 2] | 0;
  31876. HEAP8[i4 + 61 | 0] = 2;
  31877. HEAP32[i4 + 64 >> 2] = 0;
  31878. i5 = i4 + 72 | 0;
  31879. do {
  31880. i6 = _sweeplist(i2, i5, 1) | 0;
  31881. } while ((i6 | 0) == (i5 | 0));
  31882. HEAP32[i4 + 80 >> 2] = i6;
  31883. i5 = i4 + 68 | 0;
  31884. do {
  31885. i6 = _sweeplist(i2, i5, 1) | 0;
  31886. } while ((i6 | 0) == (i5 | 0));
  31887. HEAP32[i4 + 76 >> 2] = i6;
  31888. i3 = (HEAP32[i3 >> 2] | 0) + 61 | 0;
  31889. if ((1 << HEAPU8[i3] & -29 | 0) != 0) {
  31890. STACKTOP = i1;
  31891. return;
  31892. }
  31893. do {
  31894. _singlestep(i2) | 0;
  31895. } while ((1 << HEAPU8[i3] & -29 | 0) == 0);
  31896. STACKTOP = i1;
  31897. return;
  31898. }
  31899. function _lua_rawget(i1, i5) {
  31900. i1 = i1 | 0;
  31901. i5 = i5 | 0;
  31902. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  31903. i2 = STACKTOP;
  31904. i4 = HEAP32[i1 + 16 >> 2] | 0;
  31905. do {
  31906. if ((i5 | 0) <= 0) {
  31907. if (!((i5 | 0) < -1000999)) {
  31908. i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  31909. break;
  31910. }
  31911. if ((i5 | 0) == -1001e3) {
  31912. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  31913. break;
  31914. }
  31915. i5 = -1001e3 - i5 | 0;
  31916. i4 = HEAP32[i4 >> 2] | 0;
  31917. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  31918. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  31919. } else {
  31920. i3 = 5192;
  31921. }
  31922. } else {
  31923. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  31924. i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  31925. }
  31926. } while (0);
  31927. i5 = i1 + 8 | 0;
  31928. i4 = _luaH_get(HEAP32[i3 >> 2] | 0, (HEAP32[i5 >> 2] | 0) + -16 | 0) | 0;
  31929. i5 = HEAP32[i5 >> 2] | 0;
  31930. i6 = i4;
  31931. i1 = HEAP32[i6 + 4 >> 2] | 0;
  31932. i3 = i5 + -16 | 0;
  31933. HEAP32[i3 >> 2] = HEAP32[i6 >> 2];
  31934. HEAP32[i3 + 4 >> 2] = i1;
  31935. HEAP32[i5 + -8 >> 2] = HEAP32[i4 + 8 >> 2];
  31936. STACKTOP = i2;
  31937. return;
  31938. }
  31939. function _lua_isstring(i2, i4) {
  31940. i2 = i2 | 0;
  31941. i4 = i4 | 0;
  31942. var i1 = 0, i3 = 0;
  31943. i1 = STACKTOP;
  31944. i3 = HEAP32[i2 + 16 >> 2] | 0;
  31945. do {
  31946. if ((i4 | 0) <= 0) {
  31947. if (!((i4 | 0) < -1000999)) {
  31948. i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
  31949. break;
  31950. }
  31951. if ((i4 | 0) == -1001e3) {
  31952. i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  31953. break;
  31954. }
  31955. i2 = -1001e3 - i4 | 0;
  31956. i3 = HEAP32[i3 >> 2] | 0;
  31957. if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
  31958. i4 = 0;
  31959. i4 = i4 & 1;
  31960. STACKTOP = i1;
  31961. return i4 | 0;
  31962. }
  31963. i3 = HEAP32[i3 >> 2] | 0;
  31964. if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
  31965. i4 = 0;
  31966. i4 = i4 & 1;
  31967. STACKTOP = i1;
  31968. return i4 | 0;
  31969. } else {
  31970. i2 = i3 + (i2 + -1 << 4) + 16 | 0;
  31971. break;
  31972. }
  31973. } else {
  31974. i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
  31975. i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  31976. }
  31977. } while (0);
  31978. if ((i2 | 0) == 5192) {
  31979. i4 = 0;
  31980. i4 = i4 & 1;
  31981. STACKTOP = i1;
  31982. return i4 | 0;
  31983. }
  31984. i4 = ((HEAP32[i2 + 8 >> 2] & 15) + -3 | 0) >>> 0 < 2;
  31985. i4 = i4 & 1;
  31986. STACKTOP = i1;
  31987. return i4 | 0;
  31988. }
  31989. function _setnodevector(i5, i1, i3) {
  31990. i5 = i5 | 0;
  31991. i1 = i1 | 0;
  31992. i3 = i3 | 0;
  31993. var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
  31994. i2 = STACKTOP;
  31995. STACKTOP = STACKTOP + 16 | 0;
  31996. if ((i3 | 0) == 0) {
  31997. HEAP32[i1 + 16 >> 2] = 8016;
  31998. i6 = 0;
  31999. i7 = 8016;
  32000. i4 = 0;
  32001. i5 = i1 + 7 | 0;
  32002. HEAP8[i5] = i4;
  32003. i6 = i7 + (i6 << 5) | 0;
  32004. i7 = i1 + 20 | 0;
  32005. HEAP32[i7 >> 2] = i6;
  32006. STACKTOP = i2;
  32007. return;
  32008. }
  32009. i4 = _luaO_ceillog2(i3) | 0;
  32010. if ((i4 | 0) > 30) {
  32011. _luaG_runerror(i5, 8048, i2);
  32012. }
  32013. i3 = 1 << i4;
  32014. if ((i3 + 1 | 0) >>> 0 > 134217727) {
  32015. _luaM_toobig(i5);
  32016. }
  32017. i6 = _luaM_realloc_(i5, 0, 0, i3 << 5) | 0;
  32018. i5 = i1 + 16 | 0;
  32019. HEAP32[i5 >> 2] = i6;
  32020. if ((i3 | 0) > 0) {
  32021. i7 = 0;
  32022. do {
  32023. HEAP32[i6 + (i7 << 5) + 28 >> 2] = 0;
  32024. HEAP32[i6 + (i7 << 5) + 24 >> 2] = 0;
  32025. HEAP32[i6 + (i7 << 5) + 8 >> 2] = 0;
  32026. i7 = i7 + 1 | 0;
  32027. i6 = HEAP32[i5 >> 2] | 0;
  32028. } while ((i7 | 0) != (i3 | 0));
  32029. }
  32030. i7 = i3;
  32031. i4 = i4 & 255;
  32032. i5 = i1 + 7 | 0;
  32033. HEAP8[i5] = i4;
  32034. i6 = i6 + (i7 << 5) | 0;
  32035. i7 = i1 + 20 | 0;
  32036. HEAP32[i7 >> 2] = i6;
  32037. STACKTOP = i2;
  32038. return;
  32039. }
  32040. function _lua_pushvalue(i1, i5) {
  32041. i1 = i1 | 0;
  32042. i5 = i5 | 0;
  32043. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  32044. i2 = STACKTOP;
  32045. i4 = HEAP32[i1 + 16 >> 2] | 0;
  32046. do {
  32047. if ((i5 | 0) <= 0) {
  32048. if (!((i5 | 0) < -1000999)) {
  32049. i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  32050. break;
  32051. }
  32052. if ((i5 | 0) == -1001e3) {
  32053. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  32054. break;
  32055. }
  32056. i5 = -1001e3 - i5 | 0;
  32057. i4 = HEAP32[i4 >> 2] | 0;
  32058. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  32059. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  32060. } else {
  32061. i3 = 5192;
  32062. }
  32063. } else {
  32064. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  32065. i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  32066. }
  32067. } while (0);
  32068. i5 = i1 + 8 | 0;
  32069. i4 = HEAP32[i5 >> 2] | 0;
  32070. i7 = i3;
  32071. i6 = HEAP32[i7 + 4 >> 2] | 0;
  32072. i1 = i4;
  32073. HEAP32[i1 >> 2] = HEAP32[i7 >> 2];
  32074. HEAP32[i1 + 4 >> 2] = i6;
  32075. HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
  32076. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
  32077. STACKTOP = i2;
  32078. return;
  32079. }
  32080. function _luaL_setfuncs(i3, i6, i1) {
  32081. i3 = i3 | 0;
  32082. i6 = i6 | 0;
  32083. i1 = i1 | 0;
  32084. var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
  32085. i2 = STACKTOP;
  32086. STACKTOP = STACKTOP + 16 | 0;
  32087. i4 = i2;
  32088. _luaL_checkversion_(i3, 502.0);
  32089. if ((_lua_checkstack(i3, i1 + 20 | 0) | 0) == 0) {
  32090. HEAP32[i4 >> 2] = 1472;
  32091. _luaL_error(i3, 1216, i4) | 0;
  32092. }
  32093. if ((HEAP32[i6 >> 2] | 0) == 0) {
  32094. i7 = ~i1;
  32095. _lua_settop(i3, i7);
  32096. STACKTOP = i2;
  32097. return;
  32098. }
  32099. i4 = -2 - i1 | 0;
  32100. i5 = 0 - i1 | 0;
  32101. if ((i1 | 0) <= 0) {
  32102. do {
  32103. _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
  32104. _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
  32105. i6 = i6 + 8 | 0;
  32106. } while ((HEAP32[i6 >> 2] | 0) != 0);
  32107. i7 = ~i1;
  32108. _lua_settop(i3, i7);
  32109. STACKTOP = i2;
  32110. return;
  32111. }
  32112. do {
  32113. i7 = 0;
  32114. do {
  32115. _lua_pushvalue(i3, i5);
  32116. i7 = i7 + 1 | 0;
  32117. } while ((i7 | 0) != (i1 | 0));
  32118. _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
  32119. _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
  32120. i6 = i6 + 8 | 0;
  32121. } while ((HEAP32[i6 >> 2] | 0) != 0);
  32122. i7 = ~i1;
  32123. _lua_settop(i3, i7);
  32124. STACKTOP = i2;
  32125. return;
  32126. }
  32127. function _lua_touserdata(i3, i5) {
  32128. i3 = i3 | 0;
  32129. i5 = i5 | 0;
  32130. var i1 = 0, i2 = 0, i4 = 0;
  32131. i1 = STACKTOP;
  32132. i4 = HEAP32[i3 + 16 >> 2] | 0;
  32133. do {
  32134. if ((i5 | 0) <= 0) {
  32135. if (!((i5 | 0) < -1000999)) {
  32136. i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
  32137. break;
  32138. }
  32139. if ((i5 | 0) == -1001e3) {
  32140. i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  32141. break;
  32142. }
  32143. i3 = -1001e3 - i5 | 0;
  32144. i4 = HEAP32[i4 >> 2] | 0;
  32145. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  32146. i2 = i2 + (i3 + -1 << 4) + 16 | 0;
  32147. } else {
  32148. i2 = 5192;
  32149. }
  32150. } else {
  32151. i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  32152. i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  32153. }
  32154. } while (0);
  32155. i3 = HEAP32[i2 + 8 >> 2] & 15;
  32156. if ((i3 | 0) == 2) {
  32157. i5 = HEAP32[i2 >> 2] | 0;
  32158. STACKTOP = i1;
  32159. return i5 | 0;
  32160. } else if ((i3 | 0) == 7) {
  32161. i5 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
  32162. STACKTOP = i1;
  32163. return i5 | 0;
  32164. } else {
  32165. i5 = 0;
  32166. STACKTOP = i1;
  32167. return i5 | 0;
  32168. }
  32169. return 0;
  32170. }
  32171. function _luaL_checkoption(i2, i3, i6, i4) {
  32172. i2 = i2 | 0;
  32173. i3 = i3 | 0;
  32174. i6 = i6 | 0;
  32175. i4 = i4 | 0;
  32176. var i1 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
  32177. i1 = STACKTOP;
  32178. STACKTOP = STACKTOP + 16 | 0;
  32179. i5 = i1;
  32180. if ((i6 | 0) == 0) {
  32181. i6 = _lua_tolstring(i2, i3, 0) | 0;
  32182. if ((i6 | 0) == 0) {
  32183. i9 = _lua_typename(i2, 4) | 0;
  32184. i6 = _lua_typename(i2, _lua_type(i2, i3) | 0) | 0;
  32185. HEAP32[i5 >> 2] = i9;
  32186. HEAP32[i5 + 4 >> 2] = i6;
  32187. _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1744, i5) | 0) | 0;
  32188. i6 = 0;
  32189. }
  32190. } else {
  32191. i6 = _luaL_optlstring(i2, i3, i6, 0) | 0;
  32192. }
  32193. i9 = HEAP32[i4 >> 2] | 0;
  32194. L6 : do {
  32195. if ((i9 | 0) != 0) {
  32196. i8 = 0;
  32197. while (1) {
  32198. i7 = i8 + 1 | 0;
  32199. if ((_strcmp(i9, i6) | 0) == 0) {
  32200. break;
  32201. }
  32202. i9 = HEAP32[i4 + (i7 << 2) >> 2] | 0;
  32203. if ((i9 | 0) == 0) {
  32204. break L6;
  32205. } else {
  32206. i8 = i7;
  32207. }
  32208. }
  32209. STACKTOP = i1;
  32210. return i8 | 0;
  32211. }
  32212. } while (0);
  32213. HEAP32[i5 >> 2] = i6;
  32214. i9 = _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1192, i5) | 0) | 0;
  32215. STACKTOP = i1;
  32216. return i9 | 0;
  32217. }
  32218. function _lua_toboolean(i3, i5) {
  32219. i3 = i3 | 0;
  32220. i5 = i5 | 0;
  32221. var i1 = 0, i2 = 0, i4 = 0;
  32222. i1 = STACKTOP;
  32223. i4 = HEAP32[i3 + 16 >> 2] | 0;
  32224. do {
  32225. if ((i5 | 0) <= 0) {
  32226. if (!((i5 | 0) < -1000999)) {
  32227. i3 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
  32228. break;
  32229. }
  32230. if ((i5 | 0) == -1001e3) {
  32231. i3 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  32232. break;
  32233. }
  32234. i3 = -1001e3 - i5 | 0;
  32235. i4 = HEAP32[i4 >> 2] | 0;
  32236. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  32237. i3 = i2 + (i3 + -1 << 4) + 16 | 0;
  32238. } else {
  32239. i3 = 5192;
  32240. }
  32241. } else {
  32242. i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  32243. i3 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  32244. }
  32245. } while (0);
  32246. i2 = HEAP32[i3 + 8 >> 2] | 0;
  32247. if ((i2 | 0) == 0) {
  32248. i5 = 0;
  32249. i5 = i5 & 1;
  32250. STACKTOP = i1;
  32251. return i5 | 0;
  32252. }
  32253. if ((i2 | 0) != 1) {
  32254. i5 = 1;
  32255. i5 = i5 & 1;
  32256. STACKTOP = i1;
  32257. return i5 | 0;
  32258. }
  32259. i5 = (HEAP32[i3 >> 2] | 0) != 0;
  32260. i5 = i5 & 1;
  32261. STACKTOP = i1;
  32262. return i5 | 0;
  32263. }
  32264. function _lua_getfield(i1, i6, i3) {
  32265. i1 = i1 | 0;
  32266. i6 = i6 | 0;
  32267. i3 = i3 | 0;
  32268. var i2 = 0, i4 = 0, i5 = 0;
  32269. i2 = STACKTOP;
  32270. i5 = HEAP32[i1 + 16 >> 2] | 0;
  32271. do {
  32272. if ((i6 | 0) <= 0) {
  32273. if (!((i6 | 0) < -1000999)) {
  32274. i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
  32275. break;
  32276. }
  32277. if ((i6 | 0) == -1001e3) {
  32278. i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  32279. break;
  32280. }
  32281. i6 = -1001e3 - i6 | 0;
  32282. i5 = HEAP32[i5 >> 2] | 0;
  32283. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
  32284. i4 = i4 + (i6 + -1 << 4) + 16 | 0;
  32285. } else {
  32286. i4 = 5192;
  32287. }
  32288. } else {
  32289. i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  32290. i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
  32291. }
  32292. } while (0);
  32293. i5 = i1 + 8 | 0;
  32294. i6 = HEAP32[i5 >> 2] | 0;
  32295. i3 = _luaS_new(i1, i3) | 0;
  32296. HEAP32[i6 >> 2] = i3;
  32297. HEAP32[i6 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
  32298. i6 = HEAP32[i5 >> 2] | 0;
  32299. HEAP32[i5 >> 2] = i6 + 16;
  32300. _luaV_gettable(i1, i4, i6, i6);
  32301. STACKTOP = i2;
  32302. return;
  32303. }
  32304. function _luaL_argerror(i1, i6, i3) {
  32305. i1 = i1 | 0;
  32306. i6 = i6 | 0;
  32307. i3 = i3 | 0;
  32308. var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  32309. i4 = STACKTOP;
  32310. STACKTOP = STACKTOP + 112 | 0;
  32311. i2 = i4;
  32312. i5 = i4 + 12 | 0;
  32313. if ((_lua_getstack(i1, 0, i5) | 0) == 0) {
  32314. HEAP32[i2 >> 2] = i6;
  32315. HEAP32[i2 + 4 >> 2] = i3;
  32316. i8 = _luaL_error(i1, 1040, i2) | 0;
  32317. STACKTOP = i4;
  32318. return i8 | 0;
  32319. }
  32320. _lua_getinfo(i1, 1064, i5) | 0;
  32321. if ((_strcmp(HEAP32[i5 + 8 >> 2] | 0, 1072) | 0) == 0) {
  32322. i6 = i6 + -1 | 0;
  32323. if ((i6 | 0) == 0) {
  32324. HEAP32[i2 >> 2] = HEAP32[i5 + 4 >> 2];
  32325. HEAP32[i2 + 4 >> 2] = i3;
  32326. i8 = _luaL_error(i1, 1080, i2) | 0;
  32327. STACKTOP = i4;
  32328. return i8 | 0;
  32329. }
  32330. }
  32331. i7 = i5 + 4 | 0;
  32332. i8 = HEAP32[i7 >> 2] | 0;
  32333. if ((i8 | 0) == 0) {
  32334. if ((_pushglobalfuncname(i1, i5) | 0) == 0) {
  32335. i8 = 1112;
  32336. } else {
  32337. i8 = _lua_tolstring(i1, -1, 0) | 0;
  32338. }
  32339. HEAP32[i7 >> 2] = i8;
  32340. }
  32341. HEAP32[i2 >> 2] = i6;
  32342. HEAP32[i2 + 4 >> 2] = i8;
  32343. HEAP32[i2 + 8 >> 2] = i3;
  32344. i8 = _luaL_error(i1, 1120, i2) | 0;
  32345. STACKTOP = i4;
  32346. return i8 | 0;
  32347. }
  32348. function _match_class(i3, i2) {
  32349. i3 = i3 | 0;
  32350. i2 = i2 | 0;
  32351. var i1 = 0;
  32352. i1 = STACKTOP;
  32353. switch (_tolower(i2 | 0) | 0) {
  32354. case 117:
  32355. {
  32356. i3 = _isupper(i3 | 0) | 0;
  32357. break;
  32358. }
  32359. case 97:
  32360. {
  32361. i3 = _isalpha(i3 | 0) | 0;
  32362. break;
  32363. }
  32364. case 99:
  32365. {
  32366. i3 = _iscntrl(i3 | 0) | 0;
  32367. break;
  32368. }
  32369. case 120:
  32370. {
  32371. i3 = _isxdigit(i3 | 0) | 0;
  32372. break;
  32373. }
  32374. case 119:
  32375. {
  32376. i3 = _isalnum(i3 | 0) | 0;
  32377. break;
  32378. }
  32379. case 112:
  32380. {
  32381. i3 = _ispunct(i3 | 0) | 0;
  32382. break;
  32383. }
  32384. case 100:
  32385. {
  32386. i3 = (i3 + -48 | 0) >>> 0 < 10 | 0;
  32387. break;
  32388. }
  32389. case 108:
  32390. {
  32391. i3 = _islower(i3 | 0) | 0;
  32392. break;
  32393. }
  32394. case 122:
  32395. {
  32396. i3 = (i3 | 0) == 0 | 0;
  32397. break;
  32398. }
  32399. case 103:
  32400. {
  32401. i3 = _isgraph(i3 | 0) | 0;
  32402. break;
  32403. }
  32404. case 115:
  32405. {
  32406. i3 = _isspace(i3 | 0) | 0;
  32407. break;
  32408. }
  32409. default:
  32410. {
  32411. i3 = (i2 | 0) == (i3 | 0) | 0;
  32412. STACKTOP = i1;
  32413. return i3 | 0;
  32414. }
  32415. }
  32416. if ((_islower(i2 | 0) | 0) != 0) {
  32417. STACKTOP = i1;
  32418. return i3 | 0;
  32419. }
  32420. i3 = (i3 | 0) == 0 | 0;
  32421. STACKTOP = i1;
  32422. return i3 | 0;
  32423. }
  32424. function _condjump(i1, i3, i6, i4, i5) {
  32425. i1 = i1 | 0;
  32426. i3 = i3 | 0;
  32427. i6 = i6 | 0;
  32428. i4 = i4 | 0;
  32429. i5 = i5 | 0;
  32430. var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
  32431. i2 = STACKTOP;
  32432. _luaK_code(i1, i6 << 6 | i3 | i4 << 23 | i5 << 14) | 0;
  32433. i3 = i1 + 28 | 0;
  32434. i6 = HEAP32[i3 >> 2] | 0;
  32435. HEAP32[i3 >> 2] = -1;
  32436. i3 = _luaK_code(i1, 2147450903) | 0;
  32437. if ((i6 | 0) == -1) {
  32438. i9 = i3;
  32439. STACKTOP = i2;
  32440. return i9 | 0;
  32441. }
  32442. if ((i3 | 0) == -1) {
  32443. i9 = i6;
  32444. STACKTOP = i2;
  32445. return i9 | 0;
  32446. }
  32447. i8 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  32448. i7 = i3;
  32449. while (1) {
  32450. i4 = i8 + (i7 << 2) | 0;
  32451. i5 = HEAP32[i4 >> 2] | 0;
  32452. i9 = (i5 >>> 14) + -131071 | 0;
  32453. if ((i9 | 0) == -1) {
  32454. break;
  32455. }
  32456. i9 = i7 + 1 + i9 | 0;
  32457. if ((i9 | 0) == -1) {
  32458. break;
  32459. } else {
  32460. i7 = i9;
  32461. }
  32462. }
  32463. i6 = i6 + ~i7 | 0;
  32464. if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
  32465. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  32466. }
  32467. HEAP32[i4 >> 2] = (i6 << 14) + 2147467264 | i5 & 16383;
  32468. i9 = i3;
  32469. STACKTOP = i2;
  32470. return i9 | 0;
  32471. }
  32472. function _skipcomment(i6, i1) {
  32473. i6 = i6 | 0;
  32474. i1 = i1 | 0;
  32475. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  32476. i2 = STACKTOP;
  32477. HEAP32[i6 >> 2] = 0;
  32478. i3 = i6 + 4 | 0;
  32479. i5 = 1712;
  32480. while (1) {
  32481. i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
  32482. if ((i7 | 0) == -1) {
  32483. i4 = 3;
  32484. break;
  32485. }
  32486. i8 = i5 + 1 | 0;
  32487. if ((i7 | 0) != (HEAPU8[i5] | 0)) {
  32488. break;
  32489. }
  32490. i5 = HEAP32[i6 >> 2] | 0;
  32491. HEAP32[i6 >> 2] = i5 + 1;
  32492. HEAP8[i6 + i5 + 8 | 0] = i7;
  32493. if ((HEAP8[i8] | 0) == 0) {
  32494. i4 = 6;
  32495. break;
  32496. } else {
  32497. i5 = i8;
  32498. }
  32499. }
  32500. if ((i4 | 0) == 3) {
  32501. HEAP32[i1 >> 2] = -1;
  32502. i8 = 0;
  32503. STACKTOP = i2;
  32504. return i8 | 0;
  32505. } else if ((i4 | 0) == 6) {
  32506. HEAP32[i6 >> 2] = 0;
  32507. i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
  32508. }
  32509. HEAP32[i1 >> 2] = i7;
  32510. if ((i7 | 0) != 35) {
  32511. i8 = 0;
  32512. STACKTOP = i2;
  32513. return i8 | 0;
  32514. }
  32515. do {
  32516. i8 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
  32517. } while (!((i8 | 0) == 10 | (i8 | 0) == -1));
  32518. HEAP32[i1 >> 2] = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
  32519. i8 = 1;
  32520. STACKTOP = i2;
  32521. return i8 | 0;
  32522. }
  32523. function _lua_isnumber(i4, i6) {
  32524. i4 = i4 | 0;
  32525. i6 = i6 | 0;
  32526. var i1 = 0, i2 = 0, i3 = 0, i5 = 0;
  32527. i1 = STACKTOP;
  32528. STACKTOP = STACKTOP + 16 | 0;
  32529. i2 = i1;
  32530. i5 = HEAP32[i4 + 16 >> 2] | 0;
  32531. do {
  32532. if ((i6 | 0) <= 0) {
  32533. if (!((i6 | 0) < -1000999)) {
  32534. i3 = (HEAP32[i4 + 8 >> 2] | 0) + (i6 << 4) | 0;
  32535. break;
  32536. }
  32537. if ((i6 | 0) == -1001e3) {
  32538. i3 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
  32539. break;
  32540. }
  32541. i4 = -1001e3 - i6 | 0;
  32542. i5 = HEAP32[i5 >> 2] | 0;
  32543. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  32544. i3 = i3 + (i4 + -1 << 4) + 16 | 0;
  32545. } else {
  32546. i3 = 5192;
  32547. }
  32548. } else {
  32549. i3 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
  32550. i3 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  32551. }
  32552. } while (0);
  32553. if ((HEAP32[i3 + 8 >> 2] | 0) == 3) {
  32554. i6 = 1;
  32555. i6 = i6 & 1;
  32556. STACKTOP = i1;
  32557. return i6 | 0;
  32558. }
  32559. i6 = (_luaV_tonumber(i3, i2) | 0) != 0;
  32560. i6 = i6 & 1;
  32561. STACKTOP = i1;
  32562. return i6 | 0;
  32563. }
  32564. function ___shgetc(i3) {
  32565. i3 = i3 | 0;
  32566. var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  32567. i2 = STACKTOP;
  32568. i7 = i3 + 104 | 0;
  32569. i6 = HEAP32[i7 >> 2] | 0;
  32570. if (!((i6 | 0) != 0 ? (HEAP32[i3 + 108 >> 2] | 0) >= (i6 | 0) : 0)) {
  32571. i8 = 3;
  32572. }
  32573. if ((i8 | 0) == 3 ? (i1 = ___uflow(i3) | 0, (i1 | 0) >= 0) : 0) {
  32574. i7 = HEAP32[i7 >> 2] | 0;
  32575. i6 = HEAP32[i3 + 8 >> 2] | 0;
  32576. if ((i7 | 0) != 0 ? (i4 = HEAP32[i3 + 4 >> 2] | 0, i5 = i7 - (HEAP32[i3 + 108 >> 2] | 0) + -1 | 0, (i6 - i4 | 0) > (i5 | 0)) : 0) {
  32577. HEAP32[i3 + 100 >> 2] = i4 + i5;
  32578. } else {
  32579. HEAP32[i3 + 100 >> 2] = i6;
  32580. }
  32581. i4 = HEAP32[i3 + 4 >> 2] | 0;
  32582. if ((i6 | 0) != 0) {
  32583. i8 = i3 + 108 | 0;
  32584. HEAP32[i8 >> 2] = i6 + 1 - i4 + (HEAP32[i8 >> 2] | 0);
  32585. }
  32586. i3 = i4 + -1 | 0;
  32587. if ((HEAPU8[i3] | 0 | 0) == (i1 | 0)) {
  32588. i8 = i1;
  32589. STACKTOP = i2;
  32590. return i8 | 0;
  32591. }
  32592. HEAP8[i3] = i1;
  32593. i8 = i1;
  32594. STACKTOP = i2;
  32595. return i8 | 0;
  32596. }
  32597. HEAP32[i3 + 100 >> 2] = 0;
  32598. i8 = -1;
  32599. STACKTOP = i2;
  32600. return i8 | 0;
  32601. }
  32602. function _lua_type(i2, i4) {
  32603. i2 = i2 | 0;
  32604. i4 = i4 | 0;
  32605. var i1 = 0, i3 = 0;
  32606. i1 = STACKTOP;
  32607. i3 = HEAP32[i2 + 16 >> 2] | 0;
  32608. do {
  32609. if ((i4 | 0) <= 0) {
  32610. if (!((i4 | 0) < -1000999)) {
  32611. i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
  32612. break;
  32613. }
  32614. if ((i4 | 0) == -1001e3) {
  32615. i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  32616. break;
  32617. }
  32618. i2 = -1001e3 - i4 | 0;
  32619. i3 = HEAP32[i3 >> 2] | 0;
  32620. if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
  32621. i4 = -1;
  32622. STACKTOP = i1;
  32623. return i4 | 0;
  32624. }
  32625. i3 = HEAP32[i3 >> 2] | 0;
  32626. if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
  32627. i4 = -1;
  32628. STACKTOP = i1;
  32629. return i4 | 0;
  32630. } else {
  32631. i2 = i3 + (i2 + -1 << 4) + 16 | 0;
  32632. break;
  32633. }
  32634. } else {
  32635. i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
  32636. i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  32637. }
  32638. } while (0);
  32639. if ((i2 | 0) == 5192) {
  32640. i4 = -1;
  32641. STACKTOP = i1;
  32642. return i4 | 0;
  32643. }
  32644. i4 = HEAP32[i2 + 8 >> 2] & 15;
  32645. STACKTOP = i1;
  32646. return i4 | 0;
  32647. }
  32648. function _g_iofile(i4, i1, i5) {
  32649. i4 = i4 | 0;
  32650. i1 = i1 | 0;
  32651. i5 = i5 | 0;
  32652. var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
  32653. i2 = STACKTOP;
  32654. STACKTOP = STACKTOP + 16 | 0;
  32655. i3 = i2;
  32656. if ((_lua_type(i4, 1) | 0) < 1) {
  32657. _lua_getfield(i4, -1001e3, i1);
  32658. STACKTOP = i2;
  32659. return;
  32660. }
  32661. i6 = _lua_tolstring(i4, 1, 0) | 0;
  32662. if ((i6 | 0) != 0) {
  32663. i7 = _lua_newuserdata(i4, 8) | 0;
  32664. i8 = i7 + 4 | 0;
  32665. HEAP32[i8 >> 2] = 0;
  32666. _luaL_setmetatable(i4, 2832);
  32667. HEAP32[i7 >> 2] = 0;
  32668. HEAP32[i8 >> 2] = 156;
  32669. i5 = _fopen(i6 | 0, i5 | 0) | 0;
  32670. HEAP32[i7 >> 2] = i5;
  32671. if ((i5 | 0) == 0) {
  32672. i8 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
  32673. HEAP32[i3 >> 2] = i6;
  32674. HEAP32[i3 + 4 >> 2] = i8;
  32675. _luaL_error(i4, 3520, i3) | 0;
  32676. }
  32677. } else {
  32678. if ((HEAP32[(_luaL_checkudata(i4, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
  32679. _luaL_error(i4, 3080, i3) | 0;
  32680. }
  32681. _lua_pushvalue(i4, 1);
  32682. }
  32683. _lua_setfield(i4, -1001e3, i1);
  32684. _lua_getfield(i4, -1001e3, i1);
  32685. STACKTOP = i2;
  32686. return;
  32687. }
  32688. function _lua_getlocal(i4, i5, i2) {
  32689. i4 = i4 | 0;
  32690. i5 = i5 | 0;
  32691. i2 = i2 | 0;
  32692. var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
  32693. i1 = STACKTOP;
  32694. STACKTOP = STACKTOP + 16 | 0;
  32695. i3 = i1;
  32696. if ((i5 | 0) == 0) {
  32697. i3 = HEAP32[i4 + 8 >> 2] | 0;
  32698. if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
  32699. i5 = 0;
  32700. STACKTOP = i1;
  32701. return i5 | 0;
  32702. }
  32703. i5 = _luaF_getlocalname(HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i2, 0) | 0;
  32704. STACKTOP = i1;
  32705. return i5 | 0;
  32706. } else {
  32707. HEAP32[i3 >> 2] = 0;
  32708. i2 = _findlocal(i4, HEAP32[i5 + 96 >> 2] | 0, i2, i3) | 0;
  32709. if ((i2 | 0) == 0) {
  32710. i5 = 0;
  32711. STACKTOP = i1;
  32712. return i5 | 0;
  32713. }
  32714. i3 = HEAP32[i3 >> 2] | 0;
  32715. i5 = i4 + 8 | 0;
  32716. i4 = HEAP32[i5 >> 2] | 0;
  32717. i8 = i3;
  32718. i7 = HEAP32[i8 + 4 >> 2] | 0;
  32719. i6 = i4;
  32720. HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
  32721. HEAP32[i6 + 4 >> 2] = i7;
  32722. HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
  32723. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
  32724. i5 = i2;
  32725. STACKTOP = i1;
  32726. return i5 | 0;
  32727. }
  32728. return 0;
  32729. }
  32730. function _lua_checkstack(i7, i4) {
  32731. i7 = i7 | 0;
  32732. i4 = i4 | 0;
  32733. var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0;
  32734. i1 = STACKTOP;
  32735. STACKTOP = STACKTOP + 16 | 0;
  32736. i3 = i1;
  32737. HEAP32[i3 >> 2] = i4;
  32738. i2 = HEAP32[i7 + 16 >> 2] | 0;
  32739. i5 = i7 + 8 | 0;
  32740. i6 = HEAP32[i5 >> 2] | 0;
  32741. i8 = i6;
  32742. do {
  32743. if (((HEAP32[i7 + 24 >> 2] | 0) - i8 >> 4 | 0) <= (i4 | 0)) {
  32744. if (((i8 - (HEAP32[i7 + 28 >> 2] | 0) >> 4) + 5 | 0) > (1e6 - i4 | 0)) {
  32745. i8 = 0;
  32746. STACKTOP = i1;
  32747. return i8 | 0;
  32748. }
  32749. i6 = (_luaD_rawrunprotected(i7, 2, i3) | 0) == 0;
  32750. if (i6) {
  32751. i5 = HEAP32[i5 >> 2] | 0;
  32752. i4 = HEAP32[i3 >> 2] | 0;
  32753. i3 = i6 & 1;
  32754. break;
  32755. } else {
  32756. i8 = 0;
  32757. STACKTOP = i1;
  32758. return i8 | 0;
  32759. }
  32760. } else {
  32761. i5 = i6;
  32762. i3 = 1;
  32763. }
  32764. } while (0);
  32765. i2 = i2 + 4 | 0;
  32766. i4 = i5 + (i4 << 4) | 0;
  32767. if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i4 >>> 0)) {
  32768. i8 = i3;
  32769. STACKTOP = i1;
  32770. return i8 | 0;
  32771. }
  32772. HEAP32[i2 >> 2] = i4;
  32773. i8 = i3;
  32774. STACKTOP = i1;
  32775. return i8 | 0;
  32776. }
  32777. function _luaK_exp2nextreg(i1, i3) {
  32778. i1 = i1 | 0;
  32779. i3 = i3 | 0;
  32780. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  32781. i2 = STACKTOP;
  32782. _luaK_dischargevars(i1, i3);
  32783. if (((HEAP32[i3 >> 2] | 0) == 6 ? (i4 = HEAP32[i3 + 8 >> 2] | 0, (i4 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i4 | 0) : 0) {
  32784. i7 = i1 + 48 | 0;
  32785. HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
  32786. }
  32787. i4 = i1 + 48 | 0;
  32788. i5 = HEAP8[i4] | 0;
  32789. i6 = (i5 & 255) + 1 | 0;
  32790. i7 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
  32791. if (!(i6 >>> 0 > (HEAPU8[i7] | 0) >>> 0)) {
  32792. i7 = i5;
  32793. i7 = i7 & 255;
  32794. i7 = i7 + 1 | 0;
  32795. i6 = i7 & 255;
  32796. HEAP8[i4] = i6;
  32797. i7 = i7 & 255;
  32798. i7 = i7 + -1 | 0;
  32799. _exp2reg(i1, i3, i7);
  32800. STACKTOP = i2;
  32801. return;
  32802. }
  32803. if (i6 >>> 0 > 249) {
  32804. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
  32805. }
  32806. HEAP8[i7] = i6;
  32807. i7 = HEAP8[i4] | 0;
  32808. i7 = i7 & 255;
  32809. i7 = i7 + 1 | 0;
  32810. i6 = i7 & 255;
  32811. HEAP8[i4] = i6;
  32812. i7 = i7 & 255;
  32813. i7 = i7 + -1 | 0;
  32814. _exp2reg(i1, i3, i7);
  32815. STACKTOP = i2;
  32816. return;
  32817. }
  32818. function _lua_next(i2, i4) {
  32819. i2 = i2 | 0;
  32820. i4 = i4 | 0;
  32821. var i1 = 0, i3 = 0, i5 = 0;
  32822. i1 = STACKTOP;
  32823. i5 = HEAP32[i2 + 16 >> 2] | 0;
  32824. do {
  32825. if ((i4 | 0) <= 0) {
  32826. if (!((i4 | 0) < -1000999)) {
  32827. i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
  32828. break;
  32829. }
  32830. if ((i4 | 0) == -1001e3) {
  32831. i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
  32832. break;
  32833. }
  32834. i4 = -1001e3 - i4 | 0;
  32835. i5 = HEAP32[i5 >> 2] | 0;
  32836. if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  32837. i4 = i3 + (i4 + -1 << 4) + 16 | 0;
  32838. } else {
  32839. i4 = 5192;
  32840. }
  32841. } else {
  32842. i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
  32843. i4 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  32844. }
  32845. } while (0);
  32846. i3 = i2 + 8 | 0;
  32847. i2 = _luaH_next(i2, HEAP32[i4 >> 2] | 0, (HEAP32[i3 >> 2] | 0) + -16 | 0) | 0;
  32848. i4 = HEAP32[i3 >> 2] | 0;
  32849. HEAP32[i3 >> 2] = (i2 | 0) == 0 ? i4 + -16 | 0 : i4 + 16 | 0;
  32850. STACKTOP = i1;
  32851. return i2 | 0;
  32852. }
  32853. function _inclinenumber(i1) {
  32854. i1 = i1 | 0;
  32855. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  32856. i2 = STACKTOP;
  32857. i4 = HEAP32[i1 >> 2] | 0;
  32858. i3 = i1 + 56 | 0;
  32859. i5 = HEAP32[i3 >> 2] | 0;
  32860. i6 = HEAP32[i5 >> 2] | 0;
  32861. HEAP32[i5 >> 2] = i6 + -1;
  32862. if ((i6 | 0) == 0) {
  32863. i5 = _luaZ_fill(i5) | 0;
  32864. } else {
  32865. i6 = i5 + 4 | 0;
  32866. i5 = HEAP32[i6 >> 2] | 0;
  32867. HEAP32[i6 >> 2] = i5 + 1;
  32868. i5 = HEAPU8[i5] | 0;
  32869. }
  32870. HEAP32[i1 >> 2] = i5;
  32871. if ((i5 | 0) == 13 | (i5 | 0) == 10 ? (i5 | 0) != (i4 | 0) : 0) {
  32872. i3 = HEAP32[i3 >> 2] | 0;
  32873. i6 = HEAP32[i3 >> 2] | 0;
  32874. HEAP32[i3 >> 2] = i6 + -1;
  32875. if ((i6 | 0) == 0) {
  32876. i3 = _luaZ_fill(i3) | 0;
  32877. } else {
  32878. i6 = i3 + 4 | 0;
  32879. i3 = HEAP32[i6 >> 2] | 0;
  32880. HEAP32[i6 >> 2] = i3 + 1;
  32881. i3 = HEAPU8[i3] | 0;
  32882. }
  32883. HEAP32[i1 >> 2] = i3;
  32884. }
  32885. i5 = i1 + 4 | 0;
  32886. i6 = HEAP32[i5 >> 2] | 0;
  32887. HEAP32[i5 >> 2] = i6 + 1;
  32888. if ((i6 | 0) > 2147483643) {
  32889. _luaX_syntaxerror(i1, 12560);
  32890. } else {
  32891. STACKTOP = i2;
  32892. return;
  32893. }
  32894. }
  32895. function _lua_yieldk(i5, i6, i1, i7) {
  32896. i5 = i5 | 0;
  32897. i6 = i6 | 0;
  32898. i1 = i1 | 0;
  32899. i7 = i7 | 0;
  32900. var i2 = 0, i3 = 0, i4 = 0;
  32901. i2 = STACKTOP;
  32902. STACKTOP = STACKTOP + 16 | 0;
  32903. i4 = i2;
  32904. i3 = HEAP32[i5 + 16 >> 2] | 0;
  32905. if ((HEAP16[i5 + 36 >> 1] | 0) != 0) {
  32906. if ((HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i5 | 0)) {
  32907. _luaG_runerror(i5, 2312, i4);
  32908. } else {
  32909. _luaG_runerror(i5, 2264, i4);
  32910. }
  32911. }
  32912. HEAP8[i5 + 6 | 0] = 1;
  32913. HEAP32[i3 + 20 >> 2] = (HEAP32[i3 >> 2] | 0) - (HEAP32[i5 + 28 >> 2] | 0);
  32914. if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
  32915. STACKTOP = i2;
  32916. return 0;
  32917. }
  32918. HEAP32[i3 + 28 >> 2] = i7;
  32919. if ((i7 | 0) == 0) {
  32920. i4 = i5 + 8 | 0;
  32921. i4 = HEAP32[i4 >> 2] | 0;
  32922. i7 = ~i6;
  32923. i7 = i4 + (i7 << 4) | 0;
  32924. HEAP32[i3 >> 2] = i7;
  32925. _luaD_throw(i5, 1);
  32926. }
  32927. HEAP32[i3 + 24 >> 2] = i1;
  32928. i4 = i5 + 8 | 0;
  32929. i4 = HEAP32[i4 >> 2] | 0;
  32930. i7 = ~i6;
  32931. i7 = i4 + (i7 << 4) | 0;
  32932. HEAP32[i3 >> 2] = i7;
  32933. _luaD_throw(i5, 1);
  32934. return 0;
  32935. }
  32936. function _luaH_getint(i4, i6) {
  32937. i4 = i4 | 0;
  32938. i6 = i6 | 0;
  32939. var i1 = 0, i2 = 0, d3 = 0.0, i5 = 0, i7 = 0;
  32940. i1 = STACKTOP;
  32941. STACKTOP = STACKTOP + 16 | 0;
  32942. i5 = i1;
  32943. i7 = i6 + -1 | 0;
  32944. if (i7 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
  32945. i7 = (HEAP32[i4 + 12 >> 2] | 0) + (i7 << 4) | 0;
  32946. STACKTOP = i1;
  32947. return i7 | 0;
  32948. }
  32949. d3 = +(i6 | 0);
  32950. HEAPF64[i5 >> 3] = d3 + 1.0;
  32951. i5 = (HEAP32[i5 + 4 >> 2] | 0) + (HEAP32[i5 >> 2] | 0) | 0;
  32952. if ((i5 | 0) < 0) {
  32953. i6 = 0 - i5 | 0;
  32954. i5 = (i5 | 0) == (i6 | 0) ? 0 : i6;
  32955. }
  32956. i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i5 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
  32957. while (1) {
  32958. if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d3 : 0) {
  32959. break;
  32960. }
  32961. i4 = HEAP32[i4 + 28 >> 2] | 0;
  32962. if ((i4 | 0) == 0) {
  32963. i4 = 5192;
  32964. i2 = 10;
  32965. break;
  32966. }
  32967. }
  32968. if ((i2 | 0) == 10) {
  32969. STACKTOP = i1;
  32970. return i4 | 0;
  32971. }
  32972. i7 = i4;
  32973. STACKTOP = i1;
  32974. return i7 | 0;
  32975. }
  32976. function _luaL_checkversion_(i1, d4) {
  32977. i1 = i1 | 0;
  32978. d4 = +d4;
  32979. var i2 = 0, i3 = 0, i5 = 0, d6 = 0.0;
  32980. i2 = STACKTOP;
  32981. STACKTOP = STACKTOP + 16 | 0;
  32982. i3 = i2;
  32983. i5 = _lua_version(i1) | 0;
  32984. if ((i5 | 0) == (_lua_version(0) | 0)) {
  32985. d6 = +HEAPF64[i5 >> 3];
  32986. if (d6 != d4) {
  32987. HEAPF64[tempDoublePtr >> 3] = d4;
  32988. HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
  32989. HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  32990. i5 = i3 + 8 | 0;
  32991. HEAPF64[tempDoublePtr >> 3] = d6;
  32992. HEAP32[i5 >> 2] = HEAP32[tempDoublePtr >> 2];
  32993. HEAP32[i5 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  32994. _luaL_error(i1, 1528, i3) | 0;
  32995. }
  32996. } else {
  32997. _luaL_error(i1, 1496, i3) | 0;
  32998. }
  32999. _lua_pushnumber(i1, -4660.0);
  33000. if ((_lua_tointegerx(i1, -1, 0) | 0) == -4660 ? (_lua_tounsignedx(i1, -1, 0) | 0) == -4660 : 0) {
  33001. _lua_settop(i1, -2);
  33002. STACKTOP = i2;
  33003. return;
  33004. }
  33005. _luaL_error(i1, 1584, i3) | 0;
  33006. _lua_settop(i1, -2);
  33007. STACKTOP = i2;
  33008. return;
  33009. }
  33010. function _math_random(i1) {
  33011. i1 = i1 | 0;
  33012. var i2 = 0, d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0;
  33013. i2 = STACKTOP;
  33014. STACKTOP = STACKTOP + 16 | 0;
  33015. i4 = i2;
  33016. d3 = +((_rand() | 0) % 2147483647 | 0 | 0) / 2147483647.0;
  33017. i5 = _lua_gettop(i1) | 0;
  33018. if ((i5 | 0) == 0) {
  33019. _lua_pushnumber(i1, d3);
  33020. i5 = 1;
  33021. STACKTOP = i2;
  33022. return i5 | 0;
  33023. } else if ((i5 | 0) == 1) {
  33024. d6 = +_luaL_checknumber(i1, 1);
  33025. if (!(d6 >= 1.0)) {
  33026. _luaL_argerror(i1, 1, 4056) | 0;
  33027. }
  33028. _lua_pushnumber(i1, +Math_floor(+(d3 * d6)) + 1.0);
  33029. i5 = 1;
  33030. STACKTOP = i2;
  33031. return i5 | 0;
  33032. } else if ((i5 | 0) == 2) {
  33033. d6 = +_luaL_checknumber(i1, 1);
  33034. d7 = +_luaL_checknumber(i1, 2);
  33035. if (!(d6 <= d7)) {
  33036. _luaL_argerror(i1, 2, 4056) | 0;
  33037. }
  33038. _lua_pushnumber(i1, d6 + +Math_floor(+(d3 * (d7 - d6 + 1.0))));
  33039. i5 = 1;
  33040. STACKTOP = i2;
  33041. return i5 | 0;
  33042. } else {
  33043. i5 = _luaL_error(i1, 4080, i4) | 0;
  33044. STACKTOP = i2;
  33045. return i5 | 0;
  33046. }
  33047. return 0;
  33048. }
  33049. function _push_onecapture(i2, i3, i4, i6) {
  33050. i2 = i2 | 0;
  33051. i3 = i3 | 0;
  33052. i4 = i4 | 0;
  33053. i6 = i6 | 0;
  33054. var i1 = 0, i5 = 0;
  33055. i1 = STACKTOP;
  33056. STACKTOP = STACKTOP + 16 | 0;
  33057. i5 = i1;
  33058. if ((HEAP32[i2 + 20 >> 2] | 0) <= (i3 | 0)) {
  33059. i2 = HEAP32[i2 + 16 >> 2] | 0;
  33060. if ((i3 | 0) == 0) {
  33061. _lua_pushlstring(i2, i4, i6 - i4 | 0) | 0;
  33062. STACKTOP = i1;
  33063. return;
  33064. } else {
  33065. _luaL_error(i2, 7224, i5) | 0;
  33066. STACKTOP = i1;
  33067. return;
  33068. }
  33069. }
  33070. i4 = HEAP32[i2 + (i3 << 3) + 28 >> 2] | 0;
  33071. if (!((i4 | 0) == -1)) {
  33072. i5 = HEAP32[i2 + 16 >> 2] | 0;
  33073. i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
  33074. if ((i4 | 0) == -2) {
  33075. _lua_pushinteger(i5, i3 + 1 - (HEAP32[i2 + 4 >> 2] | 0) | 0);
  33076. STACKTOP = i1;
  33077. return;
  33078. }
  33079. } else {
  33080. i6 = i2 + 16 | 0;
  33081. _luaL_error(HEAP32[i6 >> 2] | 0, 7248, i5) | 0;
  33082. i5 = HEAP32[i6 >> 2] | 0;
  33083. i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
  33084. }
  33085. _lua_pushlstring(i5, i3, i4) | 0;
  33086. STACKTOP = i1;
  33087. return;
  33088. }
  33089. function _luaK_nil(i7, i6, i5) {
  33090. i7 = i7 | 0;
  33091. i6 = i6 | 0;
  33092. i5 = i5 | 0;
  33093. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
  33094. i2 = STACKTOP;
  33095. i9 = i5 + i6 | 0;
  33096. i1 = i9 + -1 | 0;
  33097. i10 = HEAP32[i7 + 20 >> 2] | 0;
  33098. do {
  33099. if ((i10 | 0) > (HEAP32[i7 + 24 >> 2] | 0) ? (i4 = (HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0) + (i10 + -1 << 2) | 0, i3 = HEAP32[i4 >> 2] | 0, (i3 & 63 | 0) == 4) : 0) {
  33100. i11 = i3 >>> 6 & 255;
  33101. i10 = i11 + (i3 >>> 23) | 0;
  33102. if (!((i11 | 0) <= (i6 | 0) ? (i10 + 1 | 0) >= (i6 | 0) : 0)) {
  33103. i8 = 5;
  33104. }
  33105. if ((i8 | 0) == 5 ? (i11 | 0) < (i6 | 0) | (i11 | 0) > (i9 | 0) : 0) {
  33106. break;
  33107. }
  33108. i5 = (i11 | 0) < (i6 | 0) ? i11 : i6;
  33109. HEAP32[i4 >> 2] = ((i10 | 0) > (i1 | 0) ? i10 : i1) - i5 << 23 | i5 << 6 & 16320 | i3 & 8372287;
  33110. STACKTOP = i2;
  33111. return;
  33112. }
  33113. } while (0);
  33114. _luaK_code(i7, i6 << 6 | (i5 << 23) + -8388608 | 4) | 0;
  33115. STACKTOP = i2;
  33116. return;
  33117. }
  33118. function _lua_settable(i1, i5) {
  33119. i1 = i1 | 0;
  33120. i5 = i5 | 0;
  33121. var i2 = 0, i3 = 0, i4 = 0;
  33122. i2 = STACKTOP;
  33123. i4 = HEAP32[i1 + 16 >> 2] | 0;
  33124. do {
  33125. if ((i5 | 0) <= 0) {
  33126. if (!((i5 | 0) < -1000999)) {
  33127. i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  33128. break;
  33129. }
  33130. if ((i5 | 0) == -1001e3) {
  33131. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  33132. break;
  33133. }
  33134. i5 = -1001e3 - i5 | 0;
  33135. i4 = HEAP32[i4 >> 2] | 0;
  33136. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  33137. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  33138. } else {
  33139. i3 = 5192;
  33140. }
  33141. } else {
  33142. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  33143. i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  33144. }
  33145. } while (0);
  33146. i5 = i1 + 8 | 0;
  33147. i4 = HEAP32[i5 >> 2] | 0;
  33148. _luaV_settable(i1, i3, i4 + -32 | 0, i4 + -16 | 0);
  33149. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -32;
  33150. STACKTOP = i2;
  33151. return;
  33152. }
  33153. function _luaL_findtable(i3, i6, i5, i4) {
  33154. i3 = i3 | 0;
  33155. i6 = i6 | 0;
  33156. i5 = i5 | 0;
  33157. i4 = i4 | 0;
  33158. var i1 = 0, i2 = 0, i7 = 0;
  33159. i2 = STACKTOP;
  33160. if ((i6 | 0) != 0) {
  33161. _lua_pushvalue(i3, i6);
  33162. }
  33163. while (1) {
  33164. i6 = _strchr(i5, 46) | 0;
  33165. if ((i6 | 0) == 0) {
  33166. i6 = i5 + (_strlen(i5 | 0) | 0) | 0;
  33167. }
  33168. i7 = i6 - i5 | 0;
  33169. _lua_pushlstring(i3, i5, i7) | 0;
  33170. _lua_rawget(i3, -2);
  33171. if ((_lua_type(i3, -1) | 0) != 0) {
  33172. if ((_lua_type(i3, -1) | 0) != 5) {
  33173. break;
  33174. }
  33175. } else {
  33176. _lua_settop(i3, -2);
  33177. _lua_createtable(i3, 0, (HEAP8[i6] | 0) == 46 ? 1 : i4);
  33178. _lua_pushlstring(i3, i5, i7) | 0;
  33179. _lua_pushvalue(i3, -2);
  33180. _lua_settable(i3, -4);
  33181. }
  33182. _lua_remove(i3, -2);
  33183. if ((HEAP8[i6] | 0) == 46) {
  33184. i5 = i6 + 1 | 0;
  33185. } else {
  33186. i3 = 0;
  33187. i1 = 10;
  33188. break;
  33189. }
  33190. }
  33191. if ((i1 | 0) == 10) {
  33192. STACKTOP = i2;
  33193. return i3 | 0;
  33194. }
  33195. _lua_settop(i3, -3);
  33196. i7 = i5;
  33197. STACKTOP = i2;
  33198. return i7 | 0;
  33199. }
  33200. function _luaD_call(i1, i4, i5, i8) {
  33201. i1 = i1 | 0;
  33202. i4 = i4 | 0;
  33203. i5 = i5 | 0;
  33204. i8 = i8 | 0;
  33205. var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
  33206. i3 = STACKTOP;
  33207. STACKTOP = STACKTOP + 16 | 0;
  33208. i7 = i3;
  33209. i2 = i1 + 38 | 0;
  33210. i6 = (HEAP16[i2 >> 1] | 0) + 1 << 16 >> 16;
  33211. HEAP16[i2 >> 1] = i6;
  33212. if ((i6 & 65535) > 199) {
  33213. if (i6 << 16 >> 16 == 200) {
  33214. _luaG_runerror(i1, 2240, i7);
  33215. }
  33216. if ((i6 & 65535) > 224) {
  33217. _luaD_throw(i1, 6);
  33218. }
  33219. }
  33220. i6 = (i8 | 0) != 0;
  33221. if (!i6) {
  33222. i8 = i1 + 36 | 0;
  33223. HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + 1 << 16 >> 16;
  33224. }
  33225. if ((_luaD_precall(i1, i4, i5) | 0) == 0) {
  33226. _luaV_execute(i1);
  33227. }
  33228. if (i6) {
  33229. i8 = HEAP16[i2 >> 1] | 0;
  33230. i8 = i8 + -1 << 16 >> 16;
  33231. HEAP16[i2 >> 1] = i8;
  33232. STACKTOP = i3;
  33233. return;
  33234. }
  33235. i8 = i1 + 36 | 0;
  33236. HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + -1 << 16 >> 16;
  33237. i8 = HEAP16[i2 >> 1] | 0;
  33238. i8 = i8 + -1 << 16 >> 16;
  33239. HEAP16[i2 >> 1] = i8;
  33240. STACKTOP = i3;
  33241. return;
  33242. }
  33243. function _pushline(i6, i1) {
  33244. i6 = i6 | 0;
  33245. i1 = i1 | 0;
  33246. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  33247. i2 = STACKTOP;
  33248. STACKTOP = STACKTOP + 528 | 0;
  33249. i4 = i2;
  33250. i3 = i2 + 8 | 0;
  33251. i7 = (i1 | 0) != 0;
  33252. _lua_getglobal(i6, i7 ? 288 : 296);
  33253. i8 = _lua_tolstring(i6, -1, 0) | 0;
  33254. if ((i8 | 0) == 0) {
  33255. i8 = i7 ? 312 : 320;
  33256. }
  33257. i7 = HEAP32[_stdout >> 2] | 0;
  33258. _fputs(i8 | 0, i7 | 0) | 0;
  33259. _fflush(i7 | 0) | 0;
  33260. i8 = (_fgets(i3 | 0, 512, HEAP32[_stdin >> 2] | 0) | 0) == 0;
  33261. _lua_settop(i6, -2);
  33262. if (i8) {
  33263. i8 = 0;
  33264. STACKTOP = i2;
  33265. return i8 | 0;
  33266. }
  33267. i7 = _strlen(i3 | 0) | 0;
  33268. if ((i7 | 0) != 0 ? (i5 = i3 + (i7 + -1) | 0, (HEAP8[i5] | 0) == 10) : 0) {
  33269. HEAP8[i5] = 0;
  33270. }
  33271. if ((i1 | 0) != 0 ? (HEAP8[i3] | 0) == 61 : 0) {
  33272. HEAP32[i4 >> 2] = i3 + 1;
  33273. _lua_pushfstring(i6, 272, i4) | 0;
  33274. i8 = 1;
  33275. STACKTOP = i2;
  33276. return i8 | 0;
  33277. }
  33278. _lua_pushstring(i6, i3) | 0;
  33279. i8 = 1;
  33280. STACKTOP = i2;
  33281. return i8 | 0;
  33282. }
  33283. function _db_getlocal(i1) {
  33284. i1 = i1 | 0;
  33285. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  33286. i2 = STACKTOP;
  33287. STACKTOP = STACKTOP + 112 | 0;
  33288. i4 = i2;
  33289. if ((_lua_type(i1, 1) | 0) == 8) {
  33290. i3 = _lua_tothread(i1, 1) | 0;
  33291. i6 = 1;
  33292. } else {
  33293. i3 = i1;
  33294. i6 = 0;
  33295. }
  33296. i5 = _luaL_checkinteger(i1, i6 | 2) | 0;
  33297. i6 = i6 + 1 | 0;
  33298. if ((_lua_type(i1, i6) | 0) == 6) {
  33299. _lua_pushvalue(i1, i6);
  33300. _lua_pushstring(i1, _lua_getlocal(i1, 0, i5) | 0) | 0;
  33301. i6 = 1;
  33302. STACKTOP = i2;
  33303. return i6 | 0;
  33304. }
  33305. if ((_lua_getstack(i3, _luaL_checkinteger(i1, i6) | 0, i4) | 0) == 0) {
  33306. i6 = _luaL_argerror(i1, i6, 11560) | 0;
  33307. STACKTOP = i2;
  33308. return i6 | 0;
  33309. }
  33310. i4 = _lua_getlocal(i3, i4, i5) | 0;
  33311. if ((i4 | 0) == 0) {
  33312. _lua_pushnil(i1);
  33313. i6 = 1;
  33314. STACKTOP = i2;
  33315. return i6 | 0;
  33316. } else {
  33317. _lua_xmove(i3, i1, 1);
  33318. _lua_pushstring(i1, i4) | 0;
  33319. _lua_pushvalue(i1, -2);
  33320. i6 = 2;
  33321. STACKTOP = i2;
  33322. return i6 | 0;
  33323. }
  33324. return 0;
  33325. }
  33326. function _luaB_print(i1) {
  33327. i1 = i1 | 0;
  33328. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  33329. i3 = STACKTOP;
  33330. STACKTOP = STACKTOP + 16 | 0;
  33331. i2 = i3;
  33332. i4 = i3 + 4 | 0;
  33333. i6 = _lua_gettop(i1) | 0;
  33334. _lua_getglobal(i1, 9584);
  33335. i5 = HEAP32[_stdout >> 2] | 0;
  33336. L1 : do {
  33337. if ((i6 | 0) >= 1) {
  33338. i7 = 1;
  33339. while (1) {
  33340. _lua_pushvalue(i1, -1);
  33341. _lua_pushvalue(i1, i7);
  33342. _lua_callk(i1, 1, 1, 0, 0);
  33343. i8 = _lua_tolstring(i1, -1, i4) | 0;
  33344. if ((i8 | 0) == 0) {
  33345. break;
  33346. }
  33347. if ((i7 | 0) > 1) {
  33348. _fputc(9, i5 | 0) | 0;
  33349. }
  33350. _fwrite(i8 | 0, 1, HEAP32[i4 >> 2] | 0, i5 | 0) | 0;
  33351. _lua_settop(i1, -2);
  33352. if ((i7 | 0) < (i6 | 0)) {
  33353. i7 = i7 + 1 | 0;
  33354. } else {
  33355. break L1;
  33356. }
  33357. }
  33358. i8 = _luaL_error(i1, 9816, i2) | 0;
  33359. STACKTOP = i3;
  33360. return i8 | 0;
  33361. }
  33362. } while (0);
  33363. _fputc(10, i5 | 0) | 0;
  33364. _fflush(i5 | 0) | 0;
  33365. i8 = 0;
  33366. STACKTOP = i3;
  33367. return i8 | 0;
  33368. }
  33369. function _luaB_load(i1) {
  33370. i1 = i1 | 0;
  33371. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  33372. i2 = STACKTOP;
  33373. STACKTOP = STACKTOP + 16 | 0;
  33374. i5 = i2;
  33375. i6 = _lua_tolstring(i1, 1, i5) | 0;
  33376. i4 = _luaL_optlstring(i1, 3, 9872, 0) | 0;
  33377. i3 = (_lua_type(i1, 4) | 0) != -1;
  33378. if ((i6 | 0) == 0) {
  33379. i6 = _luaL_optlstring(i1, 2, 9880, 0) | 0;
  33380. _luaL_checktype(i1, 1, 6);
  33381. _lua_settop(i1, 5);
  33382. i4 = _lua_load(i1, 3, 0, i6, i4) | 0;
  33383. } else {
  33384. i7 = _luaL_optlstring(i1, 2, i6, 0) | 0;
  33385. i4 = _luaL_loadbufferx(i1, i6, HEAP32[i5 >> 2] | 0, i7, i4) | 0;
  33386. }
  33387. if ((i4 | 0) != 0) {
  33388. _lua_pushnil(i1);
  33389. _lua_insert(i1, -2);
  33390. i7 = 2;
  33391. STACKTOP = i2;
  33392. return i7 | 0;
  33393. }
  33394. if (!i3) {
  33395. i7 = 1;
  33396. STACKTOP = i2;
  33397. return i7 | 0;
  33398. }
  33399. _lua_pushvalue(i1, i3 ? 4 : 0);
  33400. if ((_lua_setupvalue(i1, -2, 1) | 0) != 0) {
  33401. i7 = 1;
  33402. STACKTOP = i2;
  33403. return i7 | 0;
  33404. }
  33405. _lua_settop(i1, -2);
  33406. i7 = 1;
  33407. STACKTOP = i2;
  33408. return i7 | 0;
  33409. }
  33410. function _db_debug(i2) {
  33411. i2 = i2 | 0;
  33412. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  33413. i1 = STACKTOP;
  33414. STACKTOP = STACKTOP + 256 | 0;
  33415. i6 = i1;
  33416. i4 = i1 + 4 | 0;
  33417. i3 = HEAP32[_stderr >> 2] | 0;
  33418. _fwrite(12040, 11, 1, i3 | 0) | 0;
  33419. _fflush(i3 | 0) | 0;
  33420. i5 = HEAP32[_stdin >> 2] | 0;
  33421. if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
  33422. STACKTOP = i1;
  33423. return 0;
  33424. }
  33425. while (1) {
  33426. if ((_strcmp(i4, 12056) | 0) == 0) {
  33427. i2 = 7;
  33428. break;
  33429. }
  33430. if (!((_luaL_loadbufferx(i2, i4, _strlen(i4 | 0) | 0, 12064, 0) | 0) == 0 ? (_lua_pcallk(i2, 0, 0, 0, 0, 0) | 0) == 0 : 0)) {
  33431. HEAP32[i6 >> 2] = _lua_tolstring(i2, -1, 0) | 0;
  33432. _fprintf(i3 | 0, 12088, i6 | 0) | 0;
  33433. _fflush(i3 | 0) | 0;
  33434. }
  33435. _lua_settop(i2, 0);
  33436. _fwrite(12040, 11, 1, i3 | 0) | 0;
  33437. _fflush(i3 | 0) | 0;
  33438. if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
  33439. i2 = 7;
  33440. break;
  33441. }
  33442. }
  33443. if ((i2 | 0) == 7) {
  33444. STACKTOP = i1;
  33445. return 0;
  33446. }
  33447. return 0;
  33448. }
  33449. function _luaL_prepbuffsize(i2, i7) {
  33450. i2 = i2 | 0;
  33451. i7 = i7 | 0;
  33452. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
  33453. i3 = STACKTOP;
  33454. STACKTOP = STACKTOP + 16 | 0;
  33455. i1 = HEAP32[i2 + 12 >> 2] | 0;
  33456. i4 = i2 + 4 | 0;
  33457. i8 = HEAP32[i4 >> 2] | 0;
  33458. i5 = i2 + 8 | 0;
  33459. i6 = HEAP32[i5 >> 2] | 0;
  33460. if (!((i8 - i6 | 0) >>> 0 < i7 >>> 0)) {
  33461. i7 = HEAP32[i2 >> 2] | 0;
  33462. i8 = i6;
  33463. i8 = i7 + i8 | 0;
  33464. STACKTOP = i3;
  33465. return i8 | 0;
  33466. }
  33467. i8 = i8 << 1;
  33468. i8 = (i8 - i6 | 0) >>> 0 < i7 >>> 0 ? i6 + i7 | 0 : i8;
  33469. if (i8 >>> 0 < i6 >>> 0 | (i8 - i6 | 0) >>> 0 < i7 >>> 0) {
  33470. _luaL_error(i1, 1272, i3) | 0;
  33471. }
  33472. i6 = _lua_newuserdata(i1, i8) | 0;
  33473. _memcpy(i6 | 0, HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  33474. if ((HEAP32[i2 >> 2] | 0) != (i2 + 16 | 0)) {
  33475. _lua_remove(i1, -2);
  33476. }
  33477. HEAP32[i2 >> 2] = i6;
  33478. HEAP32[i4 >> 2] = i8;
  33479. i7 = i6;
  33480. i8 = HEAP32[i5 >> 2] | 0;
  33481. i8 = i7 + i8 | 0;
  33482. STACKTOP = i3;
  33483. return i8 | 0;
  33484. }
  33485. function _luaG_runerror(i1, i5, i4) {
  33486. i1 = i1 | 0;
  33487. i5 = i5 | 0;
  33488. i4 = i4 | 0;
  33489. var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
  33490. i6 = STACKTOP;
  33491. STACKTOP = STACKTOP + 96 | 0;
  33492. i2 = i6;
  33493. i3 = i6 + 32 | 0;
  33494. i6 = i6 + 16 | 0;
  33495. HEAP32[i6 >> 2] = i4;
  33496. i4 = _luaO_pushvfstring(i1, i5, i6) | 0;
  33497. i6 = HEAP32[i1 + 16 >> 2] | 0;
  33498. if ((HEAP8[i6 + 18 | 0] & 1) == 0) {
  33499. _luaG_errormsg(i1);
  33500. }
  33501. i5 = HEAP32[(HEAP32[HEAP32[i6 >> 2] >> 2] | 0) + 12 >> 2] | 0;
  33502. i7 = HEAP32[i5 + 20 >> 2] | 0;
  33503. if ((i7 | 0) == 0) {
  33504. i6 = 0;
  33505. } else {
  33506. i6 = HEAP32[i7 + (((HEAP32[i6 + 28 >> 2] | 0) - (HEAP32[i5 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
  33507. }
  33508. i5 = HEAP32[i5 + 36 >> 2] | 0;
  33509. if ((i5 | 0) == 0) {
  33510. HEAP8[i3] = 63;
  33511. HEAP8[i3 + 1 | 0] = 0;
  33512. } else {
  33513. _luaO_chunkid(i3, i5 + 16 | 0, 60);
  33514. }
  33515. HEAP32[i2 >> 2] = i3;
  33516. HEAP32[i2 + 4 >> 2] = i6;
  33517. HEAP32[i2 + 8 >> 2] = i4;
  33518. _luaO_pushfstring(i1, 2024, i2) | 0;
  33519. _luaG_errormsg(i1);
  33520. }
  33521. function _db_upvaluejoin(i1) {
  33522. i1 = i1 | 0;
  33523. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  33524. i3 = STACKTOP;
  33525. STACKTOP = STACKTOP + 112 | 0;
  33526. i4 = i3;
  33527. i2 = _luaL_checkinteger(i1, 2) | 0;
  33528. _luaL_checktype(i1, 1, 6);
  33529. _lua_pushvalue(i1, 1);
  33530. _lua_getinfo(i1, 11728, i4) | 0;
  33531. if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
  33532. _luaL_argerror(i1, 2, 11736) | 0;
  33533. }
  33534. i5 = _luaL_checkinteger(i1, 4) | 0;
  33535. _luaL_checktype(i1, 3, 6);
  33536. _lua_pushvalue(i1, 3);
  33537. _lua_getinfo(i1, 11728, i4) | 0;
  33538. if (!((i5 | 0) > 0 ? (i5 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
  33539. _luaL_argerror(i1, 4, 11736) | 0;
  33540. }
  33541. if ((_lua_iscfunction(i1, 1) | 0) != 0) {
  33542. _luaL_argerror(i1, 1, 11760) | 0;
  33543. }
  33544. if ((_lua_iscfunction(i1, 3) | 0) == 0) {
  33545. _lua_upvaluejoin(i1, 1, i2, 3, i5);
  33546. STACKTOP = i3;
  33547. return 0;
  33548. }
  33549. _luaL_argerror(i1, 3, 11760) | 0;
  33550. _lua_upvaluejoin(i1, 1, i2, 3, i5);
  33551. STACKTOP = i3;
  33552. return 0;
  33553. }
  33554. function _luaK_jump(i1) {
  33555. i1 = i1 | 0;
  33556. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  33557. i3 = STACKTOP;
  33558. i2 = i1 + 28 | 0;
  33559. i7 = HEAP32[i2 >> 2] | 0;
  33560. HEAP32[i2 >> 2] = -1;
  33561. i2 = _luaK_code(i1, 2147450903) | 0;
  33562. if ((i7 | 0) == -1) {
  33563. i9 = i2;
  33564. STACKTOP = i3;
  33565. return i9 | 0;
  33566. }
  33567. if ((i2 | 0) == -1) {
  33568. i9 = i7;
  33569. STACKTOP = i3;
  33570. return i9 | 0;
  33571. }
  33572. i6 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  33573. i8 = i2;
  33574. while (1) {
  33575. i5 = i6 + (i8 << 2) | 0;
  33576. i4 = HEAP32[i5 >> 2] | 0;
  33577. i9 = (i4 >>> 14) + -131071 | 0;
  33578. if ((i9 | 0) == -1) {
  33579. break;
  33580. }
  33581. i9 = i8 + 1 + i9 | 0;
  33582. if ((i9 | 0) == -1) {
  33583. break;
  33584. } else {
  33585. i8 = i9;
  33586. }
  33587. }
  33588. i6 = i7 + ~i8 | 0;
  33589. if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
  33590. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  33591. }
  33592. HEAP32[i5 >> 2] = (i6 << 14) + 2147467264 | i4 & 16383;
  33593. i9 = i2;
  33594. STACKTOP = i3;
  33595. return i9 | 0;
  33596. }
  33597. function _findfield(i2, i3, i4) {
  33598. i2 = i2 | 0;
  33599. i3 = i3 | 0;
  33600. i4 = i4 | 0;
  33601. var i1 = 0;
  33602. i1 = STACKTOP;
  33603. L1 : do {
  33604. if (((i4 | 0) != 0 ? (_lua_type(i2, -1) | 0) == 5 : 0) ? (_lua_pushnil(i2), (_lua_next(i2, -2) | 0) != 0) : 0) {
  33605. i4 = i4 + -1 | 0;
  33606. while (1) {
  33607. if ((_lua_type(i2, -2) | 0) == 4) {
  33608. if ((_lua_rawequal(i2, i3, -1) | 0) != 0) {
  33609. i3 = 7;
  33610. break;
  33611. }
  33612. if ((_findfield(i2, i3, i4) | 0) != 0) {
  33613. i3 = 9;
  33614. break;
  33615. }
  33616. }
  33617. _lua_settop(i2, -2);
  33618. if ((_lua_next(i2, -2) | 0) == 0) {
  33619. i2 = 0;
  33620. break L1;
  33621. }
  33622. }
  33623. if ((i3 | 0) == 7) {
  33624. _lua_settop(i2, -2);
  33625. i2 = 1;
  33626. break;
  33627. } else if ((i3 | 0) == 9) {
  33628. _lua_remove(i2, -2);
  33629. _lua_pushlstring(i2, 1776, 1) | 0;
  33630. _lua_insert(i2, -2);
  33631. _lua_concat(i2, 3);
  33632. i2 = 1;
  33633. break;
  33634. }
  33635. } else {
  33636. i2 = 0;
  33637. }
  33638. } while (0);
  33639. STACKTOP = i1;
  33640. return i2 | 0;
  33641. }
  33642. function _db_gethook(i1) {
  33643. i1 = i1 | 0;
  33644. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  33645. i3 = STACKTOP;
  33646. STACKTOP = STACKTOP + 16 | 0;
  33647. i2 = i3;
  33648. if ((_lua_type(i1, 1) | 0) == 8) {
  33649. i4 = _lua_tothread(i1, 1) | 0;
  33650. } else {
  33651. i4 = i1;
  33652. }
  33653. i5 = _lua_gethookmask(i4) | 0;
  33654. i6 = _lua_gethook(i4) | 0;
  33655. if ((i6 | 0) != 0 & (i6 | 0) != 9) {
  33656. _lua_pushlstring(i1, 12024, 13) | 0;
  33657. } else {
  33658. _luaL_getsubtable(i1, -1001e3, 11584) | 0;
  33659. _lua_pushthread(i4) | 0;
  33660. _lua_xmove(i4, i1, 1);
  33661. _lua_rawget(i1, -2);
  33662. _lua_remove(i1, -2);
  33663. }
  33664. if ((i5 & 1 | 0) == 0) {
  33665. i6 = 0;
  33666. } else {
  33667. HEAP8[i2] = 99;
  33668. i6 = 1;
  33669. }
  33670. if ((i5 & 2 | 0) != 0) {
  33671. HEAP8[i2 + i6 | 0] = 114;
  33672. i6 = i6 + 1 | 0;
  33673. }
  33674. if ((i5 & 4 | 0) != 0) {
  33675. HEAP8[i2 + i6 | 0] = 108;
  33676. i6 = i6 + 1 | 0;
  33677. }
  33678. HEAP8[i2 + i6 | 0] = 0;
  33679. _lua_pushstring(i1, i2) | 0;
  33680. _lua_pushinteger(i1, _lua_gethookcount(i4) | 0);
  33681. STACKTOP = i3;
  33682. return 3;
  33683. }
  33684. function _lua_tothread(i3, i5) {
  33685. i3 = i3 | 0;
  33686. i5 = i5 | 0;
  33687. var i1 = 0, i2 = 0, i4 = 0;
  33688. i1 = STACKTOP;
  33689. i4 = HEAP32[i3 + 16 >> 2] | 0;
  33690. do {
  33691. if ((i5 | 0) <= 0) {
  33692. if (!((i5 | 0) < -1000999)) {
  33693. i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
  33694. break;
  33695. }
  33696. if ((i5 | 0) == -1001e3) {
  33697. i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  33698. break;
  33699. }
  33700. i3 = -1001e3 - i5 | 0;
  33701. i4 = HEAP32[i4 >> 2] | 0;
  33702. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  33703. i2 = i2 + (i3 + -1 << 4) + 16 | 0;
  33704. } else {
  33705. i2 = 5192;
  33706. }
  33707. } else {
  33708. i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  33709. i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  33710. }
  33711. } while (0);
  33712. if ((HEAP32[i2 + 8 >> 2] | 0) != 72) {
  33713. i5 = 0;
  33714. STACKTOP = i1;
  33715. return i5 | 0;
  33716. }
  33717. i5 = HEAP32[i2 >> 2] | 0;
  33718. STACKTOP = i1;
  33719. return i5 | 0;
  33720. }
  33721. function _luaD_throw(i1, i2) {
  33722. i1 = i1 | 0;
  33723. i2 = i2 | 0;
  33724. var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  33725. i3 = i1 + 64 | 0;
  33726. i4 = HEAP32[i3 >> 2] | 0;
  33727. if ((i4 | 0) != 0) {
  33728. HEAP32[i4 + 160 >> 2] = i2;
  33729. _longjmp((HEAP32[i3 >> 2] | 0) + 4 | 0, 1);
  33730. }
  33731. HEAP8[i1 + 6 | 0] = i2;
  33732. i4 = i1 + 12 | 0;
  33733. i3 = HEAP32[i4 >> 2] | 0;
  33734. i5 = HEAP32[i3 + 172 >> 2] | 0;
  33735. if ((HEAP32[i5 + 64 >> 2] | 0) != 0) {
  33736. i6 = HEAP32[i1 + 8 >> 2] | 0;
  33737. i9 = i5 + 8 | 0;
  33738. i5 = HEAP32[i9 >> 2] | 0;
  33739. HEAP32[i9 >> 2] = i5 + 16;
  33740. i9 = i6 + -16 | 0;
  33741. i8 = HEAP32[i9 + 4 >> 2] | 0;
  33742. i7 = i5;
  33743. HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
  33744. HEAP32[i7 + 4 >> 2] = i8;
  33745. HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
  33746. _luaD_throw(HEAP32[(HEAP32[i4 >> 2] | 0) + 172 >> 2] | 0, i2);
  33747. }
  33748. i2 = HEAP32[i3 + 168 >> 2] | 0;
  33749. if ((i2 | 0) == 0) {
  33750. _abort();
  33751. }
  33752. FUNCTION_TABLE_ii[i2 & 255](i1) | 0;
  33753. _abort();
  33754. }
  33755. function _lua_len(i1, i5) {
  33756. i1 = i1 | 0;
  33757. i5 = i5 | 0;
  33758. var i2 = 0, i3 = 0, i4 = 0;
  33759. i2 = STACKTOP;
  33760. i4 = HEAP32[i1 + 16 >> 2] | 0;
  33761. do {
  33762. if ((i5 | 0) <= 0) {
  33763. if (!((i5 | 0) < -1000999)) {
  33764. i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  33765. break;
  33766. }
  33767. if ((i5 | 0) == -1001e3) {
  33768. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  33769. break;
  33770. }
  33771. i5 = -1001e3 - i5 | 0;
  33772. i4 = HEAP32[i4 >> 2] | 0;
  33773. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  33774. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  33775. } else {
  33776. i3 = 5192;
  33777. }
  33778. } else {
  33779. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  33780. i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  33781. }
  33782. } while (0);
  33783. i5 = i1 + 8 | 0;
  33784. _luaV_objlen(i1, HEAP32[i5 >> 2] | 0, i3);
  33785. HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
  33786. STACKTOP = i2;
  33787. return;
  33788. }
  33789. function _read_line(i4, i5, i1) {
  33790. i4 = i4 | 0;
  33791. i5 = i5 | 0;
  33792. i1 = i1 | 0;
  33793. var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
  33794. i3 = STACKTOP;
  33795. STACKTOP = STACKTOP + 1040 | 0;
  33796. i2 = i3;
  33797. _luaL_buffinit(i4, i2);
  33798. i7 = _luaL_prepbuffsize(i2, 1024) | 0;
  33799. L1 : do {
  33800. if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) != 0) {
  33801. i6 = i2 + 8 | 0;
  33802. while (1) {
  33803. i8 = _strlen(i7 | 0) | 0;
  33804. if ((i8 | 0) != 0 ? (HEAP8[i7 + (i8 + -1) | 0] | 0) == 10 : 0) {
  33805. break;
  33806. }
  33807. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i8;
  33808. i7 = _luaL_prepbuffsize(i2, 1024) | 0;
  33809. if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) == 0) {
  33810. break L1;
  33811. }
  33812. }
  33813. HEAP32[i6 >> 2] = i8 - i1 + (HEAP32[i6 >> 2] | 0);
  33814. _luaL_pushresult(i2);
  33815. i8 = 1;
  33816. STACKTOP = i3;
  33817. return i8 | 0;
  33818. }
  33819. } while (0);
  33820. _luaL_pushresult(i2);
  33821. i8 = (_lua_rawlen(i4, -1) | 0) != 0 | 0;
  33822. STACKTOP = i3;
  33823. return i8 | 0;
  33824. }
  33825. function _luaL_tolstring(i1, i5, i4) {
  33826. i1 = i1 | 0;
  33827. i5 = i5 | 0;
  33828. i4 = i4 | 0;
  33829. var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
  33830. i2 = STACKTOP;
  33831. STACKTOP = STACKTOP + 16 | 0;
  33832. i3 = i2;
  33833. do {
  33834. if ((_luaL_callmeta(i1, i5, 1384) | 0) == 0) {
  33835. i6 = _lua_type(i1, i5) | 0;
  33836. if ((i6 | 0) == 0) {
  33837. _lua_pushlstring(i1, 1416, 3) | 0;
  33838. break;
  33839. } else if ((i6 | 0) == 1) {
  33840. i6 = (_lua_toboolean(i1, i5) | 0) != 0;
  33841. _lua_pushstring(i1, i6 ? 1400 : 1408) | 0;
  33842. break;
  33843. } else if ((i6 | 0) == 4 | (i6 | 0) == 3) {
  33844. _lua_pushvalue(i1, i5);
  33845. break;
  33846. } else {
  33847. i7 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
  33848. i6 = _lua_topointer(i1, i5) | 0;
  33849. HEAP32[i3 >> 2] = i7;
  33850. HEAP32[i3 + 4 >> 2] = i6;
  33851. _lua_pushfstring(i1, 1424, i3) | 0;
  33852. break;
  33853. }
  33854. }
  33855. } while (0);
  33856. i7 = _lua_tolstring(i1, -1, i4) | 0;
  33857. STACKTOP = i2;
  33858. return i7 | 0;
  33859. }
  33860. function _save(i7, i1) {
  33861. i7 = i7 | 0;
  33862. i1 = i1 | 0;
  33863. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
  33864. i2 = STACKTOP;
  33865. i4 = HEAP32[i7 + 60 >> 2] | 0;
  33866. i3 = i4 + 4 | 0;
  33867. i8 = HEAP32[i3 >> 2] | 0;
  33868. i6 = i4 + 8 | 0;
  33869. i5 = HEAP32[i6 >> 2] | 0;
  33870. if (!((i8 + 1 | 0) >>> 0 > i5 >>> 0)) {
  33871. i6 = HEAP32[i4 >> 2] | 0;
  33872. i7 = i1 & 255;
  33873. i5 = i8 + 1 | 0;
  33874. HEAP32[i3 >> 2] = i5;
  33875. i8 = i6 + i8 | 0;
  33876. HEAP8[i8] = i7;
  33877. STACKTOP = i2;
  33878. return;
  33879. }
  33880. if (i5 >>> 0 > 2147483645) {
  33881. _lexerror(i7, 12368, 0);
  33882. }
  33883. i8 = i5 << 1;
  33884. i7 = HEAP32[i7 + 52 >> 2] | 0;
  33885. if ((i8 | 0) == -2) {
  33886. _luaM_toobig(i7);
  33887. }
  33888. i7 = _luaM_realloc_(i7, HEAP32[i4 >> 2] | 0, i5, i8) | 0;
  33889. HEAP32[i4 >> 2] = i7;
  33890. HEAP32[i6 >> 2] = i8;
  33891. i8 = HEAP32[i3 >> 2] | 0;
  33892. i6 = i7;
  33893. i7 = i1 & 255;
  33894. i5 = i8 + 1 | 0;
  33895. HEAP32[i3 >> 2] = i5;
  33896. i8 = i6 + i8 | 0;
  33897. HEAP8[i8] = i7;
  33898. STACKTOP = i2;
  33899. return;
  33900. }
  33901. function _luaK_patchtohere(i1, i3) {
  33902. i1 = i1 | 0;
  33903. i3 = i3 | 0;
  33904. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  33905. i2 = STACKTOP;
  33906. HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
  33907. i4 = i1 + 28 | 0;
  33908. if ((i3 | 0) == -1) {
  33909. STACKTOP = i2;
  33910. return;
  33911. }
  33912. i7 = HEAP32[i4 >> 2] | 0;
  33913. if ((i7 | 0) == -1) {
  33914. HEAP32[i4 >> 2] = i3;
  33915. STACKTOP = i2;
  33916. return;
  33917. }
  33918. i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  33919. while (1) {
  33920. i6 = i4 + (i7 << 2) | 0;
  33921. i5 = HEAP32[i6 >> 2] | 0;
  33922. i8 = (i5 >>> 14) + -131071 | 0;
  33923. if ((i8 | 0) == -1) {
  33924. break;
  33925. }
  33926. i8 = i7 + 1 + i8 | 0;
  33927. if ((i8 | 0) == -1) {
  33928. break;
  33929. } else {
  33930. i7 = i8;
  33931. }
  33932. }
  33933. i3 = ~i7 + i3 | 0;
  33934. if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
  33935. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  33936. }
  33937. HEAP32[i6 >> 2] = (i3 << 14) + 2147467264 | i5 & 16383;
  33938. STACKTOP = i2;
  33939. return;
  33940. }
  33941. function _tinsert(i1) {
  33942. i1 = i1 | 0;
  33943. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  33944. i2 = STACKTOP;
  33945. STACKTOP = STACKTOP + 16 | 0;
  33946. i7 = i2;
  33947. _luaL_checktype(i1, 1, 5);
  33948. i4 = _luaL_len(i1, 1) | 0;
  33949. i3 = i4 + 1 | 0;
  33950. i6 = _lua_gettop(i1) | 0;
  33951. if ((i6 | 0) == 3) {
  33952. i5 = 2;
  33953. } else if ((i6 | 0) != 2) {
  33954. i7 = _luaL_error(i1, 8320, i7) | 0;
  33955. STACKTOP = i2;
  33956. return i7 | 0;
  33957. }
  33958. if ((i5 | 0) == 2) {
  33959. i5 = _luaL_checkinteger(i1, 2) | 0;
  33960. if ((i5 | 0) < 1 | (i5 | 0) > (i3 | 0)) {
  33961. _luaL_argerror(i1, 2, 8256) | 0;
  33962. }
  33963. if ((i4 | 0) < (i5 | 0)) {
  33964. i3 = i5;
  33965. } else {
  33966. while (1) {
  33967. i4 = i3 + -1 | 0;
  33968. _lua_rawgeti(i1, 1, i4);
  33969. _lua_rawseti(i1, 1, i3);
  33970. if ((i4 | 0) > (i5 | 0)) {
  33971. i3 = i4;
  33972. } else {
  33973. i3 = i5;
  33974. break;
  33975. }
  33976. }
  33977. }
  33978. }
  33979. _lua_rawseti(i1, 1, i3);
  33980. i7 = 0;
  33981. STACKTOP = i2;
  33982. return i7 | 0;
  33983. }
  33984. function _lua_iscfunction(i3, i5) {
  33985. i3 = i3 | 0;
  33986. i5 = i5 | 0;
  33987. var i1 = 0, i2 = 0, i4 = 0;
  33988. i1 = STACKTOP;
  33989. i4 = HEAP32[i3 + 16 >> 2] | 0;
  33990. do {
  33991. if ((i5 | 0) <= 0) {
  33992. if (!((i5 | 0) < -1000999)) {
  33993. i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
  33994. break;
  33995. }
  33996. if ((i5 | 0) == -1001e3) {
  33997. i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
  33998. break;
  33999. }
  34000. i3 = -1001e3 - i5 | 0;
  34001. i4 = HEAP32[i4 >> 2] | 0;
  34002. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
  34003. i2 = i2 + (i3 + -1 << 4) + 16 | 0;
  34004. } else {
  34005. i2 = 5192;
  34006. }
  34007. } else {
  34008. i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  34009. i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
  34010. }
  34011. } while (0);
  34012. i5 = HEAP32[i2 + 8 >> 2] | 0;
  34013. STACKTOP = i1;
  34014. return ((i5 | 0) == 22 | (i5 | 0) == 102) & 1 | 0;
  34015. }
  34016. function _lua_gettable(i1, i5) {
  34017. i1 = i1 | 0;
  34018. i5 = i5 | 0;
  34019. var i2 = 0, i3 = 0, i4 = 0;
  34020. i2 = STACKTOP;
  34021. i4 = HEAP32[i1 + 16 >> 2] | 0;
  34022. do {
  34023. if ((i5 | 0) <= 0) {
  34024. if (!((i5 | 0) < -1000999)) {
  34025. i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
  34026. break;
  34027. }
  34028. if ((i5 | 0) == -1001e3) {
  34029. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
  34030. break;
  34031. }
  34032. i5 = -1001e3 - i5 | 0;
  34033. i4 = HEAP32[i4 >> 2] | 0;
  34034. if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
  34035. i3 = i3 + (i5 + -1 << 4) + 16 | 0;
  34036. } else {
  34037. i3 = 5192;
  34038. }
  34039. } else {
  34040. i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
  34041. i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
  34042. }
  34043. } while (0);
  34044. i5 = (HEAP32[i1 + 8 >> 2] | 0) + -16 | 0;
  34045. _luaV_gettable(i1, i3, i5, i5);
  34046. STACKTOP = i2;
  34047. return;
  34048. }
  34049. function _luaG_errormsg(i1) {
  34050. i1 = i1 | 0;
  34051. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
  34052. i2 = HEAP32[i1 + 68 >> 2] | 0;
  34053. if ((i2 | 0) == 0) {
  34054. _luaD_throw(i1, 2);
  34055. }
  34056. i4 = HEAP32[i1 + 28 >> 2] | 0;
  34057. i3 = i4 + (i2 + 8) | 0;
  34058. if ((HEAP32[i3 >> 2] & 15 | 0) != 6) {
  34059. _luaD_throw(i1, 6);
  34060. }
  34061. i5 = i1 + 8 | 0;
  34062. i6 = HEAP32[i5 >> 2] | 0;
  34063. i9 = i6 + -16 | 0;
  34064. i8 = HEAP32[i9 + 4 >> 2] | 0;
  34065. i7 = i6;
  34066. HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
  34067. HEAP32[i7 + 4 >> 2] = i8;
  34068. HEAP32[i6 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
  34069. i6 = HEAP32[i5 >> 2] | 0;
  34070. i7 = i4 + i2 | 0;
  34071. i2 = HEAP32[i7 + 4 >> 2] | 0;
  34072. i4 = i6 + -16 | 0;
  34073. HEAP32[i4 >> 2] = HEAP32[i7 >> 2];
  34074. HEAP32[i4 + 4 >> 2] = i2;
  34075. HEAP32[i6 + -8 >> 2] = HEAP32[i3 >> 2];
  34076. i4 = HEAP32[i5 >> 2] | 0;
  34077. HEAP32[i5 >> 2] = i4 + 16;
  34078. _luaD_call(i1, i4 + -16 | 0, 1, 0);
  34079. _luaD_throw(i1, 2);
  34080. }
  34081. function _luaB_costatus(i1) {
  34082. i1 = i1 | 0;
  34083. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  34084. i4 = STACKTOP;
  34085. STACKTOP = STACKTOP + 112 | 0;
  34086. i3 = i4;
  34087. i2 = _lua_tothread(i1, 1) | 0;
  34088. if ((i2 | 0) == 0) {
  34089. _luaL_argerror(i1, 1, 10856) | 0;
  34090. }
  34091. do {
  34092. if ((i2 | 0) != (i1 | 0)) {
  34093. i5 = _lua_status(i2) | 0;
  34094. if ((i5 | 0) == 0) {
  34095. if ((_lua_getstack(i2, 0, i3) | 0) > 0) {
  34096. _lua_pushlstring(i1, 10896, 6) | 0;
  34097. break;
  34098. }
  34099. if ((_lua_gettop(i2) | 0) == 0) {
  34100. _lua_pushlstring(i1, 10904, 4) | 0;
  34101. break;
  34102. } else {
  34103. _lua_pushlstring(i1, 10880, 9) | 0;
  34104. break;
  34105. }
  34106. } else if ((i5 | 0) == 1) {
  34107. _lua_pushlstring(i1, 10880, 9) | 0;
  34108. break;
  34109. } else {
  34110. _lua_pushlstring(i1, 10904, 4) | 0;
  34111. break;
  34112. }
  34113. } else {
  34114. _lua_pushlstring(i1, 10728, 7) | 0;
  34115. }
  34116. } while (0);
  34117. STACKTOP = i4;
  34118. return 1;
  34119. }
  34120. function _searcher_Lua(i1) {
  34121. i1 = i1 | 0;
  34122. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  34123. i2 = STACKTOP;
  34124. STACKTOP = STACKTOP + 16 | 0;
  34125. i3 = i2;
  34126. i4 = _luaL_checklstring(i1, 1, 0) | 0;
  34127. _lua_getfield(i1, -1001001, 4256);
  34128. i5 = _lua_tolstring(i1, -1, 0) | 0;
  34129. if ((i5 | 0) == 0) {
  34130. HEAP32[i3 >> 2] = 4256;
  34131. _luaL_error(i1, 5032, i3) | 0;
  34132. }
  34133. i4 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
  34134. if ((i4 | 0) == 0) {
  34135. i5 = 1;
  34136. STACKTOP = i2;
  34137. return i5 | 0;
  34138. }
  34139. if ((_luaL_loadfilex(i1, i4, 0) | 0) == 0) {
  34140. _lua_pushstring(i1, i4) | 0;
  34141. i5 = 2;
  34142. STACKTOP = i2;
  34143. return i5 | 0;
  34144. } else {
  34145. i6 = _lua_tolstring(i1, 1, 0) | 0;
  34146. i5 = _lua_tolstring(i1, -1, 0) | 0;
  34147. HEAP32[i3 >> 2] = i6;
  34148. HEAP32[i3 + 4 >> 2] = i4;
  34149. HEAP32[i3 + 8 >> 2] = i5;
  34150. i5 = _luaL_error(i1, 4888, i3) | 0;
  34151. STACKTOP = i2;
  34152. return i5 | 0;
  34153. }
  34154. return 0;
  34155. }
  34156. function _str_sub(i1) {
  34157. i1 = i1 | 0;
  34158. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  34159. i3 = STACKTOP;
  34160. STACKTOP = STACKTOP + 16 | 0;
  34161. i4 = i3;
  34162. i2 = _luaL_checklstring(i1, 1, i4) | 0;
  34163. i5 = _luaL_checkinteger(i1, 2) | 0;
  34164. i6 = HEAP32[i4 >> 2] | 0;
  34165. if (!((i5 | 0) > -1)) {
  34166. if (i6 >>> 0 < (0 - i5 | 0) >>> 0) {
  34167. i5 = 0;
  34168. } else {
  34169. i5 = i5 + 1 + i6 | 0;
  34170. }
  34171. }
  34172. i6 = _luaL_optinteger(i1, 3, -1) | 0;
  34173. i4 = HEAP32[i4 >> 2] | 0;
  34174. if (!((i6 | 0) > -1)) {
  34175. if (i4 >>> 0 < (0 - i6 | 0) >>> 0) {
  34176. i6 = 0;
  34177. } else {
  34178. i6 = i6 + 1 + i4 | 0;
  34179. }
  34180. }
  34181. i5 = (i5 | 0) == 0 ? 1 : i5;
  34182. i4 = i6 >>> 0 > i4 >>> 0 ? i4 : i6;
  34183. if (i5 >>> 0 > i4 >>> 0) {
  34184. _lua_pushlstring(i1, 7040, 0) | 0;
  34185. STACKTOP = i3;
  34186. return 1;
  34187. } else {
  34188. _lua_pushlstring(i1, i2 + (i5 + -1) | 0, 1 - i5 + i4 | 0) | 0;
  34189. STACKTOP = i3;
  34190. return 1;
  34191. }
  34192. return 0;
  34193. }
  34194. function _searcher_C(i1) {
  34195. i1 = i1 | 0;
  34196. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  34197. i2 = STACKTOP;
  34198. STACKTOP = STACKTOP + 16 | 0;
  34199. i3 = i2;
  34200. i4 = _luaL_checklstring(i1, 1, 0) | 0;
  34201. _lua_getfield(i1, -1001001, 4440);
  34202. i5 = _lua_tolstring(i1, -1, 0) | 0;
  34203. if ((i5 | 0) == 0) {
  34204. HEAP32[i3 >> 2] = 4440;
  34205. _luaL_error(i1, 5032, i3) | 0;
  34206. }
  34207. i5 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
  34208. if ((i5 | 0) == 0) {
  34209. i5 = 1;
  34210. STACKTOP = i2;
  34211. return i5 | 0;
  34212. }
  34213. if ((_loadfunc(i1, i5, i4) | 0) == 0) {
  34214. _lua_pushstring(i1, i5) | 0;
  34215. i5 = 2;
  34216. STACKTOP = i2;
  34217. return i5 | 0;
  34218. } else {
  34219. i6 = _lua_tolstring(i1, 1, 0) | 0;
  34220. i4 = _lua_tolstring(i1, -1, 0) | 0;
  34221. HEAP32[i3 >> 2] = i6;
  34222. HEAP32[i3 + 4 >> 2] = i5;
  34223. HEAP32[i3 + 8 >> 2] = i4;
  34224. i5 = _luaL_error(i1, 4888, i3) | 0;
  34225. STACKTOP = i2;
  34226. return i5 | 0;
  34227. }
  34228. return 0;
  34229. }
  34230. function _io_open(i1) {
  34231. i1 = i1 | 0;
  34232. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  34233. i5 = STACKTOP;
  34234. i2 = _luaL_checklstring(i1, 1, 0) | 0;
  34235. i3 = _luaL_optlstring(i1, 2, 3480, 0) | 0;
  34236. i4 = _lua_newuserdata(i1, 8) | 0;
  34237. i6 = i4 + 4 | 0;
  34238. HEAP32[i6 >> 2] = 0;
  34239. _luaL_setmetatable(i1, 2832);
  34240. HEAP32[i4 >> 2] = 0;
  34241. HEAP32[i6 >> 2] = 156;
  34242. i6 = HEAP8[i3] | 0;
  34243. if (!((!(i6 << 24 >> 24 == 0) ? (i7 = i3 + 1 | 0, (_memchr(3552, i6 << 24 >> 24, 4) | 0) != 0) : 0) ? (i6 = (HEAP8[i7] | 0) == 43 ? i3 + 2 | 0 : i7, (HEAP8[(HEAP8[i6] | 0) == 98 ? i6 + 1 | 0 : i6] | 0) == 0) : 0)) {
  34244. _luaL_argerror(i1, 2, 3560) | 0;
  34245. }
  34246. i7 = _fopen(i2 | 0, i3 | 0) | 0;
  34247. HEAP32[i4 >> 2] = i7;
  34248. if ((i7 | 0) != 0) {
  34249. i7 = 1;
  34250. STACKTOP = i5;
  34251. return i7 | 0;
  34252. }
  34253. i7 = _luaL_fileresult(i1, 0, i2) | 0;
  34254. STACKTOP = i5;
  34255. return i7 | 0;
  34256. }
  34257. function _unpack(i2) {
  34258. i2 = i2 | 0;
  34259. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  34260. i1 = STACKTOP;
  34261. STACKTOP = STACKTOP + 16 | 0;
  34262. i6 = i1;
  34263. _luaL_checktype(i2, 1, 5);
  34264. i5 = _luaL_optinteger(i2, 2, 1) | 0;
  34265. if ((_lua_type(i2, 3) | 0) < 1) {
  34266. i3 = _luaL_len(i2, 1) | 0;
  34267. } else {
  34268. i3 = _luaL_checkinteger(i2, 3) | 0;
  34269. }
  34270. if ((i5 | 0) > (i3 | 0)) {
  34271. i6 = 0;
  34272. STACKTOP = i1;
  34273. return i6 | 0;
  34274. }
  34275. i7 = i3 - i5 | 0;
  34276. i4 = i7 + 1 | 0;
  34277. if ((i7 | 0) >= 0 ? (_lua_checkstack(i2, i4) | 0) != 0 : 0) {
  34278. _lua_rawgeti(i2, 1, i5);
  34279. if ((i5 | 0) >= (i3 | 0)) {
  34280. i7 = i4;
  34281. STACKTOP = i1;
  34282. return i7 | 0;
  34283. }
  34284. do {
  34285. i5 = i5 + 1 | 0;
  34286. _lua_rawgeti(i2, 1, i5);
  34287. } while ((i5 | 0) != (i3 | 0));
  34288. STACKTOP = i1;
  34289. return i4 | 0;
  34290. }
  34291. i7 = _luaL_error(i2, 8280, i6) | 0;
  34292. STACKTOP = i1;
  34293. return i7 | 0;
  34294. }
  34295. function _luaF_getlocalname(i4, i6, i2) {
  34296. i4 = i4 | 0;
  34297. i6 = i6 | 0;
  34298. i2 = i2 | 0;
  34299. var i1 = 0, i3 = 0, i5 = 0;
  34300. i1 = STACKTOP;
  34301. i3 = HEAP32[i4 + 60 >> 2] | 0;
  34302. if ((i3 | 0) <= 0) {
  34303. i6 = 0;
  34304. STACKTOP = i1;
  34305. return i6 | 0;
  34306. }
  34307. i4 = HEAP32[i4 + 24 >> 2] | 0;
  34308. i5 = 0;
  34309. while (1) {
  34310. if ((HEAP32[i4 + (i5 * 12 | 0) + 4 >> 2] | 0) > (i2 | 0)) {
  34311. i3 = 0;
  34312. i2 = 8;
  34313. break;
  34314. }
  34315. if ((HEAP32[i4 + (i5 * 12 | 0) + 8 >> 2] | 0) > (i2 | 0)) {
  34316. i6 = i6 + -1 | 0;
  34317. if ((i6 | 0) == 0) {
  34318. i2 = 6;
  34319. break;
  34320. }
  34321. }
  34322. i5 = i5 + 1 | 0;
  34323. if ((i5 | 0) >= (i3 | 0)) {
  34324. i3 = 0;
  34325. i2 = 8;
  34326. break;
  34327. }
  34328. }
  34329. if ((i2 | 0) == 6) {
  34330. i6 = (HEAP32[i4 + (i5 * 12 | 0) >> 2] | 0) + 16 | 0;
  34331. STACKTOP = i1;
  34332. return i6 | 0;
  34333. } else if ((i2 | 0) == 8) {
  34334. STACKTOP = i1;
  34335. return i3 | 0;
  34336. }
  34337. return 0;
  34338. }
  34339. function _luaK_concat(i1, i4, i3) {
  34340. i1 = i1 | 0;
  34341. i4 = i4 | 0;
  34342. i3 = i3 | 0;
  34343. var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  34344. i2 = STACKTOP;
  34345. if ((i3 | 0) == -1) {
  34346. STACKTOP = i2;
  34347. return;
  34348. }
  34349. i7 = HEAP32[i4 >> 2] | 0;
  34350. if ((i7 | 0) == -1) {
  34351. HEAP32[i4 >> 2] = i3;
  34352. STACKTOP = i2;
  34353. return;
  34354. }
  34355. i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
  34356. while (1) {
  34357. i6 = i4 + (i7 << 2) | 0;
  34358. i5 = HEAP32[i6 >> 2] | 0;
  34359. i8 = (i5 >>> 14) + -131071 | 0;
  34360. if ((i8 | 0) == -1) {
  34361. break;
  34362. }
  34363. i8 = i7 + 1 + i8 | 0;
  34364. if ((i8 | 0) == -1) {
  34365. break;
  34366. } else {
  34367. i7 = i8;
  34368. }
  34369. }
  34370. i3 = ~i7 + i3 | 0;
  34371. if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
  34372. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
  34373. }
  34374. HEAP32[i6 >> 2] = i5 & 16383 | (i3 << 14) + 2147467264;
  34375. STACKTOP = i2;
  34376. return;
  34377. }
  34378. function _scalbn(d3, i2) {
  34379. d3 = +d3;
  34380. i2 = i2 | 0;
  34381. var i1 = 0, i4 = 0;
  34382. i1 = STACKTOP;
  34383. if ((i2 | 0) > 1023) {
  34384. d3 = d3 * 8.98846567431158e+307;
  34385. i4 = i2 + -1023 | 0;
  34386. if ((i4 | 0) > 1023) {
  34387. i2 = i2 + -2046 | 0;
  34388. i2 = (i2 | 0) > 1023 ? 1023 : i2;
  34389. d3 = d3 * 8.98846567431158e+307;
  34390. } else {
  34391. i2 = i4;
  34392. }
  34393. } else {
  34394. if ((i2 | 0) < -1022) {
  34395. d3 = d3 * 2.2250738585072014e-308;
  34396. i4 = i2 + 1022 | 0;
  34397. if ((i4 | 0) < -1022) {
  34398. i2 = i2 + 2044 | 0;
  34399. i2 = (i2 | 0) < -1022 ? -1022 : i2;
  34400. d3 = d3 * 2.2250738585072014e-308;
  34401. } else {
  34402. i2 = i4;
  34403. }
  34404. }
  34405. }
  34406. i2 = _bitshift64Shl(i2 + 1023 | 0, 0, 52) | 0;
  34407. i4 = tempRet0;
  34408. HEAP32[tempDoublePtr >> 2] = i2;
  34409. HEAP32[tempDoublePtr + 4 >> 2] = i4;
  34410. d3 = d3 * +HEAPF64[tempDoublePtr >> 3];
  34411. STACKTOP = i1;
  34412. return +d3;
  34413. }
  34414. function _luaK_numberK(i1, d6) {
  34415. i1 = i1 | 0;
  34416. d6 = +d6;
  34417. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
  34418. i2 = STACKTOP;
  34419. STACKTOP = STACKTOP + 32 | 0;
  34420. i4 = i2 + 16 | 0;
  34421. i3 = i2;
  34422. HEAPF64[i4 >> 3] = d6;
  34423. i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 52 >> 2] | 0;
  34424. HEAPF64[i3 >> 3] = d6;
  34425. HEAP32[i3 + 8 >> 2] = 3;
  34426. if (d6 != d6 | 0.0 != 0.0 | d6 == 0.0) {
  34427. i7 = i5 + 8 | 0;
  34428. i8 = HEAP32[i7 >> 2] | 0;
  34429. HEAP32[i7 >> 2] = i8 + 16;
  34430. i5 = _luaS_newlstr(i5, i4, 8) | 0;
  34431. HEAP32[i8 >> 2] = i5;
  34432. HEAP32[i8 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
  34433. i5 = _addk(i1, (HEAP32[i7 >> 2] | 0) + -16 | 0, i3) | 0;
  34434. HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
  34435. STACKTOP = i2;
  34436. return i5 | 0;
  34437. } else {
  34438. i8 = _addk(i1, i3, i3) | 0;
  34439. STACKTOP = i2;
  34440. return i8 | 0;
  34441. }
  34442. return 0;
  34443. }
  34444. function _auxresume(i2, i3, i4) {
  34445. i2 = i2 | 0;
  34446. i3 = i3 | 0;
  34447. i4 = i4 | 0;
  34448. var i1 = 0;
  34449. i1 = STACKTOP;
  34450. do {
  34451. if ((_lua_checkstack(i3, i4) | 0) != 0) {
  34452. if ((_lua_status(i3) | 0) == 0 ? (_lua_gettop(i3) | 0) == 0 : 0) {
  34453. _lua_pushlstring(i2, 10792, 28) | 0;
  34454. i4 = -1;
  34455. break;
  34456. }
  34457. _lua_xmove(i2, i3, i4);
  34458. if (!((_lua_resume(i3, i2, i4) | 0) >>> 0 < 2)) {
  34459. _lua_xmove(i3, i2, 1);
  34460. i4 = -1;
  34461. break;
  34462. }
  34463. i4 = _lua_gettop(i3) | 0;
  34464. if ((_lua_checkstack(i2, i4 + 1 | 0) | 0) == 0) {
  34465. _lua_settop(i3, ~i4);
  34466. _lua_pushlstring(i2, 10824, 26) | 0;
  34467. i4 = -1;
  34468. break;
  34469. } else {
  34470. _lua_xmove(i3, i2, i4);
  34471. break;
  34472. }
  34473. } else {
  34474. _lua_pushlstring(i2, 10760, 28) | 0;
  34475. i4 = -1;
  34476. }
  34477. } while (0);
  34478. STACKTOP = i1;
  34479. return i4 | 0;
  34480. }
  34481. function _luaX_setinput(i2, i1, i4, i3, i5) {
  34482. i2 = i2 | 0;
  34483. i1 = i1 | 0;
  34484. i4 = i4 | 0;
  34485. i3 = i3 | 0;
  34486. i5 = i5 | 0;
  34487. var i6 = 0, i7 = 0;
  34488. i6 = STACKTOP;
  34489. HEAP8[i1 + 76 | 0] = 46;
  34490. i7 = i1 + 52 | 0;
  34491. HEAP32[i7 >> 2] = i2;
  34492. HEAP32[i1 >> 2] = i5;
  34493. HEAP32[i1 + 32 >> 2] = 286;
  34494. HEAP32[i1 + 56 >> 2] = i4;
  34495. HEAP32[i1 + 48 >> 2] = 0;
  34496. HEAP32[i1 + 4 >> 2] = 1;
  34497. HEAP32[i1 + 8 >> 2] = 1;
  34498. HEAP32[i1 + 68 >> 2] = i3;
  34499. i5 = _luaS_new(i2, 12264) | 0;
  34500. HEAP32[i1 + 72 >> 2] = i5;
  34501. i5 = i5 + 5 | 0;
  34502. HEAP8[i5] = HEAPU8[i5] | 0 | 32;
  34503. i5 = i1 + 60 | 0;
  34504. i4 = HEAP32[i5 >> 2] | 0;
  34505. i4 = _luaM_realloc_(HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, HEAP32[i4 + 8 >> 2] | 0, 32) | 0;
  34506. HEAP32[HEAP32[i5 >> 2] >> 2] = i4;
  34507. HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = 32;
  34508. STACKTOP = i6;
  34509. return;
  34510. }
  34511. function _luaL_optlstring(i2, i4, i6, i5) {
  34512. i2 = i2 | 0;
  34513. i4 = i4 | 0;
  34514. i6 = i6 | 0;
  34515. i5 = i5 | 0;
  34516. var i1 = 0, i3 = 0;
  34517. i1 = STACKTOP;
  34518. STACKTOP = STACKTOP + 16 | 0;
  34519. i3 = i1;
  34520. if ((_lua_type(i2, i4) | 0) >= 1) {
  34521. i5 = _lua_tolstring(i2, i4, i5) | 0;
  34522. if ((i5 | 0) != 0) {
  34523. i6 = i5;
  34524. STACKTOP = i1;
  34525. return i6 | 0;
  34526. }
  34527. i5 = _lua_typename(i2, 4) | 0;
  34528. i6 = _lua_typename(i2, _lua_type(i2, i4) | 0) | 0;
  34529. HEAP32[i3 >> 2] = i5;
  34530. HEAP32[i3 + 4 >> 2] = i6;
  34531. _luaL_argerror(i2, i4, _lua_pushfstring(i2, 1744, i3) | 0) | 0;
  34532. i6 = 0;
  34533. STACKTOP = i1;
  34534. return i6 | 0;
  34535. }
  34536. if ((i5 | 0) == 0) {
  34537. STACKTOP = i1;
  34538. return i6 | 0;
  34539. }
  34540. if ((i6 | 0) == 0) {
  34541. i2 = 0;
  34542. } else {
  34543. i2 = _strlen(i6 | 0) | 0;
  34544. }
  34545. HEAP32[i5 >> 2] = i2;
  34546. STACKTOP = i1;
  34547. return i6 | 0;
  34548. }
  34549. function _lua_xmove(i3, i4, i1) {
  34550. i3 = i3 | 0;
  34551. i4 = i4 | 0;
  34552. i1 = i1 | 0;
  34553. var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  34554. i2 = STACKTOP;
  34555. if ((i3 | 0) == (i4 | 0)) {
  34556. STACKTOP = i2;
  34557. return;
  34558. }
  34559. i3 = i3 + 8 | 0;
  34560. i5 = (HEAP32[i3 >> 2] | 0) + (0 - i1 << 4) | 0;
  34561. HEAP32[i3 >> 2] = i5;
  34562. if ((i1 | 0) <= 0) {
  34563. STACKTOP = i2;
  34564. return;
  34565. }
  34566. i4 = i4 + 8 | 0;
  34567. i6 = 0;
  34568. while (1) {
  34569. i7 = HEAP32[i4 >> 2] | 0;
  34570. HEAP32[i4 >> 2] = i7 + 16;
  34571. i10 = i5 + (i6 << 4) | 0;
  34572. i9 = HEAP32[i10 + 4 >> 2] | 0;
  34573. i8 = i7;
  34574. HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
  34575. HEAP32[i8 + 4 >> 2] = i9;
  34576. HEAP32[i7 + 8 >> 2] = HEAP32[i5 + (i6 << 4) + 8 >> 2];
  34577. i6 = i6 + 1 | 0;
  34578. if ((i6 | 0) == (i1 | 0)) {
  34579. break;
  34580. }
  34581. i5 = HEAP32[i3 >> 2] | 0;
  34582. }
  34583. STACKTOP = i2;
  34584. return;
  34585. }
  34586. function _luaM_realloc_(i7, i10, i3, i2) {
  34587. i7 = i7 | 0;
  34588. i10 = i10 | 0;
  34589. i3 = i3 | 0;
  34590. i2 = i2 | 0;
  34591. var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0;
  34592. i5 = STACKTOP;
  34593. i6 = HEAP32[i7 + 12 >> 2] | 0;
  34594. i4 = (i10 | 0) != 0;
  34595. i9 = i6 + 4 | 0;
  34596. i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
  34597. if (!((i8 | 0) != 0 | (i2 | 0) == 0)) {
  34598. if ((HEAP8[i6 + 63 | 0] | 0) == 0) {
  34599. _luaD_throw(i7, 4);
  34600. }
  34601. _luaC_fullgc(i7, 1);
  34602. i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
  34603. if ((i8 | 0) == 0) {
  34604. _luaD_throw(i7, 4);
  34605. } else {
  34606. i1 = i8;
  34607. }
  34608. } else {
  34609. i1 = i8;
  34610. }
  34611. i6 = i6 + 12 | 0;
  34612. HEAP32[i6 >> 2] = (i4 ? 0 - i3 | 0 : 0) + i2 + (HEAP32[i6 >> 2] | 0);
  34613. STACKTOP = i5;
  34614. return i1 | 0;
  34615. }
  34616. function _realloc(i2, i3) {
  34617. i2 = i2 | 0;
  34618. i3 = i3 | 0;
  34619. var i1 = 0, i4 = 0, i5 = 0;
  34620. i1 = STACKTOP;
  34621. do {
  34622. if ((i2 | 0) != 0) {
  34623. if (i3 >>> 0 > 4294967231) {
  34624. HEAP32[(___errno_location() | 0) >> 2] = 12;
  34625. i4 = 0;
  34626. break;
  34627. }
  34628. if (i3 >>> 0 < 11) {
  34629. i4 = 16;
  34630. } else {
  34631. i4 = i3 + 11 & -8;
  34632. }
  34633. i4 = _try_realloc_chunk(i2 + -8 | 0, i4) | 0;
  34634. if ((i4 | 0) != 0) {
  34635. i4 = i4 + 8 | 0;
  34636. break;
  34637. }
  34638. i4 = _malloc(i3) | 0;
  34639. if ((i4 | 0) == 0) {
  34640. i4 = 0;
  34641. } else {
  34642. i5 = HEAP32[i2 + -4 >> 2] | 0;
  34643. i5 = (i5 & -8) - ((i5 & 3 | 0) == 0 ? 8 : 4) | 0;
  34644. _memcpy(i4 | 0, i2 | 0, (i5 >>> 0 < i3 >>> 0 ? i5 : i3) | 0) | 0;
  34645. _free(i2);
  34646. }
  34647. } else {
  34648. i4 = _malloc(i3) | 0;
  34649. }
  34650. } while (0);
  34651. STACKTOP = i1;
  34652. return i4 | 0;
  34653. }
  34654. function _lua_setlocal(i3, i5, i4) {
  34655. i3 = i3 | 0;
  34656. i5 = i5 | 0;
  34657. i4 = i4 | 0;
  34658. var i1 = 0, i2 = 0, i6 = 0, i7 = 0, i8 = 0;
  34659. i1 = STACKTOP;
  34660. STACKTOP = STACKTOP + 16 | 0;
  34661. i2 = i1;
  34662. HEAP32[i2 >> 2] = 0;
  34663. i4 = _findlocal(i3, HEAP32[i5 + 96 >> 2] | 0, i4, i2) | 0;
  34664. i3 = i3 + 8 | 0;
  34665. if ((i4 | 0) == 0) {
  34666. i5 = HEAP32[i3 >> 2] | 0;
  34667. i5 = i5 + -16 | 0;
  34668. HEAP32[i3 >> 2] = i5;
  34669. STACKTOP = i1;
  34670. return i4 | 0;
  34671. }
  34672. i6 = HEAP32[i3 >> 2] | 0;
  34673. i5 = HEAP32[i2 >> 2] | 0;
  34674. i8 = i6 + -16 | 0;
  34675. i7 = HEAP32[i8 + 4 >> 2] | 0;
  34676. i2 = i5;
  34677. HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
  34678. HEAP32[i2 + 4 >> 2] = i7;
  34679. HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
  34680. i5 = HEAP32[i3 >> 2] | 0;
  34681. i5 = i5 + -16 | 0;
  34682. HEAP32[i3 >> 2] = i5;
  34683. STACKTOP = i1;
  34684. return i4 | 0;
  34685. }
  34686. function ___remdi3(i1, i4, i5, i6) {
  34687. i1 = i1 | 0;
  34688. i4 = i4 | 0;
  34689. i5 = i5 | 0;
  34690. i6 = i6 | 0;
  34691. var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
  34692. i3 = STACKTOP;
  34693. STACKTOP = STACKTOP + 8 | 0;
  34694. i2 = i3 | 0;
  34695. i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
  34696. i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
  34697. i9 = i6 >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
  34698. i10 = ((i6 | 0) < 0 ? -1 : 0) >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
  34699. i1 = _i64Subtract(i7 ^ i1, i8 ^ i4, i7, i8) | 0;
  34700. i4 = tempRet0;
  34701. ___udivmoddi4(i1, i4, _i64Subtract(i9 ^ i5, i10 ^ i6, i9, i10) | 0, tempRet0, i2) | 0;
  34702. i9 = _i64Subtract(HEAP32[i2 >> 2] ^ i7, HEAP32[i2 + 4 >> 2] ^ i8, i7, i8) | 0;
  34703. i8 = tempRet0;
  34704. STACKTOP = i3;
  34705. return (tempRet0 = i8, i9) | 0;
  34706. }
  34707. function _luaC_barrierproto_(i3, i4, i2) {
  34708. i3 = i3 | 0;
  34709. i4 = i4 | 0;
  34710. i2 = i2 | 0;
  34711. var i1 = 0, i5 = 0;
  34712. i1 = STACKTOP;
  34713. if ((HEAP32[i4 + 32 >> 2] | 0) != 0) {
  34714. i5 = HEAP32[i3 + 12 >> 2] | 0;
  34715. i3 = i4 + 5 | 0;
  34716. HEAP8[i3] = HEAP8[i3] & 251;
  34717. i5 = i5 + 88 | 0;
  34718. HEAP32[i4 + 72 >> 2] = HEAP32[i5 >> 2];
  34719. HEAP32[i5 >> 2] = i4;
  34720. STACKTOP = i1;
  34721. return;
  34722. }
  34723. if ((HEAP8[i2 + 5 | 0] & 3) == 0) {
  34724. STACKTOP = i1;
  34725. return;
  34726. }
  34727. i5 = i4 + 5 | 0;
  34728. i4 = HEAP8[i5] | 0;
  34729. if ((i4 & 4) == 0) {
  34730. STACKTOP = i1;
  34731. return;
  34732. }
  34733. i3 = HEAP32[i3 + 12 >> 2] | 0;
  34734. if ((HEAPU8[i3 + 61 | 0] | 0) < 2) {
  34735. _reallymarkobject(i3, i2);
  34736. STACKTOP = i1;
  34737. return;
  34738. } else {
  34739. HEAP8[i5] = HEAP8[i3 + 60 | 0] & 3 | i4 & 184;
  34740. STACKTOP = i1;
  34741. return;
  34742. }
  34743. }
  34744. function _luaL_openlibs(i1) {
  34745. i1 = i1 | 0;
  34746. var i2 = 0;
  34747. i2 = STACKTOP;
  34748. _luaL_requiref(i1, 2592, 144, 1);
  34749. _lua_settop(i1, -2);
  34750. _luaL_requiref(i1, 2600, 145, 1);
  34751. _lua_settop(i1, -2);
  34752. _luaL_requiref(i1, 2608, 146, 1);
  34753. _lua_settop(i1, -2);
  34754. _luaL_requiref(i1, 2624, 147, 1);
  34755. _lua_settop(i1, -2);
  34756. _luaL_requiref(i1, 2632, 148, 1);
  34757. _lua_settop(i1, -2);
  34758. _luaL_requiref(i1, 2640, 149, 1);
  34759. _lua_settop(i1, -2);
  34760. _luaL_requiref(i1, 2648, 150, 1);
  34761. _lua_settop(i1, -2);
  34762. _luaL_requiref(i1, 2656, 151, 1);
  34763. _lua_settop(i1, -2);
  34764. _luaL_requiref(i1, 2664, 152, 1);
  34765. _lua_settop(i1, -2);
  34766. _luaL_requiref(i1, 2672, 153, 1);
  34767. _lua_settop(i1, -2);
  34768. _luaL_getsubtable(i1, -1001e3, 2576) | 0;
  34769. _lua_settop(i1, -2);
  34770. STACKTOP = i2;
  34771. return;
  34772. }
  34773. function _luaX_token2str(i4, i3) {
  34774. i4 = i4 | 0;
  34775. i3 = i3 | 0;
  34776. var i1 = 0, i2 = 0, i5 = 0;
  34777. i1 = STACKTOP;
  34778. STACKTOP = STACKTOP + 16 | 0;
  34779. i2 = i1;
  34780. if ((i3 | 0) >= 257) {
  34781. i5 = HEAP32[12096 + (i3 + -257 << 2) >> 2] | 0;
  34782. if ((i3 | 0) >= 286) {
  34783. STACKTOP = i1;
  34784. return i5 | 0;
  34785. }
  34786. i4 = HEAP32[i4 + 52 >> 2] | 0;
  34787. HEAP32[i2 >> 2] = i5;
  34788. i5 = _luaO_pushfstring(i4, 12256, i2) | 0;
  34789. STACKTOP = i1;
  34790. return i5 | 0;
  34791. }
  34792. i4 = HEAP32[i4 + 52 >> 2] | 0;
  34793. if ((HEAP8[i3 + 10913 | 0] & 4) == 0) {
  34794. HEAP32[i2 >> 2] = i3;
  34795. i5 = _luaO_pushfstring(i4, 12240, i2) | 0;
  34796. STACKTOP = i1;
  34797. return i5 | 0;
  34798. } else {
  34799. HEAP32[i2 >> 2] = i3;
  34800. i5 = _luaO_pushfstring(i4, 12232, i2) | 0;
  34801. STACKTOP = i1;
  34802. return i5 | 0;
  34803. }
  34804. return 0;
  34805. }
  34806. function _luaL_buffinitsize(i6, i1, i7) {
  34807. i6 = i6 | 0;
  34808. i1 = i1 | 0;
  34809. i7 = i7 | 0;
  34810. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0;
  34811. i2 = STACKTOP;
  34812. HEAP32[i1 + 12 >> 2] = i6;
  34813. i3 = i1 + 16 | 0;
  34814. HEAP32[i1 >> 2] = i3;
  34815. i5 = i1 + 8 | 0;
  34816. HEAP32[i5 >> 2] = 0;
  34817. i4 = i1 + 4 | 0;
  34818. HEAP32[i4 >> 2] = 1024;
  34819. if (!(i7 >>> 0 > 1024)) {
  34820. i7 = i3;
  34821. i8 = 0;
  34822. i8 = i7 + i8 | 0;
  34823. STACKTOP = i2;
  34824. return i8 | 0;
  34825. }
  34826. i8 = i7 >>> 0 > 2048 ? i7 : 2048;
  34827. i7 = _lua_newuserdata(i6, i8) | 0;
  34828. _memcpy(i7 | 0, HEAP32[i1 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  34829. if ((HEAP32[i1 >> 2] | 0) != (i3 | 0)) {
  34830. _lua_remove(i6, -2);
  34831. }
  34832. HEAP32[i1 >> 2] = i7;
  34833. HEAP32[i4 >> 2] = i8;
  34834. i8 = HEAP32[i5 >> 2] | 0;
  34835. i8 = i7 + i8 | 0;
  34836. STACKTOP = i2;
  34837. return i8 | 0;
  34838. }
  34839. function _luaE_freethread(i1, i3) {
  34840. i1 = i1 | 0;
  34841. i3 = i3 | 0;
  34842. var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  34843. i2 = STACKTOP;
  34844. i4 = i3 + 28 | 0;
  34845. _luaF_close(i3, HEAP32[i4 >> 2] | 0);
  34846. i5 = HEAP32[i4 >> 2] | 0;
  34847. if ((i5 | 0) == 0) {
  34848. _luaM_realloc_(i1, i3, 112, 0) | 0;
  34849. STACKTOP = i2;
  34850. return;
  34851. }
  34852. HEAP32[i3 + 16 >> 2] = i3 + 72;
  34853. i7 = i3 + 84 | 0;
  34854. i6 = HEAP32[i7 >> 2] | 0;
  34855. HEAP32[i7 >> 2] = 0;
  34856. if ((i6 | 0) != 0) {
  34857. while (1) {
  34858. i5 = HEAP32[i6 + 12 >> 2] | 0;
  34859. _luaM_realloc_(i3, i6, 40, 0) | 0;
  34860. if ((i5 | 0) == 0) {
  34861. break;
  34862. } else {
  34863. i6 = i5;
  34864. }
  34865. }
  34866. i5 = HEAP32[i4 >> 2] | 0;
  34867. }
  34868. _luaM_realloc_(i3, i5, HEAP32[i3 + 32 >> 2] << 4, 0) | 0;
  34869. _luaM_realloc_(i1, i3, 112, 0) | 0;
  34870. STACKTOP = i2;
  34871. return;
  34872. }
  34873. function ___toread(i1) {
  34874. i1 = i1 | 0;
  34875. var i2 = 0, i3 = 0, i4 = 0;
  34876. i3 = STACKTOP;
  34877. i4 = i1 + 74 | 0;
  34878. i2 = HEAP8[i4] | 0;
  34879. HEAP8[i4] = i2 + 255 | i2;
  34880. i4 = i1 + 20 | 0;
  34881. i2 = i1 + 44 | 0;
  34882. if ((HEAP32[i4 >> 2] | 0) >>> 0 > (HEAP32[i2 >> 2] | 0) >>> 0) {
  34883. FUNCTION_TABLE_iiii[HEAP32[i1 + 36 >> 2] & 3](i1, 0, 0) | 0;
  34884. }
  34885. HEAP32[i1 + 16 >> 2] = 0;
  34886. HEAP32[i1 + 28 >> 2] = 0;
  34887. HEAP32[i4 >> 2] = 0;
  34888. i4 = HEAP32[i1 >> 2] | 0;
  34889. if ((i4 & 20 | 0) == 0) {
  34890. i4 = HEAP32[i2 >> 2] | 0;
  34891. HEAP32[i1 + 8 >> 2] = i4;
  34892. HEAP32[i1 + 4 >> 2] = i4;
  34893. i4 = 0;
  34894. STACKTOP = i3;
  34895. return i4 | 0;
  34896. }
  34897. if ((i4 & 4 | 0) == 0) {
  34898. i4 = -1;
  34899. STACKTOP = i3;
  34900. return i4 | 0;
  34901. }
  34902. HEAP32[i1 >> 2] = i4 | 32;
  34903. i4 = -1;
  34904. STACKTOP = i3;
  34905. return i4 | 0;
  34906. }
  34907. function _lua_callk(i3, i7, i4, i6, i5) {
  34908. i3 = i3 | 0;
  34909. i7 = i7 | 0;
  34910. i4 = i4 | 0;
  34911. i6 = i6 | 0;
  34912. i5 = i5 | 0;
  34913. var i1 = 0, i2 = 0, i8 = 0;
  34914. i1 = STACKTOP;
  34915. i2 = i3 + 8 | 0;
  34916. i7 = (HEAP32[i2 >> 2] | 0) + (~i7 << 4) | 0;
  34917. if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
  34918. i8 = i3 + 16 | 0;
  34919. HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] = i5;
  34920. HEAP32[(HEAP32[i8 >> 2] | 0) + 24 >> 2] = i6;
  34921. _luaD_call(i3, i7, i4, 1);
  34922. } else {
  34923. _luaD_call(i3, i7, i4, 0);
  34924. }
  34925. if (!((i4 | 0) == -1)) {
  34926. STACKTOP = i1;
  34927. return;
  34928. }
  34929. i3 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
  34930. i2 = HEAP32[i2 >> 2] | 0;
  34931. if (!((HEAP32[i3 >> 2] | 0) >>> 0 < i2 >>> 0)) {
  34932. STACKTOP = i1;
  34933. return;
  34934. }
  34935. HEAP32[i3 >> 2] = i2;
  34936. STACKTOP = i1;
  34937. return;
  34938. }
  34939. function _luaX_newstring(i3, i5, i4) {
  34940. i3 = i3 | 0;
  34941. i5 = i5 | 0;
  34942. i4 = i4 | 0;
  34943. var i1 = 0, i2 = 0, i6 = 0;
  34944. i1 = STACKTOP;
  34945. i2 = HEAP32[i3 + 52 >> 2] | 0;
  34946. i5 = _luaS_newlstr(i2, i5, i4) | 0;
  34947. i4 = i2 + 8 | 0;
  34948. i6 = HEAP32[i4 >> 2] | 0;
  34949. HEAP32[i4 >> 2] = i6 + 16;
  34950. HEAP32[i6 >> 2] = i5;
  34951. HEAP32[i6 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
  34952. i6 = _luaH_set(i2, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
  34953. i3 = i6 + 8 | 0;
  34954. if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i6 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
  34955. _luaC_step(i2);
  34956. }
  34957. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
  34958. STACKTOP = i1;
  34959. return i5 | 0;
  34960. }
  34961. function _strtod(i3, i2) {
  34962. i3 = i3 | 0;
  34963. i2 = i2 | 0;
  34964. var i1 = 0, i4 = 0, d5 = 0.0, i6 = 0, i7 = 0;
  34965. i1 = STACKTOP;
  34966. STACKTOP = STACKTOP + 112 | 0;
  34967. i4 = i1;
  34968. i7 = i4 + 0 | 0;
  34969. i6 = i7 + 112 | 0;
  34970. do {
  34971. HEAP32[i7 >> 2] = 0;
  34972. i7 = i7 + 4 | 0;
  34973. } while ((i7 | 0) < (i6 | 0));
  34974. i6 = i4 + 4 | 0;
  34975. HEAP32[i6 >> 2] = i3;
  34976. i7 = i4 + 8 | 0;
  34977. HEAP32[i7 >> 2] = -1;
  34978. HEAP32[i4 + 44 >> 2] = i3;
  34979. HEAP32[i4 + 76 >> 2] = -1;
  34980. ___shlim(i4, 0);
  34981. d5 = +___floatscan(i4, 1, 1);
  34982. i4 = (HEAP32[i6 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) + (HEAP32[i4 + 108 >> 2] | 0) | 0;
  34983. if ((i2 | 0) == 0) {
  34984. STACKTOP = i1;
  34985. return +d5;
  34986. }
  34987. if ((i4 | 0) != 0) {
  34988. i3 = i3 + i4 | 0;
  34989. }
  34990. HEAP32[i2 >> 2] = i3;
  34991. STACKTOP = i1;
  34992. return +d5;
  34993. }
  34994. function _f_seek(i1) {
  34995. i1 = i1 | 0;
  34996. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0;
  34997. i2 = STACKTOP;
  34998. STACKTOP = STACKTOP + 16 | 0;
  34999. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  35000. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  35001. _luaL_error(i1, 3080, i2) | 0;
  35002. }
  35003. i3 = HEAP32[i3 >> 2] | 0;
  35004. i5 = _luaL_checkoption(i1, 2, 3208, 3184) | 0;
  35005. d6 = +_luaL_optnumber(i1, 3, 0.0);
  35006. i4 = ~~d6;
  35007. if (!(+(i4 | 0) == d6)) {
  35008. _luaL_argerror(i1, 3, 3224) | 0;
  35009. }
  35010. if ((_fseek(i3 | 0, i4 | 0, HEAP32[3168 + (i5 << 2) >> 2] | 0) | 0) == 0) {
  35011. _lua_pushnumber(i1, +(_ftell(i3 | 0) | 0));
  35012. i5 = 1;
  35013. STACKTOP = i2;
  35014. return i5 | 0;
  35015. } else {
  35016. i5 = _luaL_fileresult(i1, 0, 0) | 0;
  35017. STACKTOP = i2;
  35018. return i5 | 0;
  35019. }
  35020. return 0;
  35021. }
  35022. function _setpath(i1, i4, i8, i7, i3) {
  35023. i1 = i1 | 0;
  35024. i4 = i4 | 0;
  35025. i8 = i8 | 0;
  35026. i7 = i7 | 0;
  35027. i3 = i3 | 0;
  35028. var i2 = 0, i5 = 0, i6 = 0;
  35029. i2 = STACKTOP;
  35030. i8 = _getenv(i8 | 0) | 0;
  35031. if ((i8 | 0) == 0) {
  35032. i7 = _getenv(i7 | 0) | 0;
  35033. if ((i7 | 0) != 0) {
  35034. i5 = i7;
  35035. i6 = 3;
  35036. }
  35037. } else {
  35038. i5 = i8;
  35039. i6 = 3;
  35040. }
  35041. if ((i6 | 0) == 3 ? (_lua_getfield(i1, -1001e3, 4832), i8 = _lua_toboolean(i1, -1) | 0, _lua_settop(i1, -2), (i8 | 0) == 0) : 0) {
  35042. _luaL_gsub(i1, _luaL_gsub(i1, i5, 4808, 4816) | 0, 4824, i3) | 0;
  35043. _lua_remove(i1, -2);
  35044. _lua_setfield(i1, -2, i4);
  35045. STACKTOP = i2;
  35046. return;
  35047. }
  35048. _lua_pushstring(i1, i3) | 0;
  35049. _lua_setfield(i1, -2, i4);
  35050. STACKTOP = i2;
  35051. return;
  35052. }
  35053. function _luaU_header(i1) {
  35054. i1 = i1 | 0;
  35055. var i2 = 0, i3 = 0;
  35056. i2 = STACKTOP;
  35057. HEAP8[i1] = 1635077147;
  35058. HEAP8[i1 + 1 | 0] = 6387020;
  35059. HEAP8[i1 + 2 | 0] = 24949;
  35060. HEAP8[i1 + 3 | 0] = 97;
  35061. HEAP8[i1 + 4 | 0] = 82;
  35062. HEAP8[i1 + 5 | 0] = 0;
  35063. HEAP8[i1 + 6 | 0] = 1;
  35064. HEAP8[i1 + 7 | 0] = 4;
  35065. HEAP8[i1 + 8 | 0] = 4;
  35066. HEAP8[i1 + 9 | 0] = 4;
  35067. HEAP8[i1 + 10 | 0] = 8;
  35068. i3 = i1 + 12 | 0;
  35069. HEAP8[i1 + 11 | 0] = 0;
  35070. HEAP8[i3 + 0 | 0] = HEAP8[8816 | 0] | 0;
  35071. HEAP8[i3 + 1 | 0] = HEAP8[8817 | 0] | 0;
  35072. HEAP8[i3 + 2 | 0] = HEAP8[8818 | 0] | 0;
  35073. HEAP8[i3 + 3 | 0] = HEAP8[8819 | 0] | 0;
  35074. HEAP8[i3 + 4 | 0] = HEAP8[8820 | 0] | 0;
  35075. HEAP8[i3 + 5 | 0] = HEAP8[8821 | 0] | 0;
  35076. STACKTOP = i2;
  35077. return;
  35078. }
  35079. function _db_setlocal(i1) {
  35080. i1 = i1 | 0;
  35081. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  35082. i2 = STACKTOP;
  35083. STACKTOP = STACKTOP + 112 | 0;
  35084. i3 = i2;
  35085. if ((_lua_type(i1, 1) | 0) == 8) {
  35086. i5 = _lua_tothread(i1, 1) | 0;
  35087. i4 = 1;
  35088. } else {
  35089. i5 = i1;
  35090. i4 = 0;
  35091. }
  35092. i6 = i4 + 1 | 0;
  35093. if ((_lua_getstack(i5, _luaL_checkinteger(i1, i6) | 0, i3) | 0) == 0) {
  35094. i6 = _luaL_argerror(i1, i6, 11560) | 0;
  35095. STACKTOP = i2;
  35096. return i6 | 0;
  35097. } else {
  35098. i6 = i4 + 3 | 0;
  35099. _luaL_checkany(i1, i6);
  35100. _lua_settop(i1, i6);
  35101. _lua_xmove(i1, i5, 1);
  35102. _lua_pushstring(i1, _lua_setlocal(i5, i3, _luaL_checkinteger(i1, i4 | 2) | 0) | 0) | 0;
  35103. i6 = 1;
  35104. STACKTOP = i2;
  35105. return i6 | 0;
  35106. }
  35107. return 0;
  35108. }
  35109. function _tremove(i1) {
  35110. i1 = i1 | 0;
  35111. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  35112. i2 = STACKTOP;
  35113. _luaL_checktype(i1, 1, 5);
  35114. i3 = _luaL_len(i1, 1) | 0;
  35115. i4 = _luaL_optinteger(i1, 2, i3) | 0;
  35116. if ((i4 | 0) != (i3 | 0) ? (i4 | 0) < 1 | (i4 | 0) > (i3 + 1 | 0) : 0) {
  35117. _luaL_argerror(i1, 1, 8256) | 0;
  35118. }
  35119. _lua_rawgeti(i1, 1, i4);
  35120. if ((i4 | 0) >= (i3 | 0)) {
  35121. i5 = i4;
  35122. _lua_pushnil(i1);
  35123. _lua_rawseti(i1, 1, i5);
  35124. STACKTOP = i2;
  35125. return 1;
  35126. }
  35127. while (1) {
  35128. i5 = i4 + 1 | 0;
  35129. _lua_rawgeti(i1, 1, i5);
  35130. _lua_rawseti(i1, 1, i4);
  35131. if ((i5 | 0) == (i3 | 0)) {
  35132. break;
  35133. } else {
  35134. i4 = i5;
  35135. }
  35136. }
  35137. _lua_pushnil(i1);
  35138. _lua_rawseti(i1, 1, i3);
  35139. STACKTOP = i2;
  35140. return 1;
  35141. }
  35142. function _luaL_checkudata(i1, i7, i5) {
  35143. i1 = i1 | 0;
  35144. i7 = i7 | 0;
  35145. i5 = i5 | 0;
  35146. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  35147. i2 = STACKTOP;
  35148. STACKTOP = STACKTOP + 16 | 0;
  35149. i4 = i2;
  35150. i3 = _lua_touserdata(i1, i7) | 0;
  35151. if (((i3 | 0) != 0 ? (_lua_getmetatable(i1, i7) | 0) != 0 : 0) ? (_lua_getfield(i1, -1001e3, i5), i6 = (_lua_rawequal(i1, -1, -2) | 0) == 0, i6 = i6 ? 0 : i3, _lua_settop(i1, -3), (i6 | 0) != 0) : 0) {
  35152. i7 = i6;
  35153. STACKTOP = i2;
  35154. return i7 | 0;
  35155. }
  35156. i6 = _lua_typename(i1, _lua_type(i1, i7) | 0) | 0;
  35157. HEAP32[i4 >> 2] = i5;
  35158. HEAP32[i4 + 4 >> 2] = i6;
  35159. _luaL_argerror(i1, i7, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
  35160. i7 = 0;
  35161. STACKTOP = i2;
  35162. return i7 | 0;
  35163. }
  35164. function _luaL_error(i1, i5, i7) {
  35165. i1 = i1 | 0;
  35166. i5 = i5 | 0;
  35167. i7 = i7 | 0;
  35168. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  35169. i4 = STACKTOP;
  35170. STACKTOP = STACKTOP + 128 | 0;
  35171. i3 = i4;
  35172. i2 = i4 + 24 | 0;
  35173. i4 = i4 + 8 | 0;
  35174. HEAP32[i4 >> 2] = i7;
  35175. if ((_lua_getstack(i1, 1, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i6 = HEAP32[i2 + 20 >> 2] | 0, (i6 | 0) > 0) : 0) {
  35176. HEAP32[i3 >> 2] = i2 + 36;
  35177. HEAP32[i3 + 4 >> 2] = i6;
  35178. _lua_pushfstring(i1, 1160, i3) | 0;
  35179. _lua_pushvfstring(i1, i5, i4) | 0;
  35180. _lua_concat(i1, 2);
  35181. _lua_error(i1) | 0;
  35182. }
  35183. _lua_pushlstring(i1, 1168, 0) | 0;
  35184. _lua_pushvfstring(i1, i5, i4) | 0;
  35185. _lua_concat(i1, 2);
  35186. _lua_error(i1) | 0;
  35187. return 0;
  35188. }
  35189. function _luaK_infix(i1, i4, i3) {
  35190. i1 = i1 | 0;
  35191. i4 = i4 | 0;
  35192. i3 = i3 | 0;
  35193. var i2 = 0;
  35194. i2 = STACKTOP;
  35195. L1 : do {
  35196. switch (i4 | 0) {
  35197. case 6:
  35198. {
  35199. _luaK_exp2nextreg(i1, i3);
  35200. break;
  35201. }
  35202. case 5:
  35203. case 4:
  35204. case 3:
  35205. case 2:
  35206. case 1:
  35207. case 0:
  35208. {
  35209. if (((HEAP32[i3 >> 2] | 0) == 5 ? (HEAP32[i3 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i3 + 20 >> 2] | 0) == -1 : 0) {
  35210. break L1;
  35211. }
  35212. _luaK_exp2RK(i1, i3) | 0;
  35213. break;
  35214. }
  35215. case 13:
  35216. {
  35217. _luaK_goiftrue(i1, i3);
  35218. break;
  35219. }
  35220. case 14:
  35221. {
  35222. _luaK_goiffalse(i1, i3);
  35223. break;
  35224. }
  35225. default:
  35226. {
  35227. _luaK_exp2RK(i1, i3) | 0;
  35228. }
  35229. }
  35230. } while (0);
  35231. STACKTOP = i2;
  35232. return;
  35233. }
  35234. function _luaD_shrinkstack(i1) {
  35235. i1 = i1 | 0;
  35236. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  35237. i2 = STACKTOP;
  35238. i4 = HEAP32[i1 + 8 >> 2] | 0;
  35239. i3 = HEAP32[i1 + 16 >> 2] | 0;
  35240. if ((i3 | 0) != 0) {
  35241. do {
  35242. i5 = HEAP32[i3 + 4 >> 2] | 0;
  35243. i4 = i4 >>> 0 < i5 >>> 0 ? i5 : i4;
  35244. i3 = HEAP32[i3 + 8 >> 2] | 0;
  35245. } while ((i3 | 0) != 0);
  35246. }
  35247. i3 = i4 - (HEAP32[i1 + 28 >> 2] | 0) | 0;
  35248. i4 = (i3 >> 4) + 1 | 0;
  35249. i4 = ((i4 | 0) / 8 | 0) + 10 + i4 | 0;
  35250. i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
  35251. if ((i3 | 0) > 15999984) {
  35252. STACKTOP = i2;
  35253. return;
  35254. }
  35255. if ((i4 | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) {
  35256. STACKTOP = i2;
  35257. return;
  35258. }
  35259. _luaD_reallocstack(i1, i4);
  35260. STACKTOP = i2;
  35261. return;
  35262. }
  35263. function _luaF_newproto(i1) {
  35264. i1 = i1 | 0;
  35265. var i2 = 0;
  35266. i2 = STACKTOP;
  35267. i1 = _luaC_newobj(i1, 9, 80, 0, 0) | 0;
  35268. HEAP32[i1 + 8 >> 2] = 0;
  35269. HEAP32[i1 + 44 >> 2] = 0;
  35270. HEAP32[i1 + 16 >> 2] = 0;
  35271. HEAP32[i1 + 56 >> 2] = 0;
  35272. HEAP32[i1 + 12 >> 2] = 0;
  35273. HEAP32[i1 + 32 >> 2] = 0;
  35274. HEAP32[i1 + 48 >> 2] = 0;
  35275. HEAP32[i1 + 20 >> 2] = 0;
  35276. HEAP32[i1 + 52 >> 2] = 0;
  35277. HEAP32[i1 + 28 >> 2] = 0;
  35278. HEAP32[i1 + 40 >> 2] = 0;
  35279. HEAP8[i1 + 76 | 0] = 0;
  35280. HEAP8[i1 + 77 | 0] = 0;
  35281. HEAP8[i1 + 78 | 0] = 0;
  35282. HEAP32[i1 + 24 >> 2] = 0;
  35283. HEAP32[i1 + 60 >> 2] = 0;
  35284. HEAP32[i1 + 64 >> 2] = 0;
  35285. HEAP32[i1 + 68 >> 2] = 0;
  35286. HEAP32[i1 + 36 >> 2] = 0;
  35287. STACKTOP = i2;
  35288. return i1 | 0;
  35289. }
  35290. function _luaF_freeproto(i2, i1) {
  35291. i2 = i2 | 0;
  35292. i1 = i1 | 0;
  35293. var i3 = 0;
  35294. i3 = STACKTOP;
  35295. _luaM_realloc_(i2, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i1 + 48 >> 2] << 2, 0) | 0;
  35296. _luaM_realloc_(i2, HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 56 >> 2] << 2, 0) | 0;
  35297. _luaM_realloc_(i2, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 44 >> 2] << 4, 0) | 0;
  35298. _luaM_realloc_(i2, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i1 + 52 >> 2] << 2, 0) | 0;
  35299. _luaM_realloc_(i2, HEAP32[i1 + 24 >> 2] | 0, (HEAP32[i1 + 60 >> 2] | 0) * 12 | 0, 0) | 0;
  35300. _luaM_realloc_(i2, HEAP32[i1 + 28 >> 2] | 0, HEAP32[i1 + 40 >> 2] << 3, 0) | 0;
  35301. _luaM_realloc_(i2, i1, 80, 0) | 0;
  35302. STACKTOP = i3;
  35303. return;
  35304. }
  35305. function _luaK_patchclose(i3, i7, i4) {
  35306. i3 = i3 | 0;
  35307. i7 = i7 | 0;
  35308. i4 = i4 | 0;
  35309. var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0;
  35310. i2 = STACKTOP;
  35311. if ((i7 | 0) == -1) {
  35312. STACKTOP = i2;
  35313. return;
  35314. }
  35315. i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
  35316. i4 = (i4 << 6) + 64 & 16320;
  35317. while (1) {
  35318. i6 = i3 + (i7 << 2) | 0;
  35319. i5 = HEAP32[i6 >> 2] | 0;
  35320. i8 = (i5 >>> 14) + -131071 | 0;
  35321. if ((i8 | 0) == -1) {
  35322. break;
  35323. }
  35324. i7 = i7 + 1 + i8 | 0;
  35325. HEAP32[i6 >> 2] = i5 & -16321 | i4;
  35326. if ((i7 | 0) == -1) {
  35327. i1 = 6;
  35328. break;
  35329. }
  35330. }
  35331. if ((i1 | 0) == 6) {
  35332. STACKTOP = i2;
  35333. return;
  35334. }
  35335. HEAP32[i6 >> 2] = i5 & -16321 | i4;
  35336. STACKTOP = i2;
  35337. return;
  35338. }
  35339. function _loadfunc(i1, i4, i5) {
  35340. i1 = i1 | 0;
  35341. i4 = i4 | 0;
  35342. i5 = i5 | 0;
  35343. var i2 = 0, i3 = 0, i6 = 0;
  35344. i2 = STACKTOP;
  35345. STACKTOP = STACKTOP + 16 | 0;
  35346. i3 = i2;
  35347. i6 = _luaL_gsub(i1, i5, 4936, 4944) | 0;
  35348. i5 = _strchr(i6, 45) | 0;
  35349. do {
  35350. if ((i5 | 0) != 0) {
  35351. HEAP32[i3 >> 2] = _lua_pushlstring(i1, i6, i5 - i6 | 0) | 0;
  35352. i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
  35353. if ((i6 | 0) == 2) {
  35354. i6 = i5 + 1 | 0;
  35355. break;
  35356. } else {
  35357. STACKTOP = i2;
  35358. return i6 | 0;
  35359. }
  35360. }
  35361. } while (0);
  35362. HEAP32[i3 >> 2] = i6;
  35363. i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
  35364. STACKTOP = i2;
  35365. return i6 | 0;
  35366. }
  35367. function _luaK_setlist(i1, i3, i4, i5) {
  35368. i1 = i1 | 0;
  35369. i3 = i3 | 0;
  35370. i4 = i4 | 0;
  35371. i5 = i5 | 0;
  35372. var i2 = 0;
  35373. i2 = STACKTOP;
  35374. i4 = ((i4 + -1 | 0) / 50 | 0) + 1 | 0;
  35375. i5 = (i5 | 0) == -1 ? 0 : i5;
  35376. if ((i4 | 0) < 512) {
  35377. _luaK_code(i1, i3 << 6 | i5 << 23 | i4 << 14 | 36) | 0;
  35378. i4 = i3 + 1 | 0;
  35379. i4 = i4 & 255;
  35380. i5 = i1 + 48 | 0;
  35381. HEAP8[i5] = i4;
  35382. STACKTOP = i2;
  35383. return;
  35384. }
  35385. if ((i4 | 0) >= 67108864) {
  35386. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10576);
  35387. }
  35388. _luaK_code(i1, i3 << 6 | i5 << 23 | 36) | 0;
  35389. _luaK_code(i1, i4 << 6 | 39) | 0;
  35390. i4 = i3 + 1 | 0;
  35391. i4 = i4 & 255;
  35392. i5 = i1 + 48 | 0;
  35393. HEAP8[i5] = i4;
  35394. STACKTOP = i2;
  35395. return;
  35396. }
  35397. function _lua_getstack(i2, i6, i3) {
  35398. i2 = i2 | 0;
  35399. i6 = i6 | 0;
  35400. i3 = i3 | 0;
  35401. var i1 = 0, i4 = 0, i5 = 0;
  35402. i1 = STACKTOP;
  35403. L1 : do {
  35404. if ((i6 | 0) >= 0) {
  35405. i5 = HEAP32[i2 + 16 >> 2] | 0;
  35406. if ((i6 | 0) > 0) {
  35407. i4 = i2 + 72 | 0;
  35408. do {
  35409. if ((i5 | 0) == (i4 | 0)) {
  35410. i2 = 0;
  35411. break L1;
  35412. }
  35413. i6 = i6 + -1 | 0;
  35414. i5 = HEAP32[i5 + 8 >> 2] | 0;
  35415. } while ((i6 | 0) > 0);
  35416. if ((i6 | 0) != 0) {
  35417. i2 = 0;
  35418. break;
  35419. }
  35420. }
  35421. if ((i5 | 0) != (i2 + 72 | 0)) {
  35422. HEAP32[i3 + 96 >> 2] = i5;
  35423. i2 = 1;
  35424. } else {
  35425. i2 = 0;
  35426. }
  35427. } else {
  35428. i2 = 0;
  35429. }
  35430. } while (0);
  35431. STACKTOP = i1;
  35432. return i2 | 0;
  35433. }
  35434. function _luaC_checkupvalcolor(i1, i5) {
  35435. i1 = i1 | 0;
  35436. i5 = i5 | 0;
  35437. var i2 = 0, i3 = 0, i4 = 0;
  35438. i2 = STACKTOP;
  35439. i4 = i5 + 5 | 0;
  35440. i3 = HEAPU8[i4] | 0;
  35441. if ((i3 & 7 | 0) != 0) {
  35442. STACKTOP = i2;
  35443. return;
  35444. }
  35445. if ((HEAP8[i1 + 62 | 0] | 0) != 2 ? (HEAPU8[i1 + 61 | 0] | 0) >= 2 : 0) {
  35446. HEAP8[i4] = HEAP8[i1 + 60 | 0] & 3 | i3 & 184;
  35447. STACKTOP = i2;
  35448. return;
  35449. }
  35450. HEAP8[i4] = i3 & 187 | 4;
  35451. i3 = HEAP32[i5 + 8 >> 2] | 0;
  35452. if ((HEAP32[i3 + 8 >> 2] & 64 | 0) == 0) {
  35453. STACKTOP = i2;
  35454. return;
  35455. }
  35456. i3 = HEAP32[i3 >> 2] | 0;
  35457. if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
  35458. STACKTOP = i2;
  35459. return;
  35460. }
  35461. _reallymarkobject(i1, i3);
  35462. STACKTOP = i2;
  35463. return;
  35464. }
  35465. function _luaB_collectgarbage(i1) {
  35466. i1 = i1 | 0;
  35467. var i2 = 0, i3 = 0, i4 = 0;
  35468. i2 = STACKTOP;
  35469. i4 = HEAP32[10160 + ((_luaL_checkoption(i1, 1, 10040, 9976) | 0) << 2) >> 2] | 0;
  35470. i3 = _lua_gc(i1, i4, _luaL_optinteger(i1, 2, 0) | 0) | 0;
  35471. if ((i4 | 0) == 3) {
  35472. i4 = _lua_gc(i1, 4, 0) | 0;
  35473. _lua_pushnumber(i1, +(i3 | 0) + +(i4 | 0) * .0009765625);
  35474. _lua_pushinteger(i1, i4);
  35475. i4 = 2;
  35476. STACKTOP = i2;
  35477. return i4 | 0;
  35478. } else if ((i4 | 0) == 9 | (i4 | 0) == 5) {
  35479. _lua_pushboolean(i1, i3);
  35480. i4 = 1;
  35481. STACKTOP = i2;
  35482. return i4 | 0;
  35483. } else {
  35484. _lua_pushinteger(i1, i3);
  35485. i4 = 1;
  35486. STACKTOP = i2;
  35487. return i4 | 0;
  35488. }
  35489. return 0;
  35490. }
  35491. function _maxn(i1) {
  35492. i1 = i1 | 0;
  35493. var i2 = 0, d3 = 0.0, d4 = 0.0;
  35494. i2 = STACKTOP;
  35495. _luaL_checktype(i1, 1, 5);
  35496. _lua_pushnil(i1);
  35497. L1 : do {
  35498. if ((_lua_next(i1, 1) | 0) == 0) {
  35499. d3 = 0.0;
  35500. } else {
  35501. d4 = 0.0;
  35502. while (1) {
  35503. while (1) {
  35504. _lua_settop(i1, -2);
  35505. if ((_lua_type(i1, -1) | 0) == 3 ? (d3 = +_lua_tonumberx(i1, -1, 0), d3 > d4) : 0) {
  35506. break;
  35507. }
  35508. if ((_lua_next(i1, 1) | 0) == 0) {
  35509. d3 = d4;
  35510. break L1;
  35511. }
  35512. }
  35513. if ((_lua_next(i1, 1) | 0) == 0) {
  35514. break;
  35515. } else {
  35516. d4 = d3;
  35517. }
  35518. }
  35519. }
  35520. } while (0);
  35521. _lua_pushnumber(i1, d3);
  35522. STACKTOP = i2;
  35523. return 1;
  35524. }
  35525. function _str_char(i1) {
  35526. i1 = i1 | 0;
  35527. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
  35528. i2 = STACKTOP;
  35529. STACKTOP = STACKTOP + 1040 | 0;
  35530. i4 = i2;
  35531. i3 = _lua_gettop(i1) | 0;
  35532. i5 = _luaL_buffinitsize(i1, i4, i3) | 0;
  35533. if ((i3 | 0) < 1) {
  35534. _luaL_pushresultsize(i4, i3);
  35535. STACKTOP = i2;
  35536. return 1;
  35537. } else {
  35538. i6 = 1;
  35539. }
  35540. while (1) {
  35541. i7 = _luaL_checkinteger(i1, i6) | 0;
  35542. if ((i7 & 255 | 0) != (i7 | 0)) {
  35543. _luaL_argerror(i1, i6, 7920) | 0;
  35544. }
  35545. HEAP8[i5 + (i6 + -1) | 0] = i7;
  35546. if ((i6 | 0) == (i3 | 0)) {
  35547. break;
  35548. } else {
  35549. i6 = i6 + 1 | 0;
  35550. }
  35551. }
  35552. _luaL_pushresultsize(i4, i3);
  35553. STACKTOP = i2;
  35554. return 1;
  35555. }
  35556. function _memcpy(i3, i2, i1) {
  35557. i3 = i3 | 0;
  35558. i2 = i2 | 0;
  35559. i1 = i1 | 0;
  35560. var i4 = 0;
  35561. if ((i1 | 0) >= 4096) return _emscripten_memcpy_big(i3 | 0, i2 | 0, i1 | 0) | 0;
  35562. i4 = i3 | 0;
  35563. if ((i3 & 3) == (i2 & 3)) {
  35564. while (i3 & 3) {
  35565. if ((i1 | 0) == 0) return i4 | 0;
  35566. HEAP8[i3] = HEAP8[i2] | 0;
  35567. i3 = i3 + 1 | 0;
  35568. i2 = i2 + 1 | 0;
  35569. i1 = i1 - 1 | 0;
  35570. }
  35571. while ((i1 | 0) >= 4) {
  35572. HEAP32[i3 >> 2] = HEAP32[i2 >> 2];
  35573. i3 = i3 + 4 | 0;
  35574. i2 = i2 + 4 | 0;
  35575. i1 = i1 - 4 | 0;
  35576. }
  35577. }
  35578. while ((i1 | 0) > 0) {
  35579. HEAP8[i3] = HEAP8[i2] | 0;
  35580. i3 = i3 + 1 | 0;
  35581. i2 = i2 + 1 | 0;
  35582. i1 = i1 - 1 | 0;
  35583. }
  35584. return i4 | 0;
  35585. }
  35586. function _luaK_exp2val(i1, i5) {
  35587. i1 = i1 | 0;
  35588. i5 = i5 | 0;
  35589. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  35590. i2 = STACKTOP;
  35591. i3 = i5 + 16 | 0;
  35592. i4 = i5 + 20 | 0;
  35593. if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
  35594. _luaK_dischargevars(i1, i5);
  35595. STACKTOP = i2;
  35596. return;
  35597. }
  35598. _luaK_dischargevars(i1, i5);
  35599. if ((HEAP32[i5 >> 2] | 0) == 6) {
  35600. i6 = HEAP32[i5 + 8 >> 2] | 0;
  35601. if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
  35602. STACKTOP = i2;
  35603. return;
  35604. }
  35605. if ((i6 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
  35606. _exp2reg(i1, i5, i6);
  35607. STACKTOP = i2;
  35608. return;
  35609. }
  35610. }
  35611. _luaK_exp2nextreg(i1, i5);
  35612. STACKTOP = i2;
  35613. return;
  35614. }
  35615. function _str_reverse(i5) {
  35616. i5 = i5 | 0;
  35617. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  35618. i2 = STACKTOP;
  35619. STACKTOP = STACKTOP + 1056 | 0;
  35620. i4 = i2 + 1040 | 0;
  35621. i1 = i2;
  35622. i3 = _luaL_checklstring(i5, 1, i4) | 0;
  35623. i5 = _luaL_buffinitsize(i5, i1, HEAP32[i4 >> 2] | 0) | 0;
  35624. i6 = HEAP32[i4 >> 2] | 0;
  35625. if ((i6 | 0) == 0) {
  35626. i7 = 0;
  35627. _luaL_pushresultsize(i1, i7);
  35628. STACKTOP = i2;
  35629. return 1;
  35630. } else {
  35631. i7 = 0;
  35632. }
  35633. do {
  35634. HEAP8[i5 + i7 | 0] = HEAP8[i3 + (i6 + ~i7) | 0] | 0;
  35635. i7 = i7 + 1 | 0;
  35636. i6 = HEAP32[i4 >> 2] | 0;
  35637. } while (i7 >>> 0 < i6 >>> 0);
  35638. _luaL_pushresultsize(i1, i6);
  35639. STACKTOP = i2;
  35640. return 1;
  35641. }
  35642. function _str_upper(i5) {
  35643. i5 = i5 | 0;
  35644. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  35645. i1 = STACKTOP;
  35646. STACKTOP = STACKTOP + 1056 | 0;
  35647. i4 = i1 + 1040 | 0;
  35648. i2 = i1;
  35649. i3 = _luaL_checklstring(i5, 1, i4) | 0;
  35650. i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
  35651. if ((HEAP32[i4 >> 2] | 0) == 0) {
  35652. i7 = 0;
  35653. _luaL_pushresultsize(i2, i7);
  35654. STACKTOP = i1;
  35655. return 1;
  35656. } else {
  35657. i6 = 0;
  35658. }
  35659. do {
  35660. HEAP8[i5 + i6 | 0] = _toupper(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
  35661. i6 = i6 + 1 | 0;
  35662. i7 = HEAP32[i4 >> 2] | 0;
  35663. } while (i6 >>> 0 < i7 >>> 0);
  35664. _luaL_pushresultsize(i2, i7);
  35665. STACKTOP = i1;
  35666. return 1;
  35667. }
  35668. function _str_lower(i5) {
  35669. i5 = i5 | 0;
  35670. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  35671. i1 = STACKTOP;
  35672. STACKTOP = STACKTOP + 1056 | 0;
  35673. i4 = i1 + 1040 | 0;
  35674. i2 = i1;
  35675. i3 = _luaL_checklstring(i5, 1, i4) | 0;
  35676. i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
  35677. if ((HEAP32[i4 >> 2] | 0) == 0) {
  35678. i7 = 0;
  35679. _luaL_pushresultsize(i2, i7);
  35680. STACKTOP = i1;
  35681. return 1;
  35682. } else {
  35683. i6 = 0;
  35684. }
  35685. do {
  35686. HEAP8[i5 + i6 | 0] = _tolower(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
  35687. i6 = i6 + 1 | 0;
  35688. i7 = HEAP32[i4 >> 2] | 0;
  35689. } while (i6 >>> 0 < i7 >>> 0);
  35690. _luaL_pushresultsize(i2, i7);
  35691. STACKTOP = i1;
  35692. return 1;
  35693. }
  35694. function ___divdi3(i1, i2, i3, i4) {
  35695. i1 = i1 | 0;
  35696. i2 = i2 | 0;
  35697. i3 = i3 | 0;
  35698. i4 = i4 | 0;
  35699. var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
  35700. i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
  35701. i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
  35702. i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
  35703. i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
  35704. i1 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0;
  35705. i2 = tempRet0;
  35706. i5 = i7 ^ i5;
  35707. i6 = i8 ^ i6;
  35708. i7 = _i64Subtract((___udivmoddi4(i1, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i5, tempRet0 ^ i6, i5, i6) | 0;
  35709. return i7 | 0;
  35710. }
  35711. function _luaK_setoneret(i1, i4) {
  35712. i1 = i1 | 0;
  35713. i4 = i4 | 0;
  35714. var i2 = 0, i3 = 0;
  35715. i2 = STACKTOP;
  35716. i3 = HEAP32[i4 >> 2] | 0;
  35717. if ((i3 | 0) == 13) {
  35718. i3 = (HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 + 8 >> 2] << 2) | 0;
  35719. HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & 8388607 | 16777216;
  35720. HEAP32[i4 >> 2] = 11;
  35721. STACKTOP = i2;
  35722. return;
  35723. } else if ((i3 | 0) == 12) {
  35724. HEAP32[i4 >> 2] = 6;
  35725. i4 = i4 + 8 | 0;
  35726. HEAP32[i4 >> 2] = (HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
  35727. STACKTOP = i2;
  35728. return;
  35729. } else {
  35730. STACKTOP = i2;
  35731. return;
  35732. }
  35733. }
  35734. function _luaV_tostring(i6, i1) {
  35735. i6 = i6 | 0;
  35736. i1 = i1 | 0;
  35737. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  35738. i2 = STACKTOP;
  35739. STACKTOP = STACKTOP + 48 | 0;
  35740. i3 = i2;
  35741. i4 = i2 + 8 | 0;
  35742. i5 = i1 + 8 | 0;
  35743. if ((HEAP32[i5 >> 2] | 0) != 3) {
  35744. i6 = 0;
  35745. STACKTOP = i2;
  35746. return i6 | 0;
  35747. }
  35748. HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i1 >> 3];
  35749. HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
  35750. HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
  35751. i6 = _luaS_newlstr(i6, i4, _sprintf(i4 | 0, 8936, i3 | 0) | 0) | 0;
  35752. HEAP32[i1 >> 2] = i6;
  35753. HEAP32[i5 >> 2] = HEAPU8[i6 + 4 | 0] | 0 | 64;
  35754. i6 = 1;
  35755. STACKTOP = i2;
  35756. return i6 | 0;
  35757. }
  35758. function _strcmp(i4, i2) {
  35759. i4 = i4 | 0;
  35760. i2 = i2 | 0;
  35761. var i1 = 0, i3 = 0, i5 = 0;
  35762. i1 = STACKTOP;
  35763. i5 = HEAP8[i4] | 0;
  35764. i3 = HEAP8[i2] | 0;
  35765. if (i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0) {
  35766. i4 = i5;
  35767. i5 = i3;
  35768. i4 = i4 & 255;
  35769. i5 = i5 & 255;
  35770. i5 = i4 - i5 | 0;
  35771. STACKTOP = i1;
  35772. return i5 | 0;
  35773. }
  35774. do {
  35775. i4 = i4 + 1 | 0;
  35776. i2 = i2 + 1 | 0;
  35777. i5 = HEAP8[i4] | 0;
  35778. i3 = HEAP8[i2] | 0;
  35779. } while (!(i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0));
  35780. i4 = i5 & 255;
  35781. i5 = i3 & 255;
  35782. i5 = i4 - i5 | 0;
  35783. STACKTOP = i1;
  35784. return i5 | 0;
  35785. }
  35786. function _lua_pushstring(i1, i3) {
  35787. i1 = i1 | 0;
  35788. i3 = i3 | 0;
  35789. var i2 = 0, i4 = 0;
  35790. i2 = STACKTOP;
  35791. if ((i3 | 0) == 0) {
  35792. i3 = i1 + 8 | 0;
  35793. i1 = HEAP32[i3 >> 2] | 0;
  35794. HEAP32[i1 + 8 >> 2] = 0;
  35795. HEAP32[i3 >> 2] = i1 + 16;
  35796. i3 = 0;
  35797. STACKTOP = i2;
  35798. return i3 | 0;
  35799. }
  35800. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  35801. _luaC_step(i1);
  35802. }
  35803. i3 = _luaS_new(i1, i3) | 0;
  35804. i1 = i1 + 8 | 0;
  35805. i4 = HEAP32[i1 >> 2] | 0;
  35806. HEAP32[i4 >> 2] = i3;
  35807. HEAP32[i4 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
  35808. HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
  35809. i3 = i3 + 16 | 0;
  35810. STACKTOP = i2;
  35811. return i3 | 0;
  35812. }
  35813. function _luaK_exp2anyreg(i1, i3) {
  35814. i1 = i1 | 0;
  35815. i3 = i3 | 0;
  35816. var i2 = 0, i4 = 0, i5 = 0;
  35817. i2 = STACKTOP;
  35818. _luaK_dischargevars(i1, i3);
  35819. if ((HEAP32[i3 >> 2] | 0) == 6) {
  35820. i5 = i3 + 8 | 0;
  35821. i4 = HEAP32[i5 >> 2] | 0;
  35822. if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
  35823. i5 = i4;
  35824. STACKTOP = i2;
  35825. return i5 | 0;
  35826. }
  35827. if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
  35828. _exp2reg(i1, i3, i4);
  35829. i5 = HEAP32[i5 >> 2] | 0;
  35830. STACKTOP = i2;
  35831. return i5 | 0;
  35832. }
  35833. } else {
  35834. i5 = i3 + 8 | 0;
  35835. }
  35836. _luaK_exp2nextreg(i1, i3);
  35837. i5 = HEAP32[i5 >> 2] | 0;
  35838. STACKTOP = i2;
  35839. return i5 | 0;
  35840. }
  35841. function _check_match(i1, i4, i5, i6) {
  35842. i1 = i1 | 0;
  35843. i4 = i4 | 0;
  35844. i5 = i5 | 0;
  35845. i6 = i6 | 0;
  35846. var i2 = 0, i3 = 0;
  35847. i2 = STACKTOP;
  35848. STACKTOP = STACKTOP + 16 | 0;
  35849. i3 = i2;
  35850. if ((HEAP32[i1 + 16 >> 2] | 0) == (i4 | 0)) {
  35851. _luaX_next(i1);
  35852. STACKTOP = i2;
  35853. return;
  35854. }
  35855. if ((HEAP32[i1 + 4 >> 2] | 0) == (i6 | 0)) {
  35856. _error_expected(i1, i4);
  35857. } else {
  35858. i2 = HEAP32[i1 + 52 >> 2] | 0;
  35859. i4 = _luaX_token2str(i1, i4) | 0;
  35860. i5 = _luaX_token2str(i1, i5) | 0;
  35861. HEAP32[i3 >> 2] = i4;
  35862. HEAP32[i3 + 4 >> 2] = i5;
  35863. HEAP32[i3 + 8 >> 2] = i6;
  35864. _luaX_syntaxerror(i1, _luaO_pushfstring(i2, 6840, i3) | 0);
  35865. }
  35866. }
  35867. function _fieldsel(i1, i6) {
  35868. i1 = i1 | 0;
  35869. i6 = i6 | 0;
  35870. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
  35871. i2 = STACKTOP;
  35872. STACKTOP = STACKTOP + 32 | 0;
  35873. i3 = i2;
  35874. i5 = i1 + 48 | 0;
  35875. i4 = HEAP32[i5 >> 2] | 0;
  35876. _luaK_exp2anyregup(i4, i6);
  35877. _luaX_next(i1);
  35878. if ((HEAP32[i1 + 16 >> 2] | 0) == 288) {
  35879. i7 = HEAP32[i1 + 24 >> 2] | 0;
  35880. _luaX_next(i1);
  35881. i5 = _luaK_stringK(HEAP32[i5 >> 2] | 0, i7) | 0;
  35882. HEAP32[i3 + 16 >> 2] = -1;
  35883. HEAP32[i3 + 20 >> 2] = -1;
  35884. HEAP32[i3 >> 2] = 4;
  35885. HEAP32[i3 + 8 >> 2] = i5;
  35886. _luaK_indexed(i4, i6, i3);
  35887. STACKTOP = i2;
  35888. return;
  35889. } else {
  35890. _error_expected(i1, 288);
  35891. }
  35892. }
  35893. function _luaK_exp2anyregup(i1, i3) {
  35894. i1 = i1 | 0;
  35895. i3 = i3 | 0;
  35896. var i2 = 0, i4 = 0;
  35897. i2 = STACKTOP;
  35898. if ((HEAP32[i3 >> 2] | 0) == 8 ? (HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0) : 0) {
  35899. STACKTOP = i2;
  35900. return;
  35901. }
  35902. _luaK_dischargevars(i1, i3);
  35903. if ((HEAP32[i3 >> 2] | 0) == 6) {
  35904. i4 = HEAP32[i3 + 8 >> 2] | 0;
  35905. if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
  35906. STACKTOP = i2;
  35907. return;
  35908. }
  35909. if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
  35910. _exp2reg(i1, i3, i4);
  35911. STACKTOP = i2;
  35912. return;
  35913. }
  35914. }
  35915. _luaK_exp2nextreg(i1, i3);
  35916. STACKTOP = i2;
  35917. return;
  35918. }
  35919. function _lua_settop(i3, i5) {
  35920. i3 = i3 | 0;
  35921. i5 = i5 | 0;
  35922. var i1 = 0, i2 = 0, i4 = 0;
  35923. i1 = STACKTOP;
  35924. if (!((i5 | 0) > -1)) {
  35925. i4 = i3 + 8 | 0;
  35926. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + (i5 + 1 << 4);
  35927. STACKTOP = i1;
  35928. return;
  35929. }
  35930. i2 = i3 + 8 | 0;
  35931. i4 = HEAP32[i2 >> 2] | 0;
  35932. i3 = (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) + (i5 + 1 << 4) | 0;
  35933. if (i4 >>> 0 < i3 >>> 0) {
  35934. while (1) {
  35935. i5 = i4 + 16 | 0;
  35936. HEAP32[i4 + 8 >> 2] = 0;
  35937. if (i5 >>> 0 < i3 >>> 0) {
  35938. i4 = i5;
  35939. } else {
  35940. break;
  35941. }
  35942. }
  35943. HEAP32[i2 >> 2] = i5;
  35944. }
  35945. HEAP32[i2 >> 2] = i3;
  35946. STACKTOP = i1;
  35947. return;
  35948. }
  35949. function _luaL_fileresult(i1, i6, i5) {
  35950. i1 = i1 | 0;
  35951. i6 = i6 | 0;
  35952. i5 = i5 | 0;
  35953. var i2 = 0, i3 = 0, i4 = 0;
  35954. i2 = STACKTOP;
  35955. STACKTOP = STACKTOP + 16 | 0;
  35956. i4 = i2;
  35957. i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
  35958. if ((i6 | 0) != 0) {
  35959. _lua_pushboolean(i1, 1);
  35960. i6 = 1;
  35961. STACKTOP = i2;
  35962. return i6 | 0;
  35963. }
  35964. _lua_pushnil(i1);
  35965. i6 = _strerror(i3 | 0) | 0;
  35966. if ((i5 | 0) == 0) {
  35967. _lua_pushstring(i1, i6) | 0;
  35968. } else {
  35969. HEAP32[i4 >> 2] = i5;
  35970. HEAP32[i4 + 4 >> 2] = i6;
  35971. _lua_pushfstring(i1, 1176, i4) | 0;
  35972. }
  35973. _lua_pushinteger(i1, i3);
  35974. i6 = 3;
  35975. STACKTOP = i2;
  35976. return i6 | 0;
  35977. }
  35978. function _luaL_pushmodule(i1, i4, i5) {
  35979. i1 = i1 | 0;
  35980. i4 = i4 | 0;
  35981. i5 = i5 | 0;
  35982. var i2 = 0, i3 = 0;
  35983. i2 = STACKTOP;
  35984. STACKTOP = STACKTOP + 16 | 0;
  35985. i3 = i2;
  35986. _luaL_findtable(i1, -1001e3, 1432, 1) | 0;
  35987. _lua_getfield(i1, -1, i4);
  35988. if ((_lua_type(i1, -1) | 0) == 5) {
  35989. _lua_remove(i1, -2);
  35990. STACKTOP = i2;
  35991. return;
  35992. }
  35993. _lua_settop(i1, -2);
  35994. _lua_rawgeti(i1, -1001e3, 2);
  35995. if ((_luaL_findtable(i1, 0, i4, i5) | 0) != 0) {
  35996. HEAP32[i3 >> 2] = i4;
  35997. _luaL_error(i1, 1440, i3) | 0;
  35998. }
  35999. _lua_pushvalue(i1, -1);
  36000. _lua_setfield(i1, -3, i4);
  36001. _lua_remove(i1, -2);
  36002. STACKTOP = i2;
  36003. return;
  36004. }
  36005. function _b_replace(i1) {
  36006. i1 = i1 | 0;
  36007. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36008. i6 = STACKTOP;
  36009. STACKTOP = STACKTOP + 16 | 0;
  36010. i3 = _luaL_checkunsigned(i1, 1) | 0;
  36011. i5 = _luaL_checkunsigned(i1, 2) | 0;
  36012. i4 = _luaL_checkinteger(i1, 3) | 0;
  36013. i2 = _luaL_optinteger(i1, 4, 1) | 0;
  36014. if (!((i4 | 0) > -1)) {
  36015. _luaL_argerror(i1, 3, 10440) | 0;
  36016. }
  36017. if ((i2 | 0) <= 0) {
  36018. _luaL_argerror(i1, 4, 10472) | 0;
  36019. }
  36020. if ((i2 + i4 | 0) > 32) {
  36021. _luaL_error(i1, 10496, i6) | 0;
  36022. }
  36023. i2 = ~(-2 << i2 + -1);
  36024. _lua_pushunsigned(i1, i3 & ~(i2 << i4) | (i5 & i2) << i4);
  36025. STACKTOP = i6;
  36026. return 1;
  36027. }
  36028. function _luaT_gettmbyobj(i1, i5, i3) {
  36029. i1 = i1 | 0;
  36030. i5 = i5 | 0;
  36031. i3 = i3 | 0;
  36032. var i2 = 0, i4 = 0;
  36033. i2 = STACKTOP;
  36034. i4 = HEAP32[i5 + 8 >> 2] & 15;
  36035. if ((i4 | 0) == 5) {
  36036. i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
  36037. } else if ((i4 | 0) == 7) {
  36038. i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
  36039. } else {
  36040. i4 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i4 << 2) + 252 >> 2] | 0;
  36041. }
  36042. if ((i4 | 0) == 0) {
  36043. i5 = 5192;
  36044. STACKTOP = i2;
  36045. return i5 | 0;
  36046. }
  36047. i5 = _luaH_getstr(i4, HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 184 >> 2] | 0) | 0;
  36048. STACKTOP = i2;
  36049. return i5 | 0;
  36050. }
  36051. function _luaS_eqstr(i2, i3) {
  36052. i2 = i2 | 0;
  36053. i3 = i3 | 0;
  36054. var i1 = 0, i4 = 0;
  36055. i1 = STACKTOP;
  36056. i4 = HEAP8[i2 + 4 | 0] | 0;
  36057. do {
  36058. if (i4 << 24 >> 24 == (HEAP8[i3 + 4 | 0] | 0)) {
  36059. if (i4 << 24 >> 24 == 4) {
  36060. i2 = (i2 | 0) == (i3 | 0);
  36061. break;
  36062. }
  36063. i4 = HEAP32[i2 + 12 >> 2] | 0;
  36064. if ((i2 | 0) != (i3 | 0)) {
  36065. if ((i4 | 0) == (HEAP32[i3 + 12 >> 2] | 0)) {
  36066. i2 = (_memcmp(i2 + 16 | 0, i3 + 16 | 0, i4) | 0) == 0;
  36067. } else {
  36068. i2 = 0;
  36069. }
  36070. } else {
  36071. i2 = 1;
  36072. }
  36073. } else {
  36074. i2 = 0;
  36075. }
  36076. } while (0);
  36077. STACKTOP = i1;
  36078. return i2 & 1 | 0;
  36079. }
  36080. function _lua_concat(i1, i3) {
  36081. i1 = i1 | 0;
  36082. i3 = i3 | 0;
  36083. var i2 = 0, i4 = 0;
  36084. i2 = STACKTOP;
  36085. if ((i3 | 0) > 1) {
  36086. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  36087. _luaC_step(i1);
  36088. }
  36089. _luaV_concat(i1, i3);
  36090. STACKTOP = i2;
  36091. return;
  36092. } else {
  36093. if ((i3 | 0) != 0) {
  36094. STACKTOP = i2;
  36095. return;
  36096. }
  36097. i3 = i1 + 8 | 0;
  36098. i4 = HEAP32[i3 >> 2] | 0;
  36099. i1 = _luaS_newlstr(i1, 936, 0) | 0;
  36100. HEAP32[i4 >> 2] = i1;
  36101. HEAP32[i4 + 8 >> 2] = HEAPU8[i1 + 4 | 0] | 0 | 64;
  36102. HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
  36103. STACKTOP = i2;
  36104. return;
  36105. }
  36106. }
  36107. function _ll_loadfunc(i1, i4, i3) {
  36108. i1 = i1 | 0;
  36109. i4 = i4 | 0;
  36110. i3 = i3 | 0;
  36111. var i2 = 0;
  36112. i2 = STACKTOP;
  36113. _lua_getfield(i1, -1001e3, 4184);
  36114. _lua_getfield(i1, -1, i4);
  36115. i4 = _lua_touserdata(i1, -1) | 0;
  36116. _lua_settop(i1, -3);
  36117. if ((i4 | 0) == 0) {
  36118. _lua_pushlstring(i1, 4968, 58) | 0;
  36119. i4 = 1;
  36120. STACKTOP = i2;
  36121. return i4 | 0;
  36122. }
  36123. if ((HEAP8[i3] | 0) == 42) {
  36124. _lua_pushboolean(i1, 1);
  36125. i4 = 0;
  36126. STACKTOP = i2;
  36127. return i4 | 0;
  36128. } else {
  36129. _lua_pushlstring(i1, 4968, 58) | 0;
  36130. i4 = 2;
  36131. STACKTOP = i2;
  36132. return i4 | 0;
  36133. }
  36134. return 0;
  36135. }
  36136. function _memset(i1, i4, i3) {
  36137. i1 = i1 | 0;
  36138. i4 = i4 | 0;
  36139. i3 = i3 | 0;
  36140. var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
  36141. i2 = i1 + i3 | 0;
  36142. if ((i3 | 0) >= 20) {
  36143. i4 = i4 & 255;
  36144. i7 = i1 & 3;
  36145. i6 = i4 | i4 << 8 | i4 << 16 | i4 << 24;
  36146. i5 = i2 & ~3;
  36147. if (i7) {
  36148. i7 = i1 + 4 - i7 | 0;
  36149. while ((i1 | 0) < (i7 | 0)) {
  36150. HEAP8[i1] = i4;
  36151. i1 = i1 + 1 | 0;
  36152. }
  36153. }
  36154. while ((i1 | 0) < (i5 | 0)) {
  36155. HEAP32[i1 >> 2] = i6;
  36156. i1 = i1 + 4 | 0;
  36157. }
  36158. }
  36159. while ((i1 | 0) < (i2 | 0)) {
  36160. HEAP8[i1] = i4;
  36161. i1 = i1 + 1 | 0;
  36162. }
  36163. return i1 - i3 | 0;
  36164. }
  36165. function _luaD_growstack(i1, i3) {
  36166. i1 = i1 | 0;
  36167. i3 = i3 | 0;
  36168. var i2 = 0, i4 = 0;
  36169. i2 = STACKTOP;
  36170. STACKTOP = STACKTOP + 16 | 0;
  36171. i4 = HEAP32[i1 + 32 >> 2] | 0;
  36172. if ((i4 | 0) > 1e6) {
  36173. _luaD_throw(i1, 6);
  36174. }
  36175. i3 = i3 + 5 + ((HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) >> 4) | 0;
  36176. i4 = i4 << 1;
  36177. i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
  36178. i3 = (i4 | 0) < (i3 | 0) ? i3 : i4;
  36179. if ((i3 | 0) > 1e6) {
  36180. _luaD_reallocstack(i1, 1000200);
  36181. _luaG_runerror(i1, 2224, i2);
  36182. } else {
  36183. _luaD_reallocstack(i1, i3);
  36184. STACKTOP = i2;
  36185. return;
  36186. }
  36187. }
  36188. function _luaL_callmeta(i1, i4, i3) {
  36189. i1 = i1 | 0;
  36190. i4 = i4 | 0;
  36191. i3 = i3 | 0;
  36192. var i2 = 0;
  36193. i2 = STACKTOP;
  36194. i4 = _lua_absindex(i1, i4) | 0;
  36195. if ((_lua_getmetatable(i1, i4) | 0) == 0) {
  36196. i4 = 0;
  36197. STACKTOP = i2;
  36198. return i4 | 0;
  36199. }
  36200. _lua_pushstring(i1, i3) | 0;
  36201. _lua_rawget(i1, -2);
  36202. if ((_lua_type(i1, -1) | 0) == 0) {
  36203. _lua_settop(i1, -3);
  36204. i4 = 0;
  36205. STACKTOP = i2;
  36206. return i4 | 0;
  36207. } else {
  36208. _lua_remove(i1, -2);
  36209. _lua_pushvalue(i1, i4);
  36210. _lua_callk(i1, 1, 1, 0, 0);
  36211. i4 = 1;
  36212. STACKTOP = i2;
  36213. return i4 | 0;
  36214. }
  36215. return 0;
  36216. }
  36217. function _luaK_reserveregs(i8, i7) {
  36218. i8 = i8 | 0;
  36219. i7 = i7 | 0;
  36220. var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36221. i3 = STACKTOP;
  36222. i2 = i8 + 48 | 0;
  36223. i6 = HEAP8[i2] | 0;
  36224. i4 = (i6 & 255) + i7 | 0;
  36225. i5 = (HEAP32[i8 >> 2] | 0) + 78 | 0;
  36226. do {
  36227. if ((i4 | 0) > (HEAPU8[i5] | 0 | 0)) {
  36228. if ((i4 | 0) > 249) {
  36229. _luaX_syntaxerror(HEAP32[i8 + 12 >> 2] | 0, 10536);
  36230. } else {
  36231. HEAP8[i5] = i4;
  36232. i1 = HEAP8[i2] | 0;
  36233. break;
  36234. }
  36235. } else {
  36236. i1 = i6;
  36237. }
  36238. } while (0);
  36239. HEAP8[i2] = (i1 & 255) + i7;
  36240. STACKTOP = i3;
  36241. return;
  36242. }
  36243. function _aux_lines(i1, i5) {
  36244. i1 = i1 | 0;
  36245. i5 = i5 | 0;
  36246. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  36247. i4 = STACKTOP;
  36248. i3 = _lua_gettop(i1) | 0;
  36249. i2 = i3 + -1 | 0;
  36250. if ((i3 | 0) >= 19) {
  36251. _luaL_argerror(i1, 17, 3320) | 0;
  36252. }
  36253. _lua_pushvalue(i1, 1);
  36254. _lua_pushinteger(i1, i2);
  36255. _lua_pushboolean(i1, i5);
  36256. if ((i3 | 0) >= 2) {
  36257. i5 = 1;
  36258. while (1) {
  36259. i6 = i5 + 1 | 0;
  36260. _lua_pushvalue(i1, i6);
  36261. if ((i5 | 0) < (i2 | 0)) {
  36262. i5 = i6;
  36263. } else {
  36264. break;
  36265. }
  36266. }
  36267. }
  36268. _lua_pushcclosure(i1, 155, i3 + 2 | 0);
  36269. STACKTOP = i4;
  36270. return;
  36271. }
  36272. function _memcmp(i2, i4, i3) {
  36273. i2 = i2 | 0;
  36274. i4 = i4 | 0;
  36275. i3 = i3 | 0;
  36276. var i1 = 0, i5 = 0, i6 = 0;
  36277. i1 = STACKTOP;
  36278. L1 : do {
  36279. if ((i3 | 0) == 0) {
  36280. i2 = 0;
  36281. } else {
  36282. while (1) {
  36283. i6 = HEAP8[i2] | 0;
  36284. i5 = HEAP8[i4] | 0;
  36285. if (!(i6 << 24 >> 24 == i5 << 24 >> 24)) {
  36286. break;
  36287. }
  36288. i3 = i3 + -1 | 0;
  36289. if ((i3 | 0) == 0) {
  36290. i2 = 0;
  36291. break L1;
  36292. } else {
  36293. i2 = i2 + 1 | 0;
  36294. i4 = i4 + 1 | 0;
  36295. }
  36296. }
  36297. i2 = (i6 & 255) - (i5 & 255) | 0;
  36298. }
  36299. } while (0);
  36300. STACKTOP = i1;
  36301. return i2 | 0;
  36302. }
  36303. function _b_arshift(i1) {
  36304. i1 = i1 | 0;
  36305. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  36306. i2 = STACKTOP;
  36307. i3 = _luaL_checkunsigned(i1, 1) | 0;
  36308. i4 = _luaL_checkinteger(i1, 2) | 0;
  36309. if ((i4 | 0) > -1 & (i3 | 0) < 0) {
  36310. if ((i4 | 0) > 31) {
  36311. i3 = -1;
  36312. } else {
  36313. i3 = i3 >>> i4 | ~(-1 >>> i4);
  36314. }
  36315. _lua_pushunsigned(i1, i3);
  36316. STACKTOP = i2;
  36317. return 1;
  36318. }
  36319. i5 = 0 - i4 | 0;
  36320. if ((i4 | 0) > 0) {
  36321. i3 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
  36322. } else {
  36323. i3 = (i5 | 0) > 31 ? 0 : i3 << i5;
  36324. }
  36325. _lua_pushunsigned(i1, i3);
  36326. STACKTOP = i2;
  36327. return 1;
  36328. }
  36329. function _luaL_checkunsigned(i1, i5) {
  36330. i1 = i1 | 0;
  36331. i5 = i5 | 0;
  36332. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  36333. i3 = STACKTOP;
  36334. STACKTOP = STACKTOP + 16 | 0;
  36335. i4 = i3;
  36336. i6 = i3 + 8 | 0;
  36337. i2 = _lua_tounsignedx(i1, i5, i6) | 0;
  36338. if ((HEAP32[i6 >> 2] | 0) != 0) {
  36339. STACKTOP = i3;
  36340. return i2 | 0;
  36341. }
  36342. i7 = _lua_typename(i1, 3) | 0;
  36343. i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
  36344. HEAP32[i4 >> 2] = i7;
  36345. HEAP32[i4 + 4 >> 2] = i6;
  36346. _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
  36347. STACKTOP = i3;
  36348. return i2 | 0;
  36349. }
  36350. function _luaB_loadfile(i2) {
  36351. i2 = i2 | 0;
  36352. var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36353. i1 = STACKTOP;
  36354. i4 = _luaL_optlstring(i2, 1, 0, 0) | 0;
  36355. i5 = _luaL_optlstring(i2, 2, 0, 0) | 0;
  36356. i3 = (_lua_type(i2, 3) | 0) != -1;
  36357. i6 = i3 ? 3 : 0;
  36358. if ((_luaL_loadfilex(i2, i4, i5) | 0) == 0) {
  36359. if (i3 ? (_lua_pushvalue(i2, i6), (_lua_setupvalue(i2, -2, 1) | 0) == 0) : 0) {
  36360. _lua_settop(i2, -2);
  36361. i2 = 1;
  36362. } else {
  36363. i2 = 1;
  36364. }
  36365. } else {
  36366. _lua_pushnil(i2);
  36367. _lua_insert(i2, -2);
  36368. i2 = 2;
  36369. }
  36370. STACKTOP = i1;
  36371. return i2 | 0;
  36372. }
  36373. function _luaL_checkinteger(i1, i5) {
  36374. i1 = i1 | 0;
  36375. i5 = i5 | 0;
  36376. var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  36377. i3 = STACKTOP;
  36378. STACKTOP = STACKTOP + 16 | 0;
  36379. i4 = i3;
  36380. i6 = i3 + 8 | 0;
  36381. i2 = _lua_tointegerx(i1, i5, i6) | 0;
  36382. if ((HEAP32[i6 >> 2] | 0) != 0) {
  36383. STACKTOP = i3;
  36384. return i2 | 0;
  36385. }
  36386. i7 = _lua_typename(i1, 3) | 0;
  36387. i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
  36388. HEAP32[i4 >> 2] = i7;
  36389. HEAP32[i4 + 4 >> 2] = i6;
  36390. _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
  36391. STACKTOP = i3;
  36392. return i2 | 0;
  36393. }
  36394. function _luaB_select(i1) {
  36395. i1 = i1 | 0;
  36396. var i2 = 0, i3 = 0, i4 = 0;
  36397. i3 = STACKTOP;
  36398. i2 = _lua_gettop(i1) | 0;
  36399. if ((_lua_type(i1, 1) | 0) == 4 ? (HEAP8[_lua_tolstring(i1, 1, 0) | 0] | 0) == 35 : 0) {
  36400. _lua_pushinteger(i1, i2 + -1 | 0);
  36401. i4 = 1;
  36402. STACKTOP = i3;
  36403. return i4 | 0;
  36404. }
  36405. i4 = _luaL_checkinteger(i1, 1) | 0;
  36406. if ((i4 | 0) < 0) {
  36407. i4 = i4 + i2 | 0;
  36408. } else {
  36409. i4 = (i4 | 0) > (i2 | 0) ? i2 : i4;
  36410. }
  36411. if ((i4 | 0) <= 0) {
  36412. _luaL_argerror(i1, 1, 9760) | 0;
  36413. }
  36414. i4 = i2 - i4 | 0;
  36415. STACKTOP = i3;
  36416. return i4 | 0;
  36417. }
  36418. function _luaX_next(i1) {
  36419. i1 = i1 | 0;
  36420. var i2 = 0, i3 = 0;
  36421. i2 = STACKTOP;
  36422. HEAP32[i1 + 8 >> 2] = HEAP32[i1 + 4 >> 2];
  36423. i3 = i1 + 32 | 0;
  36424. if ((HEAP32[i3 >> 2] | 0) == 286) {
  36425. HEAP32[i1 + 16 >> 2] = _llex(i1, i1 + 24 | 0) | 0;
  36426. STACKTOP = i2;
  36427. return;
  36428. } else {
  36429. i1 = i1 + 16 | 0;
  36430. HEAP32[i1 + 0 >> 2] = HEAP32[i3 + 0 >> 2];
  36431. HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
  36432. HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
  36433. HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
  36434. HEAP32[i3 >> 2] = 286;
  36435. STACKTOP = i2;
  36436. return;
  36437. }
  36438. }
  36439. function _lua_setglobal(i1, i2) {
  36440. i1 = i1 | 0;
  36441. i2 = i2 | 0;
  36442. var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36443. i3 = STACKTOP;
  36444. i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
  36445. i4 = i1 + 8 | 0;
  36446. i6 = HEAP32[i4 >> 2] | 0;
  36447. HEAP32[i4 >> 2] = i6 + 16;
  36448. i2 = _luaS_new(i1, i2) | 0;
  36449. HEAP32[i6 >> 2] = i2;
  36450. HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
  36451. i2 = HEAP32[i4 >> 2] | 0;
  36452. _luaV_settable(i1, i5, i2 + -16 | 0, i2 + -32 | 0);
  36453. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -32;
  36454. STACKTOP = i3;
  36455. return;
  36456. }
  36457. function _luaL_checknumber(i1, i5) {
  36458. i1 = i1 | 0;
  36459. i5 = i5 | 0;
  36460. var d2 = 0.0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
  36461. i3 = STACKTOP;
  36462. STACKTOP = STACKTOP + 16 | 0;
  36463. i4 = i3;
  36464. i6 = i3 + 8 | 0;
  36465. d2 = +_lua_tonumberx(i1, i5, i6);
  36466. if ((HEAP32[i6 >> 2] | 0) != 0) {
  36467. STACKTOP = i3;
  36468. return +d2;
  36469. }
  36470. i7 = _lua_typename(i1, 3) | 0;
  36471. i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
  36472. HEAP32[i4 >> 2] = i7;
  36473. HEAP32[i4 + 4 >> 2] = i6;
  36474. _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
  36475. STACKTOP = i3;
  36476. return +d2;
  36477. }
  36478. function _luaZ_fill(i1) {
  36479. i1 = i1 | 0;
  36480. var i2 = 0, i3 = 0, i4 = 0;
  36481. i2 = STACKTOP;
  36482. STACKTOP = STACKTOP + 16 | 0;
  36483. i4 = i2;
  36484. i3 = FUNCTION_TABLE_iiii[HEAP32[i1 + 8 >> 2] & 3](HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, i4) | 0;
  36485. if ((i3 | 0) == 0) {
  36486. i4 = -1;
  36487. STACKTOP = i2;
  36488. return i4 | 0;
  36489. }
  36490. i4 = HEAP32[i4 >> 2] | 0;
  36491. if ((i4 | 0) == 0) {
  36492. i4 = -1;
  36493. STACKTOP = i2;
  36494. return i4 | 0;
  36495. }
  36496. HEAP32[i1 >> 2] = i4 + -1;
  36497. HEAP32[i1 + 4 >> 2] = i3 + 1;
  36498. i4 = HEAPU8[i3] | 0;
  36499. STACKTOP = i2;
  36500. return i4 | 0;
  36501. }
  36502. function _lua_createtable(i1, i3, i4) {
  36503. i1 = i1 | 0;
  36504. i3 = i3 | 0;
  36505. i4 = i4 | 0;
  36506. var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
  36507. i2 = STACKTOP;
  36508. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  36509. _luaC_step(i1);
  36510. }
  36511. i5 = _luaH_new(i1) | 0;
  36512. i6 = i1 + 8 | 0;
  36513. i7 = HEAP32[i6 >> 2] | 0;
  36514. HEAP32[i7 >> 2] = i5;
  36515. HEAP32[i7 + 8 >> 2] = 69;
  36516. HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
  36517. if (!((i3 | 0) > 0 | (i4 | 0) > 0)) {
  36518. STACKTOP = i2;
  36519. return;
  36520. }
  36521. _luaH_resize(i1, i5, i3, i4);
  36522. STACKTOP = i2;
  36523. return;
  36524. }
  36525. function _generic_reader(i1, i3, i2) {
  36526. i1 = i1 | 0;
  36527. i3 = i3 | 0;
  36528. i2 = i2 | 0;
  36529. i3 = STACKTOP;
  36530. STACKTOP = STACKTOP + 16 | 0;
  36531. _luaL_checkstack(i1, 2, 9888);
  36532. _lua_pushvalue(i1, 1);
  36533. _lua_callk(i1, 0, 1, 0, 0);
  36534. if ((_lua_type(i1, -1) | 0) == 0) {
  36535. _lua_settop(i1, -2);
  36536. HEAP32[i2 >> 2] = 0;
  36537. i2 = 0;
  36538. STACKTOP = i3;
  36539. return i2 | 0;
  36540. }
  36541. if ((_lua_isstring(i1, -1) | 0) == 0) {
  36542. _luaL_error(i1, 9920, i3) | 0;
  36543. }
  36544. _lua_replace(i1, 5);
  36545. i2 = _lua_tolstring(i1, 5, i2) | 0;
  36546. STACKTOP = i3;
  36547. return i2 | 0;
  36548. }
  36549. function _luaZ_openspace(i5, i1, i6) {
  36550. i5 = i5 | 0;
  36551. i1 = i1 | 0;
  36552. i6 = i6 | 0;
  36553. var i2 = 0, i3 = 0, i4 = 0;
  36554. i2 = STACKTOP;
  36555. i4 = i1 + 8 | 0;
  36556. i3 = HEAP32[i4 >> 2] | 0;
  36557. if (!(i3 >>> 0 < i6 >>> 0)) {
  36558. i6 = HEAP32[i1 >> 2] | 0;
  36559. STACKTOP = i2;
  36560. return i6 | 0;
  36561. }
  36562. i6 = i6 >>> 0 < 32 ? 32 : i6;
  36563. if ((i6 + 1 | 0) >>> 0 > 4294967293) {
  36564. _luaM_toobig(i5);
  36565. }
  36566. i5 = _luaM_realloc_(i5, HEAP32[i1 >> 2] | 0, i3, i6) | 0;
  36567. HEAP32[i1 >> 2] = i5;
  36568. HEAP32[i4 >> 2] = i6;
  36569. i6 = i5;
  36570. STACKTOP = i2;
  36571. return i6 | 0;
  36572. }
  36573. function _luaH_getstr(i4, i3) {
  36574. i4 = i4 | 0;
  36575. i3 = i3 | 0;
  36576. var i1 = 0, i2 = 0;
  36577. i2 = STACKTOP;
  36578. i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i3 + 8 >> 2]) << 5) | 0;
  36579. while (1) {
  36580. if ((HEAP32[i4 + 24 >> 2] | 0) == 68 ? (HEAP32[i4 + 16 >> 2] | 0) == (i3 | 0) : 0) {
  36581. break;
  36582. }
  36583. i4 = HEAP32[i4 + 28 >> 2] | 0;
  36584. if ((i4 | 0) == 0) {
  36585. i3 = 5192;
  36586. i1 = 6;
  36587. break;
  36588. }
  36589. }
  36590. if ((i1 | 0) == 6) {
  36591. STACKTOP = i2;
  36592. return i3 | 0;
  36593. }
  36594. STACKTOP = i2;
  36595. return i4 | 0;
  36596. }
  36597. function _b_extract(i1) {
  36598. i1 = i1 | 0;
  36599. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  36600. i5 = STACKTOP;
  36601. STACKTOP = STACKTOP + 16 | 0;
  36602. i2 = _luaL_checkunsigned(i1, 1) | 0;
  36603. i3 = _luaL_checkinteger(i1, 2) | 0;
  36604. i4 = _luaL_optinteger(i1, 3, 1) | 0;
  36605. if (!((i3 | 0) > -1)) {
  36606. _luaL_argerror(i1, 2, 10440) | 0;
  36607. }
  36608. if ((i4 | 0) <= 0) {
  36609. _luaL_argerror(i1, 3, 10472) | 0;
  36610. }
  36611. if ((i4 + i3 | 0) > 32) {
  36612. _luaL_error(i1, 10496, i5) | 0;
  36613. }
  36614. _lua_pushunsigned(i1, i2 >>> i3 & ~(-2 << i4 + -1));
  36615. STACKTOP = i5;
  36616. return 1;
  36617. }
  36618. function _luaL_checklstring(i1, i4, i5) {
  36619. i1 = i1 | 0;
  36620. i4 = i4 | 0;
  36621. i5 = i5 | 0;
  36622. var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
  36623. i2 = STACKTOP;
  36624. STACKTOP = STACKTOP + 16 | 0;
  36625. i3 = i2;
  36626. i5 = _lua_tolstring(i1, i4, i5) | 0;
  36627. if ((i5 | 0) != 0) {
  36628. STACKTOP = i2;
  36629. return i5 | 0;
  36630. }
  36631. i7 = _lua_typename(i1, 4) | 0;
  36632. i6 = _lua_typename(i1, _lua_type(i1, i4) | 0) | 0;
  36633. HEAP32[i3 >> 2] = i7;
  36634. HEAP32[i3 + 4 >> 2] = i6;
  36635. _luaL_argerror(i1, i4, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
  36636. STACKTOP = i2;
  36637. return i5 | 0;
  36638. }
  36639. function _db_traceback(i1) {
  36640. i1 = i1 | 0;
  36641. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36642. i2 = STACKTOP;
  36643. if ((_lua_type(i1, 1) | 0) == 8) {
  36644. i3 = _lua_tothread(i1, 1) | 0;
  36645. i4 = 1;
  36646. } else {
  36647. i3 = i1;
  36648. i4 = 0;
  36649. }
  36650. i5 = i4 + 1 | 0;
  36651. i6 = _lua_tolstring(i1, i5, 0) | 0;
  36652. if ((i6 | 0) == 0 ? (_lua_type(i1, i5) | 0) >= 1 : 0) {
  36653. _lua_pushvalue(i1, i5);
  36654. STACKTOP = i2;
  36655. return 1;
  36656. }
  36657. _luaL_traceback(i1, i3, i6, _luaL_optinteger(i1, i4 | 2, (i3 | 0) == (i1 | 0) | 0) | 0);
  36658. STACKTOP = i2;
  36659. return 1;
  36660. }
  36661. function _f_setvbuf(i1) {
  36662. i1 = i1 | 0;
  36663. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  36664. i2 = STACKTOP;
  36665. STACKTOP = STACKTOP + 16 | 0;
  36666. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  36667. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  36668. _luaL_error(i1, 3080, i2) | 0;
  36669. }
  36670. i5 = HEAP32[i3 >> 2] | 0;
  36671. i4 = _luaL_checkoption(i1, 2, 0, 3128) | 0;
  36672. i3 = _luaL_optinteger(i1, 3, 1024) | 0;
  36673. i3 = _luaL_fileresult(i1, (_setvbuf(i5 | 0, 0, HEAP32[3112 + (i4 << 2) >> 2] | 0, i3 | 0) | 0) == 0 | 0, 0) | 0;
  36674. STACKTOP = i2;
  36675. return i3 | 0;
  36676. }
  36677. function _luaU_dump(i3, i1, i4, i2, i5) {
  36678. i3 = i3 | 0;
  36679. i1 = i1 | 0;
  36680. i4 = i4 | 0;
  36681. i2 = i2 | 0;
  36682. i5 = i5 | 0;
  36683. var i6 = 0, i7 = 0, i8 = 0;
  36684. i6 = STACKTOP;
  36685. STACKTOP = STACKTOP + 48 | 0;
  36686. i8 = i6 + 20 | 0;
  36687. i7 = i6;
  36688. HEAP32[i7 >> 2] = i3;
  36689. HEAP32[i7 + 4 >> 2] = i4;
  36690. HEAP32[i7 + 8 >> 2] = i2;
  36691. HEAP32[i7 + 12 >> 2] = i5;
  36692. i5 = i7 + 16 | 0;
  36693. _luaU_header(i8);
  36694. HEAP32[i5 >> 2] = FUNCTION_TABLE_iiiii[i4 & 3](i3, i8, 18, i2) | 0;
  36695. _DumpFunction(i1, i7);
  36696. STACKTOP = i6;
  36697. return HEAP32[i5 >> 2] | 0;
  36698. }
  36699. function _luaB_setmetatable(i1) {
  36700. i1 = i1 | 0;
  36701. var i2 = 0, i3 = 0;
  36702. i2 = STACKTOP;
  36703. STACKTOP = STACKTOP + 16 | 0;
  36704. i3 = _lua_type(i1, 2) | 0;
  36705. _luaL_checktype(i1, 1, 5);
  36706. if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
  36707. _luaL_argerror(i1, 2, 9680) | 0;
  36708. }
  36709. if ((_luaL_getmetafield(i1, 1, 9704) | 0) == 0) {
  36710. _lua_settop(i1, 2);
  36711. _lua_setmetatable(i1, 1) | 0;
  36712. i3 = 1;
  36713. STACKTOP = i2;
  36714. return i3 | 0;
  36715. } else {
  36716. i3 = _luaL_error(i1, 9720, i2) | 0;
  36717. STACKTOP = i2;
  36718. return i3 | 0;
  36719. }
  36720. return 0;
  36721. }
  36722. function _getF(i3, i2, i1) {
  36723. i3 = i3 | 0;
  36724. i2 = i2 | 0;
  36725. i1 = i1 | 0;
  36726. var i4 = 0;
  36727. i3 = STACKTOP;
  36728. i4 = HEAP32[i2 >> 2] | 0;
  36729. if ((i4 | 0) > 0) {
  36730. HEAP32[i1 >> 2] = i4;
  36731. HEAP32[i2 >> 2] = 0;
  36732. i4 = i2 + 8 | 0;
  36733. STACKTOP = i3;
  36734. return i4 | 0;
  36735. }
  36736. i4 = i2 + 4 | 0;
  36737. if ((_feof(HEAP32[i4 >> 2] | 0) | 0) != 0) {
  36738. i4 = 0;
  36739. STACKTOP = i3;
  36740. return i4 | 0;
  36741. }
  36742. i2 = i2 + 8 | 0;
  36743. HEAP32[i1 >> 2] = _fread(i2 | 0, 1, 1024, HEAP32[i4 >> 2] | 0) | 0;
  36744. i4 = i2;
  36745. STACKTOP = i3;
  36746. return i4 | 0;
  36747. }
  36748. function _luaL_where(i1, i6) {
  36749. i1 = i1 | 0;
  36750. i6 = i6 | 0;
  36751. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  36752. i4 = STACKTOP;
  36753. STACKTOP = STACKTOP + 112 | 0;
  36754. i3 = i4;
  36755. i2 = i4 + 8 | 0;
  36756. if ((_lua_getstack(i1, i6, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i5 = HEAP32[i2 + 20 >> 2] | 0, (i5 | 0) > 0) : 0) {
  36757. HEAP32[i3 >> 2] = i2 + 36;
  36758. HEAP32[i3 + 4 >> 2] = i5;
  36759. _lua_pushfstring(i1, 1160, i3) | 0;
  36760. STACKTOP = i4;
  36761. return;
  36762. }
  36763. _lua_pushlstring(i1, 1168, 0) | 0;
  36764. STACKTOP = i4;
  36765. return;
  36766. }
  36767. function _hookf(i1, i3) {
  36768. i1 = i1 | 0;
  36769. i3 = i3 | 0;
  36770. var i2 = 0;
  36771. i2 = STACKTOP;
  36772. _luaL_getsubtable(i1, -1001e3, 11584) | 0;
  36773. _lua_pushthread(i1) | 0;
  36774. _lua_rawget(i1, -2);
  36775. if ((_lua_type(i1, -1) | 0) != 6) {
  36776. STACKTOP = i2;
  36777. return;
  36778. }
  36779. _lua_pushstring(i1, HEAP32[11608 + (HEAP32[i3 >> 2] << 2) >> 2] | 0) | 0;
  36780. i3 = HEAP32[i3 + 20 >> 2] | 0;
  36781. if ((i3 | 0) > -1) {
  36782. _lua_pushinteger(i1, i3);
  36783. } else {
  36784. _lua_pushnil(i1);
  36785. }
  36786. _lua_callk(i1, 2, 0, 0, 0);
  36787. STACKTOP = i2;
  36788. return;
  36789. }
  36790. function _luaV_tonumber(i5, i2) {
  36791. i5 = i5 | 0;
  36792. i2 = i2 | 0;
  36793. var i1 = 0, i3 = 0, i4 = 0;
  36794. i1 = STACKTOP;
  36795. STACKTOP = STACKTOP + 16 | 0;
  36796. i3 = i1;
  36797. i4 = HEAP32[i5 + 8 >> 2] | 0;
  36798. if ((i4 | 0) != 3) {
  36799. if ((i4 & 15 | 0) == 4 ? (i5 = HEAP32[i5 >> 2] | 0, (_luaO_str2d(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, i3) | 0) != 0) : 0) {
  36800. HEAPF64[i2 >> 3] = +HEAPF64[i3 >> 3];
  36801. HEAP32[i2 + 8 >> 2] = 3;
  36802. } else {
  36803. i2 = 0;
  36804. }
  36805. } else {
  36806. i2 = i5;
  36807. }
  36808. STACKTOP = i1;
  36809. return i2 | 0;
  36810. }
  36811. function _luaO_arith(i3, d1, d2) {
  36812. i3 = i3 | 0;
  36813. d1 = +d1;
  36814. d2 = +d2;
  36815. switch (i3 | 0) {
  36816. case 4:
  36817. {
  36818. d1 = d1 - +Math_floor(+(d1 / d2)) * d2;
  36819. break;
  36820. }
  36821. case 6:
  36822. {
  36823. d1 = -d1;
  36824. break;
  36825. }
  36826. case 0:
  36827. {
  36828. d1 = d1 + d2;
  36829. break;
  36830. }
  36831. case 1:
  36832. {
  36833. d1 = d1 - d2;
  36834. break;
  36835. }
  36836. case 5:
  36837. {
  36838. d1 = +Math_pow(+d1, +d2);
  36839. break;
  36840. }
  36841. case 3:
  36842. {
  36843. d1 = d1 / d2;
  36844. break;
  36845. }
  36846. case 2:
  36847. {
  36848. d1 = d1 * d2;
  36849. break;
  36850. }
  36851. default:
  36852. {
  36853. d1 = 0.0;
  36854. }
  36855. }
  36856. return +d1;
  36857. }
  36858. function _luaB_coresume(i1) {
  36859. i1 = i1 | 0;
  36860. var i2 = 0, i3 = 0;
  36861. i2 = STACKTOP;
  36862. i3 = _lua_tothread(i1, 1) | 0;
  36863. if ((i3 | 0) == 0) {
  36864. _luaL_argerror(i1, 1, 10856) | 0;
  36865. }
  36866. i3 = _auxresume(i1, i3, (_lua_gettop(i1) | 0) + -1 | 0) | 0;
  36867. if ((i3 | 0) < 0) {
  36868. _lua_pushboolean(i1, 0);
  36869. _lua_insert(i1, -2);
  36870. i3 = 2;
  36871. STACKTOP = i2;
  36872. return i3 | 0;
  36873. } else {
  36874. _lua_pushboolean(i1, 1);
  36875. _lua_insert(i1, ~i3);
  36876. i3 = i3 + 1 | 0;
  36877. STACKTOP = i2;
  36878. return i3 | 0;
  36879. }
  36880. return 0;
  36881. }
  36882. function _pairsmeta(i1, i5, i4, i3) {
  36883. i1 = i1 | 0;
  36884. i5 = i5 | 0;
  36885. i4 = i4 | 0;
  36886. i3 = i3 | 0;
  36887. var i2 = 0;
  36888. i2 = STACKTOP;
  36889. if ((_luaL_getmetafield(i1, 1, i5) | 0) != 0) {
  36890. _lua_pushvalue(i1, 1);
  36891. _lua_callk(i1, 1, 3, 0, 0);
  36892. STACKTOP = i2;
  36893. return;
  36894. }
  36895. _luaL_checktype(i1, 1, 5);
  36896. _lua_pushcclosure(i1, i3, 0);
  36897. _lua_pushvalue(i1, 1);
  36898. if ((i4 | 0) == 0) {
  36899. _lua_pushnil(i1);
  36900. STACKTOP = i2;
  36901. return;
  36902. } else {
  36903. _lua_pushinteger(i1, 0);
  36904. STACKTOP = i2;
  36905. return;
  36906. }
  36907. }
  36908. function _io_close(i1) {
  36909. i1 = i1 | 0;
  36910. var i2 = 0, i3 = 0, i4 = 0;
  36911. i2 = STACKTOP;
  36912. STACKTOP = STACKTOP + 16 | 0;
  36913. if ((_lua_type(i1, 1) | 0) == -1) {
  36914. _lua_getfield(i1, -1001e3, 2800);
  36915. }
  36916. if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
  36917. _luaL_error(i1, 3080, i2) | 0;
  36918. }
  36919. i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
  36920. i3 = HEAP32[i4 >> 2] | 0;
  36921. HEAP32[i4 >> 2] = 0;
  36922. i1 = FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
  36923. STACKTOP = i2;
  36924. return i1 | 0;
  36925. }
  36926. function _pack(i1) {
  36927. i1 = i1 | 0;
  36928. var i2 = 0, i3 = 0;
  36929. i2 = STACKTOP;
  36930. i3 = _lua_gettop(i1) | 0;
  36931. _lua_createtable(i1, i3, 1);
  36932. _lua_pushinteger(i1, i3);
  36933. _lua_setfield(i1, -2, 8312);
  36934. if ((i3 | 0) <= 0) {
  36935. STACKTOP = i2;
  36936. return 1;
  36937. }
  36938. _lua_pushvalue(i1, 1);
  36939. _lua_rawseti(i1, -2, 1);
  36940. _lua_replace(i1, 1);
  36941. if ((i3 | 0) <= 1) {
  36942. STACKTOP = i2;
  36943. return 1;
  36944. }
  36945. do {
  36946. _lua_rawseti(i1, 1, i3);
  36947. i3 = i3 + -1 | 0;
  36948. } while ((i3 | 0) > 1);
  36949. STACKTOP = i2;
  36950. return 1;
  36951. }
  36952. function _luaL_execresult(i1, i3) {
  36953. i1 = i1 | 0;
  36954. i3 = i3 | 0;
  36955. var i2 = 0;
  36956. i2 = STACKTOP;
  36957. if ((i3 | 0) == -1) {
  36958. i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
  36959. _lua_pushnil(i1);
  36960. _lua_pushstring(i1, _strerror(i3 | 0) | 0) | 0;
  36961. _lua_pushinteger(i1, i3);
  36962. STACKTOP = i2;
  36963. return 3;
  36964. } else if ((i3 | 0) == 0) {
  36965. _lua_pushboolean(i1, 1);
  36966. } else {
  36967. _lua_pushnil(i1);
  36968. }
  36969. _lua_pushstring(i1, 1184) | 0;
  36970. _lua_pushinteger(i1, i3);
  36971. STACKTOP = i2;
  36972. return 3;
  36973. }
  36974. function _lua_getglobal(i1, i2) {
  36975. i1 = i1 | 0;
  36976. i2 = i2 | 0;
  36977. var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  36978. i3 = STACKTOP;
  36979. i4 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
  36980. i5 = i1 + 8 | 0;
  36981. i6 = HEAP32[i5 >> 2] | 0;
  36982. HEAP32[i5 >> 2] = i6 + 16;
  36983. i2 = _luaS_new(i1, i2) | 0;
  36984. HEAP32[i6 >> 2] = i2;
  36985. HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
  36986. i2 = (HEAP32[i5 >> 2] | 0) + -16 | 0;
  36987. _luaV_gettable(i1, i4, i2, i2);
  36988. STACKTOP = i3;
  36989. return;
  36990. }
  36991. function _luaL_checktype(i1, i5, i4) {
  36992. i1 = i1 | 0;
  36993. i5 = i5 | 0;
  36994. i4 = i4 | 0;
  36995. var i2 = 0, i3 = 0, i6 = 0;
  36996. i2 = STACKTOP;
  36997. STACKTOP = STACKTOP + 16 | 0;
  36998. i3 = i2;
  36999. if ((_lua_type(i1, i5) | 0) == (i4 | 0)) {
  37000. STACKTOP = i2;
  37001. return;
  37002. }
  37003. i6 = _lua_typename(i1, i4) | 0;
  37004. i4 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
  37005. HEAP32[i3 >> 2] = i6;
  37006. HEAP32[i3 + 4 >> 2] = i4;
  37007. _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
  37008. STACKTOP = i2;
  37009. return;
  37010. }
  37011. function _luaC_newobj(i7, i4, i6, i5, i1) {
  37012. i7 = i7 | 0;
  37013. i4 = i4 | 0;
  37014. i6 = i6 | 0;
  37015. i5 = i5 | 0;
  37016. i1 = i1 | 0;
  37017. var i2 = 0, i3 = 0;
  37018. i2 = STACKTOP;
  37019. i3 = HEAP32[i7 + 12 >> 2] | 0;
  37020. i7 = _luaM_realloc_(i7, 0, i4 & 15, i6) | 0;
  37021. i6 = i7 + i1 | 0;
  37022. i5 = (i5 | 0) == 0 ? i3 + 68 | 0 : i5;
  37023. HEAP8[i7 + (i1 + 5) | 0] = HEAP8[i3 + 60 | 0] & 3;
  37024. HEAP8[i7 + (i1 + 4) | 0] = i4;
  37025. HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
  37026. HEAP32[i5 >> 2] = i6;
  37027. STACKTOP = i2;
  37028. return i6 | 0;
  37029. }
  37030. function _luaL_requiref(i1, i3, i5, i4) {
  37031. i1 = i1 | 0;
  37032. i3 = i3 | 0;
  37033. i5 = i5 | 0;
  37034. i4 = i4 | 0;
  37035. var i2 = 0;
  37036. i2 = STACKTOP;
  37037. _lua_pushcclosure(i1, i5, 0);
  37038. _lua_pushstring(i1, i3) | 0;
  37039. _lua_callk(i1, 1, 1, 0, 0);
  37040. _luaL_getsubtable(i1, -1001e3, 1432) | 0;
  37041. _lua_pushvalue(i1, -2);
  37042. _lua_setfield(i1, -2, i3);
  37043. _lua_settop(i1, -2);
  37044. if ((i4 | 0) == 0) {
  37045. STACKTOP = i2;
  37046. return;
  37047. }
  37048. _lua_pushvalue(i1, -1);
  37049. _lua_setglobal(i1, i3);
  37050. STACKTOP = i2;
  37051. return;
  37052. }
  37053. function _luaG_ordererror(i1, i3, i4) {
  37054. i1 = i1 | 0;
  37055. i3 = i3 | 0;
  37056. i4 = i4 | 0;
  37057. var i2 = 0;
  37058. i2 = STACKTOP;
  37059. STACKTOP = STACKTOP + 16 | 0;
  37060. i3 = HEAP32[8528 + ((HEAP32[i3 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
  37061. i4 = HEAP32[8528 + ((HEAP32[i4 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
  37062. if ((i3 | 0) == (i4 | 0)) {
  37063. HEAP32[i2 >> 2] = i3;
  37064. _luaG_runerror(i1, 1952, i2);
  37065. } else {
  37066. HEAP32[i2 >> 2] = i3;
  37067. HEAP32[i2 + 4 >> 2] = i4;
  37068. _luaG_runerror(i1, 1992, i2);
  37069. }
  37070. }
  37071. function _io_popen(i1) {
  37072. i1 = i1 | 0;
  37073. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37074. i2 = STACKTOP;
  37075. STACKTOP = STACKTOP + 16 | 0;
  37076. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  37077. _luaL_optlstring(i1, 2, 3480, 0) | 0;
  37078. i5 = _lua_newuserdata(i1, 8) | 0;
  37079. i4 = i5 + 4 | 0;
  37080. HEAP32[i4 >> 2] = 0;
  37081. _luaL_setmetatable(i1, 2832);
  37082. _luaL_error(i1, 3488, i2) | 0;
  37083. HEAP32[i5 >> 2] = 0;
  37084. HEAP32[i4 >> 2] = 157;
  37085. i1 = _luaL_fileresult(i1, 0, i3) | 0;
  37086. STACKTOP = i2;
  37087. return i1 | 0;
  37088. }
  37089. function _sort_comp(i1, i3, i4) {
  37090. i1 = i1 | 0;
  37091. i3 = i3 | 0;
  37092. i4 = i4 | 0;
  37093. var i2 = 0;
  37094. i2 = STACKTOP;
  37095. if ((_lua_type(i1, 2) | 0) == 0) {
  37096. i4 = _lua_compare(i1, i3, i4, 1) | 0;
  37097. STACKTOP = i2;
  37098. return i4 | 0;
  37099. } else {
  37100. _lua_pushvalue(i1, 2);
  37101. _lua_pushvalue(i1, i3 + -1 | 0);
  37102. _lua_pushvalue(i1, i4 + -2 | 0);
  37103. _lua_callk(i1, 2, 1, 0, 0);
  37104. i4 = _lua_toboolean(i1, -1) | 0;
  37105. _lua_settop(i1, -2);
  37106. STACKTOP = i2;
  37107. return i4 | 0;
  37108. }
  37109. return 0;
  37110. }
  37111. function _db_upvalueid(i1) {
  37112. i1 = i1 | 0;
  37113. var i2 = 0, i3 = 0, i4 = 0;
  37114. i3 = STACKTOP;
  37115. STACKTOP = STACKTOP + 112 | 0;
  37116. i4 = i3;
  37117. i2 = _luaL_checkinteger(i1, 2) | 0;
  37118. _luaL_checktype(i1, 1, 6);
  37119. _lua_pushvalue(i1, 1);
  37120. _lua_getinfo(i1, 11728, i4) | 0;
  37121. if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
  37122. _luaL_argerror(i1, 2, 11736) | 0;
  37123. }
  37124. _lua_pushlightuserdata(i1, _lua_upvalueid(i1, 1, i2) | 0);
  37125. STACKTOP = i3;
  37126. return 1;
  37127. }
  37128. function _luaL_getmetafield(i2, i4, i3) {
  37129. i2 = i2 | 0;
  37130. i4 = i4 | 0;
  37131. i3 = i3 | 0;
  37132. var i1 = 0;
  37133. i1 = STACKTOP;
  37134. do {
  37135. if ((_lua_getmetatable(i2, i4) | 0) != 0) {
  37136. _lua_pushstring(i2, i3) | 0;
  37137. _lua_rawget(i2, -2);
  37138. if ((_lua_type(i2, -1) | 0) == 0) {
  37139. _lua_settop(i2, -3);
  37140. i2 = 0;
  37141. break;
  37142. } else {
  37143. _lua_remove(i2, -2);
  37144. i2 = 1;
  37145. break;
  37146. }
  37147. } else {
  37148. i2 = 0;
  37149. }
  37150. } while (0);
  37151. STACKTOP = i1;
  37152. return i2 | 0;
  37153. }
  37154. function _luaF_freeupval(i1, i3) {
  37155. i1 = i1 | 0;
  37156. i3 = i3 | 0;
  37157. var i2 = 0, i4 = 0, i5 = 0;
  37158. i2 = STACKTOP;
  37159. if ((HEAP32[i3 + 8 >> 2] | 0) == (i3 + 16 | 0)) {
  37160. _luaM_realloc_(i1, i3, 32, 0) | 0;
  37161. STACKTOP = i2;
  37162. return;
  37163. }
  37164. i4 = i3 + 16 | 0;
  37165. i5 = i4 + 4 | 0;
  37166. HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] = HEAP32[i4 >> 2];
  37167. HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] = HEAP32[i5 >> 2];
  37168. _luaM_realloc_(i1, i3, 32, 0) | 0;
  37169. STACKTOP = i2;
  37170. return;
  37171. }
  37172. function _luaL_addvalue(i1) {
  37173. i1 = i1 | 0;
  37174. var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  37175. i2 = STACKTOP;
  37176. STACKTOP = STACKTOP + 16 | 0;
  37177. i4 = i2;
  37178. i5 = HEAP32[i1 + 12 >> 2] | 0;
  37179. i3 = _lua_tolstring(i5, -1, i4) | 0;
  37180. i6 = i1 + 16 | 0;
  37181. if ((HEAP32[i1 >> 2] | 0) != (i6 | 0)) {
  37182. _lua_insert(i5, -2);
  37183. }
  37184. _luaL_addlstring(i1, i3, HEAP32[i4 >> 2] | 0);
  37185. _lua_remove(i5, (HEAP32[i1 >> 2] | 0) != (i6 | 0) ? -2 : -1);
  37186. STACKTOP = i2;
  37187. return;
  37188. }
  37189. function _escerror(i1, i4, i3, i2) {
  37190. i1 = i1 | 0;
  37191. i4 = i4 | 0;
  37192. i3 = i3 | 0;
  37193. i2 = i2 | 0;
  37194. var i5 = 0, i6 = 0;
  37195. HEAP32[(HEAP32[i1 + 60 >> 2] | 0) + 4 >> 2] = 0;
  37196. _save(i1, 92);
  37197. L1 : do {
  37198. if ((i3 | 0) > 0) {
  37199. i5 = 0;
  37200. do {
  37201. i6 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
  37202. if ((i6 | 0) == -1) {
  37203. break L1;
  37204. }
  37205. _save(i1, i6);
  37206. i5 = i5 + 1 | 0;
  37207. } while ((i5 | 0) < (i3 | 0));
  37208. }
  37209. } while (0);
  37210. _lexerror(i1, i2, 289);
  37211. }
  37212. function _pushglobalfuncname(i1, i4) {
  37213. i1 = i1 | 0;
  37214. i4 = i4 | 0;
  37215. var i2 = 0, i3 = 0;
  37216. i2 = STACKTOP;
  37217. i3 = _lua_gettop(i1) | 0;
  37218. _lua_getinfo(i1, 1768, i4) | 0;
  37219. _lua_rawgeti(i1, -1001e3, 2);
  37220. i4 = i3 + 1 | 0;
  37221. if ((_findfield(i1, i4, 2) | 0) == 0) {
  37222. _lua_settop(i1, i3);
  37223. i4 = 0;
  37224. STACKTOP = i2;
  37225. return i4 | 0;
  37226. } else {
  37227. _lua_copy(i1, -1, i4);
  37228. _lua_settop(i1, -3);
  37229. i4 = 1;
  37230. STACKTOP = i2;
  37231. return i4 | 0;
  37232. }
  37233. return 0;
  37234. }
  37235. function copyTempDouble(i1) {
  37236. i1 = i1 | 0;
  37237. HEAP8[tempDoublePtr] = HEAP8[i1];
  37238. HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
  37239. HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
  37240. HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
  37241. HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0];
  37242. HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0];
  37243. HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0];
  37244. HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0];
  37245. }
  37246. function _lua_pushlstring(i1, i3, i4) {
  37247. i1 = i1 | 0;
  37248. i3 = i3 | 0;
  37249. i4 = i4 | 0;
  37250. var i2 = 0;
  37251. i2 = STACKTOP;
  37252. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  37253. _luaC_step(i1);
  37254. }
  37255. i4 = _luaS_newlstr(i1, i3, i4) | 0;
  37256. i3 = i1 + 8 | 0;
  37257. i1 = HEAP32[i3 >> 2] | 0;
  37258. HEAP32[i1 >> 2] = i4;
  37259. HEAP32[i1 + 8 >> 2] = HEAPU8[i4 + 4 | 0] | 0 | 64;
  37260. HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
  37261. STACKTOP = i2;
  37262. return i4 + 16 | 0;
  37263. }
  37264. function _ll_searchpath(i1) {
  37265. i1 = i1 | 0;
  37266. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37267. i2 = STACKTOP;
  37268. i5 = _luaL_checklstring(i1, 1, 0) | 0;
  37269. i4 = _luaL_checklstring(i1, 2, 0) | 0;
  37270. i3 = _luaL_optlstring(i1, 3, 4936, 0) | 0;
  37271. if ((_searchpath(i1, i5, i4, i3, _luaL_optlstring(i1, 4, 4848, 0) | 0) | 0) != 0) {
  37272. i5 = 1;
  37273. STACKTOP = i2;
  37274. return i5 | 0;
  37275. }
  37276. _lua_pushnil(i1);
  37277. _lua_insert(i1, -2);
  37278. i5 = 2;
  37279. STACKTOP = i2;
  37280. return i5 | 0;
  37281. }
  37282. function _math_log(i1) {
  37283. i1 = i1 | 0;
  37284. var i2 = 0, d3 = 0.0, d4 = 0.0;
  37285. i2 = STACKTOP;
  37286. d3 = +_luaL_checknumber(i1, 1);
  37287. do {
  37288. if ((_lua_type(i1, 2) | 0) >= 1) {
  37289. d4 = +_luaL_checknumber(i1, 2);
  37290. if (d4 == 10.0) {
  37291. d3 = +_log10(+d3);
  37292. break;
  37293. } else {
  37294. d3 = +Math_log(+d3) / +Math_log(+d4);
  37295. break;
  37296. }
  37297. } else {
  37298. d3 = +Math_log(+d3);
  37299. }
  37300. } while (0);
  37301. _lua_pushnumber(i1, d3);
  37302. STACKTOP = i2;
  37303. return 1;
  37304. }
  37305. function _luaT_init(i1) {
  37306. i1 = i1 | 0;
  37307. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37308. i2 = STACKTOP;
  37309. i3 = i1 + 12 | 0;
  37310. i4 = 0;
  37311. do {
  37312. i5 = _luaS_new(i1, HEAP32[8576 + (i4 << 2) >> 2] | 0) | 0;
  37313. HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] = i5;
  37314. i5 = (HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] | 0) + 5 | 0;
  37315. HEAP8[i5] = HEAPU8[i5] | 0 | 32;
  37316. i4 = i4 + 1 | 0;
  37317. } while ((i4 | 0) != 17);
  37318. STACKTOP = i2;
  37319. return;
  37320. }
  37321. function _f_gc(i1) {
  37322. i1 = i1 | 0;
  37323. var i2 = 0, i3 = 0, i4 = 0;
  37324. i2 = STACKTOP;
  37325. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  37326. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  37327. STACKTOP = i2;
  37328. return 0;
  37329. }
  37330. if ((HEAP32[i3 >> 2] | 0) == 0) {
  37331. STACKTOP = i2;
  37332. return 0;
  37333. }
  37334. i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
  37335. i3 = HEAP32[i4 >> 2] | 0;
  37336. HEAP32[i4 >> 2] = 0;
  37337. FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
  37338. STACKTOP = i2;
  37339. return 0;
  37340. }
  37341. function ___shlim(i1, i5) {
  37342. i1 = i1 | 0;
  37343. i5 = i5 | 0;
  37344. var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
  37345. i2 = STACKTOP;
  37346. HEAP32[i1 + 104 >> 2] = i5;
  37347. i4 = HEAP32[i1 + 8 >> 2] | 0;
  37348. i3 = HEAP32[i1 + 4 >> 2] | 0;
  37349. i6 = i4 - i3 | 0;
  37350. HEAP32[i1 + 108 >> 2] = i6;
  37351. if ((i5 | 0) != 0 & (i6 | 0) > (i5 | 0)) {
  37352. HEAP32[i1 + 100 >> 2] = i3 + i5;
  37353. STACKTOP = i2;
  37354. return;
  37355. } else {
  37356. HEAP32[i1 + 100 >> 2] = i4;
  37357. STACKTOP = i2;
  37358. return;
  37359. }
  37360. }
  37361. function _lua_sethook(i4, i6, i1, i5) {
  37362. i4 = i4 | 0;
  37363. i6 = i6 | 0;
  37364. i1 = i1 | 0;
  37365. i5 = i5 | 0;
  37366. var i2 = 0, i3 = 0;
  37367. i2 = (i6 | 0) == 0 | (i1 | 0) == 0;
  37368. i3 = HEAP32[i4 + 16 >> 2] | 0;
  37369. if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
  37370. HEAP32[i4 + 20 >> 2] = HEAP32[i3 + 28 >> 2];
  37371. }
  37372. HEAP32[i4 + 52 >> 2] = i2 ? 0 : i6;
  37373. HEAP32[i4 + 44 >> 2] = i5;
  37374. HEAP32[i4 + 48 >> 2] = i5;
  37375. HEAP8[i4 + 40 | 0] = i2 ? 0 : i1 & 255;
  37376. return 1;
  37377. }
  37378. function _io_tmpfile(i1) {
  37379. i1 = i1 | 0;
  37380. var i2 = 0, i3 = 0, i4 = 0;
  37381. i2 = STACKTOP;
  37382. i4 = _lua_newuserdata(i1, 8) | 0;
  37383. i3 = i4 + 4 | 0;
  37384. HEAP32[i3 >> 2] = 0;
  37385. _luaL_setmetatable(i1, 2832);
  37386. HEAP32[i4 >> 2] = 0;
  37387. HEAP32[i3 >> 2] = 156;
  37388. i3 = _tmpfile() | 0;
  37389. HEAP32[i4 >> 2] = i3;
  37390. if ((i3 | 0) != 0) {
  37391. i4 = 1;
  37392. STACKTOP = i2;
  37393. return i4 | 0;
  37394. }
  37395. i4 = _luaL_fileresult(i1, 0, 0) | 0;
  37396. STACKTOP = i2;
  37397. return i4 | 0;
  37398. }
  37399. function _luaL_checkstack(i1, i5, i4) {
  37400. i1 = i1 | 0;
  37401. i5 = i5 | 0;
  37402. i4 = i4 | 0;
  37403. var i2 = 0, i3 = 0;
  37404. i2 = STACKTOP;
  37405. STACKTOP = STACKTOP + 16 | 0;
  37406. i3 = i2;
  37407. if ((_lua_checkstack(i1, i5 + 20 | 0) | 0) != 0) {
  37408. STACKTOP = i2;
  37409. return;
  37410. }
  37411. if ((i4 | 0) == 0) {
  37412. _luaL_error(i1, 1240, i3) | 0;
  37413. STACKTOP = i2;
  37414. return;
  37415. } else {
  37416. HEAP32[i3 >> 2] = i4;
  37417. _luaL_error(i1, 1216, i3) | 0;
  37418. STACKTOP = i2;
  37419. return;
  37420. }
  37421. }
  37422. function _b_rshift(i1) {
  37423. i1 = i1 | 0;
  37424. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37425. i2 = STACKTOP;
  37426. i4 = _luaL_checkunsigned(i1, 1) | 0;
  37427. i3 = _luaL_checkinteger(i1, 2) | 0;
  37428. i5 = 0 - i3 | 0;
  37429. if ((i3 | 0) > 0) {
  37430. i5 = (i3 | 0) > 31 ? 0 : i4 >>> i3;
  37431. _lua_pushunsigned(i1, i5);
  37432. STACKTOP = i2;
  37433. return 1;
  37434. } else {
  37435. i5 = (i5 | 0) > 31 ? 0 : i4 << i5;
  37436. _lua_pushunsigned(i1, i5);
  37437. STACKTOP = i2;
  37438. return 1;
  37439. }
  37440. return 0;
  37441. }
  37442. function _b_lshift(i1) {
  37443. i1 = i1 | 0;
  37444. var i2 = 0, i3 = 0, i4 = 0;
  37445. i2 = STACKTOP;
  37446. i3 = _luaL_checkunsigned(i1, 1) | 0;
  37447. i4 = _luaL_checkinteger(i1, 2) | 0;
  37448. if ((i4 | 0) < 0) {
  37449. i4 = 0 - i4 | 0;
  37450. i4 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
  37451. _lua_pushunsigned(i1, i4);
  37452. STACKTOP = i2;
  37453. return 1;
  37454. } else {
  37455. i4 = (i4 | 0) > 31 ? 0 : i3 << i4;
  37456. _lua_pushunsigned(i1, i4);
  37457. STACKTOP = i2;
  37458. return 1;
  37459. }
  37460. return 0;
  37461. }
  37462. function _math_min(i1) {
  37463. i1 = i1 | 0;
  37464. var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
  37465. i2 = STACKTOP;
  37466. i3 = _lua_gettop(i1) | 0;
  37467. d5 = +_luaL_checknumber(i1, 1);
  37468. if ((i3 | 0) >= 2) {
  37469. i4 = 2;
  37470. while (1) {
  37471. d6 = +_luaL_checknumber(i1, i4);
  37472. d5 = d6 < d5 ? d6 : d5;
  37473. if ((i4 | 0) == (i3 | 0)) {
  37474. break;
  37475. } else {
  37476. i4 = i4 + 1 | 0;
  37477. }
  37478. }
  37479. }
  37480. _lua_pushnumber(i1, d5);
  37481. STACKTOP = i2;
  37482. return 1;
  37483. }
  37484. function _math_max(i1) {
  37485. i1 = i1 | 0;
  37486. var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
  37487. i2 = STACKTOP;
  37488. i3 = _lua_gettop(i1) | 0;
  37489. d5 = +_luaL_checknumber(i1, 1);
  37490. if ((i3 | 0) >= 2) {
  37491. i4 = 2;
  37492. while (1) {
  37493. d6 = +_luaL_checknumber(i1, i4);
  37494. d5 = d6 > d5 ? d6 : d5;
  37495. if ((i4 | 0) == (i3 | 0)) {
  37496. break;
  37497. } else {
  37498. i4 = i4 + 1 | 0;
  37499. }
  37500. }
  37501. }
  37502. _lua_pushnumber(i1, d5);
  37503. STACKTOP = i2;
  37504. return 1;
  37505. }
  37506. function _io_type(i1) {
  37507. i1 = i1 | 0;
  37508. var i2 = 0, i3 = 0;
  37509. i2 = STACKTOP;
  37510. _luaL_checkany(i1, 1);
  37511. i3 = _luaL_testudata(i1, 1, 2832) | 0;
  37512. if ((i3 | 0) == 0) {
  37513. _lua_pushnil(i1);
  37514. STACKTOP = i2;
  37515. return 1;
  37516. }
  37517. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  37518. _lua_pushlstring(i1, 3456, 11) | 0;
  37519. STACKTOP = i2;
  37520. return 1;
  37521. } else {
  37522. _lua_pushlstring(i1, 3472, 4) | 0;
  37523. STACKTOP = i2;
  37524. return 1;
  37525. }
  37526. return 0;
  37527. }
  37528. function _luaF_newLclosure(i3, i2) {
  37529. i3 = i3 | 0;
  37530. i2 = i2 | 0;
  37531. var i1 = 0, i4 = 0;
  37532. i1 = STACKTOP;
  37533. i3 = _luaC_newobj(i3, 6, (i2 << 2) + 16 | 0, 0, 0) | 0;
  37534. HEAP32[i3 + 12 >> 2] = 0;
  37535. HEAP8[i3 + 6 | 0] = i2;
  37536. if ((i2 | 0) == 0) {
  37537. STACKTOP = i1;
  37538. return i3 | 0;
  37539. }
  37540. i4 = i3 + 16 | 0;
  37541. do {
  37542. i2 = i2 + -1 | 0;
  37543. HEAP32[i4 + (i2 << 2) >> 2] = 0;
  37544. } while ((i2 | 0) != 0);
  37545. STACKTOP = i1;
  37546. return i3 | 0;
  37547. }
  37548. function _io_flush(i1) {
  37549. i1 = i1 | 0;
  37550. var i2 = 0, i3 = 0, i4 = 0;
  37551. i2 = STACKTOP;
  37552. STACKTOP = STACKTOP + 16 | 0;
  37553. i4 = i2;
  37554. _lua_getfield(i1, -1001e3, 2800);
  37555. i3 = _lua_touserdata(i1, -1) | 0;
  37556. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  37557. HEAP32[i4 >> 2] = 2804;
  37558. _luaL_error(i1, 3424, i4) | 0;
  37559. }
  37560. i4 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
  37561. STACKTOP = i2;
  37562. return i4 | 0;
  37563. }
  37564. function _b_test(i1) {
  37565. i1 = i1 | 0;
  37566. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37567. i2 = STACKTOP;
  37568. i3 = _lua_gettop(i1) | 0;
  37569. if ((i3 | 0) < 1) {
  37570. i3 = 1;
  37571. } else {
  37572. i4 = 1;
  37573. i5 = -1;
  37574. while (1) {
  37575. i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
  37576. if ((i4 | 0) == (i3 | 0)) {
  37577. break;
  37578. } else {
  37579. i4 = i4 + 1 | 0;
  37580. }
  37581. }
  37582. i3 = (i5 | 0) != 0;
  37583. }
  37584. _lua_pushboolean(i1, i3 & 1);
  37585. STACKTOP = i2;
  37586. return 1;
  37587. }
  37588. function ___muldsi3(i2, i1) {
  37589. i2 = i2 | 0;
  37590. i1 = i1 | 0;
  37591. var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
  37592. i6 = i2 & 65535;
  37593. i4 = i1 & 65535;
  37594. i3 = Math_imul(i4, i6) | 0;
  37595. i5 = i2 >>> 16;
  37596. i4 = (i3 >>> 16) + (Math_imul(i4, i5) | 0) | 0;
  37597. i1 = i1 >>> 16;
  37598. i2 = Math_imul(i1, i6) | 0;
  37599. return (tempRet0 = (i4 >>> 16) + (Math_imul(i1, i5) | 0) + (((i4 & 65535) + i2 | 0) >>> 16) | 0, i4 + i2 << 16 | i3 & 65535 | 0) | 0;
  37600. }
  37601. function _str_dump(i1) {
  37602. i1 = i1 | 0;
  37603. var i2 = 0, i3 = 0;
  37604. i2 = STACKTOP;
  37605. STACKTOP = STACKTOP + 1056 | 0;
  37606. i3 = i2 + 8 | 0;
  37607. _luaL_checktype(i1, 1, 6);
  37608. _lua_settop(i1, 1);
  37609. _luaL_buffinit(i1, i3);
  37610. if ((_lua_dump(i1, 2, i3) | 0) == 0) {
  37611. _luaL_pushresult(i3);
  37612. i3 = 1;
  37613. STACKTOP = i2;
  37614. return i3 | 0;
  37615. } else {
  37616. i3 = _luaL_error(i1, 7888, i2) | 0;
  37617. STACKTOP = i2;
  37618. return i3 | 0;
  37619. }
  37620. return 0;
  37621. }
  37622. function ___memrchr(i2, i3, i5) {
  37623. i2 = i2 | 0;
  37624. i3 = i3 | 0;
  37625. i5 = i5 | 0;
  37626. var i1 = 0, i4 = 0;
  37627. i1 = STACKTOP;
  37628. i3 = i3 & 255;
  37629. while (1) {
  37630. i4 = i5 + -1 | 0;
  37631. if ((i5 | 0) == 0) {
  37632. i5 = 0;
  37633. i2 = 4;
  37634. break;
  37635. }
  37636. i5 = i2 + i4 | 0;
  37637. if ((HEAP8[i5] | 0) == i3 << 24 >> 24) {
  37638. i2 = 4;
  37639. break;
  37640. } else {
  37641. i5 = i4;
  37642. }
  37643. }
  37644. if ((i2 | 0) == 4) {
  37645. STACKTOP = i1;
  37646. return i5 | 0;
  37647. }
  37648. return 0;
  37649. }
  37650. function _luaL_getsubtable(i1, i3, i4) {
  37651. i1 = i1 | 0;
  37652. i3 = i3 | 0;
  37653. i4 = i4 | 0;
  37654. var i2 = 0;
  37655. i2 = STACKTOP;
  37656. _lua_getfield(i1, i3, i4);
  37657. if ((_lua_type(i1, -1) | 0) == 5) {
  37658. i4 = 1;
  37659. STACKTOP = i2;
  37660. return i4 | 0;
  37661. }
  37662. _lua_settop(i1, -2);
  37663. i3 = _lua_absindex(i1, i3) | 0;
  37664. _lua_createtable(i1, 0, 0);
  37665. _lua_pushvalue(i1, -1);
  37666. _lua_setfield(i1, i3, i4);
  37667. i4 = 0;
  37668. STACKTOP = i2;
  37669. return i4 | 0;
  37670. }
  37671. function _luaE_freeCI(i1) {
  37672. i1 = i1 | 0;
  37673. var i2 = 0, i3 = 0, i4 = 0;
  37674. i2 = STACKTOP;
  37675. i4 = (HEAP32[i1 + 16 >> 2] | 0) + 12 | 0;
  37676. i3 = HEAP32[i4 >> 2] | 0;
  37677. HEAP32[i4 >> 2] = 0;
  37678. if ((i3 | 0) == 0) {
  37679. STACKTOP = i2;
  37680. return;
  37681. }
  37682. while (1) {
  37683. i4 = HEAP32[i3 + 12 >> 2] | 0;
  37684. _luaM_realloc_(i1, i3, 40, 0) | 0;
  37685. if ((i4 | 0) == 0) {
  37686. break;
  37687. } else {
  37688. i3 = i4;
  37689. }
  37690. }
  37691. STACKTOP = i2;
  37692. return;
  37693. }
  37694. function _f_tostring(i1) {
  37695. i1 = i1 | 0;
  37696. var i2 = 0, i3 = 0, i4 = 0;
  37697. i2 = STACKTOP;
  37698. STACKTOP = STACKTOP + 16 | 0;
  37699. i3 = i2;
  37700. i4 = _luaL_checkudata(i1, 1, 2832) | 0;
  37701. if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
  37702. _lua_pushlstring(i1, 3040, 13) | 0;
  37703. STACKTOP = i2;
  37704. return 1;
  37705. } else {
  37706. HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
  37707. _lua_pushfstring(i1, 3056, i3) | 0;
  37708. STACKTOP = i2;
  37709. return 1;
  37710. }
  37711. return 0;
  37712. }
  37713. function _lua_newuserdata(i1, i3) {
  37714. i1 = i1 | 0;
  37715. i3 = i3 | 0;
  37716. var i2 = 0, i4 = 0;
  37717. i2 = STACKTOP;
  37718. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  37719. _luaC_step(i1);
  37720. }
  37721. i3 = _luaS_newudata(i1, i3, 0) | 0;
  37722. i1 = i1 + 8 | 0;
  37723. i4 = HEAP32[i1 >> 2] | 0;
  37724. HEAP32[i4 >> 2] = i3;
  37725. HEAP32[i4 + 8 >> 2] = 71;
  37726. HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
  37727. STACKTOP = i2;
  37728. return i3 + 24 | 0;
  37729. }
  37730. function _luaL_pushresultsize(i1, i3) {
  37731. i1 = i1 | 0;
  37732. i3 = i3 | 0;
  37733. var i2 = 0, i4 = 0, i5 = 0;
  37734. i2 = STACKTOP;
  37735. i5 = i1 + 8 | 0;
  37736. i4 = (HEAP32[i5 >> 2] | 0) + i3 | 0;
  37737. HEAP32[i5 >> 2] = i4;
  37738. i3 = HEAP32[i1 + 12 >> 2] | 0;
  37739. _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, i4) | 0;
  37740. if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
  37741. STACKTOP = i2;
  37742. return;
  37743. }
  37744. _lua_remove(i3, -2);
  37745. STACKTOP = i2;
  37746. return;
  37747. }
  37748. function _luaL_testudata(i2, i5, i4) {
  37749. i2 = i2 | 0;
  37750. i5 = i5 | 0;
  37751. i4 = i4 | 0;
  37752. var i1 = 0, i3 = 0;
  37753. i1 = STACKTOP;
  37754. i3 = _lua_touserdata(i2, i5) | 0;
  37755. if ((i3 | 0) != 0 ? (_lua_getmetatable(i2, i5) | 0) != 0 : 0) {
  37756. _lua_getfield(i2, -1001e3, i4);
  37757. i5 = (_lua_rawequal(i2, -1, -2) | 0) == 0;
  37758. _lua_settop(i2, -3);
  37759. i2 = i5 ? 0 : i3;
  37760. } else {
  37761. i2 = 0;
  37762. }
  37763. STACKTOP = i1;
  37764. return i2 | 0;
  37765. }
  37766. function _finishpcall(i1, i3) {
  37767. i1 = i1 | 0;
  37768. i3 = i3 | 0;
  37769. var i2 = 0;
  37770. i2 = STACKTOP;
  37771. if ((_lua_checkstack(i1, 1) | 0) == 0) {
  37772. _lua_settop(i1, 0);
  37773. _lua_pushboolean(i1, 0);
  37774. _lua_pushstring(i1, 9632) | 0;
  37775. i3 = 2;
  37776. STACKTOP = i2;
  37777. return i3 | 0;
  37778. } else {
  37779. _lua_pushboolean(i1, i3);
  37780. _lua_replace(i1, 1);
  37781. i3 = _lua_gettop(i1) | 0;
  37782. STACKTOP = i2;
  37783. return i3 | 0;
  37784. }
  37785. return 0;
  37786. }
  37787. function _searcher_preload(i1) {
  37788. i1 = i1 | 0;
  37789. var i2 = 0, i3 = 0, i4 = 0;
  37790. i2 = STACKTOP;
  37791. STACKTOP = STACKTOP + 16 | 0;
  37792. i4 = i2;
  37793. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  37794. _lua_getfield(i1, -1001e3, 4592);
  37795. _lua_getfield(i1, -1, i3);
  37796. if ((_lua_type(i1, -1) | 0) != 0) {
  37797. STACKTOP = i2;
  37798. return 1;
  37799. }
  37800. HEAP32[i4 >> 2] = i3;
  37801. _lua_pushfstring(i1, 5096, i4) | 0;
  37802. STACKTOP = i2;
  37803. return 1;
  37804. }
  37805. function _luaB_auxwrap(i1) {
  37806. i1 = i1 | 0;
  37807. var i2 = 0, i3 = 0;
  37808. i3 = STACKTOP;
  37809. i2 = _lua_tothread(i1, -1001001) | 0;
  37810. i2 = _auxresume(i1, i2, _lua_gettop(i1) | 0) | 0;
  37811. if ((i2 | 0) >= 0) {
  37812. STACKTOP = i3;
  37813. return i2 | 0;
  37814. }
  37815. if ((_lua_isstring(i1, -1) | 0) == 0) {
  37816. _lua_error(i1) | 0;
  37817. }
  37818. _luaL_where(i1, 1);
  37819. _lua_insert(i1, -2);
  37820. _lua_concat(i1, 2);
  37821. _lua_error(i1) | 0;
  37822. return 0;
  37823. }
  37824. function _ll_loadlib(i1) {
  37825. i1 = i1 | 0;
  37826. var i2 = 0, i3 = 0;
  37827. i2 = STACKTOP;
  37828. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  37829. i3 = _ll_loadfunc(i1, i3, _luaL_checklstring(i1, 2, 0) | 0) | 0;
  37830. if ((i3 | 0) == 0) {
  37831. i3 = 1;
  37832. STACKTOP = i2;
  37833. return i3 | 0;
  37834. }
  37835. _lua_pushnil(i1);
  37836. _lua_insert(i1, -2);
  37837. _lua_pushstring(i1, (i3 | 0) == 1 ? 5176 : 5184) | 0;
  37838. i3 = 3;
  37839. STACKTOP = i2;
  37840. return i3 | 0;
  37841. }
  37842. function _luaS_hash(i2, i4, i3) {
  37843. i2 = i2 | 0;
  37844. i4 = i4 | 0;
  37845. i3 = i3 | 0;
  37846. var i1 = 0, i5 = 0;
  37847. i1 = STACKTOP;
  37848. i5 = i3 ^ i4;
  37849. i3 = (i4 >>> 5) + 1 | 0;
  37850. if (i3 >>> 0 > i4 >>> 0) {
  37851. STACKTOP = i1;
  37852. return i5 | 0;
  37853. }
  37854. do {
  37855. i5 = (i5 << 5) + (i5 >>> 2) + (HEAPU8[i2 + (i4 + -1) | 0] | 0) ^ i5;
  37856. i4 = i4 - i3 | 0;
  37857. } while (!(i4 >>> 0 < i3 >>> 0));
  37858. STACKTOP = i1;
  37859. return i5 | 0;
  37860. }
  37861. function _b_and(i1) {
  37862. i1 = i1 | 0;
  37863. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37864. i2 = STACKTOP;
  37865. i3 = _lua_gettop(i1) | 0;
  37866. if ((i3 | 0) < 1) {
  37867. i5 = -1;
  37868. } else {
  37869. i4 = 1;
  37870. i5 = -1;
  37871. while (1) {
  37872. i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
  37873. if ((i4 | 0) == (i3 | 0)) {
  37874. break;
  37875. } else {
  37876. i4 = i4 + 1 | 0;
  37877. }
  37878. }
  37879. }
  37880. _lua_pushunsigned(i1, i5);
  37881. STACKTOP = i2;
  37882. return 1;
  37883. }
  37884. function _luaopen_string(i1) {
  37885. i1 = i1 | 0;
  37886. var i2 = 0;
  37887. i2 = STACKTOP;
  37888. _lua_createtable(i1, 0, 14);
  37889. _luaL_setfuncs(i1, 6920, 0);
  37890. _lua_createtable(i1, 0, 1);
  37891. _lua_pushlstring(i1, 7040, 0) | 0;
  37892. _lua_pushvalue(i1, -2);
  37893. _lua_setmetatable(i1, -2) | 0;
  37894. _lua_settop(i1, -2);
  37895. _lua_pushvalue(i1, -2);
  37896. _lua_setfield(i1, -2, 7048);
  37897. _lua_settop(i1, -2);
  37898. STACKTOP = i2;
  37899. return 1;
  37900. }
  37901. function _b_xor(i1) {
  37902. i1 = i1 | 0;
  37903. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37904. i2 = STACKTOP;
  37905. i3 = _lua_gettop(i1) | 0;
  37906. if ((i3 | 0) < 1) {
  37907. i5 = 0;
  37908. } else {
  37909. i4 = 1;
  37910. i5 = 0;
  37911. while (1) {
  37912. i5 = (_luaL_checkunsigned(i1, i4) | 0) ^ i5;
  37913. if ((i4 | 0) == (i3 | 0)) {
  37914. break;
  37915. } else {
  37916. i4 = i4 + 1 | 0;
  37917. }
  37918. }
  37919. }
  37920. _lua_pushunsigned(i1, i5);
  37921. STACKTOP = i2;
  37922. return 1;
  37923. }
  37924. function _luaB_assert(i1) {
  37925. i1 = i1 | 0;
  37926. var i2 = 0, i3 = 0;
  37927. i2 = STACKTOP;
  37928. STACKTOP = STACKTOP + 16 | 0;
  37929. i3 = i2;
  37930. if ((_lua_toboolean(i1, 1) | 0) == 0) {
  37931. HEAP32[i3 >> 2] = _luaL_optlstring(i1, 2, 10216, 0) | 0;
  37932. i3 = _luaL_error(i1, 10208, i3) | 0;
  37933. STACKTOP = i2;
  37934. return i3 | 0;
  37935. } else {
  37936. i3 = _lua_gettop(i1) | 0;
  37937. STACKTOP = i2;
  37938. return i3 | 0;
  37939. }
  37940. return 0;
  37941. }
  37942. function _b_or(i1) {
  37943. i1 = i1 | 0;
  37944. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  37945. i2 = STACKTOP;
  37946. i3 = _lua_gettop(i1) | 0;
  37947. if ((i3 | 0) < 1) {
  37948. i5 = 0;
  37949. } else {
  37950. i4 = 1;
  37951. i5 = 0;
  37952. while (1) {
  37953. i5 = _luaL_checkunsigned(i1, i4) | 0 | i5;
  37954. if ((i4 | 0) == (i3 | 0)) {
  37955. break;
  37956. } else {
  37957. i4 = i4 + 1 | 0;
  37958. }
  37959. }
  37960. }
  37961. _lua_pushunsigned(i1, i5);
  37962. STACKTOP = i2;
  37963. return 1;
  37964. }
  37965. function _io_write(i1) {
  37966. i1 = i1 | 0;
  37967. var i2 = 0, i3 = 0, i4 = 0;
  37968. i2 = STACKTOP;
  37969. STACKTOP = STACKTOP + 16 | 0;
  37970. i4 = i2;
  37971. _lua_getfield(i1, -1001e3, 2800);
  37972. i3 = _lua_touserdata(i1, -1) | 0;
  37973. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  37974. HEAP32[i4 >> 2] = 2804;
  37975. _luaL_error(i1, 3424, i4) | 0;
  37976. }
  37977. i4 = _g_write(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
  37978. STACKTOP = i2;
  37979. return i4 | 0;
  37980. }
  37981. function _luaK_checkstack(i1, i3) {
  37982. i1 = i1 | 0;
  37983. i3 = i3 | 0;
  37984. var i2 = 0, i4 = 0;
  37985. i2 = STACKTOP;
  37986. i3 = (HEAPU8[i1 + 48 | 0] | 0) + i3 | 0;
  37987. i4 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
  37988. if ((i3 | 0) <= (HEAPU8[i4] | 0 | 0)) {
  37989. STACKTOP = i2;
  37990. return;
  37991. }
  37992. if ((i3 | 0) > 249) {
  37993. _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
  37994. }
  37995. HEAP8[i4] = i3;
  37996. STACKTOP = i2;
  37997. return;
  37998. }
  37999. function _io_read(i1) {
  38000. i1 = i1 | 0;
  38001. var i2 = 0, i3 = 0, i4 = 0;
  38002. i2 = STACKTOP;
  38003. STACKTOP = STACKTOP + 16 | 0;
  38004. i4 = i2;
  38005. _lua_getfield(i1, -1001e3, 2776);
  38006. i3 = _lua_touserdata(i1, -1) | 0;
  38007. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  38008. HEAP32[i4 >> 2] = 2780;
  38009. _luaL_error(i1, 3424, i4) | 0;
  38010. }
  38011. i4 = _g_read(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
  38012. STACKTOP = i2;
  38013. return i4 | 0;
  38014. }
  38015. function _db_setupvalue(i1) {
  38016. i1 = i1 | 0;
  38017. var i2 = 0, i3 = 0;
  38018. i2 = STACKTOP;
  38019. _luaL_checkany(i1, 3);
  38020. i3 = _luaL_checkinteger(i1, 2) | 0;
  38021. _luaL_checktype(i1, 1, 6);
  38022. i3 = _lua_setupvalue(i1, 1, i3) | 0;
  38023. if ((i3 | 0) == 0) {
  38024. i3 = 0;
  38025. STACKTOP = i2;
  38026. return i3 | 0;
  38027. }
  38028. _lua_pushstring(i1, i3) | 0;
  38029. _lua_insert(i1, -1);
  38030. i3 = 1;
  38031. STACKTOP = i2;
  38032. return i3 | 0;
  38033. }
  38034. function ___uflow(i2) {
  38035. i2 = i2 | 0;
  38036. var i1 = 0, i3 = 0;
  38037. i1 = STACKTOP;
  38038. STACKTOP = STACKTOP + 16 | 0;
  38039. i3 = i1;
  38040. if ((HEAP32[i2 + 8 >> 2] | 0) == 0 ? (___toread(i2) | 0) != 0 : 0) {
  38041. i2 = -1;
  38042. } else {
  38043. if ((FUNCTION_TABLE_iiii[HEAP32[i2 + 32 >> 2] & 3](i2, i3, 1) | 0) == 1) {
  38044. i2 = HEAPU8[i3] | 0;
  38045. } else {
  38046. i2 = -1;
  38047. }
  38048. }
  38049. STACKTOP = i1;
  38050. return i2 | 0;
  38051. }
  38052. function _llvm_cttz_i32(i1) {
  38053. i1 = i1 | 0;
  38054. var i2 = 0;
  38055. i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0;
  38056. if ((i2 | 0) < 8) return i2 | 0;
  38057. i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0;
  38058. if ((i2 | 0) < 8) return i2 + 8 | 0;
  38059. i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0;
  38060. if ((i2 | 0) < 8) return i2 + 16 | 0;
  38061. return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0;
  38062. }
  38063. function _llvm_ctlz_i32(i1) {
  38064. i1 = i1 | 0;
  38065. var i2 = 0;
  38066. i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0;
  38067. if ((i2 | 0) < 8) return i2 | 0;
  38068. i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0;
  38069. if ((i2 | 0) < 8) return i2 + 8 | 0;
  38070. i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0;
  38071. if ((i2 | 0) < 8) return i2 + 16 | 0;
  38072. return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0;
  38073. }
  38074. function _luaO_ceillog2(i2) {
  38075. i2 = i2 | 0;
  38076. var i1 = 0, i3 = 0, i4 = 0;
  38077. i1 = STACKTOP;
  38078. i2 = i2 + -1 | 0;
  38079. if (i2 >>> 0 > 255) {
  38080. i3 = 0;
  38081. while (1) {
  38082. i3 = i3 + 8 | 0;
  38083. i4 = i2 >>> 8;
  38084. if (i2 >>> 0 > 65535) {
  38085. i2 = i4;
  38086. } else {
  38087. i2 = i4;
  38088. break;
  38089. }
  38090. }
  38091. } else {
  38092. i3 = 0;
  38093. }
  38094. STACKTOP = i1;
  38095. return (HEAPU8[5208 + i2 | 0] | 0) + i3 | 0;
  38096. }
  38097. function _os_exit(i1) {
  38098. i1 = i1 | 0;
  38099. var i2 = 0, i3 = 0;
  38100. i2 = STACKTOP;
  38101. if ((_lua_type(i1, 1) | 0) == 1) {
  38102. i3 = (_lua_toboolean(i1, 1) | 0) == 0 | 0;
  38103. } else {
  38104. i3 = _luaL_optinteger(i1, 1, 0) | 0;
  38105. }
  38106. if ((_lua_toboolean(i1, 2) | 0) != 0) {
  38107. _lua_close(i1);
  38108. }
  38109. if ((i1 | 0) == 0) {
  38110. STACKTOP = i2;
  38111. return 0;
  38112. } else {
  38113. _exit(i3 | 0);
  38114. }
  38115. return 0;
  38116. }
  38117. function _luaL_newmetatable(i1, i3) {
  38118. i1 = i1 | 0;
  38119. i3 = i3 | 0;
  38120. var i2 = 0;
  38121. i2 = STACKTOP;
  38122. _lua_getfield(i1, -1001e3, i3);
  38123. if ((_lua_type(i1, -1) | 0) != 0) {
  38124. i3 = 0;
  38125. STACKTOP = i2;
  38126. return i3 | 0;
  38127. }
  38128. _lua_settop(i1, -2);
  38129. _lua_createtable(i1, 0, 0);
  38130. _lua_pushvalue(i1, -1);
  38131. _lua_setfield(i1, -1001e3, i3);
  38132. i3 = 1;
  38133. STACKTOP = i2;
  38134. return i3 | 0;
  38135. }
  38136. function _luaH_free(i1, i4) {
  38137. i1 = i1 | 0;
  38138. i4 = i4 | 0;
  38139. var i2 = 0, i3 = 0;
  38140. i2 = STACKTOP;
  38141. i3 = HEAP32[i4 + 16 >> 2] | 0;
  38142. if ((i3 | 0) != 8016) {
  38143. _luaM_realloc_(i1, i3, 32 << (HEAPU8[i4 + 7 | 0] | 0), 0) | 0;
  38144. }
  38145. _luaM_realloc_(i1, HEAP32[i4 + 12 >> 2] | 0, HEAP32[i4 + 28 >> 2] << 4, 0) | 0;
  38146. _luaM_realloc_(i1, i4, 32, 0) | 0;
  38147. STACKTOP = i2;
  38148. return;
  38149. }
  38150. function _luaO_int2fb(i3) {
  38151. i3 = i3 | 0;
  38152. var i1 = 0, i2 = 0, i4 = 0;
  38153. i1 = STACKTOP;
  38154. if (i3 >>> 0 < 8) {
  38155. STACKTOP = i1;
  38156. return i3 | 0;
  38157. }
  38158. if (i3 >>> 0 > 15) {
  38159. i2 = 1;
  38160. do {
  38161. i4 = i3 + 1 | 0;
  38162. i3 = i4 >>> 1;
  38163. i2 = i2 + 1 | 0;
  38164. } while (i4 >>> 0 > 31);
  38165. i2 = i2 << 3;
  38166. } else {
  38167. i2 = 8;
  38168. }
  38169. i4 = i2 | i3 + -8;
  38170. STACKTOP = i1;
  38171. return i4 | 0;
  38172. }
  38173. function _luaK_codek(i3, i4, i1) {
  38174. i3 = i3 | 0;
  38175. i4 = i4 | 0;
  38176. i1 = i1 | 0;
  38177. var i2 = 0;
  38178. i2 = STACKTOP;
  38179. i4 = i4 << 6;
  38180. if ((i1 | 0) < 262144) {
  38181. i4 = _luaK_code(i3, i4 | i1 << 14 | 1) | 0;
  38182. STACKTOP = i2;
  38183. return i4 | 0;
  38184. } else {
  38185. i4 = _luaK_code(i3, i4 | 2) | 0;
  38186. _luaK_code(i3, i1 << 6 | 39) | 0;
  38187. STACKTOP = i2;
  38188. return i4 | 0;
  38189. }
  38190. return 0;
  38191. }
  38192. function _luaB_xpcall(i1) {
  38193. i1 = i1 | 0;
  38194. var i2 = 0, i3 = 0;
  38195. i2 = STACKTOP;
  38196. i3 = _lua_gettop(i1) | 0;
  38197. if ((i3 | 0) <= 1) {
  38198. _luaL_argerror(i1, 2, 9616) | 0;
  38199. }
  38200. _lua_pushvalue(i1, 1);
  38201. _lua_copy(i1, 2, 1);
  38202. _lua_replace(i1, 2);
  38203. i3 = _finishpcall(i1, (_lua_pcallk(i1, i3 + -2 | 0, -1, 1, 0, 166) | 0) == 0 | 0) | 0;
  38204. STACKTOP = i2;
  38205. return i3 | 0;
  38206. }
  38207. function _luaS_newudata(i1, i3, i4) {
  38208. i1 = i1 | 0;
  38209. i3 = i3 | 0;
  38210. i4 = i4 | 0;
  38211. var i2 = 0;
  38212. i2 = STACKTOP;
  38213. if (i3 >>> 0 > 4294967269) {
  38214. _luaM_toobig(i1);
  38215. } else {
  38216. i1 = _luaC_newobj(i1, 7, i3 + 24 | 0, 0, 0) | 0;
  38217. HEAP32[i1 + 16 >> 2] = i3;
  38218. HEAP32[i1 + 8 >> 2] = 0;
  38219. HEAP32[i1 + 12 >> 2] = i4;
  38220. STACKTOP = i2;
  38221. return i1 | 0;
  38222. }
  38223. return 0;
  38224. }
  38225. function _lua_dump(i1, i4, i5) {
  38226. i1 = i1 | 0;
  38227. i4 = i4 | 0;
  38228. i5 = i5 | 0;
  38229. var i2 = 0, i3 = 0;
  38230. i2 = STACKTOP;
  38231. i3 = HEAP32[i1 + 8 >> 2] | 0;
  38232. if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
  38233. i5 = 1;
  38234. STACKTOP = i2;
  38235. return i5 | 0;
  38236. }
  38237. i5 = _luaU_dump(i1, HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i4, i5, 0) | 0;
  38238. STACKTOP = i2;
  38239. return i5 | 0;
  38240. }
  38241. function _luaS_eqlngstr(i2, i4) {
  38242. i2 = i2 | 0;
  38243. i4 = i4 | 0;
  38244. var i1 = 0, i3 = 0;
  38245. i1 = STACKTOP;
  38246. i3 = HEAP32[i2 + 12 >> 2] | 0;
  38247. if ((i2 | 0) != (i4 | 0)) {
  38248. if ((i3 | 0) == (HEAP32[i4 + 12 >> 2] | 0)) {
  38249. i2 = (_memcmp(i2 + 16 | 0, i4 + 16 | 0, i3) | 0) == 0;
  38250. } else {
  38251. i2 = 0;
  38252. }
  38253. } else {
  38254. i2 = 1;
  38255. }
  38256. STACKTOP = i1;
  38257. return i2 & 1 | 0;
  38258. }
  38259. function _luaC_barrier_(i4, i3, i1) {
  38260. i4 = i4 | 0;
  38261. i3 = i3 | 0;
  38262. i1 = i1 | 0;
  38263. var i2 = 0;
  38264. i2 = STACKTOP;
  38265. i4 = HEAP32[i4 + 12 >> 2] | 0;
  38266. if ((HEAPU8[i4 + 61 | 0] | 0) < 2) {
  38267. _reallymarkobject(i4, i1);
  38268. STACKTOP = i2;
  38269. return;
  38270. } else {
  38271. i3 = i3 + 5 | 0;
  38272. HEAP8[i3] = HEAP8[i4 + 60 | 0] & 3 | HEAP8[i3] & 184;
  38273. STACKTOP = i2;
  38274. return;
  38275. }
  38276. }
  38277. function _db_getupvalue(i1) {
  38278. i1 = i1 | 0;
  38279. var i2 = 0, i3 = 0;
  38280. i2 = STACKTOP;
  38281. i3 = _luaL_checkinteger(i1, 2) | 0;
  38282. _luaL_checktype(i1, 1, 6);
  38283. i3 = _lua_getupvalue(i1, 1, i3) | 0;
  38284. if ((i3 | 0) == 0) {
  38285. i3 = 0;
  38286. STACKTOP = i2;
  38287. return i3 | 0;
  38288. }
  38289. _lua_pushstring(i1, i3) | 0;
  38290. _lua_insert(i1, -2);
  38291. i3 = 2;
  38292. STACKTOP = i2;
  38293. return i3 | 0;
  38294. }
  38295. function _os_execute(i1) {
  38296. i1 = i1 | 0;
  38297. var i2 = 0, i3 = 0, i4 = 0;
  38298. i2 = STACKTOP;
  38299. i4 = _luaL_optlstring(i1, 1, 0, 0) | 0;
  38300. i3 = _system(i4 | 0) | 0;
  38301. if ((i4 | 0) == 0) {
  38302. _lua_pushboolean(i1, i3);
  38303. i4 = 1;
  38304. STACKTOP = i2;
  38305. return i4 | 0;
  38306. } else {
  38307. i4 = _luaL_execresult(i1, i3) | 0;
  38308. STACKTOP = i2;
  38309. return i4 | 0;
  38310. }
  38311. return 0;
  38312. }
  38313. function _lua_pushfstring(i4, i5, i1) {
  38314. i4 = i4 | 0;
  38315. i5 = i5 | 0;
  38316. i1 = i1 | 0;
  38317. var i2 = 0, i3 = 0;
  38318. i2 = STACKTOP;
  38319. STACKTOP = STACKTOP + 16 | 0;
  38320. i3 = i2;
  38321. if ((HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  38322. _luaC_step(i4);
  38323. }
  38324. HEAP32[i3 >> 2] = i1;
  38325. i5 = _luaO_pushvfstring(i4, i5, i3) | 0;
  38326. STACKTOP = i2;
  38327. return i5 | 0;
  38328. }
  38329. function _luaB_dofile(i1) {
  38330. i1 = i1 | 0;
  38331. var i2 = 0, i3 = 0;
  38332. i2 = STACKTOP;
  38333. i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
  38334. _lua_settop(i1, 1);
  38335. if ((_luaL_loadfilex(i1, i3, 0) | 0) == 0) {
  38336. _lua_callk(i1, 0, -1, 0, 164);
  38337. i3 = (_lua_gettop(i1) | 0) + -1 | 0;
  38338. STACKTOP = i2;
  38339. return i3 | 0;
  38340. } else {
  38341. _lua_error(i1) | 0;
  38342. }
  38343. return 0;
  38344. }
  38345. function _f_write(i1) {
  38346. i1 = i1 | 0;
  38347. var i2 = 0, i3 = 0;
  38348. i2 = STACKTOP;
  38349. STACKTOP = STACKTOP + 16 | 0;
  38350. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  38351. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  38352. _luaL_error(i1, 3080, i2) | 0;
  38353. }
  38354. i3 = HEAP32[i3 >> 2] | 0;
  38355. _lua_pushvalue(i1, 1);
  38356. i3 = _g_write(i1, i3, 2) | 0;
  38357. STACKTOP = i2;
  38358. return i3 | 0;
  38359. }
  38360. function _lua_getctx(i3, i1) {
  38361. i3 = i3 | 0;
  38362. i1 = i1 | 0;
  38363. var i2 = 0;
  38364. i2 = STACKTOP;
  38365. i3 = HEAP32[i3 + 16 >> 2] | 0;
  38366. if ((HEAP8[i3 + 18 | 0] & 8) == 0) {
  38367. i3 = 0;
  38368. STACKTOP = i2;
  38369. return i3 | 0;
  38370. }
  38371. if ((i1 | 0) != 0) {
  38372. HEAP32[i1 >> 2] = HEAP32[i3 + 24 >> 2];
  38373. }
  38374. i3 = HEAPU8[i3 + 37 | 0] | 0;
  38375. STACKTOP = i2;
  38376. return i3 | 0;
  38377. }
  38378. function _f_flush(i1) {
  38379. i1 = i1 | 0;
  38380. var i2 = 0, i3 = 0;
  38381. i2 = STACKTOP;
  38382. STACKTOP = STACKTOP + 16 | 0;
  38383. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  38384. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  38385. _luaL_error(i1, 3080, i2) | 0;
  38386. }
  38387. i3 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
  38388. STACKTOP = i2;
  38389. return i3 | 0;
  38390. }
  38391. function _os_tmpname(i1) {
  38392. i1 = i1 | 0;
  38393. var i2 = 0, i3 = 0;
  38394. i2 = STACKTOP;
  38395. STACKTOP = STACKTOP + 32 | 0;
  38396. i3 = i2 + 4 | 0;
  38397. if ((_tmpnam(i3 | 0) | 0) == 0) {
  38398. i3 = _luaL_error(i1, 5824, i2) | 0;
  38399. STACKTOP = i2;
  38400. return i3 | 0;
  38401. } else {
  38402. _lua_pushstring(i1, i3) | 0;
  38403. i3 = 1;
  38404. STACKTOP = i2;
  38405. return i3 | 0;
  38406. }
  38407. return 0;
  38408. }
  38409. function _traceback(i1) {
  38410. i1 = i1 | 0;
  38411. var i2 = 0, i3 = 0;
  38412. i2 = STACKTOP;
  38413. i3 = _lua_tolstring(i1, 1, 0) | 0;
  38414. if ((i3 | 0) == 0) {
  38415. if ((_lua_type(i1, 1) | 0) >= 1 ? (_luaL_callmeta(i1, 1, 216) | 0) == 0 : 0) {
  38416. _lua_pushlstring(i1, 232, 18) | 0;
  38417. }
  38418. } else {
  38419. _luaL_traceback(i1, i1, i3, 1);
  38420. }
  38421. STACKTOP = i2;
  38422. return 1;
  38423. }
  38424. function _luaH_new(i1) {
  38425. i1 = i1 | 0;
  38426. var i2 = 0;
  38427. i2 = STACKTOP;
  38428. i1 = _luaC_newobj(i1, 5, 32, 0, 0) | 0;
  38429. HEAP32[i1 + 8 >> 2] = 0;
  38430. HEAP8[i1 + 6 | 0] = -1;
  38431. HEAP32[i1 + 12 >> 2] = 0;
  38432. HEAP32[i1 + 28 >> 2] = 0;
  38433. HEAP32[i1 + 16 >> 2] = 8016;
  38434. HEAP8[i1 + 7 | 0] = 0;
  38435. HEAP32[i1 + 20 >> 2] = 8016;
  38436. STACKTOP = i2;
  38437. return i1 | 0;
  38438. }
  38439. function _luaL_len(i1, i3) {
  38440. i1 = i1 | 0;
  38441. i3 = i3 | 0;
  38442. var i2 = 0, i4 = 0;
  38443. i2 = STACKTOP;
  38444. STACKTOP = STACKTOP + 16 | 0;
  38445. i4 = i2 + 4 | 0;
  38446. _lua_len(i1, i3);
  38447. i3 = _lua_tointegerx(i1, -1, i4) | 0;
  38448. if ((HEAP32[i4 >> 2] | 0) == 0) {
  38449. _luaL_error(i1, 1352, i2) | 0;
  38450. }
  38451. _lua_settop(i1, -2);
  38452. STACKTOP = i2;
  38453. return i3 | 0;
  38454. }
  38455. function _getS(i3, i2, i1) {
  38456. i3 = i3 | 0;
  38457. i2 = i2 | 0;
  38458. i1 = i1 | 0;
  38459. var i4 = 0, i5 = 0;
  38460. i3 = STACKTOP;
  38461. i5 = i2 + 4 | 0;
  38462. i4 = HEAP32[i5 >> 2] | 0;
  38463. if ((i4 | 0) == 0) {
  38464. i5 = 0;
  38465. STACKTOP = i3;
  38466. return i5 | 0;
  38467. }
  38468. HEAP32[i1 >> 2] = i4;
  38469. HEAP32[i5 >> 2] = 0;
  38470. i5 = HEAP32[i2 >> 2] | 0;
  38471. STACKTOP = i3;
  38472. return i5 | 0;
  38473. }
  38474. function _luaC_runtilstate(i1, i4) {
  38475. i1 = i1 | 0;
  38476. i4 = i4 | 0;
  38477. var i2 = 0, i3 = 0;
  38478. i2 = STACKTOP;
  38479. i3 = (HEAP32[i1 + 12 >> 2] | 0) + 61 | 0;
  38480. if ((1 << (HEAPU8[i3] | 0) & i4 | 0) != 0) {
  38481. STACKTOP = i2;
  38482. return;
  38483. }
  38484. do {
  38485. _singlestep(i1) | 0;
  38486. } while ((1 << (HEAPU8[i3] | 0) & i4 | 0) == 0);
  38487. STACKTOP = i2;
  38488. return;
  38489. }
  38490. function _luaX_init(i1) {
  38491. i1 = i1 | 0;
  38492. var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
  38493. i2 = STACKTOP;
  38494. i3 = 0;
  38495. do {
  38496. i4 = _luaS_new(i1, HEAP32[12096 + (i3 << 2) >> 2] | 0) | 0;
  38497. i5 = i4 + 5 | 0;
  38498. HEAP8[i5] = HEAPU8[i5] | 0 | 32;
  38499. i3 = i3 + 1 | 0;
  38500. HEAP8[i4 + 6 | 0] = i3;
  38501. } while ((i3 | 0) != 22);
  38502. STACKTOP = i2;
  38503. return;
  38504. }
  38505. function _luaK_indexed(i5, i1, i4) {
  38506. i5 = i5 | 0;
  38507. i1 = i1 | 0;
  38508. i4 = i4 | 0;
  38509. var i2 = 0, i3 = 0;
  38510. i3 = STACKTOP;
  38511. i2 = i1 + 8 | 0;
  38512. HEAP8[i2 + 2 | 0] = HEAP32[i2 >> 2];
  38513. HEAP16[i2 >> 1] = _luaK_exp2RK(i5, i4) | 0;
  38514. HEAP8[i2 + 3 | 0] = (HEAP32[i1 >> 2] | 0) == 8 ? 8 : 7;
  38515. HEAP32[i1 >> 2] = 9;
  38516. STACKTOP = i3;
  38517. return;
  38518. }
  38519. function _db_setuservalue(i1) {
  38520. i1 = i1 | 0;
  38521. var i2 = 0;
  38522. i2 = STACKTOP;
  38523. if ((_lua_type(i1, 1) | 0) == 2) {
  38524. _luaL_argerror(i1, 1, 11680) | 0;
  38525. }
  38526. _luaL_checktype(i1, 1, 7);
  38527. if ((_lua_type(i1, 2) | 0) >= 1) {
  38528. _luaL_checktype(i1, 2, 5);
  38529. }
  38530. _lua_settop(i1, 2);
  38531. _lua_setuservalue(i1, 1);
  38532. STACKTOP = i2;
  38533. return 1;
  38534. }
  38535. function _ll_seeall(i1) {
  38536. i1 = i1 | 0;
  38537. var i2 = 0;
  38538. i2 = STACKTOP;
  38539. _luaL_checktype(i1, 1, 5);
  38540. if ((_lua_getmetatable(i1, 1) | 0) == 0) {
  38541. _lua_createtable(i1, 0, 1);
  38542. _lua_pushvalue(i1, -1);
  38543. _lua_setmetatable(i1, 1) | 0;
  38544. }
  38545. _lua_rawgeti(i1, -1001e3, 2);
  38546. _lua_setfield(i1, -2, 5168);
  38547. STACKTOP = i2;
  38548. return 0;
  38549. }
  38550. function _luaL_loadbufferx(i3, i5, i4, i2, i1) {
  38551. i3 = i3 | 0;
  38552. i5 = i5 | 0;
  38553. i4 = i4 | 0;
  38554. i2 = i2 | 0;
  38555. i1 = i1 | 0;
  38556. var i6 = 0, i7 = 0;
  38557. i6 = STACKTOP;
  38558. STACKTOP = STACKTOP + 16 | 0;
  38559. i7 = i6;
  38560. HEAP32[i7 >> 2] = i5;
  38561. HEAP32[i7 + 4 >> 2] = i4;
  38562. i5 = _lua_load(i3, 2, i7, i2, i1) | 0;
  38563. STACKTOP = i6;
  38564. return i5 | 0;
  38565. }
  38566. function _luaT_gettm(i1, i3, i4) {
  38567. i1 = i1 | 0;
  38568. i3 = i3 | 0;
  38569. i4 = i4 | 0;
  38570. var i2 = 0;
  38571. i2 = STACKTOP;
  38572. i4 = _luaH_getstr(i1, i4) | 0;
  38573. if ((HEAP32[i4 + 8 >> 2] | 0) != 0) {
  38574. STACKTOP = i2;
  38575. return i4 | 0;
  38576. }
  38577. i4 = i1 + 6 | 0;
  38578. HEAP8[i4] = HEAPU8[i4] | 0 | 1 << i3;
  38579. i4 = 0;
  38580. STACKTOP = i2;
  38581. return i4 | 0;
  38582. }
  38583. function _luaL_pushresult(i1) {
  38584. i1 = i1 | 0;
  38585. var i2 = 0, i3 = 0;
  38586. i2 = STACKTOP;
  38587. i3 = HEAP32[i1 + 12 >> 2] | 0;
  38588. _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0) | 0;
  38589. if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
  38590. STACKTOP = i2;
  38591. return;
  38592. }
  38593. _lua_remove(i3, -2);
  38594. STACKTOP = i2;
  38595. return;
  38596. }
  38597. function _resume_error(i1, i3, i2) {
  38598. i1 = i1 | 0;
  38599. i3 = i3 | 0;
  38600. i2 = i2 | 0;
  38601. var i4 = 0;
  38602. i4 = i1 + 8 | 0;
  38603. HEAP32[i4 >> 2] = i2;
  38604. i3 = _luaS_new(i1, i3) | 0;
  38605. HEAP32[i2 >> 2] = i3;
  38606. HEAP32[i2 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
  38607. HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 16;
  38608. _luaD_throw(i1, -1);
  38609. }
  38610. function _lua_absindex(i3, i1) {
  38611. i3 = i3 | 0;
  38612. i1 = i1 | 0;
  38613. var i2 = 0;
  38614. i2 = STACKTOP;
  38615. if ((i1 + 1000999 | 0) >>> 0 > 1000999) {
  38616. i3 = i1;
  38617. STACKTOP = i2;
  38618. return i3 | 0;
  38619. }
  38620. i3 = ((HEAP32[i3 + 8 >> 2] | 0) - (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) >> 4) + i1 | 0;
  38621. STACKTOP = i2;
  38622. return i3 | 0;
  38623. }
  38624. function ___uremdi3(i4, i3, i2, i1) {
  38625. i4 = i4 | 0;
  38626. i3 = i3 | 0;
  38627. i2 = i2 | 0;
  38628. i1 = i1 | 0;
  38629. var i5 = 0, i6 = 0;
  38630. i6 = STACKTOP;
  38631. STACKTOP = STACKTOP + 8 | 0;
  38632. i5 = i6 | 0;
  38633. ___udivmoddi4(i4, i3, i2, i1, i5) | 0;
  38634. STACKTOP = i6;
  38635. return (tempRet0 = HEAP32[i5 + 4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
  38636. }
  38637. function _f_read(i1) {
  38638. i1 = i1 | 0;
  38639. var i2 = 0, i3 = 0;
  38640. i2 = STACKTOP;
  38641. STACKTOP = STACKTOP + 16 | 0;
  38642. i3 = _luaL_checkudata(i1, 1, 2832) | 0;
  38643. if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
  38644. _luaL_error(i1, 3080, i2) | 0;
  38645. }
  38646. i3 = _g_read(i1, HEAP32[i3 >> 2] | 0, 2) | 0;
  38647. STACKTOP = i2;
  38648. return i3 | 0;
  38649. }
  38650. function _sort(i1) {
  38651. i1 = i1 | 0;
  38652. var i2 = 0, i3 = 0;
  38653. i2 = STACKTOP;
  38654. _luaL_checktype(i1, 1, 5);
  38655. i3 = _luaL_len(i1, 1) | 0;
  38656. _luaL_checkstack(i1, 40, 8208);
  38657. if ((_lua_type(i1, 2) | 0) >= 1) {
  38658. _luaL_checktype(i1, 2, 6);
  38659. }
  38660. _lua_settop(i1, 2);
  38661. _auxsort(i1, 1, i3);
  38662. STACKTOP = i2;
  38663. return 0;
  38664. }
  38665. function _luaB_error(i1) {
  38666. i1 = i1 | 0;
  38667. var i2 = 0;
  38668. i2 = _luaL_optinteger(i1, 2, 1) | 0;
  38669. _lua_settop(i1, 1);
  38670. if (!((_lua_isstring(i1, 1) | 0) != 0 & (i2 | 0) > 0)) {
  38671. _lua_error(i1) | 0;
  38672. }
  38673. _luaL_where(i1, i2);
  38674. _lua_pushvalue(i1, 1);
  38675. _lua_concat(i1, 2);
  38676. _lua_error(i1) | 0;
  38677. return 0;
  38678. }
  38679. function _error(i1, i2) {
  38680. i1 = i1 | 0;
  38681. i2 = i2 | 0;
  38682. var i3 = 0, i4 = 0;
  38683. i3 = STACKTOP;
  38684. STACKTOP = STACKTOP + 16 | 0;
  38685. i4 = HEAP32[i1 >> 2] | 0;
  38686. HEAP32[i3 >> 2] = HEAP32[i1 + 12 >> 2];
  38687. HEAP32[i3 + 4 >> 2] = i2;
  38688. _luaO_pushfstring(i4, 8840, i3) | 0;
  38689. _luaD_throw(HEAP32[i1 >> 2] | 0, 3);
  38690. }
  38691. function _ipairsaux(i1) {
  38692. i1 = i1 | 0;
  38693. var i2 = 0, i3 = 0;
  38694. i2 = STACKTOP;
  38695. i3 = _luaL_checkinteger(i1, 2) | 0;
  38696. _luaL_checktype(i1, 1, 5);
  38697. i3 = i3 + 1 | 0;
  38698. _lua_pushinteger(i1, i3);
  38699. _lua_rawgeti(i1, 1, i3);
  38700. i1 = (_lua_type(i1, -1) | 0) == 0;
  38701. STACKTOP = i2;
  38702. return (i1 ? 1 : 2) | 0;
  38703. }
  38704. function _panic(i1) {
  38705. i1 = i1 | 0;
  38706. var i2 = 0, i3 = 0, i4 = 0;
  38707. i2 = STACKTOP;
  38708. STACKTOP = STACKTOP + 16 | 0;
  38709. i4 = i2;
  38710. i3 = HEAP32[_stderr >> 2] | 0;
  38711. HEAP32[i4 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
  38712. _fprintf(i3 | 0, 1656, i4 | 0) | 0;
  38713. _fflush(i3 | 0) | 0;
  38714. STACKTOP = i2;
  38715. return 0;
  38716. }
  38717. function _testSetjmp(i1, i2) {
  38718. i1 = i1 | 0;
  38719. i2 = i2 | 0;
  38720. var i3 = 0, i4 = 0;
  38721. while ((i3 | 0) < 20) {
  38722. i4 = HEAP32[i2 + (i3 << 2) >> 2] | 0;
  38723. if ((i4 | 0) == 0) break;
  38724. if ((i4 | 0) == (i1 | 0)) {
  38725. return HEAP32[i2 + ((i3 << 2) + 4) >> 2] | 0;
  38726. }
  38727. i3 = i3 + 2 | 0;
  38728. }
  38729. return 0;
  38730. }
  38731. function _luaopen_math(i1) {
  38732. i1 = i1 | 0;
  38733. var i2 = 0;
  38734. i2 = STACKTOP;
  38735. _lua_createtable(i1, 0, 28);
  38736. _luaL_setfuncs(i1, 3576, 0);
  38737. _lua_pushnumber(i1, 3.141592653589793);
  38738. _lua_setfield(i1, -2, 3808);
  38739. _lua_pushnumber(i1, inf);
  38740. _lua_setfield(i1, -2, 3816);
  38741. STACKTOP = i2;
  38742. return 1;
  38743. }
  38744. function _luaopen_base(i1) {
  38745. i1 = i1 | 0;
  38746. var i2 = 0;
  38747. i2 = STACKTOP;
  38748. _lua_rawgeti(i1, -1001e3, 2);
  38749. _lua_rawgeti(i1, -1001e3, 2);
  38750. _lua_setfield(i1, -2, 9144);
  38751. _luaL_setfuncs(i1, 9152, 0);
  38752. _lua_pushlstring(i1, 9344, 7) | 0;
  38753. _lua_setfield(i1, -2, 9352);
  38754. STACKTOP = i2;
  38755. return 1;
  38756. }
  38757. function _luaE_extendCI(i1) {
  38758. i1 = i1 | 0;
  38759. var i2 = 0, i3 = 0;
  38760. i3 = STACKTOP;
  38761. i2 = _luaM_realloc_(i1, 0, 0, 40) | 0;
  38762. i1 = i1 + 16 | 0;
  38763. HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] = i2;
  38764. HEAP32[i2 + 8 >> 2] = HEAP32[i1 >> 2];
  38765. HEAP32[i2 + 12 >> 2] = 0;
  38766. STACKTOP = i3;
  38767. return i2 | 0;
  38768. }
  38769. function _luaB_getmetatable(i1) {
  38770. i1 = i1 | 0;
  38771. var i2 = 0;
  38772. i2 = STACKTOP;
  38773. _luaL_checkany(i1, 1);
  38774. if ((_lua_getmetatable(i1, 1) | 0) == 0) {
  38775. _lua_pushnil(i1);
  38776. STACKTOP = i2;
  38777. return 1;
  38778. } else {
  38779. _luaL_getmetafield(i1, 1, 9704) | 0;
  38780. STACKTOP = i2;
  38781. return 1;
  38782. }
  38783. return 0;
  38784. }
  38785. function _lua_pushunsigned(i1, i2) {
  38786. i1 = i1 | 0;
  38787. i2 = i2 | 0;
  38788. var d3 = 0.0;
  38789. if ((i2 | 0) > -1) {
  38790. d3 = +(i2 | 0);
  38791. } else {
  38792. d3 = +(i2 >>> 0);
  38793. }
  38794. i2 = i1 + 8 | 0;
  38795. i1 = HEAP32[i2 >> 2] | 0;
  38796. HEAPF64[i1 >> 3] = d3;
  38797. HEAP32[i1 + 8 >> 2] = 3;
  38798. HEAP32[i2 >> 2] = i1 + 16;
  38799. return;
  38800. }
  38801. function _lua_pushthread(i1) {
  38802. i1 = i1 | 0;
  38803. var i2 = 0, i3 = 0;
  38804. i2 = i1 + 8 | 0;
  38805. i3 = HEAP32[i2 >> 2] | 0;
  38806. HEAP32[i3 >> 2] = i1;
  38807. HEAP32[i3 + 8 >> 2] = 72;
  38808. HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
  38809. return (HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i1 | 0) | 0;
  38810. }
  38811. function _gctm(i1) {
  38812. i1 = i1 | 0;
  38813. var i2 = 0, i3 = 0;
  38814. i2 = STACKTOP;
  38815. i3 = _luaL_len(i1, 1) | 0;
  38816. if ((i3 | 0) <= 0) {
  38817. STACKTOP = i2;
  38818. return 0;
  38819. }
  38820. do {
  38821. _lua_rawgeti(i1, 1, i3);
  38822. _lua_settop(i1, -2);
  38823. i3 = i3 + -1 | 0;
  38824. } while ((i3 | 0) > 0);
  38825. STACKTOP = i2;
  38826. return 0;
  38827. }
  38828. function ___muldi3(i4, i2, i3, i1) {
  38829. i4 = i4 | 0;
  38830. i2 = i2 | 0;
  38831. i3 = i3 | 0;
  38832. i1 = i1 | 0;
  38833. var i5 = 0, i6 = 0;
  38834. i5 = i4;
  38835. i6 = i3;
  38836. i4 = ___muldsi3(i5, i6) | 0;
  38837. i3 = tempRet0;
  38838. return (tempRet0 = (Math_imul(i2, i6) | 0) + (Math_imul(i1, i5) | 0) + i3 | i3 & 0, i4 | 0 | 0) | 0;
  38839. }
  38840. function _luaH_resizearray(i1, i3, i4) {
  38841. i1 = i1 | 0;
  38842. i3 = i3 | 0;
  38843. i4 = i4 | 0;
  38844. var i2 = 0, i5 = 0;
  38845. i2 = STACKTOP;
  38846. if ((HEAP32[i3 + 16 >> 2] | 0) == 8016) {
  38847. i5 = 0;
  38848. } else {
  38849. i5 = 1 << (HEAPU8[i3 + 7 | 0] | 0);
  38850. }
  38851. _luaH_resize(i1, i3, i4, i5);
  38852. STACKTOP = i2;
  38853. return;
  38854. }
  38855. function _luaK_stringK(i1, i2) {
  38856. i1 = i1 | 0;
  38857. i2 = i2 | 0;
  38858. var i3 = 0, i4 = 0;
  38859. i3 = STACKTOP;
  38860. STACKTOP = STACKTOP + 16 | 0;
  38861. i4 = i3;
  38862. HEAP32[i4 >> 2] = i2;
  38863. HEAP32[i4 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
  38864. i2 = _addk(i1, i4, i4) | 0;
  38865. STACKTOP = i3;
  38866. return i2 | 0;
  38867. }
  38868. function _math_modf(i1) {
  38869. i1 = i1 | 0;
  38870. var i2 = 0, d3 = 0.0, i4 = 0;
  38871. i2 = STACKTOP;
  38872. STACKTOP = STACKTOP + 16 | 0;
  38873. i4 = i2;
  38874. d3 = +_modf(+(+_luaL_checknumber(i1, 1)), i4 | 0);
  38875. _lua_pushnumber(i1, +HEAPF64[i4 >> 3]);
  38876. _lua_pushnumber(i1, d3);
  38877. STACKTOP = i2;
  38878. return 2;
  38879. }
  38880. function _os_setlocale(i1) {
  38881. i1 = i1 | 0;
  38882. var i2 = 0, i3 = 0;
  38883. i2 = STACKTOP;
  38884. i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
  38885. _lua_pushstring(i1, _setlocale(HEAP32[5960 + ((_luaL_checkoption(i1, 2, 6016, 5984) | 0) << 2) >> 2] | 0, i3 | 0) | 0) | 0;
  38886. STACKTOP = i2;
  38887. return 1;
  38888. }
  38889. function _luaB_pcall(i1) {
  38890. i1 = i1 | 0;
  38891. var i2 = 0;
  38892. i2 = STACKTOP;
  38893. _luaL_checkany(i1, 1);
  38894. _lua_pushnil(i1);
  38895. _lua_insert(i1, 1);
  38896. i1 = _finishpcall(i1, (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -2 | 0, -1, 0, 0, 166) | 0) == 0 | 0) | 0;
  38897. STACKTOP = i2;
  38898. return i1 | 0;
  38899. }
  38900. function _error_expected(i1, i2) {
  38901. i1 = i1 | 0;
  38902. i2 = i2 | 0;
  38903. var i3 = 0, i4 = 0;
  38904. i3 = STACKTOP;
  38905. STACKTOP = STACKTOP + 16 | 0;
  38906. i4 = HEAP32[i1 + 52 >> 2] | 0;
  38907. HEAP32[i3 >> 2] = _luaX_token2str(i1, i2) | 0;
  38908. _luaX_syntaxerror(i1, _luaO_pushfstring(i4, 6328, i3) | 0);
  38909. }
  38910. function _lua_pushvfstring(i1, i3, i4) {
  38911. i1 = i1 | 0;
  38912. i3 = i3 | 0;
  38913. i4 = i4 | 0;
  38914. var i2 = 0;
  38915. i2 = STACKTOP;
  38916. if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
  38917. _luaC_step(i1);
  38918. }
  38919. i4 = _luaO_pushvfstring(i1, i3, i4) | 0;
  38920. STACKTOP = i2;
  38921. return i4 | 0;
  38922. }
  38923. function _db_setmetatable(i1) {
  38924. i1 = i1 | 0;
  38925. var i2 = 0, i3 = 0;
  38926. i2 = STACKTOP;
  38927. i3 = _lua_type(i1, 2) | 0;
  38928. if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
  38929. _luaL_argerror(i1, 2, 11536) | 0;
  38930. }
  38931. _lua_settop(i1, 2);
  38932. _lua_setmetatable(i1, 1) | 0;
  38933. STACKTOP = i2;
  38934. return 1;
  38935. }
  38936. function _b_rrot(i1) {
  38937. i1 = i1 | 0;
  38938. var i2 = 0, i3 = 0, i4 = 0;
  38939. i2 = STACKTOP;
  38940. i3 = 0 - (_luaL_checkinteger(i1, 2) | 0) | 0;
  38941. i4 = _luaL_checkunsigned(i1, 1) | 0;
  38942. i3 = i3 & 31;
  38943. _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
  38944. STACKTOP = i2;
  38945. return 1;
  38946. }
  38947. function _luaC_step(i1) {
  38948. i1 = i1 | 0;
  38949. var i2 = 0, i3 = 0;
  38950. i2 = STACKTOP;
  38951. i3 = HEAP32[i1 + 12 >> 2] | 0;
  38952. if ((HEAP8[i3 + 63 | 0] | 0) == 0) {
  38953. _luaE_setdebt(i3, -1600);
  38954. STACKTOP = i2;
  38955. return;
  38956. } else {
  38957. _luaC_forcestep(i1);
  38958. STACKTOP = i2;
  38959. return;
  38960. }
  38961. }
  38962. function _math_frexp(i1) {
  38963. i1 = i1 | 0;
  38964. var i2 = 0, i3 = 0;
  38965. i2 = STACKTOP;
  38966. STACKTOP = STACKTOP + 16 | 0;
  38967. i3 = i2;
  38968. _lua_pushnumber(i1, +_frexp(+(+_luaL_checknumber(i1, 1)), i3 | 0));
  38969. _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
  38970. STACKTOP = i2;
  38971. return 2;
  38972. }
  38973. function _luaO_pushfstring(i2, i1, i3) {
  38974. i2 = i2 | 0;
  38975. i1 = i1 | 0;
  38976. i3 = i3 | 0;
  38977. var i4 = 0, i5 = 0;
  38978. i4 = STACKTOP;
  38979. STACKTOP = STACKTOP + 16 | 0;
  38980. i5 = i4;
  38981. HEAP32[i5 >> 2] = i3;
  38982. i3 = _luaO_pushvfstring(i2, i1, i5) | 0;
  38983. STACKTOP = i4;
  38984. return i3 | 0;
  38985. }
  38986. function _luaO_hexavalue(i1) {
  38987. i1 = i1 | 0;
  38988. var i2 = 0;
  38989. i2 = STACKTOP;
  38990. if ((HEAP8[i1 + 10913 | 0] & 2) == 0) {
  38991. i1 = (i1 | 32) + -87 | 0;
  38992. STACKTOP = i2;
  38993. return i1 | 0;
  38994. } else {
  38995. i1 = i1 + -48 | 0;
  38996. STACKTOP = i2;
  38997. return i1 | 0;
  38998. }
  38999. return 0;
  39000. }
  39001. function _b_lrot(i1) {
  39002. i1 = i1 | 0;
  39003. var i2 = 0, i3 = 0, i4 = 0;
  39004. i2 = STACKTOP;
  39005. i3 = _luaL_checkinteger(i1, 2) | 0;
  39006. i4 = _luaL_checkunsigned(i1, 1) | 0;
  39007. i3 = i3 & 31;
  39008. _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
  39009. STACKTOP = i2;
  39010. return 1;
  39011. }
  39012. function _f_lines(i1) {
  39013. i1 = i1 | 0;
  39014. var i2 = 0;
  39015. i2 = STACKTOP;
  39016. STACKTOP = STACKTOP + 16 | 0;
  39017. if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
  39018. _luaL_error(i1, 3080, i2) | 0;
  39019. }
  39020. _aux_lines(i1, 0);
  39021. STACKTOP = i2;
  39022. return 1;
  39023. }
  39024. function _luaC_barrierback_(i2, i1) {
  39025. i2 = i2 | 0;
  39026. i1 = i1 | 0;
  39027. var i3 = 0;
  39028. i2 = HEAP32[i2 + 12 >> 2] | 0;
  39029. i3 = i1 + 5 | 0;
  39030. HEAP8[i3] = HEAP8[i3] & 251;
  39031. i2 = i2 + 88 | 0;
  39032. HEAP32[i1 + 24 >> 2] = HEAP32[i2 >> 2];
  39033. HEAP32[i2 >> 2] = i1;
  39034. return;
  39035. }
  39036. function _os_rename(i1) {
  39037. i1 = i1 | 0;
  39038. var i2 = 0, i3 = 0;
  39039. i2 = STACKTOP;
  39040. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  39041. i1 = _luaL_fileresult(i1, (_rename(i3 | 0, _luaL_checklstring(i1, 2, 0) | 0) | 0) == 0 | 0, 0) | 0;
  39042. STACKTOP = i2;
  39043. return i1 | 0;
  39044. }
  39045. function _bitshift64Ashr(i3, i2, i1) {
  39046. i3 = i3 | 0;
  39047. i2 = i2 | 0;
  39048. i1 = i1 | 0;
  39049. if ((i1 | 0) < 32) {
  39050. tempRet0 = i2 >> i1;
  39051. return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
  39052. }
  39053. tempRet0 = (i2 | 0) < 0 ? -1 : 0;
  39054. return i2 >> i1 - 32 | 0;
  39055. }
  39056. function _luaB_cowrap(i1) {
  39057. i1 = i1 | 0;
  39058. var i2 = 0, i3 = 0;
  39059. i2 = STACKTOP;
  39060. _luaL_checktype(i1, 1, 6);
  39061. i3 = _lua_newthread(i1) | 0;
  39062. _lua_pushvalue(i1, 1);
  39063. _lua_xmove(i1, i3, 1);
  39064. _lua_pushcclosure(i1, 167, 1);
  39065. STACKTOP = i2;
  39066. return 1;
  39067. }
  39068. function _gmatch(i1) {
  39069. i1 = i1 | 0;
  39070. var i2 = 0;
  39071. i2 = STACKTOP;
  39072. _luaL_checklstring(i1, 1, 0) | 0;
  39073. _luaL_checklstring(i1, 2, 0) | 0;
  39074. _lua_settop(i1, 2);
  39075. _lua_pushinteger(i1, 0);
  39076. _lua_pushcclosure(i1, 163, 3);
  39077. STACKTOP = i2;
  39078. return 1;
  39079. }
  39080. function _luaB_next(i2) {
  39081. i2 = i2 | 0;
  39082. var i1 = 0;
  39083. i1 = STACKTOP;
  39084. _luaL_checktype(i2, 1, 5);
  39085. _lua_settop(i2, 2);
  39086. if ((_lua_next(i2, 1) | 0) == 0) {
  39087. _lua_pushnil(i2);
  39088. i2 = 1;
  39089. } else {
  39090. i2 = 2;
  39091. }
  39092. STACKTOP = i1;
  39093. return i2 | 0;
  39094. }
  39095. function _luaK_codeABC(i5, i3, i4, i2, i1) {
  39096. i5 = i5 | 0;
  39097. i3 = i3 | 0;
  39098. i4 = i4 | 0;
  39099. i2 = i2 | 0;
  39100. i1 = i1 | 0;
  39101. var i6 = 0;
  39102. i6 = STACKTOP;
  39103. i5 = _luaK_code(i5, i4 << 6 | i3 | i2 << 23 | i1 << 14) | 0;
  39104. STACKTOP = i6;
  39105. return i5 | 0;
  39106. }
  39107. function _luaH_set(i2, i4, i5) {
  39108. i2 = i2 | 0;
  39109. i4 = i4 | 0;
  39110. i5 = i5 | 0;
  39111. var i1 = 0, i3 = 0;
  39112. i1 = STACKTOP;
  39113. i3 = _luaH_get(i4, i5) | 0;
  39114. if ((i3 | 0) == 5192) {
  39115. i3 = _luaH_newkey(i2, i4, i5) | 0;
  39116. }
  39117. STACKTOP = i1;
  39118. return i3 | 0;
  39119. }
  39120. function _luaZ_init(i4, i1, i3, i2) {
  39121. i4 = i4 | 0;
  39122. i1 = i1 | 0;
  39123. i3 = i3 | 0;
  39124. i2 = i2 | 0;
  39125. HEAP32[i1 + 16 >> 2] = i4;
  39126. HEAP32[i1 + 8 >> 2] = i3;
  39127. HEAP32[i1 + 12 >> 2] = i2;
  39128. HEAP32[i1 >> 2] = 0;
  39129. HEAP32[i1 + 4 >> 2] = 0;
  39130. return;
  39131. }
  39132. function _lua_pushlightuserdata(i2, i1) {
  39133. i2 = i2 | 0;
  39134. i1 = i1 | 0;
  39135. var i3 = 0;
  39136. i2 = i2 + 8 | 0;
  39137. i3 = HEAP32[i2 >> 2] | 0;
  39138. HEAP32[i3 >> 2] = i1;
  39139. HEAP32[i3 + 8 >> 2] = 2;
  39140. HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
  39141. return;
  39142. }
  39143. function copyTempFloat(i1) {
  39144. i1 = i1 | 0;
  39145. HEAP8[tempDoublePtr] = HEAP8[i1];
  39146. HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
  39147. HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
  39148. HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
  39149. }
  39150. function _bitshift64Shl(i2, i3, i1) {
  39151. i2 = i2 | 0;
  39152. i3 = i3 | 0;
  39153. i1 = i1 | 0;
  39154. if ((i1 | 0) < 32) {
  39155. tempRet0 = i3 << i1 | (i2 & (1 << i1) - 1 << 32 - i1) >>> 32 - i1;
  39156. return i2 << i1;
  39157. }
  39158. tempRet0 = i2 << i1 - 32;
  39159. return 0;
  39160. }
  39161. function _luaB_rawlen(i1) {
  39162. i1 = i1 | 0;
  39163. var i2 = 0;
  39164. i2 = STACKTOP;
  39165. if (((_lua_type(i1, 1) | 0) & -2 | 0) != 4) {
  39166. _luaL_argerror(i1, 1, 9784) | 0;
  39167. }
  39168. _lua_pushinteger(i1, _lua_rawlen(i1, 1) | 0);
  39169. STACKTOP = i2;
  39170. return 1;
  39171. }
  39172. function _l_alloc(i3, i1, i4, i2) {
  39173. i3 = i3 | 0;
  39174. i1 = i1 | 0;
  39175. i4 = i4 | 0;
  39176. i2 = i2 | 0;
  39177. i3 = STACKTOP;
  39178. if ((i2 | 0) == 0) {
  39179. _free(i1);
  39180. i1 = 0;
  39181. } else {
  39182. i1 = _realloc(i1, i2) | 0;
  39183. }
  39184. STACKTOP = i3;
  39185. return i1 | 0;
  39186. }
  39187. function _bitshift64Lshr(i3, i2, i1) {
  39188. i3 = i3 | 0;
  39189. i2 = i2 | 0;
  39190. i1 = i1 | 0;
  39191. if ((i1 | 0) < 32) {
  39192. tempRet0 = i2 >>> i1;
  39193. return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
  39194. }
  39195. tempRet0 = 0;
  39196. return i2 >>> i1 - 32 | 0;
  39197. }
  39198. function _luaG_aritherror(i3, i1, i2) {
  39199. i3 = i3 | 0;
  39200. i1 = i1 | 0;
  39201. i2 = i2 | 0;
  39202. var i4 = 0;
  39203. i4 = STACKTOP;
  39204. STACKTOP = STACKTOP + 16 | 0;
  39205. i4 = (_luaV_tonumber(i1, i4) | 0) == 0;
  39206. _luaG_typeerror(i3, i4 ? i1 : i2, 1928);
  39207. }
  39208. function _str_len(i1) {
  39209. i1 = i1 | 0;
  39210. var i2 = 0, i3 = 0;
  39211. i2 = STACKTOP;
  39212. STACKTOP = STACKTOP + 16 | 0;
  39213. i3 = i2;
  39214. _luaL_checklstring(i1, 1, i3) | 0;
  39215. _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
  39216. STACKTOP = i2;
  39217. return 1;
  39218. }
  39219. function _luaL_optinteger(i3, i4, i2) {
  39220. i3 = i3 | 0;
  39221. i4 = i4 | 0;
  39222. i2 = i2 | 0;
  39223. var i1 = 0;
  39224. i1 = STACKTOP;
  39225. if ((_lua_type(i3, i4) | 0) >= 1) {
  39226. i2 = _luaL_checkinteger(i3, i4) | 0;
  39227. }
  39228. STACKTOP = i1;
  39229. return i2 | 0;
  39230. }
  39231. function _os_difftime(i1) {
  39232. i1 = i1 | 0;
  39233. var i2 = 0, i3 = 0;
  39234. i2 = STACKTOP;
  39235. i3 = ~~+_luaL_checknumber(i1, 1);
  39236. _lua_pushnumber(i1, +_difftime(i3 | 0, ~~+_luaL_optnumber(i1, 2, 0.0) | 0));
  39237. STACKTOP = i2;
  39238. return 1;
  39239. }
  39240. function _lua_pushboolean(i2, i1) {
  39241. i2 = i2 | 0;
  39242. i1 = i1 | 0;
  39243. var i3 = 0;
  39244. i2 = i2 + 8 | 0;
  39245. i3 = HEAP32[i2 >> 2] | 0;
  39246. HEAP32[i3 >> 2] = (i1 | 0) != 0;
  39247. HEAP32[i3 + 8 >> 2] = 1;
  39248. HEAP32[i2 >> 2] = i3 + 16;
  39249. return;
  39250. }
  39251. function _os_remove(i1) {
  39252. i1 = i1 | 0;
  39253. var i2 = 0, i3 = 0;
  39254. i2 = STACKTOP;
  39255. i3 = _luaL_checklstring(i1, 1, 0) | 0;
  39256. i1 = _luaL_fileresult(i1, (_remove(i3 | 0) | 0) == 0 | 0, i3) | 0;
  39257. STACKTOP = i2;
  39258. return i1 | 0;
  39259. }
  39260. function _luaopen_table(i1) {
  39261. i1 = i1 | 0;
  39262. var i2 = 0;
  39263. i2 = STACKTOP;
  39264. _lua_createtable(i1, 0, 7);
  39265. _luaL_setfuncs(i1, 8088, 0);
  39266. _lua_getfield(i1, -1, 8152);
  39267. _lua_setglobal(i1, 8152);
  39268. STACKTOP = i2;
  39269. return 1;
  39270. }
  39271. function _lua_pushinteger(i2, i1) {
  39272. i2 = i2 | 0;
  39273. i1 = i1 | 0;
  39274. var i3 = 0;
  39275. i2 = i2 + 8 | 0;
  39276. i3 = HEAP32[i2 >> 2] | 0;
  39277. HEAPF64[i3 >> 3] = +(i1 | 0);
  39278. HEAP32[i3 + 8 >> 2] = 3;
  39279. HEAP32[i2 >> 2] = i3 + 16;
  39280. return;
  39281. }
  39282. function _luaB_rawset(i1) {
  39283. i1 = i1 | 0;
  39284. var i2 = 0;
  39285. i2 = STACKTOP;
  39286. _luaL_checktype(i1, 1, 5);
  39287. _luaL_checkany(i1, 2);
  39288. _luaL_checkany(i1, 3);
  39289. _lua_settop(i1, 3);
  39290. _lua_rawset(i1, 1);
  39291. STACKTOP = i2;
  39292. return 1;
  39293. }
  39294. function _luaE_setdebt(i2, i1) {
  39295. i2 = i2 | 0;
  39296. i1 = i1 | 0;
  39297. var i3 = 0;
  39298. i3 = i2 + 12 | 0;
  39299. i2 = i2 + 8 | 0;
  39300. HEAP32[i2 >> 2] = (HEAP32[i3 >> 2] | 0) - i1 + (HEAP32[i2 >> 2] | 0);
  39301. HEAP32[i3 >> 2] = i1;
  39302. return;
  39303. }
  39304. function _luaB_cocreate(i1) {
  39305. i1 = i1 | 0;
  39306. var i2 = 0, i3 = 0;
  39307. i2 = STACKTOP;
  39308. _luaL_checktype(i1, 1, 6);
  39309. i3 = _lua_newthread(i1) | 0;
  39310. _lua_pushvalue(i1, 1);
  39311. _lua_xmove(i1, i3, 1);
  39312. STACKTOP = i2;
  39313. return 1;
  39314. }
  39315. function _io_noclose(i1) {
  39316. i1 = i1 | 0;
  39317. var i2 = 0;
  39318. i2 = STACKTOP;
  39319. HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] = 154;
  39320. _lua_pushnil(i1);
  39321. _lua_pushlstring(i1, 2840, 26) | 0;
  39322. STACKTOP = i2;
  39323. return 2;
  39324. }
  39325. function _io_fclose(i1) {
  39326. i1 = i1 | 0;
  39327. var i2 = 0;
  39328. i2 = STACKTOP;
  39329. i1 = _luaL_fileresult(i1, (_fclose(HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) >> 2] | 0) | 0) == 0 | 0, 0) | 0;
  39330. STACKTOP = i2;
  39331. return i1 | 0;
  39332. }
  39333. function _luaL_optnumber(i3, i4, d2) {
  39334. i3 = i3 | 0;
  39335. i4 = i4 | 0;
  39336. d2 = +d2;
  39337. var i1 = 0;
  39338. i1 = STACKTOP;
  39339. if ((_lua_type(i3, i4) | 0) >= 1) {
  39340. d2 = +_luaL_checknumber(i3, i4);
  39341. }
  39342. STACKTOP = i1;
  39343. return +d2;
  39344. }
  39345. function _math_atan2(i1) {
  39346. i1 = i1 | 0;
  39347. var i2 = 0, d3 = 0.0;
  39348. i2 = STACKTOP;
  39349. d3 = +_luaL_checknumber(i1, 1);
  39350. _lua_pushnumber(i1, +Math_atan2(+d3, +(+_luaL_checknumber(i1, 2))));
  39351. STACKTOP = i2;
  39352. return 1;
  39353. }
  39354. function _luaK_codeABx(i4, i2, i3, i1) {
  39355. i4 = i4 | 0;
  39356. i2 = i2 | 0;
  39357. i3 = i3 | 0;
  39358. i1 = i1 | 0;
  39359. var i5 = 0;
  39360. i5 = STACKTOP;
  39361. i4 = _luaK_code(i4, i3 << 6 | i2 | i1 << 14) | 0;
  39362. STACKTOP = i5;
  39363. return i4 | 0;
  39364. }
  39365. function _luaF_newCclosure(i2, i1) {
  39366. i2 = i2 | 0;
  39367. i1 = i1 | 0;
  39368. var i3 = 0;
  39369. i3 = STACKTOP;
  39370. i2 = _luaC_newobj(i2, 38, (i1 << 4) + 16 | 0, 0, 0) | 0;
  39371. HEAP8[i2 + 6 | 0] = i1;
  39372. STACKTOP = i3;
  39373. return i2 | 0;
  39374. }
  39375. function _math_pow(i1) {
  39376. i1 = i1 | 0;
  39377. var i2 = 0, d3 = 0.0;
  39378. i2 = STACKTOP;
  39379. d3 = +_luaL_checknumber(i1, 1);
  39380. _lua_pushnumber(i1, +Math_pow(+d3, +(+_luaL_checknumber(i1, 2))));
  39381. STACKTOP = i2;
  39382. return 1;
  39383. }
  39384. function _math_ldexp(i1) {
  39385. i1 = i1 | 0;
  39386. var i2 = 0, d3 = 0.0;
  39387. i2 = STACKTOP;
  39388. d3 = +_luaL_checknumber(i1, 1);
  39389. _lua_pushnumber(i1, +_ldexp(d3, _luaL_checkinteger(i1, 2) | 0));
  39390. STACKTOP = i2;
  39391. return 1;
  39392. }
  39393. function _luaF_newupval(i1) {
  39394. i1 = i1 | 0;
  39395. var i2 = 0;
  39396. i2 = STACKTOP;
  39397. i1 = _luaC_newobj(i1, 10, 32, 0, 0) | 0;
  39398. HEAP32[i1 + 8 >> 2] = i1 + 16;
  39399. HEAP32[i1 + 24 >> 2] = 0;
  39400. STACKTOP = i2;
  39401. return i1 | 0;
  39402. }
  39403. function _lua_pushnumber(i2, d1) {
  39404. i2 = i2 | 0;
  39405. d1 = +d1;
  39406. var i3 = 0;
  39407. i2 = i2 + 8 | 0;
  39408. i3 = HEAP32[i2 >> 2] | 0;
  39409. HEAPF64[i3 >> 3] = d1;
  39410. HEAP32[i3 + 8 >> 2] = 3;
  39411. HEAP32[i2 >> 2] = i3 + 16;
  39412. return;
  39413. }
  39414. function _math_fmod(i1) {
  39415. i1 = i1 | 0;
  39416. var i2 = 0, d3 = 0.0;
  39417. i2 = STACKTOP;
  39418. d3 = +_luaL_checknumber(i1, 1);
  39419. _lua_pushnumber(i1, +_fmod(+d3, +(+_luaL_checknumber(i1, 2))));
  39420. STACKTOP = i2;
  39421. return 1;
  39422. }
  39423. function _luaG_concaterror(i3, i2, i1) {
  39424. i3 = i3 | 0;
  39425. i2 = i2 | 0;
  39426. i1 = i1 | 0;
  39427. var i4 = 0;
  39428. i4 = HEAP32[i2 + 8 >> 2] | 0;
  39429. _luaG_typeerror(i3, (i4 & 15 | 0) == 4 | (i4 | 0) == 3 ? i1 : i2, 1912);
  39430. }
  39431. function _luaB_rawequal(i1) {
  39432. i1 = i1 | 0;
  39433. var i2 = 0;
  39434. i2 = STACKTOP;
  39435. _luaL_checkany(i1, 1);
  39436. _luaL_checkany(i1, 2);
  39437. _lua_pushboolean(i1, _lua_rawequal(i1, 1, 2) | 0);
  39438. STACKTOP = i2;
  39439. return 1;
  39440. }
  39441. function _db_getuservalue(i1) {
  39442. i1 = i1 | 0;
  39443. var i2 = 0;
  39444. i2 = STACKTOP;
  39445. if ((_lua_type(i1, 1) | 0) == 7) {
  39446. _lua_getuservalue(i1, 1);
  39447. } else {
  39448. _lua_pushnil(i1);
  39449. }
  39450. STACKTOP = i2;
  39451. return 1;
  39452. }
  39453. function _strchr(i2, i1) {
  39454. i2 = i2 | 0;
  39455. i1 = i1 | 0;
  39456. var i3 = 0;
  39457. i3 = STACKTOP;
  39458. i2 = ___strchrnul(i2, i1) | 0;
  39459. STACKTOP = i3;
  39460. return ((HEAP8[i2] | 0) == (i1 & 255) << 24 >> 24 ? i2 : 0) | 0;
  39461. }
  39462. function runPostSets() {}
  39463. function _rand_r(i1) {
  39464. i1 = i1 | 0;
  39465. var i2 = 0;
  39466. i2 = (Math_imul(HEAP32[i1 >> 2] | 0, 31010991) | 0) + 1735287159 & 2147483647;
  39467. HEAP32[i1 >> 2] = i2;
  39468. return i2 | 0;
  39469. }
  39470. function _luaL_checkany(i1, i3) {
  39471. i1 = i1 | 0;
  39472. i3 = i3 | 0;
  39473. var i2 = 0;
  39474. i2 = STACKTOP;
  39475. if ((_lua_type(i1, i3) | 0) == -1) {
  39476. _luaL_argerror(i1, i3, 1256) | 0;
  39477. }
  39478. STACKTOP = i2;
  39479. return;
  39480. }
  39481. function _i64Subtract(i2, i4, i1, i3) {
  39482. i2 = i2 | 0;
  39483. i4 = i4 | 0;
  39484. i1 = i1 | 0;
  39485. i3 = i3 | 0;
  39486. i4 = i4 - i3 - (i1 >>> 0 > i2 >>> 0 | 0) >>> 0;
  39487. return (tempRet0 = i4, i2 - i1 >>> 0 | 0) | 0;
  39488. }
  39489. function _db_getmetatable(i1) {
  39490. i1 = i1 | 0;
  39491. var i2 = 0;
  39492. i2 = STACKTOP;
  39493. _luaL_checkany(i1, 1);
  39494. if ((_lua_getmetatable(i1, 1) | 0) == 0) {
  39495. _lua_pushnil(i1);
  39496. }
  39497. STACKTOP = i2;
  39498. return 1;
  39499. }
  39500. function _luaB_rawget(i1) {
  39501. i1 = i1 | 0;
  39502. var i2 = 0;
  39503. i2 = STACKTOP;
  39504. _luaL_checktype(i1, 1, 5);
  39505. _luaL_checkany(i1, 2);
  39506. _lua_settop(i1, 2);
  39507. _lua_rawget(i1, 1);
  39508. STACKTOP = i2;
  39509. return 1;
  39510. }
  39511. function _luaB_type(i1) {
  39512. i1 = i1 | 0;
  39513. var i2 = 0;
  39514. i2 = STACKTOP;
  39515. _luaL_checkany(i1, 1);
  39516. _lua_pushstring(i1, _lua_typename(i1, _lua_type(i1, 1) | 0) | 0) | 0;
  39517. STACKTOP = i2;
  39518. return 1;
  39519. }
  39520. function dynCall_iiiii(i5, i4, i3, i2, i1) {
  39521. i5 = i5 | 0;
  39522. i4 = i4 | 0;
  39523. i3 = i3 | 0;
  39524. i2 = i2 | 0;
  39525. i1 = i1 | 0;
  39526. return FUNCTION_TABLE_iiiii[i5 & 3](i4 | 0, i3 | 0, i2 | 0, i1 | 0) | 0;
  39527. }
  39528. function _lstop(i1, i2) {
  39529. i1 = i1 | 0;
  39530. i2 = i2 | 0;
  39531. i2 = STACKTOP;
  39532. STACKTOP = STACKTOP + 16 | 0;
  39533. _lua_sethook(i1, 0, 0, 0) | 0;
  39534. _luaL_error(i1, 200, i2) | 0;
  39535. STACKTOP = i2;
  39536. return;
  39537. }
  39538. function _i64Add(i1, i3, i4, i2) {
  39539. i1 = i1 | 0;
  39540. i3 = i3 | 0;
  39541. i4 = i4 | 0;
  39542. i2 = i2 | 0;
  39543. i4 = i1 + i4 >>> 0;
  39544. return (tempRet0 = i3 + i2 + (i4 >>> 0 < i1 >>> 0 | 0) >>> 0, i4 | 0) | 0;
  39545. }
  39546. function _luaK_ret(i3, i2, i1) {
  39547. i3 = i3 | 0;
  39548. i2 = i2 | 0;
  39549. i1 = i1 | 0;
  39550. var i4 = 0;
  39551. i4 = STACKTOP;
  39552. _luaK_code(i3, i2 << 6 | (i1 << 23) + 8388608 | 31) | 0;
  39553. STACKTOP = i4;
  39554. return;
  39555. }
  39556. function _strpbrk(i2, i1) {
  39557. i2 = i2 | 0;
  39558. i1 = i1 | 0;
  39559. var i3 = 0;
  39560. i3 = STACKTOP;
  39561. i1 = i2 + (_strcspn(i2, i1) | 0) | 0;
  39562. STACKTOP = i3;
  39563. return ((HEAP8[i1] | 0) != 0 ? i1 : 0) | 0;
  39564. }
  39565. function _luaL_setmetatable(i1, i2) {
  39566. i1 = i1 | 0;
  39567. i2 = i2 | 0;
  39568. var i3 = 0;
  39569. i3 = STACKTOP;
  39570. _lua_getfield(i1, -1001e3, i2);
  39571. _lua_setmetatable(i1, -2) | 0;
  39572. STACKTOP = i3;
  39573. return;
  39574. }
  39575. function _lua_atpanic(i2, i1) {
  39576. i2 = i2 | 0;
  39577. i1 = i1 | 0;
  39578. var i3 = 0;
  39579. i3 = (HEAP32[i2 + 12 >> 2] | 0) + 168 | 0;
  39580. i2 = HEAP32[i3 >> 2] | 0;
  39581. HEAP32[i3 >> 2] = i1;
  39582. return i2 | 0;
  39583. }
  39584. function _luaL_newstate() {
  39585. var i1 = 0, i2 = 0;
  39586. i2 = STACKTOP;
  39587. i1 = _lua_newstate(1, 0) | 0;
  39588. if ((i1 | 0) != 0) {
  39589. _lua_atpanic(i1, 143) | 0;
  39590. }
  39591. STACKTOP = i2;
  39592. return i1 | 0;
  39593. }
  39594. function _luaL_buffinit(i2, i1) {
  39595. i2 = i2 | 0;
  39596. i1 = i1 | 0;
  39597. HEAP32[i1 + 12 >> 2] = i2;
  39598. HEAP32[i1 >> 2] = i1 + 16;
  39599. HEAP32[i1 + 8 >> 2] = 0;
  39600. HEAP32[i1 + 4 >> 2] = 1024;
  39601. return;
  39602. }
  39603. function _strrchr(i1, i2) {
  39604. i1 = i1 | 0;
  39605. i2 = i2 | 0;
  39606. var i3 = 0;
  39607. i3 = STACKTOP;
  39608. i2 = ___memrchr(i1, i2, (_strlen(i1 | 0) | 0) + 1 | 0) | 0;
  39609. STACKTOP = i3;
  39610. return i2 | 0;
  39611. }
  39612. function _luaK_fixline(i1, i2) {
  39613. i1 = i1 | 0;
  39614. i2 = i2 | 0;
  39615. HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i1 + 20 >> 2] | 0) + -1 << 2) >> 2] = i2;
  39616. return;
  39617. }
  39618. function _luaX_lookahead(i1) {
  39619. i1 = i1 | 0;
  39620. var i2 = 0, i3 = 0;
  39621. i3 = STACKTOP;
  39622. i2 = _llex(i1, i1 + 40 | 0) | 0;
  39623. HEAP32[i1 + 32 >> 2] = i2;
  39624. STACKTOP = i3;
  39625. return i2 | 0;
  39626. }
  39627. function _f_call(i2, i1) {
  39628. i2 = i2 | 0;
  39629. i1 = i1 | 0;
  39630. var i3 = 0;
  39631. i3 = STACKTOP;
  39632. _luaD_call(i2, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 4 >> 2] | 0, 0);
  39633. STACKTOP = i3;
  39634. return;
  39635. }
  39636. function _io_pclose(i1) {
  39637. i1 = i1 | 0;
  39638. var i2 = 0;
  39639. i2 = STACKTOP;
  39640. _luaL_checkudata(i1, 1, 2832) | 0;
  39641. i1 = _luaL_execresult(i1, -1) | 0;
  39642. STACKTOP = i2;
  39643. return i1 | 0;
  39644. }
  39645. function _luaS_new(i2, i1) {
  39646. i2 = i2 | 0;
  39647. i1 = i1 | 0;
  39648. var i3 = 0;
  39649. i3 = STACKTOP;
  39650. i2 = _luaS_newlstr(i2, i1, _strlen(i1 | 0) | 0) | 0;
  39651. STACKTOP = i3;
  39652. return i2 | 0;
  39653. }
  39654. function _os_getenv(i1) {
  39655. i1 = i1 | 0;
  39656. var i2 = 0;
  39657. i2 = STACKTOP;
  39658. _lua_pushstring(i1, _getenv(_luaL_checklstring(i1, 1, 0) | 0) | 0) | 0;
  39659. STACKTOP = i2;
  39660. return 1;
  39661. }
  39662. function _math_rad(i1) {
  39663. i1 = i1 | 0;
  39664. var i2 = 0;
  39665. i2 = STACKTOP;
  39666. _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) * .017453292519943295);
  39667. STACKTOP = i2;
  39668. return 1;
  39669. }
  39670. function _math_deg(i1) {
  39671. i1 = i1 | 0;
  39672. var i2 = 0;
  39673. i2 = STACKTOP;
  39674. _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) / .017453292519943295);
  39675. STACKTOP = i2;
  39676. return 1;
  39677. }
  39678. function _writer(i4, i2, i1, i3) {
  39679. i4 = i4 | 0;
  39680. i2 = i2 | 0;
  39681. i1 = i1 | 0;
  39682. i3 = i3 | 0;
  39683. i4 = STACKTOP;
  39684. _luaL_addlstring(i3, i2, i1);
  39685. STACKTOP = i4;
  39686. return 0;
  39687. }
  39688. function _luaL_addstring(i2, i1) {
  39689. i2 = i2 | 0;
  39690. i1 = i1 | 0;
  39691. var i3 = 0;
  39692. i3 = STACKTOP;
  39693. _luaL_addlstring(i2, i1, _strlen(i1 | 0) | 0);
  39694. STACKTOP = i3;
  39695. return;
  39696. }
  39697. function _pcallcont(i1) {
  39698. i1 = i1 | 0;
  39699. var i2 = 0;
  39700. i2 = STACKTOP;
  39701. i1 = _finishpcall(i1, (_lua_getctx(i1, 0) | 0) == 1 | 0) | 0;
  39702. STACKTOP = i2;
  39703. return i1 | 0;
  39704. }
  39705. function _luaopen_coroutine(i1) {
  39706. i1 = i1 | 0;
  39707. var i2 = 0;
  39708. i2 = STACKTOP;
  39709. _lua_createtable(i1, 0, 6);
  39710. _luaL_setfuncs(i1, 10656, 0);
  39711. STACKTOP = i2;
  39712. return 1;
  39713. }
  39714. function _lua_version(i1) {
  39715. i1 = i1 | 0;
  39716. if ((i1 | 0) == 0) {
  39717. i1 = 920;
  39718. } else {
  39719. i1 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 176 >> 2] | 0;
  39720. }
  39721. return i1 | 0;
  39722. }
  39723. function _lua_pushnil(i1) {
  39724. i1 = i1 | 0;
  39725. var i2 = 0;
  39726. i1 = i1 + 8 | 0;
  39727. i2 = HEAP32[i1 >> 2] | 0;
  39728. HEAP32[i2 + 8 >> 2] = 0;
  39729. HEAP32[i1 >> 2] = i2 + 16;
  39730. return;
  39731. }
  39732. function _math_floor(i1) {
  39733. i1 = i1 | 0;
  39734. var i2 = 0;
  39735. i2 = STACKTOP;
  39736. _lua_pushnumber(i1, +Math_floor(+(+_luaL_checknumber(i1, 1))));
  39737. STACKTOP = i2;
  39738. return 1;
  39739. }
  39740. function _laction(i1) {
  39741. i1 = i1 | 0;
  39742. var i2 = 0;
  39743. i2 = STACKTOP;
  39744. _signal(i1 | 0, 0) | 0;
  39745. _lua_sethook(HEAP32[48] | 0, 1, 11, 1) | 0;
  39746. STACKTOP = i2;
  39747. return;
  39748. }
  39749. function dynCall_iiii(i4, i3, i2, i1) {
  39750. i4 = i4 | 0;
  39751. i3 = i3 | 0;
  39752. i2 = i2 | 0;
  39753. i1 = i1 | 0;
  39754. return FUNCTION_TABLE_iiii[i4 & 3](i3 | 0, i2 | 0, i1 | 0) | 0;
  39755. }
  39756. function _luaopen_debug(i1) {
  39757. i1 = i1 | 0;
  39758. var i2 = 0;
  39759. i2 = STACKTOP;
  39760. _lua_createtable(i1, 0, 16);
  39761. _luaL_setfuncs(i1, 11176, 0);
  39762. STACKTOP = i2;
  39763. return 1;
  39764. }
  39765. function _luaopen_bit32(i1) {
  39766. i1 = i1 | 0;
  39767. var i2 = 0;
  39768. i2 = STACKTOP;
  39769. _lua_createtable(i1, 0, 12);
  39770. _luaL_setfuncs(i1, 10240, 0);
  39771. STACKTOP = i2;
  39772. return 1;
  39773. }
  39774. function _math_sqrt(i1) {
  39775. i1 = i1 | 0;
  39776. var i2 = 0;
  39777. i2 = STACKTOP;
  39778. _lua_pushnumber(i1, +Math_sqrt(+(+_luaL_checknumber(i1, 1))));
  39779. STACKTOP = i2;
  39780. return 1;
  39781. }
  39782. function _math_ceil(i1) {
  39783. i1 = i1 | 0;
  39784. var i2 = 0;
  39785. i2 = STACKTOP;
  39786. _lua_pushnumber(i1, +Math_ceil(+(+_luaL_checknumber(i1, 1))));
  39787. STACKTOP = i2;
  39788. return 1;
  39789. }
  39790. function _math_atan(i1) {
  39791. i1 = i1 | 0;
  39792. var i2 = 0;
  39793. i2 = STACKTOP;
  39794. _lua_pushnumber(i1, +Math_atan(+(+_luaL_checknumber(i1, 1))));
  39795. STACKTOP = i2;
  39796. return 1;
  39797. }
  39798. function _math_asin(i1) {
  39799. i1 = i1 | 0;
  39800. var i2 = 0;
  39801. i2 = STACKTOP;
  39802. _lua_pushnumber(i1, +Math_asin(+(+_luaL_checknumber(i1, 1))));
  39803. STACKTOP = i2;
  39804. return 1;
  39805. }
  39806. function _math_acos(i1) {
  39807. i1 = i1 | 0;
  39808. var i2 = 0;
  39809. i2 = STACKTOP;
  39810. _lua_pushnumber(i1, +Math_acos(+(+_luaL_checknumber(i1, 1))));
  39811. STACKTOP = i2;
  39812. return 1;
  39813. }
  39814. function _lua_close(i1) {
  39815. i1 = i1 | 0;
  39816. var i2 = 0;
  39817. i2 = STACKTOP;
  39818. _close_state(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0);
  39819. STACKTOP = i2;
  39820. return;
  39821. }
  39822. function _dothecall(i1, i2) {
  39823. i1 = i1 | 0;
  39824. i2 = i2 | 0;
  39825. i2 = STACKTOP;
  39826. _luaD_call(i1, (HEAP32[i1 + 8 >> 2] | 0) + -32 | 0, 0, 0);
  39827. STACKTOP = i2;
  39828. return;
  39829. }
  39830. function _math_tan(i1) {
  39831. i1 = i1 | 0;
  39832. var i2 = 0;
  39833. i2 = STACKTOP;
  39834. _lua_pushnumber(i1, +Math_tan(+(+_luaL_checknumber(i1, 1))));
  39835. STACKTOP = i2;
  39836. return 1;
  39837. }
  39838. function _math_sin(i1) {
  39839. i1 = i1 | 0;
  39840. var i2 = 0;
  39841. i2 = STACKTOP;
  39842. _lua_pushnumber(i1, +Math_sin(+(+_luaL_checknumber(i1, 1))));
  39843. STACKTOP = i2;
  39844. return 1;
  39845. }
  39846. function _math_log10(i1) {
  39847. i1 = i1 | 0;
  39848. var i2 = 0;
  39849. i2 = STACKTOP;
  39850. _lua_pushnumber(i1, +_log10(+(+_luaL_checknumber(i1, 1))));
  39851. STACKTOP = i2;
  39852. return 1;
  39853. }
  39854. function _math_exp(i1) {
  39855. i1 = i1 | 0;
  39856. var i2 = 0;
  39857. i2 = STACKTOP;
  39858. _lua_pushnumber(i1, +Math_exp(+(+_luaL_checknumber(i1, 1))));
  39859. STACKTOP = i2;
  39860. return 1;
  39861. }
  39862. function _math_cos(i1) {
  39863. i1 = i1 | 0;
  39864. var i2 = 0;
  39865. i2 = STACKTOP;
  39866. _lua_pushnumber(i1, +Math_cos(+(+_luaL_checknumber(i1, 1))));
  39867. STACKTOP = i2;
  39868. return 1;
  39869. }
  39870. function _math_abs(i1) {
  39871. i1 = i1 | 0;
  39872. var i2 = 0;
  39873. i2 = STACKTOP;
  39874. _lua_pushnumber(i1, +Math_abs(+(+_luaL_checknumber(i1, 1))));
  39875. STACKTOP = i2;
  39876. return 1;
  39877. }
  39878. function _math_randomseed(i1) {
  39879. i1 = i1 | 0;
  39880. var i2 = 0;
  39881. i2 = STACKTOP;
  39882. _srand(_luaL_checkunsigned(i1, 1) | 0);
  39883. _rand() | 0;
  39884. STACKTOP = i2;
  39885. return 0;
  39886. }
  39887. function _luaopen_os(i1) {
  39888. i1 = i1 | 0;
  39889. var i2 = 0;
  39890. i2 = STACKTOP;
  39891. _lua_createtable(i1, 0, 11);
  39892. _luaL_setfuncs(i1, 5624, 0);
  39893. STACKTOP = i2;
  39894. return 1;
  39895. }
  39896. function _math_tanh(i1) {
  39897. i1 = i1 | 0;
  39898. var i2 = 0;
  39899. i2 = STACKTOP;
  39900. _lua_pushnumber(i1, +_tanh(+(+_luaL_checknumber(i1, 1))));
  39901. STACKTOP = i2;
  39902. return 1;
  39903. }
  39904. function _math_sinh(i1) {
  39905. i1 = i1 | 0;
  39906. var i2 = 0;
  39907. i2 = STACKTOP;
  39908. _lua_pushnumber(i1, +_sinh(+(+_luaL_checknumber(i1, 1))));
  39909. STACKTOP = i2;
  39910. return 1;
  39911. }
  39912. function _math_cosh(i1) {
  39913. i1 = i1 | 0;
  39914. var i2 = 0;
  39915. i2 = STACKTOP;
  39916. _lua_pushnumber(i1, +_cosh(+(+_luaL_checknumber(i1, 1))));
  39917. STACKTOP = i2;
  39918. return 1;
  39919. }
  39920. function _luaB_yield(i1) {
  39921. i1 = i1 | 0;
  39922. var i2 = 0;
  39923. i2 = STACKTOP;
  39924. i1 = _lua_yieldk(i1, _lua_gettop(i1) | 0, 0, 0) | 0;
  39925. STACKTOP = i2;
  39926. return i1 | 0;
  39927. }
  39928. function _luaB_tostring(i1) {
  39929. i1 = i1 | 0;
  39930. var i2 = 0;
  39931. i2 = STACKTOP;
  39932. _luaL_checkany(i1, 1);
  39933. _luaL_tolstring(i1, 1, 0) | 0;
  39934. STACKTOP = i2;
  39935. return 1;
  39936. }
  39937. function _growstack(i2, i1) {
  39938. i2 = i2 | 0;
  39939. i1 = i1 | 0;
  39940. var i3 = 0;
  39941. i3 = STACKTOP;
  39942. _luaD_growstack(i2, HEAP32[i1 >> 2] | 0);
  39943. STACKTOP = i3;
  39944. return;
  39945. }
  39946. function ___udivdi3(i4, i3, i2, i1) {
  39947. i4 = i4 | 0;
  39948. i3 = i3 | 0;
  39949. i2 = i2 | 0;
  39950. i1 = i1 | 0;
  39951. i4 = ___udivmoddi4(i4, i3, i2, i1, 0) | 0;
  39952. return i4 | 0;
  39953. }
  39954. function _b_not(i1) {
  39955. i1 = i1 | 0;
  39956. var i2 = 0;
  39957. i2 = STACKTOP;
  39958. _lua_pushunsigned(i1, ~(_luaL_checkunsigned(i1, 1) | 0));
  39959. STACKTOP = i2;
  39960. return 1;
  39961. }
  39962. function _luaO_fb2int(i1) {
  39963. i1 = i1 | 0;
  39964. var i2 = 0;
  39965. i2 = i1 >>> 3 & 31;
  39966. if ((i2 | 0) != 0) {
  39967. i1 = (i1 & 7 | 8) << i2 + -1;
  39968. }
  39969. return i1 | 0;
  39970. }
  39971. function _luaB_corunning(i1) {
  39972. i1 = i1 | 0;
  39973. var i2 = 0;
  39974. i2 = STACKTOP;
  39975. _lua_pushboolean(i1, _lua_pushthread(i1) | 0);
  39976. STACKTOP = i2;
  39977. return 2;
  39978. }
  39979. function stackAlloc(i1) {
  39980. i1 = i1 | 0;
  39981. var i2 = 0;
  39982. i2 = STACKTOP;
  39983. STACKTOP = STACKTOP + i1 | 0;
  39984. STACKTOP = STACKTOP + 7 & -8;
  39985. return i2 | 0;
  39986. }
  39987. function _strcoll(i2, i1) {
  39988. i2 = i2 | 0;
  39989. i1 = i1 | 0;
  39990. var i3 = 0;
  39991. i3 = STACKTOP;
  39992. i2 = _strcmp(i2, i1) | 0;
  39993. STACKTOP = i3;
  39994. return i2 | 0;
  39995. }
  39996. function _os_clock(i1) {
  39997. i1 = i1 | 0;
  39998. var i2 = 0;
  39999. i2 = STACKTOP;
  40000. _lua_pushnumber(i1, +(_clock() | 0) / 1.0e6);
  40001. STACKTOP = i2;
  40002. return 1;
  40003. }
  40004. function _dofilecont(i1) {
  40005. i1 = i1 | 0;
  40006. var i2 = 0;
  40007. i2 = STACKTOP;
  40008. i1 = (_lua_gettop(i1) | 0) + -1 | 0;
  40009. STACKTOP = i2;
  40010. return i1 | 0;
  40011. }
  40012. function _scalbnl(d2, i1) {
  40013. d2 = +d2;
  40014. i1 = i1 | 0;
  40015. var i3 = 0;
  40016. i3 = STACKTOP;
  40017. d2 = +_scalbn(d2, i1);
  40018. STACKTOP = i3;
  40019. return +d2;
  40020. }
  40021. function _tolower(i1) {
  40022. i1 = i1 | 0;
  40023. if ((i1 | 0) < 65) return i1 | 0;
  40024. if ((i1 | 0) > 90) return i1 | 0;
  40025. return i1 - 65 + 97 | 0;
  40026. }
  40027. function _lua_gettop(i1) {
  40028. i1 = i1 | 0;
  40029. return (HEAP32[i1 + 8 >> 2] | 0) - ((HEAP32[HEAP32[i1 + 16 >> 2] >> 2] | 0) + 16) >> 4 | 0;
  40030. }
  40031. function dynCall_iii(i3, i2, i1) {
  40032. i3 = i3 | 0;
  40033. i2 = i2 | 0;
  40034. i1 = i1 | 0;
  40035. return FUNCTION_TABLE_iii[i3 & 1](i2 | 0, i1 | 0) | 0;
  40036. }
  40037. function _str_match(i1) {
  40038. i1 = i1 | 0;
  40039. var i2 = 0;
  40040. i2 = STACKTOP;
  40041. i1 = _str_find_aux(i1, 0) | 0;
  40042. STACKTOP = i2;
  40043. return i1 | 0;
  40044. }
  40045. function _luaM_toobig(i1) {
  40046. i1 = i1 | 0;
  40047. var i2 = 0;
  40048. i2 = STACKTOP;
  40049. STACKTOP = STACKTOP + 16 | 0;
  40050. _luaG_runerror(i1, 4144, i2);
  40051. }
  40052. function _luaK_getlabel(i1) {
  40053. i1 = i1 | 0;
  40054. var i2 = 0;
  40055. i2 = HEAP32[i1 + 20 >> 2] | 0;
  40056. HEAP32[i1 + 24 >> 2] = i2;
  40057. return i2 | 0;
  40058. }
  40059. function _ldexp(d2, i1) {
  40060. d2 = +d2;
  40061. i1 = i1 | 0;
  40062. var i3 = 0;
  40063. i3 = STACKTOP;
  40064. d2 = +_scalbn(d2, i1);
  40065. STACKTOP = i3;
  40066. return +d2;
  40067. }
  40068. function _str_find(i1) {
  40069. i1 = i1 | 0;
  40070. var i2 = 0;
  40071. i2 = STACKTOP;
  40072. i1 = _str_find_aux(i1, 1) | 0;
  40073. STACKTOP = i2;
  40074. return i1 | 0;
  40075. }
  40076. function _db_getregistry(i1) {
  40077. i1 = i1 | 0;
  40078. var i2 = 0;
  40079. i2 = STACKTOP;
  40080. _lua_pushvalue(i1, -1001e3);
  40081. STACKTOP = i2;
  40082. return 1;
  40083. }
  40084. function _luaB_ipairs(i1) {
  40085. i1 = i1 | 0;
  40086. var i2 = 0;
  40087. i2 = STACKTOP;
  40088. _pairsmeta(i1, 9960, 1, 165);
  40089. STACKTOP = i2;
  40090. return 3;
  40091. }
  40092. function _strlen(i1) {
  40093. i1 = i1 | 0;
  40094. var i2 = 0;
  40095. i2 = i1;
  40096. while (HEAP8[i2] | 0) {
  40097. i2 = i2 + 1 | 0;
  40098. }
  40099. return i2 - i1 | 0;
  40100. }
  40101. function _luaB_pairs(i1) {
  40102. i1 = i1 | 0;
  40103. var i2 = 0;
  40104. i2 = STACKTOP;
  40105. _pairsmeta(i1, 9864, 0, 93);
  40106. STACKTOP = i2;
  40107. return 3;
  40108. }
  40109. function setThrew(i1, i2) {
  40110. i1 = i1 | 0;
  40111. i2 = i2 | 0;
  40112. if ((__THREW__ | 0) == 0) {
  40113. __THREW__ = i1;
  40114. threwValue = i2;
  40115. }
  40116. }
  40117. function _io_output(i1) {
  40118. i1 = i1 | 0;
  40119. var i2 = 0;
  40120. i2 = STACKTOP;
  40121. _g_iofile(i1, 2800, 3512);
  40122. STACKTOP = i2;
  40123. return 1;
  40124. }
  40125. function dynCall_vii(i3, i2, i1) {
  40126. i3 = i3 | 0;
  40127. i2 = i2 | 0;
  40128. i1 = i1 | 0;
  40129. FUNCTION_TABLE_vii[i3 & 15](i2 | 0, i1 | 0);
  40130. }
  40131. function _io_input(i1) {
  40132. i1 = i1 | 0;
  40133. var i2 = 0;
  40134. i2 = STACKTOP;
  40135. _g_iofile(i1, 2776, 3480);
  40136. STACKTOP = i2;
  40137. return 1;
  40138. }
  40139. function _semerror(i2, i1) {
  40140. i2 = i2 | 0;
  40141. i1 = i1 | 0;
  40142. HEAP32[i2 + 16 >> 2] = 0;
  40143. _luaX_syntaxerror(i2, i1);
  40144. }
  40145. function _luaX_syntaxerror(i1, i2) {
  40146. i1 = i1 | 0;
  40147. i2 = i2 | 0;
  40148. _lexerror(i1, i2, HEAP32[i1 + 16 >> 2] | 0);
  40149. }
  40150. function b4(i1, i2, i3, i4) {
  40151. i1 = i1 | 0;
  40152. i2 = i2 | 0;
  40153. i3 = i3 | 0;
  40154. i4 = i4 | 0;
  40155. abort(4);
  40156. return 0;
  40157. }
  40158. function _lua_typename(i2, i1) {
  40159. i2 = i2 | 0;
  40160. i1 = i1 | 0;
  40161. return HEAP32[8528 + (i1 + 1 << 2) >> 2] | 0;
  40162. }
  40163. function dynCall_ii(i2, i1) {
  40164. i2 = i2 | 0;
  40165. i1 = i1 | 0;
  40166. return FUNCTION_TABLE_ii[i2 & 255](i1 | 0) | 0;
  40167. }
  40168. function dynCall_vi(i2, i1) {
  40169. i2 = i2 | 0;
  40170. i1 = i1 | 0;
  40171. FUNCTION_TABLE_vi[i2 & 1](i1 | 0);
  40172. }
  40173. function b0(i1, i2, i3) {
  40174. i1 = i1 | 0;
  40175. i2 = i2 | 0;
  40176. i3 = i3 | 0;
  40177. abort(0);
  40178. return 0;
  40179. }
  40180. function _lua_gethookmask(i1) {
  40181. i1 = i1 | 0;
  40182. return HEAPU8[i1 + 40 | 0] | 0 | 0;
  40183. }
  40184. function _lua_gethookcount(i1) {
  40185. i1 = i1 | 0;
  40186. return HEAP32[i1 + 44 >> 2] | 0;
  40187. }
  40188. function _lua_status(i1) {
  40189. i1 = i1 | 0;
  40190. return HEAPU8[i1 + 6 | 0] | 0 | 0;
  40191. }
  40192. function _lua_gethook(i1) {
  40193. i1 = i1 | 0;
  40194. return HEAP32[i1 + 52 >> 2] | 0;
  40195. }
  40196. function b5(i1, i2) {
  40197. i1 = i1 | 0;
  40198. i2 = i2 | 0;
  40199. abort(5);
  40200. return 0;
  40201. }
  40202. function _lua_error(i1) {
  40203. i1 = i1 | 0;
  40204. _luaG_errormsg(i1);
  40205. return 0;
  40206. }
  40207. function b2(i1, i2) {
  40208. i1 = i1 | 0;
  40209. i2 = i2 | 0;
  40210. abort(2);
  40211. }
  40212. function stackRestore(i1) {
  40213. i1 = i1 | 0;
  40214. STACKTOP = i1;
  40215. }
  40216. function setTempRet9(i1) {
  40217. i1 = i1 | 0;
  40218. tempRet9 = i1;
  40219. }
  40220. function setTempRet8(i1) {
  40221. i1 = i1 | 0;
  40222. tempRet8 = i1;
  40223. }
  40224. function setTempRet7(i1) {
  40225. i1 = i1 | 0;
  40226. tempRet7 = i1;
  40227. }
  40228. function setTempRet6(i1) {
  40229. i1 = i1 | 0;
  40230. tempRet6 = i1;
  40231. }
  40232. function setTempRet5(i1) {
  40233. i1 = i1 | 0;
  40234. tempRet5 = i1;
  40235. }
  40236. function setTempRet4(i1) {
  40237. i1 = i1 | 0;
  40238. tempRet4 = i1;
  40239. }
  40240. function setTempRet3(i1) {
  40241. i1 = i1 | 0;
  40242. tempRet3 = i1;
  40243. }
  40244. function setTempRet2(i1) {
  40245. i1 = i1 | 0;
  40246. tempRet2 = i1;
  40247. }
  40248. function setTempRet1(i1) {
  40249. i1 = i1 | 0;
  40250. tempRet1 = i1;
  40251. }
  40252. function setTempRet0(i1) {
  40253. i1 = i1 | 0;
  40254. tempRet0 = i1;
  40255. }
  40256. function b3(i1) {
  40257. i1 = i1 | 0;
  40258. abort(3);
  40259. return 0;
  40260. }
  40261. function _rand() {
  40262. return _rand_r(___rand_seed) | 0;
  40263. }
  40264. function stackSave() {
  40265. return STACKTOP | 0;
  40266. }
  40267. function b1(i1) {
  40268. i1 = i1 | 0;
  40269. abort(1);
  40270. }
  40271. // EMSCRIPTEN_END_FUNCS
  40272. var FUNCTION_TABLE_iiii = [b0,_getF,_getS,_generic_reader];
  40273. var FUNCTION_TABLE_vi = [b1,_laction];
  40274. var FUNCTION_TABLE_vii = [b2,_lstop,_growstack,_f_call,_resume,_unroll,_f_parser,_dothecall,_f_luaopen,_hookf,b2,b2,b2,b2,b2,b2];
  40275. var FUNCTION_TABLE_ii = [b3,_io_close,_io_flush,_io_input,_io_lines,_io_open,_io_output,_io_popen,_io_read,_io_tmpfile,_io_type,_io_write,_f_flush,_f_lines,_f_read,_f_seek,_f_setvbuf,_f_write,_f_gc,_f_tostring,_math_abs,_math_acos,_math_asin,_math_atan2,_math_atan,_math_ceil,_math_cosh,_math_cos,_math_deg
  40276. ,_math_exp,_math_floor,_math_fmod,_math_frexp,_math_ldexp,_math_log10,_math_log,_math_max,_math_min,_math_modf,_math_pow,_math_rad,_math_random,_math_randomseed,_math_sinh,_math_sin,_math_sqrt,_math_tanh,_math_tan,_ll_loadlib,_ll_searchpath,_ll_seeall,_ll_module,_ll_require,_os_clock,_os_date,_os_difftime,_os_execute,_os_exit,_os_getenv
  40277. ,_os_remove,_os_rename,_os_setlocale,_os_time,_os_tmpname,_str_byte,_str_char,_str_dump,_str_find,_str_format,_gmatch,_str_gsub,_str_len,_str_lower,_str_match,_str_rep,_str_reverse,_str_sub,_str_upper,_tconcat,_maxn,_tinsert,_pack,_unpack,_tremove,_sort,_luaB_assert,_luaB_collectgarbage,_luaB_dofile,_luaB_error
  40278. ,_luaB_getmetatable,_luaB_ipairs,_luaB_loadfile,_luaB_load,_luaB_next,_luaB_pairs,_luaB_pcall,_luaB_print,_luaB_rawequal,_luaB_rawlen,_luaB_rawget,_luaB_rawset,_luaB_select,_luaB_setmetatable,_luaB_tonumber,_luaB_tostring,_luaB_type,_luaB_xpcall,_b_arshift,_b_and,_b_not,_b_or,_b_xor,_b_test,_b_extract,_b_lrot,_b_lshift,_b_replace,_b_rrot,_b_rshift
  40279. ,_luaB_cocreate,_luaB_coresume,_luaB_corunning,_luaB_costatus,_luaB_cowrap,_luaB_yield,_db_debug,_db_getuservalue,_db_gethook,_db_getinfo,_db_getlocal,_db_getregistry,_db_getmetatable,_db_getupvalue,_db_upvaluejoin,_db_upvalueid,_db_setuservalue,_db_sethook,_db_setlocal,_db_setmetatable,_db_setupvalue,_db_traceback,_pmain,_traceback,_panic,_luaopen_base,_luaopen_package,_luaopen_coroutine,_luaopen_table,_luaopen_io
  40280. ,_luaopen_os,_luaopen_string,_luaopen_bit32,_luaopen_math,_luaopen_debug,_io_noclose,_io_readline,_io_fclose,_io_pclose,_gctm,_searcher_preload,_searcher_Lua,_searcher_C,_searcher_Croot,_gmatch_aux,_dofilecont,_ipairsaux,_pcallcont,_luaB_auxwrap,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
  40281. ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
  40282. ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
  40283. ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3];
  40284. var FUNCTION_TABLE_iiiii = [b4,_l_alloc,_writer,b4];
  40285. var FUNCTION_TABLE_iii = [b5,_lua_newstate];
  40286. return { _testSetjmp: _testSetjmp, _i64Subtract: _i64Subtract, _free: _free, _main: _main, _rand_r: _rand_r, _realloc: _realloc, _i64Add: _i64Add, _tolower: _tolower, _saveSetjmp: _saveSetjmp, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _rand: _rand, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_iiiii: dynCall_iiiii, dynCall_iii: dynCall_iii };
  40287. })
  40288. // EMSCRIPTEN_END_ASM
  40289. ({ "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array }, { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_iiiii": invoke_iiiii, "invoke_iii": invoke_iii, "_isalnum": _isalnum, "_fabs": _fabs, "_frexp": _frexp, "_exp": _exp, "_fread": _fread, "__reallyNegative": __reallyNegative, "_longjmp": _longjmp, "__addDays": __addDays, "_fsync": _fsync, "_signal": _signal, "_rename": _rename, "_sbrk": _sbrk, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_sinh": _sinh, "_sysconf": _sysconf, "_close": _close, "_ferror": _ferror, "_clock": _clock, "_cos": _cos, "_tanh": _tanh, "_unlink": _unlink, "_write": _write, "__isLeapYear": __isLeapYear, "_ftell": _ftell, "_isupper": _isupper, "_gmtime_r": _gmtime_r, "_islower": _islower, "_tmpnam": _tmpnam, "_tmpfile": _tmpfile, "_send": _send, "_abort": _abort, "_setvbuf": _setvbuf, "_atan2": _atan2, "_setlocale": _setlocale, "_isgraph": _isgraph, "_modf": _modf, "_strerror_r": _strerror_r, "_fscanf": _fscanf, "___setErrNo": ___setErrNo, "_isalpha": _isalpha, "_srand": _srand, "_mktime": _mktime, "_putchar": _putchar, "_gmtime": _gmtime, "_localeconv": _localeconv, "_sprintf": _sprintf, "_localtime": _localtime, "_read": _read, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_exit": _exit, "_freopen": _freopen, "_llvm_pow_f64": _llvm_pow_f64, "_fgetc": _fgetc, "_fmod": _fmod, "_lseek": _lseek, "_rmdir": _rmdir, "_asin": _asin, "_floor": _floor, "_pwrite": _pwrite, "_localtime_r": _localtime_r, "_tzset": _tzset, "_open": _open, "_remove": _remove, "_snprintf": _snprintf, "__scanString": __scanString, "_strftime": _strftime, "_fseek": _fseek, "_iscntrl": _iscntrl, "_isxdigit": _isxdigit, "_fclose": _fclose, "_log": _log, "_recv": _recv, "_tan": _tan, "_copysign": _copysign, "__getFloat": __getFloat, "_fputc": _fputc, "_ispunct": _ispunct, "_ceil": _ceil, "_isspace": _isspace, "_fopen": _fopen, "_sin": _sin, "_acos": _acos, "_cosh": _cosh, "___buildEnvironment": ___buildEnvironment, "_difftime": _difftime, "_ungetc": _ungetc, "_system": _system, "_fflush": _fflush, "_log10": _log10, "_fileno": _fileno, "__exit": __exit, "__arraySum": __arraySum, "_fgets": _fgets, "_atan": _atan, "_pread": _pread, "_mkport": _mkport, "_toupper": _toupper, "_feof": _feof, "___errno_location": ___errno_location, "_clearerr": _clearerr, "_getenv": _getenv, "_strerror": _strerror, "_emscripten_longjmp": _emscripten_longjmp, "__formatString": __formatString, "_fputs": _fputs, "_sqrt": _sqrt, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "___rand_seed": ___rand_seed, "NaN": NaN, "Infinity": Infinity, "_stderr": _stderr, "_stdin": _stdin, "_stdout": _stdout }, buffer);
  40290. var _testSetjmp = Module["_testSetjmp"] = asm["_testSetjmp"];
  40291. var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
  40292. var _free = Module["_free"] = asm["_free"];
  40293. var _main = Module["_main"] = asm["_main"];
  40294. var _rand_r = Module["_rand_r"] = asm["_rand_r"];
  40295. var _realloc = Module["_realloc"] = asm["_realloc"];
  40296. var _i64Add = Module["_i64Add"] = asm["_i64Add"];
  40297. var _tolower = Module["_tolower"] = asm["_tolower"];
  40298. var _saveSetjmp = Module["_saveSetjmp"] = asm["_saveSetjmp"];
  40299. var _memset = Module["_memset"] = asm["_memset"];
  40300. var _malloc = Module["_malloc"] = asm["_malloc"];
  40301. var _memcpy = Module["_memcpy"] = asm["_memcpy"];
  40302. var _strlen = Module["_strlen"] = asm["_strlen"];
  40303. var _rand = Module["_rand"] = asm["_rand"];
  40304. var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
  40305. var runPostSets = Module["runPostSets"] = asm["runPostSets"];
  40306. var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
  40307. var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
  40308. var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
  40309. var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
  40310. var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
  40311. var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
  40312. Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) };
  40313. Runtime.stackSave = function() { return asm['stackSave']() };
  40314. Runtime.stackRestore = function(top) { asm['stackRestore'](top) };
  40315. // TODO: strip out parts of this we do not need
  40316. //======= begin closure i64 code =======
  40317. // Copyright 2009 The Closure Library Authors. All Rights Reserved.
  40318. //
  40319. // Licensed under the Apache License, Version 2.0 (the "License");
  40320. // you may not use this file except in compliance with the License.
  40321. // You may obtain a copy of the License at
  40322. //
  40323. // http://www.apache.org/licenses/LICENSE-2.0
  40324. //
  40325. // Unless required by applicable law or agreed to in writing, software
  40326. // distributed under the License is distributed on an "AS-IS" BASIS,
  40327. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  40328. // See the License for the specific language governing permissions and
  40329. // limitations under the License.
  40330. /**
  40331. * @fileoverview Defines a Long class for representing a 64-bit two's-complement
  40332. * integer value, which faithfully simulates the behavior of a Java "long". This
  40333. * implementation is derived from LongLib in GWT.
  40334. *
  40335. */
  40336. var i64Math = (function() { // Emscripten wrapper
  40337. var goog = { math: {} };
  40338. /**
  40339. * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
  40340. * values as *signed* integers. See the from* functions below for more
  40341. * convenient ways of constructing Longs.
  40342. *
  40343. * The internal representation of a long is the two given signed, 32-bit values.
  40344. * We use 32-bit pieces because these are the size of integers on which
  40345. * Javascript performs bit-operations. For operations like addition and
  40346. * multiplication, we split each number into 16-bit pieces, which can easily be
  40347. * multiplied within Javascript's floating-point representation without overflow
  40348. * or change in sign.
  40349. *
  40350. * In the algorithms below, we frequently reduce the negative case to the
  40351. * positive case by negating the input(s) and then post-processing the result.
  40352. * Note that we must ALWAYS check specially whether those values are MIN_VALUE
  40353. * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
  40354. * a positive number, it overflows back into a negative). Not handling this
  40355. * case would often result in infinite recursion.
  40356. *
  40357. * @param {number} low The low (signed) 32 bits of the long.
  40358. * @param {number} high The high (signed) 32 bits of the long.
  40359. * @constructor
  40360. */
  40361. goog.math.Long = function(low, high) {
  40362. /**
  40363. * @type {number}
  40364. * @private
  40365. */
  40366. this.low_ = low | 0; // force into 32 signed bits.
  40367. /**
  40368. * @type {number}
  40369. * @private
  40370. */
  40371. this.high_ = high | 0; // force into 32 signed bits.
  40372. };
  40373. // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
  40374. // from* methods on which they depend.
  40375. /**
  40376. * A cache of the Long representations of small integer values.
  40377. * @type {!Object}
  40378. * @private
  40379. */
  40380. goog.math.Long.IntCache_ = {};
  40381. /**
  40382. * Returns a Long representing the given (32-bit) integer value.
  40383. * @param {number} value The 32-bit integer in question.
  40384. * @return {!goog.math.Long} The corresponding Long value.
  40385. */
  40386. goog.math.Long.fromInt = function(value) {
  40387. if (-128 <= value && value < 128) {
  40388. var cachedObj = goog.math.Long.IntCache_[value];
  40389. if (cachedObj) {
  40390. return cachedObj;
  40391. }
  40392. }
  40393. var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
  40394. if (-128 <= value && value < 128) {
  40395. goog.math.Long.IntCache_[value] = obj;
  40396. }
  40397. return obj;
  40398. };
  40399. /**
  40400. * Returns a Long representing the given value, provided that it is a finite
  40401. * number. Otherwise, zero is returned.
  40402. * @param {number} value The number in question.
  40403. * @return {!goog.math.Long} The corresponding Long value.
  40404. */
  40405. goog.math.Long.fromNumber = function(value) {
  40406. if (isNaN(value) || !isFinite(value)) {
  40407. return goog.math.Long.ZERO;
  40408. } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {
  40409. return goog.math.Long.MIN_VALUE;
  40410. } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {
  40411. return goog.math.Long.MAX_VALUE;
  40412. } else if (value < 0) {
  40413. return goog.math.Long.fromNumber(-value).negate();
  40414. } else {
  40415. return new goog.math.Long(
  40416. (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,
  40417. (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);
  40418. }
  40419. };
  40420. /**
  40421. * Returns a Long representing the 64-bit integer that comes by concatenating
  40422. * the given high and low bits. Each is assumed to use 32 bits.
  40423. * @param {number} lowBits The low 32-bits.
  40424. * @param {number} highBits The high 32-bits.
  40425. * @return {!goog.math.Long} The corresponding Long value.
  40426. */
  40427. goog.math.Long.fromBits = function(lowBits, highBits) {
  40428. return new goog.math.Long(lowBits, highBits);
  40429. };
  40430. /**
  40431. * Returns a Long representation of the given string, written using the given
  40432. * radix.
  40433. * @param {string} str The textual representation of the Long.
  40434. * @param {number=} opt_radix The radix in which the text is written.
  40435. * @return {!goog.math.Long} The corresponding Long value.
  40436. */
  40437. goog.math.Long.fromString = function(str, opt_radix) {
  40438. if (str.length == 0) {
  40439. throw Error('number format error: empty string');
  40440. }
  40441. var radix = opt_radix || 10;
  40442. if (radix < 2 || 36 < radix) {
  40443. throw Error('radix out of range: ' + radix);
  40444. }
  40445. if (str.charAt(0) == '-') {
  40446. return goog.math.Long.fromString(str.substring(1), radix).negate();
  40447. } else if (str.indexOf('-') >= 0) {
  40448. throw Error('number format error: interior "-" character: ' + str);
  40449. }
  40450. // Do several (8) digits each time through the loop, so as to
  40451. // minimize the calls to the very expensive emulated div.
  40452. var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
  40453. var result = goog.math.Long.ZERO;
  40454. for (var i = 0; i < str.length; i += 8) {
  40455. var size = Math.min(8, str.length - i);
  40456. var value = parseInt(str.substring(i, i + size), radix);
  40457. if (size < 8) {
  40458. var power = goog.math.Long.fromNumber(Math.pow(radix, size));
  40459. result = result.multiply(power).add(goog.math.Long.fromNumber(value));
  40460. } else {
  40461. result = result.multiply(radixToPower);
  40462. result = result.add(goog.math.Long.fromNumber(value));
  40463. }
  40464. }
  40465. return result;
  40466. };
  40467. // NOTE: the compiler should inline these constant values below and then remove
  40468. // these variables, so there should be no runtime penalty for these.
  40469. /**
  40470. * Number used repeated below in calculations. This must appear before the
  40471. * first call to any from* function below.
  40472. * @type {number}
  40473. * @private
  40474. */
  40475. goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
  40476. /**
  40477. * @type {number}
  40478. * @private
  40479. */
  40480. goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
  40481. /**
  40482. * @type {number}
  40483. * @private
  40484. */
  40485. goog.math.Long.TWO_PWR_32_DBL_ =
  40486. goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
  40487. /**
  40488. * @type {number}
  40489. * @private
  40490. */
  40491. goog.math.Long.TWO_PWR_31_DBL_ =
  40492. goog.math.Long.TWO_PWR_32_DBL_ / 2;
  40493. /**
  40494. * @type {number}
  40495. * @private
  40496. */
  40497. goog.math.Long.TWO_PWR_48_DBL_ =
  40498. goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
  40499. /**
  40500. * @type {number}
  40501. * @private
  40502. */
  40503. goog.math.Long.TWO_PWR_64_DBL_ =
  40504. goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
  40505. /**
  40506. * @type {number}
  40507. * @private
  40508. */
  40509. goog.math.Long.TWO_PWR_63_DBL_ =
  40510. goog.math.Long.TWO_PWR_64_DBL_ / 2;
  40511. /** @type {!goog.math.Long} */
  40512. goog.math.Long.ZERO = goog.math.Long.fromInt(0);
  40513. /** @type {!goog.math.Long} */
  40514. goog.math.Long.ONE = goog.math.Long.fromInt(1);
  40515. /** @type {!goog.math.Long} */
  40516. goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
  40517. /** @type {!goog.math.Long} */
  40518. goog.math.Long.MAX_VALUE =
  40519. goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);
  40520. /** @type {!goog.math.Long} */
  40521. goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);
  40522. /**
  40523. * @type {!goog.math.Long}
  40524. * @private
  40525. */
  40526. goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
  40527. /** @return {number} The value, assuming it is a 32-bit integer. */
  40528. goog.math.Long.prototype.toInt = function() {
  40529. return this.low_;
  40530. };
  40531. /** @return {number} The closest floating-point representation to this value. */
  40532. goog.math.Long.prototype.toNumber = function() {
  40533. return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ +
  40534. this.getLowBitsUnsigned();
  40535. };
  40536. /**
  40537. * @param {number=} opt_radix The radix in which the text should be written.
  40538. * @return {string} The textual representation of this value.
  40539. */
  40540. goog.math.Long.prototype.toString = function(opt_radix) {
  40541. var radix = opt_radix || 10;
  40542. if (radix < 2 || 36 < radix) {
  40543. throw Error('radix out of range: ' + radix);
  40544. }
  40545. if (this.isZero()) {
  40546. return '0';
  40547. }
  40548. if (this.isNegative()) {
  40549. if (this.equals(goog.math.Long.MIN_VALUE)) {
  40550. // We need to change the Long value before it can be negated, so we remove
  40551. // the bottom-most digit in this base and then recurse to do the rest.
  40552. var radixLong = goog.math.Long.fromNumber(radix);
  40553. var div = this.div(radixLong);
  40554. var rem = div.multiply(radixLong).subtract(this);
  40555. return div.toString(radix) + rem.toInt().toString(radix);
  40556. } else {
  40557. return '-' + this.negate().toString(radix);
  40558. }
  40559. }
  40560. // Do several (6) digits each time through the loop, so as to
  40561. // minimize the calls to the very expensive emulated div.
  40562. var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
  40563. var rem = this;
  40564. var result = '';
  40565. while (true) {
  40566. var remDiv = rem.div(radixToPower);
  40567. var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
  40568. var digits = intval.toString(radix);
  40569. rem = remDiv;
  40570. if (rem.isZero()) {
  40571. return digits + result;
  40572. } else {
  40573. while (digits.length < 6) {
  40574. digits = '0' + digits;
  40575. }
  40576. result = '' + digits + result;
  40577. }
  40578. }
  40579. };
  40580. /** @return {number} The high 32-bits as a signed value. */
  40581. goog.math.Long.prototype.getHighBits = function() {
  40582. return this.high_;
  40583. };
  40584. /** @return {number} The low 32-bits as a signed value. */
  40585. goog.math.Long.prototype.getLowBits = function() {
  40586. return this.low_;
  40587. };
  40588. /** @return {number} The low 32-bits as an unsigned value. */
  40589. goog.math.Long.prototype.getLowBitsUnsigned = function() {
  40590. return (this.low_ >= 0) ?
  40591. this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;
  40592. };
  40593. /**
  40594. * @return {number} Returns the number of bits needed to represent the absolute
  40595. * value of this Long.
  40596. */
  40597. goog.math.Long.prototype.getNumBitsAbs = function() {
  40598. if (this.isNegative()) {
  40599. if (this.equals(goog.math.Long.MIN_VALUE)) {
  40600. return 64;
  40601. } else {
  40602. return this.negate().getNumBitsAbs();
  40603. }
  40604. } else {
  40605. var val = this.high_ != 0 ? this.high_ : this.low_;
  40606. for (var bit = 31; bit > 0; bit--) {
  40607. if ((val & (1 << bit)) != 0) {
  40608. break;
  40609. }
  40610. }
  40611. return this.high_ != 0 ? bit + 33 : bit + 1;
  40612. }
  40613. };
  40614. /** @return {boolean} Whether this value is zero. */
  40615. goog.math.Long.prototype.isZero = function() {
  40616. return this.high_ == 0 && this.low_ == 0;
  40617. };
  40618. /** @return {boolean} Whether this value is negative. */
  40619. goog.math.Long.prototype.isNegative = function() {
  40620. return this.high_ < 0;
  40621. };
  40622. /** @return {boolean} Whether this value is odd. */
  40623. goog.math.Long.prototype.isOdd = function() {
  40624. return (this.low_ & 1) == 1;
  40625. };
  40626. /**
  40627. * @param {goog.math.Long} other Long to compare against.
  40628. * @return {boolean} Whether this Long equals the other.
  40629. */
  40630. goog.math.Long.prototype.equals = function(other) {
  40631. return (this.high_ == other.high_) && (this.low_ == other.low_);
  40632. };
  40633. /**
  40634. * @param {goog.math.Long} other Long to compare against.
  40635. * @return {boolean} Whether this Long does not equal the other.
  40636. */
  40637. goog.math.Long.prototype.notEquals = function(other) {
  40638. return (this.high_ != other.high_) || (this.low_ != other.low_);
  40639. };
  40640. /**
  40641. * @param {goog.math.Long} other Long to compare against.
  40642. * @return {boolean} Whether this Long is less than the other.
  40643. */
  40644. goog.math.Long.prototype.lessThan = function(other) {
  40645. return this.compare(other) < 0;
  40646. };
  40647. /**
  40648. * @param {goog.math.Long} other Long to compare against.
  40649. * @return {boolean} Whether this Long is less than or equal to the other.
  40650. */
  40651. goog.math.Long.prototype.lessThanOrEqual = function(other) {
  40652. return this.compare(other) <= 0;
  40653. };
  40654. /**
  40655. * @param {goog.math.Long} other Long to compare against.
  40656. * @return {boolean} Whether this Long is greater than the other.
  40657. */
  40658. goog.math.Long.prototype.greaterThan = function(other) {
  40659. return this.compare(other) > 0;
  40660. };
  40661. /**
  40662. * @param {goog.math.Long} other Long to compare against.
  40663. * @return {boolean} Whether this Long is greater than or equal to the other.
  40664. */
  40665. goog.math.Long.prototype.greaterThanOrEqual = function(other) {
  40666. return this.compare(other) >= 0;
  40667. };
  40668. /**
  40669. * Compares this Long with the given one.
  40670. * @param {goog.math.Long} other Long to compare against.
  40671. * @return {number} 0 if they are the same, 1 if the this is greater, and -1
  40672. * if the given one is greater.
  40673. */
  40674. goog.math.Long.prototype.compare = function(other) {
  40675. if (this.equals(other)) {
  40676. return 0;
  40677. }
  40678. var thisNeg = this.isNegative();
  40679. var otherNeg = other.isNegative();
  40680. if (thisNeg && !otherNeg) {
  40681. return -1;
  40682. }
  40683. if (!thisNeg && otherNeg) {
  40684. return 1;
  40685. }
  40686. // at this point, the signs are the same, so subtraction will not overflow
  40687. if (this.subtract(other).isNegative()) {
  40688. return -1;
  40689. } else {
  40690. return 1;
  40691. }
  40692. };
  40693. /** @return {!goog.math.Long} The negation of this value. */
  40694. goog.math.Long.prototype.negate = function() {
  40695. if (this.equals(goog.math.Long.MIN_VALUE)) {
  40696. return goog.math.Long.MIN_VALUE;
  40697. } else {
  40698. return this.not().add(goog.math.Long.ONE);
  40699. }
  40700. };
  40701. /**
  40702. * Returns the sum of this and the given Long.
  40703. * @param {goog.math.Long} other Long to add to this one.
  40704. * @return {!goog.math.Long} The sum of this and the given Long.
  40705. */
  40706. goog.math.Long.prototype.add = function(other) {
  40707. // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
  40708. var a48 = this.high_ >>> 16;
  40709. var a32 = this.high_ & 0xFFFF;
  40710. var a16 = this.low_ >>> 16;
  40711. var a00 = this.low_ & 0xFFFF;
  40712. var b48 = other.high_ >>> 16;
  40713. var b32 = other.high_ & 0xFFFF;
  40714. var b16 = other.low_ >>> 16;
  40715. var b00 = other.low_ & 0xFFFF;
  40716. var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
  40717. c00 += a00 + b00;
  40718. c16 += c00 >>> 16;
  40719. c00 &= 0xFFFF;
  40720. c16 += a16 + b16;
  40721. c32 += c16 >>> 16;
  40722. c16 &= 0xFFFF;
  40723. c32 += a32 + b32;
  40724. c48 += c32 >>> 16;
  40725. c32 &= 0xFFFF;
  40726. c48 += a48 + b48;
  40727. c48 &= 0xFFFF;
  40728. return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
  40729. };
  40730. /**
  40731. * Returns the difference of this and the given Long.
  40732. * @param {goog.math.Long} other Long to subtract from this.
  40733. * @return {!goog.math.Long} The difference of this and the given Long.
  40734. */
  40735. goog.math.Long.prototype.subtract = function(other) {
  40736. return this.add(other.negate());
  40737. };
  40738. /**
  40739. * Returns the product of this and the given long.
  40740. * @param {goog.math.Long} other Long to multiply with this.
  40741. * @return {!goog.math.Long} The product of this and the other.
  40742. */
  40743. goog.math.Long.prototype.multiply = function(other) {
  40744. if (this.isZero()) {
  40745. return goog.math.Long.ZERO;
  40746. } else if (other.isZero()) {
  40747. return goog.math.Long.ZERO;
  40748. }
  40749. if (this.equals(goog.math.Long.MIN_VALUE)) {
  40750. return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
  40751. } else if (other.equals(goog.math.Long.MIN_VALUE)) {
  40752. return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
  40753. }
  40754. if (this.isNegative()) {
  40755. if (other.isNegative()) {
  40756. return this.negate().multiply(other.negate());
  40757. } else {
  40758. return this.negate().multiply(other).negate();
  40759. }
  40760. } else if (other.isNegative()) {
  40761. return this.multiply(other.negate()).negate();
  40762. }
  40763. // If both longs are small, use float multiplication
  40764. if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&
  40765. other.lessThan(goog.math.Long.TWO_PWR_24_)) {
  40766. return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
  40767. }
  40768. // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
  40769. // We can skip products that would overflow.
  40770. var a48 = this.high_ >>> 16;
  40771. var a32 = this.high_ & 0xFFFF;
  40772. var a16 = this.low_ >>> 16;
  40773. var a00 = this.low_ & 0xFFFF;
  40774. var b48 = other.high_ >>> 16;
  40775. var b32 = other.high_ & 0xFFFF;
  40776. var b16 = other.low_ >>> 16;
  40777. var b00 = other.low_ & 0xFFFF;
  40778. var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
  40779. c00 += a00 * b00;
  40780. c16 += c00 >>> 16;
  40781. c00 &= 0xFFFF;
  40782. c16 += a16 * b00;
  40783. c32 += c16 >>> 16;
  40784. c16 &= 0xFFFF;
  40785. c16 += a00 * b16;
  40786. c32 += c16 >>> 16;
  40787. c16 &= 0xFFFF;
  40788. c32 += a32 * b00;
  40789. c48 += c32 >>> 16;
  40790. c32 &= 0xFFFF;
  40791. c32 += a16 * b16;
  40792. c48 += c32 >>> 16;
  40793. c32 &= 0xFFFF;
  40794. c32 += a00 * b32;
  40795. c48 += c32 >>> 16;
  40796. c32 &= 0xFFFF;
  40797. c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
  40798. c48 &= 0xFFFF;
  40799. return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
  40800. };
  40801. /**
  40802. * Returns this Long divided by the given one.
  40803. * @param {goog.math.Long} other Long by which to divide.
  40804. * @return {!goog.math.Long} This Long divided by the given one.
  40805. */
  40806. goog.math.Long.prototype.div = function(other) {
  40807. if (other.isZero()) {
  40808. throw Error('division by zero');
  40809. } else if (this.isZero()) {
  40810. return goog.math.Long.ZERO;
  40811. }
  40812. if (this.equals(goog.math.Long.MIN_VALUE)) {
  40813. if (other.equals(goog.math.Long.ONE) ||
  40814. other.equals(goog.math.Long.NEG_ONE)) {
  40815. return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
  40816. } else if (other.equals(goog.math.Long.MIN_VALUE)) {
  40817. return goog.math.Long.ONE;
  40818. } else {
  40819. // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
  40820. var halfThis = this.shiftRight(1);
  40821. var approx = halfThis.div(other).shiftLeft(1);
  40822. if (approx.equals(goog.math.Long.ZERO)) {
  40823. return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
  40824. } else {
  40825. var rem = this.subtract(other.multiply(approx));
  40826. var result = approx.add(rem.div(other));
  40827. return result;
  40828. }
  40829. }
  40830. } else if (other.equals(goog.math.Long.MIN_VALUE)) {
  40831. return goog.math.Long.ZERO;
  40832. }
  40833. if (this.isNegative()) {
  40834. if (other.isNegative()) {
  40835. return this.negate().div(other.negate());
  40836. } else {
  40837. return this.negate().div(other).negate();
  40838. }
  40839. } else if (other.isNegative()) {
  40840. return this.div(other.negate()).negate();
  40841. }
  40842. // Repeat the following until the remainder is less than other: find a
  40843. // floating-point that approximates remainder / other *from below*, add this
  40844. // into the result, and subtract it from the remainder. It is critical that
  40845. // the approximate value is less than or equal to the real value so that the
  40846. // remainder never becomes negative.
  40847. var res = goog.math.Long.ZERO;
  40848. var rem = this;
  40849. while (rem.greaterThanOrEqual(other)) {
  40850. // Approximate the result of division. This may be a little greater or
  40851. // smaller than the actual value.
  40852. var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
  40853. // We will tweak the approximate result by changing it in the 48-th digit or
  40854. // the smallest non-fractional digit, whichever is larger.
  40855. var log2 = Math.ceil(Math.log(approx) / Math.LN2);
  40856. var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);
  40857. // Decrease the approximation until it is smaller than the remainder. Note
  40858. // that if it is too large, the product overflows and is negative.
  40859. var approxRes = goog.math.Long.fromNumber(approx);
  40860. var approxRem = approxRes.multiply(other);
  40861. while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
  40862. approx -= delta;
  40863. approxRes = goog.math.Long.fromNumber(approx);
  40864. approxRem = approxRes.multiply(other);
  40865. }
  40866. // We know the answer can't be zero... and actually, zero would cause
  40867. // infinite recursion since we would make no progress.
  40868. if (approxRes.isZero()) {
  40869. approxRes = goog.math.Long.ONE;
  40870. }
  40871. res = res.add(approxRes);
  40872. rem = rem.subtract(approxRem);
  40873. }
  40874. return res;
  40875. };
  40876. /**
  40877. * Returns this Long modulo the given one.
  40878. * @param {goog.math.Long} other Long by which to mod.
  40879. * @return {!goog.math.Long} This Long modulo the given one.
  40880. */
  40881. goog.math.Long.prototype.modulo = function(other) {
  40882. return this.subtract(this.div(other).multiply(other));
  40883. };
  40884. /** @return {!goog.math.Long} The bitwise-NOT of this value. */
  40885. goog.math.Long.prototype.not = function() {
  40886. return goog.math.Long.fromBits(~this.low_, ~this.high_);
  40887. };
  40888. /**
  40889. * Returns the bitwise-AND of this Long and the given one.
  40890. * @param {goog.math.Long} other The Long with which to AND.
  40891. * @return {!goog.math.Long} The bitwise-AND of this and the other.
  40892. */
  40893. goog.math.Long.prototype.and = function(other) {
  40894. return goog.math.Long.fromBits(this.low_ & other.low_,
  40895. this.high_ & other.high_);
  40896. };
  40897. /**
  40898. * Returns the bitwise-OR of this Long and the given one.
  40899. * @param {goog.math.Long} other The Long with which to OR.
  40900. * @return {!goog.math.Long} The bitwise-OR of this and the other.
  40901. */
  40902. goog.math.Long.prototype.or = function(other) {
  40903. return goog.math.Long.fromBits(this.low_ | other.low_,
  40904. this.high_ | other.high_);
  40905. };
  40906. /**
  40907. * Returns the bitwise-XOR of this Long and the given one.
  40908. * @param {goog.math.Long} other The Long with which to XOR.
  40909. * @return {!goog.math.Long} The bitwise-XOR of this and the other.
  40910. */
  40911. goog.math.Long.prototype.xor = function(other) {
  40912. return goog.math.Long.fromBits(this.low_ ^ other.low_,
  40913. this.high_ ^ other.high_);
  40914. };
  40915. /**
  40916. * Returns this Long with bits shifted to the left by the given amount.
  40917. * @param {number} numBits The number of bits by which to shift.
  40918. * @return {!goog.math.Long} This shifted to the left by the given amount.
  40919. */
  40920. goog.math.Long.prototype.shiftLeft = function(numBits) {
  40921. numBits &= 63;
  40922. if (numBits == 0) {
  40923. return this;
  40924. } else {
  40925. var low = this.low_;
  40926. if (numBits < 32) {
  40927. var high = this.high_;
  40928. return goog.math.Long.fromBits(
  40929. low << numBits,
  40930. (high << numBits) | (low >>> (32 - numBits)));
  40931. } else {
  40932. return goog.math.Long.fromBits(0, low << (numBits - 32));
  40933. }
  40934. }
  40935. };
  40936. /**
  40937. * Returns this Long with bits shifted to the right by the given amount.
  40938. * @param {number} numBits The number of bits by which to shift.
  40939. * @return {!goog.math.Long} This shifted to the right by the given amount.
  40940. */
  40941. goog.math.Long.prototype.shiftRight = function(numBits) {
  40942. numBits &= 63;
  40943. if (numBits == 0) {
  40944. return this;
  40945. } else {
  40946. var high = this.high_;
  40947. if (numBits < 32) {
  40948. var low = this.low_;
  40949. return goog.math.Long.fromBits(
  40950. (low >>> numBits) | (high << (32 - numBits)),
  40951. high >> numBits);
  40952. } else {
  40953. return goog.math.Long.fromBits(
  40954. high >> (numBits - 32),
  40955. high >= 0 ? 0 : -1);
  40956. }
  40957. }
  40958. };
  40959. /**
  40960. * Returns this Long with bits shifted to the right by the given amount, with
  40961. * the new top bits matching the current sign bit.
  40962. * @param {number} numBits The number of bits by which to shift.
  40963. * @return {!goog.math.Long} This shifted to the right by the given amount, with
  40964. * zeros placed into the new leading bits.
  40965. */
  40966. goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
  40967. numBits &= 63;
  40968. if (numBits == 0) {
  40969. return this;
  40970. } else {
  40971. var high = this.high_;
  40972. if (numBits < 32) {
  40973. var low = this.low_;
  40974. return goog.math.Long.fromBits(
  40975. (low >>> numBits) | (high << (32 - numBits)),
  40976. high >>> numBits);
  40977. } else if (numBits == 32) {
  40978. return goog.math.Long.fromBits(high, 0);
  40979. } else {
  40980. return goog.math.Long.fromBits(high >>> (numBits - 32), 0);
  40981. }
  40982. }
  40983. };
  40984. //======= begin jsbn =======
  40985. var navigator = { appName: 'Modern Browser' }; // polyfill a little
  40986. // Copyright (c) 2005 Tom Wu
  40987. // All Rights Reserved.
  40988. // http://www-cs-students.stanford.edu/~tjw/jsbn/
  40989. /*
  40990. * Copyright (c) 2003-2005 Tom Wu
  40991. * All Rights Reserved.
  40992. *
  40993. * Permission is hereby granted, free of charge, to any person obtaining
  40994. * a copy of this software and associated documentation files (the
  40995. * "Software"), to deal in the Software without restriction, including
  40996. * without limitation the rights to use, copy, modify, merge, publish,
  40997. * distribute, sublicense, and/or sell copies of the Software, and to
  40998. * permit persons to whom the Software is furnished to do so, subject to
  40999. * the following conditions:
  41000. *
  41001. * The above copyright notice and this permission notice shall be
  41002. * included in all copies or substantial portions of the Software.
  41003. *
  41004. * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
  41005. * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
  41006. * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  41007. *
  41008. * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
  41009. * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
  41010. * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
  41011. * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
  41012. * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  41013. *
  41014. * In addition, the following condition applies:
  41015. *
  41016. * All redistributions must retain an intact copy of this copyright notice
  41017. * and disclaimer.
  41018. */
  41019. // Basic JavaScript BN library - subset useful for RSA encryption.
  41020. // Bits per digit
  41021. var dbits;
  41022. // JavaScript engine analysis
  41023. var canary = 0xdeadbeefcafe;
  41024. var j_lm = ((canary&0xffffff)==0xefcafe);
  41025. // (public) Constructor
  41026. function BigInteger(a,b,c) {
  41027. if(a != null)
  41028. if("number" == typeof a) this.fromNumber(a,b,c);
  41029. else if(b == null && "string" != typeof a) this.fromString(a,256);
  41030. else this.fromString(a,b);
  41031. }
  41032. // return new, unset BigInteger
  41033. function nbi() { return new BigInteger(null); }
  41034. // am: Compute w_j += (x*this_i), propagate carries,
  41035. // c is initial carry, returns final carry.
  41036. // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
  41037. // We need to select the fastest one that works in this environment.
  41038. // am1: use a single mult and divide to get the high bits,
  41039. // max digit bits should be 26 because
  41040. // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
  41041. function am1(i,x,w,j,c,n) {
  41042. while(--n >= 0) {
  41043. var v = x*this[i++]+w[j]+c;
  41044. c = Math.floor(v/0x4000000);
  41045. w[j++] = v&0x3ffffff;
  41046. }
  41047. return c;
  41048. }
  41049. // am2 avoids a big mult-and-extract completely.
  41050. // Max digit bits should be <= 30 because we do bitwise ops
  41051. // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
  41052. function am2(i,x,w,j,c,n) {
  41053. var xl = x&0x7fff, xh = x>>15;
  41054. while(--n >= 0) {
  41055. var l = this[i]&0x7fff;
  41056. var h = this[i++]>>15;
  41057. var m = xh*l+h*xl;
  41058. l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
  41059. c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
  41060. w[j++] = l&0x3fffffff;
  41061. }
  41062. return c;
  41063. }
  41064. // Alternately, set max digit bits to 28 since some
  41065. // browsers slow down when dealing with 32-bit numbers.
  41066. function am3(i,x,w,j,c,n) {
  41067. var xl = x&0x3fff, xh = x>>14;
  41068. while(--n >= 0) {
  41069. var l = this[i]&0x3fff;
  41070. var h = this[i++]>>14;
  41071. var m = xh*l+h*xl;
  41072. l = xl*l+((m&0x3fff)<<14)+w[j]+c;
  41073. c = (l>>28)+(m>>14)+xh*h;
  41074. w[j++] = l&0xfffffff;
  41075. }
  41076. return c;
  41077. }
  41078. if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
  41079. BigInteger.prototype.am = am2;
  41080. dbits = 30;
  41081. }
  41082. else if(j_lm && (navigator.appName != "Netscape")) {
  41083. BigInteger.prototype.am = am1;
  41084. dbits = 26;
  41085. }
  41086. else { // Mozilla/Netscape seems to prefer am3
  41087. BigInteger.prototype.am = am3;
  41088. dbits = 28;
  41089. }
  41090. BigInteger.prototype.DB = dbits;
  41091. BigInteger.prototype.DM = ((1<<dbits)-1);
  41092. BigInteger.prototype.DV = (1<<dbits);
  41093. var BI_FP = 52;
  41094. BigInteger.prototype.FV = Math.pow(2,BI_FP);
  41095. BigInteger.prototype.F1 = BI_FP-dbits;
  41096. BigInteger.prototype.F2 = 2*dbits-BI_FP;
  41097. // Digit conversions
  41098. var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
  41099. var BI_RC = new Array();
  41100. var rr,vv;
  41101. rr = "0".charCodeAt(0);
  41102. for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
  41103. rr = "a".charCodeAt(0);
  41104. for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
  41105. rr = "A".charCodeAt(0);
  41106. for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
  41107. function int2char(n) { return BI_RM.charAt(n); }
  41108. function intAt(s,i) {
  41109. var c = BI_RC[s.charCodeAt(i)];
  41110. return (c==null)?-1:c;
  41111. }
  41112. // (protected) copy this to r
  41113. function bnpCopyTo(r) {
  41114. for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
  41115. r.t = this.t;
  41116. r.s = this.s;
  41117. }
  41118. // (protected) set from integer value x, -DV <= x < DV
  41119. function bnpFromInt(x) {
  41120. this.t = 1;
  41121. this.s = (x<0)?-1:0;
  41122. if(x > 0) this[0] = x;
  41123. else if(x < -1) this[0] = x+DV;
  41124. else this.t = 0;
  41125. }
  41126. // return bigint initialized to value
  41127. function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
  41128. // (protected) set from string and radix
  41129. function bnpFromString(s,b) {
  41130. var k;
  41131. if(b == 16) k = 4;
  41132. else if(b == 8) k = 3;
  41133. else if(b == 256) k = 8; // byte array
  41134. else if(b == 2) k = 1;
  41135. else if(b == 32) k = 5;
  41136. else if(b == 4) k = 2;
  41137. else { this.fromRadix(s,b); return; }
  41138. this.t = 0;
  41139. this.s = 0;
  41140. var i = s.length, mi = false, sh = 0;
  41141. while(--i >= 0) {
  41142. var x = (k==8)?s[i]&0xff:intAt(s,i);
  41143. if(x < 0) {
  41144. if(s.charAt(i) == "-") mi = true;
  41145. continue;
  41146. }
  41147. mi = false;
  41148. if(sh == 0)
  41149. this[this.t++] = x;
  41150. else if(sh+k > this.DB) {
  41151. this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
  41152. this[this.t++] = (x>>(this.DB-sh));
  41153. }
  41154. else
  41155. this[this.t-1] |= x<<sh;
  41156. sh += k;
  41157. if(sh >= this.DB) sh -= this.DB;
  41158. }
  41159. if(k == 8 && (s[0]&0x80) != 0) {
  41160. this.s = -1;
  41161. if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
  41162. }
  41163. this.clamp();
  41164. if(mi) BigInteger.ZERO.subTo(this,this);
  41165. }
  41166. // (protected) clamp off excess high words
  41167. function bnpClamp() {
  41168. var c = this.s&this.DM;
  41169. while(this.t > 0 && this[this.t-1] == c) --this.t;
  41170. }
  41171. // (public) return string representation in given radix
  41172. function bnToString(b) {
  41173. if(this.s < 0) return "-"+this.negate().toString(b);
  41174. var k;
  41175. if(b == 16) k = 4;
  41176. else if(b == 8) k = 3;
  41177. else if(b == 2) k = 1;
  41178. else if(b == 32) k = 5;
  41179. else if(b == 4) k = 2;
  41180. else return this.toRadix(b);
  41181. var km = (1<<k)-1, d, m = false, r = "", i = this.t;
  41182. var p = this.DB-(i*this.DB)%k;
  41183. if(i-- > 0) {
  41184. if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
  41185. while(i >= 0) {
  41186. if(p < k) {
  41187. d = (this[i]&((1<<p)-1))<<(k-p);
  41188. d |= this[--i]>>(p+=this.DB-k);
  41189. }
  41190. else {
  41191. d = (this[i]>>(p-=k))&km;
  41192. if(p <= 0) { p += this.DB; --i; }
  41193. }
  41194. if(d > 0) m = true;
  41195. if(m) r += int2char(d);
  41196. }
  41197. }
  41198. return m?r:"0";
  41199. }
  41200. // (public) -this
  41201. function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
  41202. // (public) |this|
  41203. function bnAbs() { return (this.s<0)?this.negate():this; }
  41204. // (public) return + if this > a, - if this < a, 0 if equal
  41205. function bnCompareTo(a) {
  41206. var r = this.s-a.s;
  41207. if(r != 0) return r;
  41208. var i = this.t;
  41209. r = i-a.t;
  41210. if(r != 0) return (this.s<0)?-r:r;
  41211. while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
  41212. return 0;
  41213. }
  41214. // returns bit length of the integer x
  41215. function nbits(x) {
  41216. var r = 1, t;
  41217. if((t=x>>>16) != 0) { x = t; r += 16; }
  41218. if((t=x>>8) != 0) { x = t; r += 8; }
  41219. if((t=x>>4) != 0) { x = t; r += 4; }
  41220. if((t=x>>2) != 0) { x = t; r += 2; }
  41221. if((t=x>>1) != 0) { x = t; r += 1; }
  41222. return r;
  41223. }
  41224. // (public) return the number of bits in "this"
  41225. function bnBitLength() {
  41226. if(this.t <= 0) return 0;
  41227. return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
  41228. }
  41229. // (protected) r = this << n*DB
  41230. function bnpDLShiftTo(n,r) {
  41231. var i;
  41232. for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
  41233. for(i = n-1; i >= 0; --i) r[i] = 0;
  41234. r.t = this.t+n;
  41235. r.s = this.s;
  41236. }
  41237. // (protected) r = this >> n*DB
  41238. function bnpDRShiftTo(n,r) {
  41239. for(var i = n; i < this.t; ++i) r[i-n] = this[i];
  41240. r.t = Math.max(this.t-n,0);
  41241. r.s = this.s;
  41242. }
  41243. // (protected) r = this << n
  41244. function bnpLShiftTo(n,r) {
  41245. var bs = n%this.DB;
  41246. var cbs = this.DB-bs;
  41247. var bm = (1<<cbs)-1;
  41248. var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
  41249. for(i = this.t-1; i >= 0; --i) {
  41250. r[i+ds+1] = (this[i]>>cbs)|c;
  41251. c = (this[i]&bm)<<bs;
  41252. }
  41253. for(i = ds-1; i >= 0; --i) r[i] = 0;
  41254. r[ds] = c;
  41255. r.t = this.t+ds+1;
  41256. r.s = this.s;
  41257. r.clamp();
  41258. }
  41259. // (protected) r = this >> n
  41260. function bnpRShiftTo(n,r) {
  41261. r.s = this.s;
  41262. var ds = Math.floor(n/this.DB);
  41263. if(ds >= this.t) { r.t = 0; return; }
  41264. var bs = n%this.DB;
  41265. var cbs = this.DB-bs;
  41266. var bm = (1<<bs)-1;
  41267. r[0] = this[ds]>>bs;
  41268. for(var i = ds+1; i < this.t; ++i) {
  41269. r[i-ds-1] |= (this[i]&bm)<<cbs;
  41270. r[i-ds] = this[i]>>bs;
  41271. }
  41272. if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
  41273. r.t = this.t-ds;
  41274. r.clamp();
  41275. }
  41276. // (protected) r = this - a
  41277. function bnpSubTo(a,r) {
  41278. var i = 0, c = 0, m = Math.min(a.t,this.t);
  41279. while(i < m) {
  41280. c += this[i]-a[i];
  41281. r[i++] = c&this.DM;
  41282. c >>= this.DB;
  41283. }
  41284. if(a.t < this.t) {
  41285. c -= a.s;
  41286. while(i < this.t) {
  41287. c += this[i];
  41288. r[i++] = c&this.DM;
  41289. c >>= this.DB;
  41290. }
  41291. c += this.s;
  41292. }
  41293. else {
  41294. c += this.s;
  41295. while(i < a.t) {
  41296. c -= a[i];
  41297. r[i++] = c&this.DM;
  41298. c >>= this.DB;
  41299. }
  41300. c -= a.s;
  41301. }
  41302. r.s = (c<0)?-1:0;
  41303. if(c < -1) r[i++] = this.DV+c;
  41304. else if(c > 0) r[i++] = c;
  41305. r.t = i;
  41306. r.clamp();
  41307. }
  41308. // (protected) r = this * a, r != this,a (HAC 14.12)
  41309. // "this" should be the larger one if appropriate.
  41310. function bnpMultiplyTo(a,r) {
  41311. var x = this.abs(), y = a.abs();
  41312. var i = x.t;
  41313. r.t = i+y.t;
  41314. while(--i >= 0) r[i] = 0;
  41315. for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
  41316. r.s = 0;
  41317. r.clamp();
  41318. if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
  41319. }
  41320. // (protected) r = this^2, r != this (HAC 14.16)
  41321. function bnpSquareTo(r) {
  41322. var x = this.abs();
  41323. var i = r.t = 2*x.t;
  41324. while(--i >= 0) r[i] = 0;
  41325. for(i = 0; i < x.t-1; ++i) {
  41326. var c = x.am(i,x[i],r,2*i,0,1);
  41327. if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
  41328. r[i+x.t] -= x.DV;
  41329. r[i+x.t+1] = 1;
  41330. }
  41331. }
  41332. if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
  41333. r.s = 0;
  41334. r.clamp();
  41335. }
  41336. // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
  41337. // r != q, this != m. q or r may be null.
  41338. function bnpDivRemTo(m,q,r) {
  41339. var pm = m.abs();
  41340. if(pm.t <= 0) return;
  41341. var pt = this.abs();
  41342. if(pt.t < pm.t) {
  41343. if(q != null) q.fromInt(0);
  41344. if(r != null) this.copyTo(r);
  41345. return;
  41346. }
  41347. if(r == null) r = nbi();
  41348. var y = nbi(), ts = this.s, ms = m.s;
  41349. var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
  41350. if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
  41351. else { pm.copyTo(y); pt.copyTo(r); }
  41352. var ys = y.t;
  41353. var y0 = y[ys-1];
  41354. if(y0 == 0) return;
  41355. var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
  41356. var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
  41357. var i = r.t, j = i-ys, t = (q==null)?nbi():q;
  41358. y.dlShiftTo(j,t);
  41359. if(r.compareTo(t) >= 0) {
  41360. r[r.t++] = 1;
  41361. r.subTo(t,r);
  41362. }
  41363. BigInteger.ONE.dlShiftTo(ys,t);
  41364. t.subTo(y,y); // "negative" y so we can replace sub with am later
  41365. while(y.t < ys) y[y.t++] = 0;
  41366. while(--j >= 0) {
  41367. // Estimate quotient digit
  41368. var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
  41369. if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
  41370. y.dlShiftTo(j,t);
  41371. r.subTo(t,r);
  41372. while(r[i] < --qd) r.subTo(t,r);
  41373. }
  41374. }
  41375. if(q != null) {
  41376. r.drShiftTo(ys,q);
  41377. if(ts != ms) BigInteger.ZERO.subTo(q,q);
  41378. }
  41379. r.t = ys;
  41380. r.clamp();
  41381. if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
  41382. if(ts < 0) BigInteger.ZERO.subTo(r,r);
  41383. }
  41384. // (public) this mod a
  41385. function bnMod(a) {
  41386. var r = nbi();
  41387. this.abs().divRemTo(a,null,r);
  41388. if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
  41389. return r;
  41390. }
  41391. // Modular reduction using "classic" algorithm
  41392. function Classic(m) { this.m = m; }
  41393. function cConvert(x) {
  41394. if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
  41395. else return x;
  41396. }
  41397. function cRevert(x) { return x; }
  41398. function cReduce(x) { x.divRemTo(this.m,null,x); }
  41399. function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  41400. function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  41401. Classic.prototype.convert = cConvert;
  41402. Classic.prototype.revert = cRevert;
  41403. Classic.prototype.reduce = cReduce;
  41404. Classic.prototype.mulTo = cMulTo;
  41405. Classic.prototype.sqrTo = cSqrTo;
  41406. // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
  41407. // justification:
  41408. // xy == 1 (mod m)
  41409. // xy = 1+km
  41410. // xy(2-xy) = (1+km)(1-km)
  41411. // x[y(2-xy)] = 1-k^2m^2
  41412. // x[y(2-xy)] == 1 (mod m^2)
  41413. // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
  41414. // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
  41415. // JS multiply "overflows" differently from C/C++, so care is needed here.
  41416. function bnpInvDigit() {
  41417. if(this.t < 1) return 0;
  41418. var x = this[0];
  41419. if((x&1) == 0) return 0;
  41420. var y = x&3; // y == 1/x mod 2^2
  41421. y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
  41422. y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
  41423. y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
  41424. // last step - calculate inverse mod DV directly;
  41425. // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
  41426. y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
  41427. // we really want the negative inverse, and -DV < y < DV
  41428. return (y>0)?this.DV-y:-y;
  41429. }
  41430. // Montgomery reduction
  41431. function Montgomery(m) {
  41432. this.m = m;
  41433. this.mp = m.invDigit();
  41434. this.mpl = this.mp&0x7fff;
  41435. this.mph = this.mp>>15;
  41436. this.um = (1<<(m.DB-15))-1;
  41437. this.mt2 = 2*m.t;
  41438. }
  41439. // xR mod m
  41440. function montConvert(x) {
  41441. var r = nbi();
  41442. x.abs().dlShiftTo(this.m.t,r);
  41443. r.divRemTo(this.m,null,r);
  41444. if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
  41445. return r;
  41446. }
  41447. // x/R mod m
  41448. function montRevert(x) {
  41449. var r = nbi();
  41450. x.copyTo(r);
  41451. this.reduce(r);
  41452. return r;
  41453. }
  41454. // x = x/R mod m (HAC 14.32)
  41455. function montReduce(x) {
  41456. while(x.t <= this.mt2) // pad x so am has enough room later
  41457. x[x.t++] = 0;
  41458. for(var i = 0; i < this.m.t; ++i) {
  41459. // faster way of calculating u0 = x[i]*mp mod DV
  41460. var j = x[i]&0x7fff;
  41461. var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
  41462. // use am to combine the multiply-shift-add into one call
  41463. j = i+this.m.t;
  41464. x[j] += this.m.am(0,u0,x,i,0,this.m.t);
  41465. // propagate carry
  41466. while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
  41467. }
  41468. x.clamp();
  41469. x.drShiftTo(this.m.t,x);
  41470. if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
  41471. }
  41472. // r = "x^2/R mod m"; x != r
  41473. function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  41474. // r = "xy/R mod m"; x,y != r
  41475. function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  41476. Montgomery.prototype.convert = montConvert;
  41477. Montgomery.prototype.revert = montRevert;
  41478. Montgomery.prototype.reduce = montReduce;
  41479. Montgomery.prototype.mulTo = montMulTo;
  41480. Montgomery.prototype.sqrTo = montSqrTo;
  41481. // (protected) true iff this is even
  41482. function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
  41483. // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
  41484. function bnpExp(e,z) {
  41485. if(e > 0xffffffff || e < 1) return BigInteger.ONE;
  41486. var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
  41487. g.copyTo(r);
  41488. while(--i >= 0) {
  41489. z.sqrTo(r,r2);
  41490. if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
  41491. else { var t = r; r = r2; r2 = t; }
  41492. }
  41493. return z.revert(r);
  41494. }
  41495. // (public) this^e % m, 0 <= e < 2^32
  41496. function bnModPowInt(e,m) {
  41497. var z;
  41498. if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
  41499. return this.exp(e,z);
  41500. }
  41501. // protected
  41502. BigInteger.prototype.copyTo = bnpCopyTo;
  41503. BigInteger.prototype.fromInt = bnpFromInt;
  41504. BigInteger.prototype.fromString = bnpFromString;
  41505. BigInteger.prototype.clamp = bnpClamp;
  41506. BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
  41507. BigInteger.prototype.drShiftTo = bnpDRShiftTo;
  41508. BigInteger.prototype.lShiftTo = bnpLShiftTo;
  41509. BigInteger.prototype.rShiftTo = bnpRShiftTo;
  41510. BigInteger.prototype.subTo = bnpSubTo;
  41511. BigInteger.prototype.multiplyTo = bnpMultiplyTo;
  41512. BigInteger.prototype.squareTo = bnpSquareTo;
  41513. BigInteger.prototype.divRemTo = bnpDivRemTo;
  41514. BigInteger.prototype.invDigit = bnpInvDigit;
  41515. BigInteger.prototype.isEven = bnpIsEven;
  41516. BigInteger.prototype.exp = bnpExp;
  41517. // public
  41518. BigInteger.prototype.toString = bnToString;
  41519. BigInteger.prototype.negate = bnNegate;
  41520. BigInteger.prototype.abs = bnAbs;
  41521. BigInteger.prototype.compareTo = bnCompareTo;
  41522. BigInteger.prototype.bitLength = bnBitLength;
  41523. BigInteger.prototype.mod = bnMod;
  41524. BigInteger.prototype.modPowInt = bnModPowInt;
  41525. // "constants"
  41526. BigInteger.ZERO = nbv(0);
  41527. BigInteger.ONE = nbv(1);
  41528. // jsbn2 stuff
  41529. // (protected) convert from radix string
  41530. function bnpFromRadix(s,b) {
  41531. this.fromInt(0);
  41532. if(b == null) b = 10;
  41533. var cs = this.chunkSize(b);
  41534. var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
  41535. for(var i = 0; i < s.length; ++i) {
  41536. var x = intAt(s,i);
  41537. if(x < 0) {
  41538. if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
  41539. continue;
  41540. }
  41541. w = b*w+x;
  41542. if(++j >= cs) {
  41543. this.dMultiply(d);
  41544. this.dAddOffset(w,0);
  41545. j = 0;
  41546. w = 0;
  41547. }
  41548. }
  41549. if(j > 0) {
  41550. this.dMultiply(Math.pow(b,j));
  41551. this.dAddOffset(w,0);
  41552. }
  41553. if(mi) BigInteger.ZERO.subTo(this,this);
  41554. }
  41555. // (protected) return x s.t. r^x < DV
  41556. function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
  41557. // (public) 0 if this == 0, 1 if this > 0
  41558. function bnSigNum() {
  41559. if(this.s < 0) return -1;
  41560. else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
  41561. else return 1;
  41562. }
  41563. // (protected) this *= n, this >= 0, 1 < n < DV
  41564. function bnpDMultiply(n) {
  41565. this[this.t] = this.am(0,n-1,this,0,0,this.t);
  41566. ++this.t;
  41567. this.clamp();
  41568. }
  41569. // (protected) this += n << w words, this >= 0
  41570. function bnpDAddOffset(n,w) {
  41571. if(n == 0) return;
  41572. while(this.t <= w) this[this.t++] = 0;
  41573. this[w] += n;
  41574. while(this[w] >= this.DV) {
  41575. this[w] -= this.DV;
  41576. if(++w >= this.t) this[this.t++] = 0;
  41577. ++this[w];
  41578. }
  41579. }
  41580. // (protected) convert to radix string
  41581. function bnpToRadix(b) {
  41582. if(b == null) b = 10;
  41583. if(this.signum() == 0 || b < 2 || b > 36) return "0";
  41584. var cs = this.chunkSize(b);
  41585. var a = Math.pow(b,cs);
  41586. var d = nbv(a), y = nbi(), z = nbi(), r = "";
  41587. this.divRemTo(d,y,z);
  41588. while(y.signum() > 0) {
  41589. r = (a+z.intValue()).toString(b).substr(1) + r;
  41590. y.divRemTo(d,y,z);
  41591. }
  41592. return z.intValue().toString(b) + r;
  41593. }
  41594. // (public) return value as integer
  41595. function bnIntValue() {
  41596. if(this.s < 0) {
  41597. if(this.t == 1) return this[0]-this.DV;
  41598. else if(this.t == 0) return -1;
  41599. }
  41600. else if(this.t == 1) return this[0];
  41601. else if(this.t == 0) return 0;
  41602. // assumes 16 < DB < 32
  41603. return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
  41604. }
  41605. // (protected) r = this + a
  41606. function bnpAddTo(a,r) {
  41607. var i = 0, c = 0, m = Math.min(a.t,this.t);
  41608. while(i < m) {
  41609. c += this[i]+a[i];
  41610. r[i++] = c&this.DM;
  41611. c >>= this.DB;
  41612. }
  41613. if(a.t < this.t) {
  41614. c += a.s;
  41615. while(i < this.t) {
  41616. c += this[i];
  41617. r[i++] = c&this.DM;
  41618. c >>= this.DB;
  41619. }
  41620. c += this.s;
  41621. }
  41622. else {
  41623. c += this.s;
  41624. while(i < a.t) {
  41625. c += a[i];
  41626. r[i++] = c&this.DM;
  41627. c >>= this.DB;
  41628. }
  41629. c += a.s;
  41630. }
  41631. r.s = (c<0)?-1:0;
  41632. if(c > 0) r[i++] = c;
  41633. else if(c < -1) r[i++] = this.DV+c;
  41634. r.t = i;
  41635. r.clamp();
  41636. }
  41637. BigInteger.prototype.fromRadix = bnpFromRadix;
  41638. BigInteger.prototype.chunkSize = bnpChunkSize;
  41639. BigInteger.prototype.signum = bnSigNum;
  41640. BigInteger.prototype.dMultiply = bnpDMultiply;
  41641. BigInteger.prototype.dAddOffset = bnpDAddOffset;
  41642. BigInteger.prototype.toRadix = bnpToRadix;
  41643. BigInteger.prototype.intValue = bnIntValue;
  41644. BigInteger.prototype.addTo = bnpAddTo;
  41645. //======= end jsbn =======
  41646. // Emscripten wrapper
  41647. var Wrapper = {
  41648. abs: function(l, h) {
  41649. var x = new goog.math.Long(l, h);
  41650. var ret;
  41651. if (x.isNegative()) {
  41652. ret = x.negate();
  41653. } else {
  41654. ret = x;
  41655. }
  41656. HEAP32[tempDoublePtr>>2] = ret.low_;
  41657. HEAP32[tempDoublePtr+4>>2] = ret.high_;
  41658. },
  41659. ensureTemps: function() {
  41660. if (Wrapper.ensuredTemps) return;
  41661. Wrapper.ensuredTemps = true;
  41662. Wrapper.two32 = new BigInteger();
  41663. Wrapper.two32.fromString('4294967296', 10);
  41664. Wrapper.two64 = new BigInteger();
  41665. Wrapper.two64.fromString('18446744073709551616', 10);
  41666. Wrapper.temp1 = new BigInteger();
  41667. Wrapper.temp2 = new BigInteger();
  41668. },
  41669. lh2bignum: function(l, h) {
  41670. var a = new BigInteger();
  41671. a.fromString(h.toString(), 10);
  41672. var b = new BigInteger();
  41673. a.multiplyTo(Wrapper.two32, b);
  41674. var c = new BigInteger();
  41675. c.fromString(l.toString(), 10);
  41676. var d = new BigInteger();
  41677. c.addTo(b, d);
  41678. return d;
  41679. },
  41680. stringify: function(l, h, unsigned) {
  41681. var ret = new goog.math.Long(l, h).toString();
  41682. if (unsigned && ret[0] == '-') {
  41683. // unsign slowly using jsbn bignums
  41684. Wrapper.ensureTemps();
  41685. var bignum = new BigInteger();
  41686. bignum.fromString(ret, 10);
  41687. ret = new BigInteger();
  41688. Wrapper.two64.addTo(bignum, ret);
  41689. ret = ret.toString(10);
  41690. }
  41691. return ret;
  41692. },
  41693. fromString: function(str, base, min, max, unsigned) {
  41694. Wrapper.ensureTemps();
  41695. var bignum = new BigInteger();
  41696. bignum.fromString(str, base);
  41697. var bigmin = new BigInteger();
  41698. bigmin.fromString(min, 10);
  41699. var bigmax = new BigInteger();
  41700. bigmax.fromString(max, 10);
  41701. if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
  41702. var temp = new BigInteger();
  41703. bignum.addTo(Wrapper.two64, temp);
  41704. bignum = temp;
  41705. }
  41706. var error = false;
  41707. if (bignum.compareTo(bigmin) < 0) {
  41708. bignum = bigmin;
  41709. error = true;
  41710. } else if (bignum.compareTo(bigmax) > 0) {
  41711. bignum = bigmax;
  41712. error = true;
  41713. }
  41714. var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well
  41715. HEAP32[tempDoublePtr>>2] = ret.low_;
  41716. HEAP32[tempDoublePtr+4>>2] = ret.high_;
  41717. if (error) throw 'range error';
  41718. }
  41719. };
  41720. return Wrapper;
  41721. })();
  41722. //======= end closure i64 code =======
  41723. // === Auto-generated postamble setup entry stuff ===
  41724. if (memoryInitializer) {
  41725. if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
  41726. var data = Module['readBinary'](memoryInitializer);
  41727. HEAPU8.set(data, STATIC_BASE);
  41728. } else {
  41729. addRunDependency('memory initializer');
  41730. Browser.asyncLoad(memoryInitializer, function(data) {
  41731. HEAPU8.set(data, STATIC_BASE);
  41732. removeRunDependency('memory initializer');
  41733. }, function(data) {
  41734. throw 'could not load memory initializer ' + memoryInitializer;
  41735. });
  41736. }
  41737. }
  41738. function ExitStatus(status) {
  41739. this.name = "ExitStatus";
  41740. this.message = "Program terminated with exit(" + status + ")";
  41741. this.status = status;
  41742. };
  41743. ExitStatus.prototype = new Error();
  41744. ExitStatus.prototype.constructor = ExitStatus;
  41745. var initialStackTop;
  41746. var preloadStartTime = null;
  41747. var calledMain = false;
  41748. dependenciesFulfilled = function runCaller() {
  41749. // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
  41750. if (!Module['calledRun'] && shouldRunNow) run(['binarytrees.lua'].concat(Module["arguments"]));
  41751. if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
  41752. }
  41753. Module['callMain'] = Module.callMain = function callMain(args) {
  41754. assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
  41755. assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
  41756. args = args || [];
  41757. ensureInitRuntime();
  41758. var argc = args.length+1;
  41759. function pad() {
  41760. for (var i = 0; i < 4-1; i++) {
  41761. argv.push(0);
  41762. }
  41763. }
  41764. var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
  41765. pad();
  41766. for (var i = 0; i < argc-1; i = i + 1) {
  41767. argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
  41768. pad();
  41769. }
  41770. argv.push(0);
  41771. argv = allocate(argv, 'i32', ALLOC_NORMAL);
  41772. initialStackTop = STACKTOP;
  41773. try {
  41774. var ret = Module['_main'](argc, argv, 0);
  41775. // if we're not running an evented main loop, it's time to exit
  41776. if (!Module['noExitRuntime']) {
  41777. exit(ret);
  41778. }
  41779. }
  41780. catch(e) {
  41781. if (e instanceof ExitStatus) {
  41782. // exit() throws this once it's done to make sure execution
  41783. // has been stopped completely
  41784. return;
  41785. } else if (e == 'SimulateInfiniteLoop') {
  41786. // running an evented main loop, don't immediately exit
  41787. Module['noExitRuntime'] = true;
  41788. return;
  41789. } else {
  41790. if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
  41791. throw e;
  41792. }
  41793. } finally {
  41794. calledMain = true;
  41795. }
  41796. }
  41797. function run(args) {
  41798. args = args || Module['arguments'];
  41799. if (preloadStartTime === null) preloadStartTime = Date.now();
  41800. if (runDependencies > 0) {
  41801. Module.printErr('run() called, but dependencies remain, so not running');
  41802. return;
  41803. }
  41804. preRun();
  41805. if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
  41806. if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
  41807. function doRun() {
  41808. if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
  41809. Module['calledRun'] = true;
  41810. ensureInitRuntime();
  41811. preMain();
  41812. if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
  41813. Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
  41814. }
  41815. if (Module['_main'] && shouldRunNow) {
  41816. Module['callMain'](args);
  41817. }
  41818. postRun();
  41819. }
  41820. if (Module['setStatus']) {
  41821. Module['setStatus']('Running...');
  41822. setTimeout(function() {
  41823. setTimeout(function() {
  41824. Module['setStatus']('');
  41825. }, 1);
  41826. if (!ABORT) doRun();
  41827. }, 1);
  41828. } else {
  41829. doRun();
  41830. }
  41831. }
  41832. Module['run'] = Module.run = run;
  41833. function exit(status) {
  41834. ABORT = true;
  41835. EXITSTATUS = status;
  41836. STACKTOP = initialStackTop;
  41837. // exit the runtime
  41838. exitRuntime();
  41839. // TODO We should handle this differently based on environment.
  41840. // In the browser, the best we can do is throw an exception
  41841. // to halt execution, but in node we could process.exit and
  41842. // I'd imagine SM shell would have something equivalent.
  41843. // This would let us set a proper exit status (which
  41844. // would be great for checking test exit statuses).
  41845. // https://github.com/kripken/emscripten/issues/1371
  41846. // throw an exception to halt the current execution
  41847. throw new ExitStatus(status);
  41848. }
  41849. Module['exit'] = Module.exit = exit;
  41850. function abort(text) {
  41851. if (text) {
  41852. Module.print(text);
  41853. Module.printErr(text);
  41854. }
  41855. ABORT = true;
  41856. EXITSTATUS = 1;
  41857. var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.';
  41858. throw 'abort() at ' + stackTrace() + extra;
  41859. }
  41860. Module['abort'] = Module.abort = abort;
  41861. // {{PRE_RUN_ADDITIONS}}
  41862. if (Module['preInit']) {
  41863. if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
  41864. while (Module['preInit'].length > 0) {
  41865. Module['preInit'].pop()();
  41866. }
  41867. }
  41868. // shouldRunNow refers to calling main(), not run().
  41869. var shouldRunNow = true;
  41870. if (Module['noInitialRun']) {
  41871. shouldRunNow = false;
  41872. }
  41873. run(['binarytrees.lua'].concat(Module["arguments"]));